Skip to main content
QUICK REVIEW

[논문 리뷰] Benchmarking Large Language Models for Automated Verilog RTL Code Generation

Shailja Thakur, Baleegh Ahmad|arXiv (Cornell University)|2022. 12. 13.
Software Testing and Debugging Techniques인용 수 10
한 줄 요약

이 논문은 GitHub와 Verilog 교재에서 수집한 정제된 데이터셋을 사용하여, 자동으로 Verilog RTL 코드를 생성하기 위한 미세조정된 대규모 언어 모델(LLM)을 벤치마킹한다. 미세조정은 문법적 정확도(전반적으로 25.9%)와 기능적 정확도를 크게 향상시키며, CodeGen-16B 모델이 상용 Codex 모델보다도 기능적 정확도에서 뛰어나게(6.5% 대 6.5%) 성능을 발휘함으로써, 하드웨어 기술 설명어를 위한 도메인 특화 미세조정의 가치를 입증한다.

ABSTRACT

Automating hardware design could obviate a significant amount of human error from the engineering process and lead to fewer errors. Verilog is a popular hardware description language to model and design digital systems, thus generating Verilog code is a critical first step. Emerging large language models (LLMs) are able to write high-quality code in other programming languages. In this paper, we characterize the ability of LLMs to generate useful Verilog. For this, we fine-tune pre-trained LLMs on Verilog datasets collected from GitHub and Verilog textbooks. We construct an evaluation framework comprising test-benches for functional analysis and a flow to test the syntax of Verilog code generated in response to problems of varying difficulty. Our findings show that across our problem scenarios, the fine-tuning results in LLMs more capable of producing syntactically correct code (25.9% overall). Further, when analyzing functional correctness, a fine-tuned open-source CodeGen LLM can outperform the state-of-the-art commercial Codex LLM (6.5% overall). Training/evaluation scripts and LLM checkpoints are available: https://github.com/shailja-thakur/VGen.

연구 동기 및 목표

  • 자연어 사양에서 문법적 및 기능적으로 정확한 Verilog 코드를 생성할 수 있는 대규모 언어 모델(LLM)의 능력을 평가하는 것.
  • LLM 훈련 및 평가를 위한 대규모 고품질 Verilog 데이터셋의 부족 문제를 해결하는 것.
  • 다양한 난이도의 문제에 걸쳐 기능적 정확도를 측정하기 위해 테스트벤치와 컴파일 체크를 포함한 종합적인 평가 프레임워크를 설계하는 것.
  • 도메인 특화 Verilog 코퍼스에 대해 미세조정된 오픈소스 및 상용 LLM의 성능을 비교하는 것.
  • 모델 크기와 훈련 데이터 구성이 코드 생성 품질에 미치는 영향을 조사하는 것.

제안 방법

  • 오픈소스 GitHub 리포지토리와 디지털화된 Verilog 교재 PDF를 통합하여 대규모 Verilog 훈련 코퍼스를 구축하고, 깔끔한 코드 스니펫을 추출하기 위해 철저한 전처리를 수행했다.
  • 345M에서 16B 파라미터에 이르는 다섯 개의 사전 훈련된 LLM을 정제된 Verilog 데이터셋에 대해 미세조정하여 RTL 코드 생성에 특화된 모델을 만들었다.
  • 난이도가 점차 증가하는 20개의 다양한 Verilog 프로그래밍 문제를 설계하였으며, 각 문제는 정확도를 검증하기 위한 기능적 테스트벤치를 함께 제공했다.
  • 다단계 평가 파이프라인을 구현: 온도 및 빔 서치 설정에 따라 코드 생성을 수행한 후, Verilog 컴파일을 통한 문법 검사와 테스트벤치 실행을 통한 기능 검증을 수행했다.
  • 각 프롬프트에 대해 10개의 완성본을 생성하는 Pass@n 메트릭을 사용하여 기능적 정확도를 평가하였으며, n=10을 주요 평가 설정으로 삼았다.
  • 훈련 데이터 구성의 영향을 평가하기 위해 추론 실험을 수행하였으며, GitHub 전용 데이터와 GitHub + 교재 데이터로 훈련된 모델을 비교했다.

실험 결과

연구 질문

  • RQ1미세조정된 LLM은 자연어 기술 사양에서 문법적으로 정확하고 합성 가능한 Verilog 코드를 생성할 수 있는가?
  • RQ2모델 크기(예: 345M에서 16B 파라미터)가 생성된 Verilog 코드 품질에 어떤 영향을 미치는가?
  • RQ3도메인 특화 Verilog 데이터에 대해 미세조정하면, 사전 훈련된 모델 대비 기능적 정확도가 향상되는가?
  • RQ4훈련 데이터 구성(GitHub 대비 교재)이 모델의 일반화 능력과 성능에 어떤 영향을 미치는가?
  • RQ5적절히 Verilog 전용 데이터에 대해 미세조정된 오픈소스 LLM이 Codex와 같은 상용 모델을 능가할 수 있는가?

주요 결과

  • 정제된 Verilog 코퍼스에 대해 LLM을 미세조정함으로써 생성된 코드의 전반적인 문법적 정확도가 25.9%로 상승하였으며, 사전 훈련된 모델의 경우 이는 11.9%에 그쳤다.
  • 미세조정된 CodeGen-16B 모델은 모든 테스트 시나리오에서 41.9%의 기능적 정확도를 달성하였으며, 비미세조정된 code-davinci-002 모델(35.4% 기능적 정확도)을 뛰어넘었다.
  • 최고 성능을 보인 모델(CodeGen-16B FT)은 프롬프트당 10개의 완성본을 생성했을 때 6.5%의 문제에서 모든 테스트벤치를 통과하였으며, 기능적 정확도에서 Codex를 크게 앞서는 성과를 보였다.
  • GitHub와 교재 Verilog 데이터를 병합하여 훈련한 모델은 GitHub 전용 훈련 대비 Pass@10 점수를 1.4%p 향상시켰으며, 이는 다양한 고품질 훈련 데이터의 가치를 시사한다.
  • 강력한 성능에도 불구하고, 일부 복잡한 문제(LFSR, 시프트/시프트)는 여전히 도전적이었으며, 540개의 완성본 중 0~1개만 통과하는 등 추론 및 표현 생성 능력의 한계를 보였다.
  • 프롬프트 엔지니어링과 테스트벤치 설계가 평가 결과에 큰 영향을 미치며, 불명확한 문제 기술(예: 리셋 유형)은 일관성 없는 모델 출력과 테스트 실패를 유도했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.