[논문 리뷰] VeriGen: A Large Language Model for Verilog Code Generation
본 논문은 Verilog 데이터에 대해 오픈 소스 LLM을 미세조정하여 Verilog 코드를 생성하도록 해주며, 미세조정된 CodeGen-16B가 기능적 Verilog 생성에서 GPT-3.5-turbo와 어깨를 나란히 하거나 이를 능가하고, 사전 학습된 모델에 비해 상당한 이득을 달성함을 보여준다.
In this study, we explore the capability of Large Language Models (LLMs) to automate hardware design by generating high-quality Verilog code, a common language for designing and modeling digital systems. We fine-tune pre-existing LLMs on Verilog datasets compiled from GitHub and Verilog textbooks. We evaluate the functional correctness of the generated Verilog code using a specially designed test suite, featuring a custom problem set and testing benches. Here, our fine-tuned open-source CodeGen-16B model outperforms the commercial state-of-the-art GPT-3.5-turbo model with a 1.1% overall increase. Upon testing with a more diverse and complex problem set, we find that the fine-tuned model shows competitive performance against state-of-the-art gpt-3.5-turbo, excelling in certain scenarios. Notably, it demonstrates a 41% improvement in generating syntactically correct Verilog code across various problem categories compared to its pre-trained counterpart, highlighting the potential of smaller, in-house LLMs in hardware design automation.
연구 동기 및 목표
- 하드웨어 설계를 자동화하여 Verilog 코드를 LLM으로 생성하는 것을 목표로 한다.
- GitHub와 Verilog 교재에서 큰 Verilog 중심의 학습 코퍼스를 만든다.
- Verilog 코퍼스에서 여러 개의 오픈 소스 LLM을 미세조정하고 코드 생성 품질을 평가한다.
- Verilog 컴파일 및 단위 테스트 체크를 포함한 자동 평가 파이프라인을 개발한다.
- 훈련/평가 스크립트와 체크포인트를 오픈 소스 리소스로 공개한다.
제안 방법
- GitHub의 Verilog 학습 코퍼스(~50k 파일)와 Verilog 교재(PDF)로 400 MB Verilog 데이터셋을 구성한다.
- Verilog 코퍼스에서 345M에서 16B 매개변수에 이르는 다섯 개의 사전 학습 LLM을 DeepSpeed/ZeRO-3 전략으로 다중 GPU 학습을 통해 미세조정한다.
- Set I(수작업으로 설계된 Verilog 과제) 및 Set II(확장된 HDLBits 기반 문제)와 사용자 정의 테스트 벤치를 포함한 두 가지 문제 세트로 모델을 평가한다.
- Icarus Verilog로 합성-생성된 Verilog를 컴파일하고 단위 테스트 및 HDLBits 기반 시뮬레이션을 통해 기능적 정확성을 검증한다.
- 대형 상용 LLM(GPT-3.5-turbo, GPT-4, PALM2) 및 오픈 소스 베이스라인과의 비교를 통해 온도와 프롬프트 효과를 분석한다.
- 미세조정된 CodeGen-16B가 평가된 모델 중에서 최상의 성능을 달성하고 더 큰 상용 LLM과도 경쟁력이 있음을 보고한다.
실험 결과
연구 질문
- RQ1RQ1: 기본 LLM이 Verilog 생성 세트에서 얼마나 잘 작동하는가?
- RQ2RQ2: 미세조정이 Verilog 생성 성능을 향상시키는가?
- RQ3RQ3: 더 매개변수가 많은 더 큰 LLM이 Verilog 생성에 더 나은가?
- RQ4RQ4: 문제 설명의 변화가 품질과 올바른 완성에 어떤 영향을 미치는가?
- RQ5RQ5: Fine-Tuned LLM의 성능은 다른 문제 복잡성에 대해 GPT-3.5-turbo, GPT-4, PALM2, Claude와 어떻게 비교되는가?
- RQ6RQ6: 대형 LLM은 어떤 난이도에서 뛰어나고 최상의 모델에 도달하기 위해 보완이 필요한가?
- RQ7RQ7: 다양한 학습 데이터(예: 교재)를 포함하는 것이 모델 성능을 높이는가?
주요 결과
- 미세조정된 LLM은 데이터셋 전체에서 사전 학습된 대응 모델보다 더 우수하다.
- 미세조정된 CodeGen-16B MSV는 다른 평가된 LLM보다 뛰어나며 일부 더 큰 모델을 능가한다.
- 미세조정된 모델은 사전 학습 버전에 비해 구문적으로 올바른 Verilog 코드를 41% 향상시켰다.
- Best-performing 구성을 기준으로 GPT-3.5-turbo에 대한 미세조정 모델의 전반적 개선은 1.1%로 보고된다.
- 더 큰 매개변수 수는 일반적으로 테스트 벤치 통과 및 합성 체크를 더 많이 달성하는 경향이 있다.
- 프롬프트의 상세도와 온도가 성능에 부정적 영향을 주며, 더 낮은 온도와 프롬프트당 더 많은 완성이 더 나은 결과를 낸다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.