🚀 CodeV-R1-Qwen-7B
CodeV-R1-Qwen-7Bは、CodeV-R1フレームワークに基づき、Qwen/Qwen2.5-Coder-7B-Instructを強化学習による微調整を行って得られたモデルです。このモデルはVerilog関連のタスクで優れた性能を発揮し、電子設計自動化におけるハードウェア記述言語の自動生成という難題を効果的に解決することができます。
🚀 クイックスタート
CodeV-R1-Distill-Qwen-7Bの使用方法は、QwenやLlamaモデルと同じです。例えば、vLLMを使って簡単にサービスを起動することができます。
vllm serve zhuyaoyu/CodeV-R1-Distill-Qwen-7B --tensor-parallel-size 2 --max-model-len 16384 --enforce-eager
✨ 主な機能
- 革新的なフレームワーク:Verilog生成大規模言語モデルの訓練にCodeV-R1フレームワークを導入し、電子設計自動化におけるハードウェア記述言語の自動生成で直面する自動化された正確な検証環境の不足、高品質な自然言語 - コードペアの希少性、強化学習検証の計算コストの高さという問題を解決しました。
- 高品質なデータセット:往復データ合成方法を提案し、オープンソースのVerilogコード断片と大規模言語モデルが生成した自然言語記述をペアにし、生成されたテストベンチでコード - 自然言語 - コードの一致性を検証し、等価でない例をフィルタリングして高品質なデータセットを得ました。
- 効率的な訓練:蒸留後に強化学習を行う2段階の訓練プロセスを採用し、まず蒸留で推論能力を起動し、次に適応型DAPOアルゴリズムを使用することで、サンプリング率を適応的に調整して訓練コストを削減することができます。
📚 ドキュメント
1. はじめに
検証可能な報酬を用いた強化学習(RLVR)で訓練された大規模言語モデル(LLMs)は、ソフトウェアプログラミングや数学問題など、明確で自動化可能な検証ができるタスクで大きな進歩を遂げています。しかし、RLVRを電子設計自動化(EDA)、特に自然言語(NL)仕様からのハードウェア記述言語(HDLs)(例えばVerilog)の自動生成に拡張するには、3つの主要な課題があります。自動化された正確な検証環境の不足、高品質なNL - コードペアの希少性、およびRLVRの計算コストの高さです。
このため、我々はCodeV-R1を導入しました。これはVerilog生成LLMを訓練するためのRLVRフレームワークで、CodeVの仕事の延長です。まず、黄金基準に対する堅牢な等価性チェックを行うためのルールベースのテストベンチ生成器を開発しました。次に、往復データ合成方法を提案し、オープンソースのVerilogコード断片とLLMが生成したNL記述をペアにし、生成されたテストベンチでコード - NL - コードの一致性を検証し、等価でない例をフィルタリングして高品質なデータセットを得ました。最後に、蒸留後にRLを行う2段階の訓練プロセスを採用しました。まず蒸留で推論能力を起動し、次に我々独自の革新的なRLVRアルゴリズムである適応型DAPOを使用することで、サンプリング率を適応的に調整して訓練コストを削減することができます。
CodeV-R1-Qwen-7Bは、強化学習(RL)による微調整を行ったモデルで、CodeV-R1-Distill-Qwen-7Bをベースに構築されています。蒸留ベースの前身であるCodeV-R1-Distill-Qwen-7Bはこちらで入手できます。詳細な訓練情報については、我々の論文を参照してください。
2. 評価結果
評価段階では、最大生成长を16,384トークンに設定しました。温度設定を0.6にし、各クエリに対して20個の応答を生成してpass@1スコアを推定しました。
我々の評価はVerilogベンチマークを対象としており、VerilogEvalとRTLLMが含まれています。VerilogEval v2では、仕様からRTLへの翻訳とコード補完タスクのゼロショットシナリオを調査しました。RTLLMについては、バージョン1.1の結果を報告しており、このバージョンではより広範な比較分析が可能です。さらに、DeepSeek-R1によって促進されたVerilog問題の推論プロセスの取得により、モデルの域外数学能力が向上したことがわかりました。
VerilogEval (v2)
モデル |
モデルサイズ |
タイプ |
仕様からRTL |
補完 |
GPT-4o |
未公開 |
汎用 |
62.5% |
59.0% |
GPT-4 Turbo |
未公開 |
汎用 |
61.1% |
53.9% |
GPT-4 |
未公開 |
汎用 |
32.0% |
42.3% |
Mistral Large |
未公開 |
汎用 |
37.5% |
34.0% |
Llama3.1 |
405B |
汎用 |
57.2% |
56.4% |
Llama3.1 |
70B |
汎用 |
42.8% |
35.3% |
Llama3 |
70B |
汎用 |
43.9% |
37.8% |
Llama2 |
70B |
汎用 |
5.3% |
1.3% |
Llama3.1 |
8B |
汎用 |
19.1% |
2.6% |
CodeLlama |
70B |
コーディング |
34.9% |
37.2% |
DeepSeek Coder |
33B |
コーディング |
21.7% |
25.0% |
CodeGemma |
7B |
コーディング |
9.5% |
8.3% |
DeepSeek Coder |
6.7B |
コーディング |
29.6% |
24.4% |
RTL-Coder |
6.7B |
Verilog RTL |
36.8% |
35.9% |
CodeV-R1-distill (当社モデル) |
7B |
Verilog RTL |
65.2% |
65.5% |
CodeV-R1 (当社モデル) |
7B |
Verilog RTL |
68.8% |
69.9% |
RTLLM (v1.1)
モデル |
モデルサイズ |
タイプ |
Pass@1 |
GPT-4o |
未公開 |
汎用 |
33.8% |
GPT-3.5 Turbo |
未公開 |
汎用 |
28.3% |
Llama3.1 |
405B |
汎用 |
38.9% |
Nemotron-4 |
340B |
汎用 |
18.9% |
Llama3.1 |
8B |
汎用 |
19.1% |
CodeLlama |
7B |
コーディング |
17.9% |
CodeQwen |
7B |
コーディング |
24.1% |
Starcoder2 |
15B |
コーディング |
15.5% |
DeepSeek Coder |
6.7B |
コーディング |
23.1% |
DeepSeek-Coder-V2 |
16B |
コーディング |
33.1% |
DeepSeek-Coder-V2 |
236B |
コーディング |
34.5% |
RTL-Coder |
6.7B |
Verilog RTL |
36.8% |
CraftRTL |
6.7B |
Verilog RTL |
53.1% |
CodeV-R1-distill (当社モデル) |
7B |
Verilog RTL |
56.2% |
CodeV-R1 (当社モデル) |
7B |
Verilog RTL |
72.9% |
RTLLM v1.1については、通過率とモデルサイズの関係を示す結果も描画しました。
💡 使用例
訓練と評価の間、我々は以下のシステムプロンプトを使用しました。
You are a helpful assistant. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and<answer> </answer> tags, respectively, i.e., <think> reasoning process here </think><answer> answer here </answer>. Now the user asks you to write verilog code. After thinking, when you finally reach a conclusion, enclose the final verilog code in ```verilog ``` within <answer> </answer> tags. i.e., <answer> ```verilog
module top_module(in, out, ...) ... ``` </answer>.
推論時にはこのプロンプトを使用することをおすすめします。
📄 ライセンス
CodeV-R1-Qwen-7BはQwen-2.5シリーズに由来しており、このシリーズは当初Apache 2.0ライセンスの下でライセンスされています。現在は、DeepSeek-R1から整理された87kのサンプルを使用して微調整されています。
📚 引用
もし当社のモデルが役に立ったと感じた場合は、我々の論文を引用してください。
@misc{zhu2025codevr1,
title={CodeV-R1: Reasoning-Enhanced Verilog Generation},
author={Yaoyu Zhu and Di Huang and Hanqi Lyu and Xiaoyun Zhang and Chongxiao Li and Wenxuan Shi and Yutong Wu and Jianan Mu and Jinghua Wang and Yang Zhao and Pengwei Jin and Shuyao Cheng and Shengwen Liang and Xishan Zhang and Rui Zhang and Zidong Du and Qi Guo and Xing Hu and Yunji Chen},
year={2025},
eprint={2505.24183},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2505.24183},
}