Skip to main content
QUICK REVIEW

[論文レビュー] VeriGen: A Large Language Model for Verilog Code Generation

Shailja Thakur, Baleegh Ahmad|arXiv (Cornell University)|Jul 28, 2023
Ferroelectric and Negative Capacitance Devices被引用数 9
ひとこと要約

本論文は Verilog データでオープンソース LLM をファインチューニングし Verilog コードを生成する。ファインチューニング済みの CodeGen-16B は機能的な Verilog 生成でGPT-3.5-turbo に対抗または上回り、事前学習モデルより大きな改善を達成することを示す。

ABSTRACT

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.

研究の動機と目的

  • LLMを用いてVerilogコードを生成することでハードウェア設計の自動化を促進する。
  • GitHubとVerilog教科書からVerilogに焦点を当てた大規模な学習用データセットを作成する。
  • Verilogコーパス上で複数のオープンソース LLM をファインチューニングし、コード生成品質を評価する。
  • Verilogのコンパイルと単体テストチェックを含む自動評価パイプラインを開発する。
  • トレーニング/評価スクリプトとチェックポイントをオープンソース資源として公開する。」],

提案手法

  • GitHub の Verilog トレーニングコーパス(約50kファイル)と Verilog 教科書(PDF)を精選して 400 MB の Verilog データセットを作成する。
  • 345M 〜 16B パラメータの5つの事前学習済み LLM を Verilog コーパス上でファインチューニングし、DeepSpeed/ZeRO-3 戦略を用いたマルチGPU学習で実施する。
  • Set I(手作りの Verilog チャレンジ)と Set II(HDLBits由来の拡張問題)に加えカスタムテストベンチを用いた2つの問題セットでモデルを評価する。
  • 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: 異なる難易度の問題に対して、ファインチューニング済み LLM の性能は GPT-3.5-turbo、GPT-4、PALM2、Claude とどのように比較されるか?
  • RQ6RQ6: 大規模 LLM はどの難易度レベルで優れており、最高の性能モデルに匹敵するためにはどの点を強化する必要があるか?
  • RQ7RQ7: 多様な学習データ(例:教科書)を組み込むことはモデルの性能を向上させるか?

主な発見

  • ファインチューニング済み LLM は、データセット全体を通じて事前学習済みの counterparts を上回る。
  • ファインチューニング済み CodeGen-16B MSV は、他の評価対象の LLM よりも高性能を示し、より大きなモデルを含むものも上回る。
  • ファインチューニング済みモデルは、事前学習版に比べて構文的に正しい Verilog コード生成で41%の改善を示す。
  • 最高性能構成で、ファインチューニング済みモデルが GPT-3.5-turbo を全体で1.1%上回ることが報告されている。
  • 評価は、より大きなパラメータ数が一般的にテストベンチと合成チェックを通過する完了回数の増加と相関があることを示している。
  • プロンプトの詳細化と温度は性能に負の影響を与え、温度を低くし1つのプロンプトあたりの完了回数を増やすとより良い結果が得られる。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。