🚀 CodeV-R1-Distill-Qwen-7B
このモデルは、大規模言語モデル(LLM)の事後学習段階における進歩を活用し、Verilogなどのハードウェア記述言語(HDL)のコード生成や問題解決能力を向上させることを目的としています。知識蒸留を用いて、DeepSeek-R1の推論能力を小規模で効率的なモデルに移譲し、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
💡 使用アドバイス
学習と評価の際には、以下のシステムプロンプトを使用しています。このプロンプトを使用することをおすすめします。
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\n module top_module(in, out, ...) ... ``` </answer>.\n
✨ 主な機能
大規模言語モデル(LLM)の事後学習段階は急速に進歩しており、OpenAIのGPT-o1、DeepSeek-R1、Kimi-1.5などのモデルは卓越した推論能力を示しています。特に、DeepSeek-R1はシンプルで強力なルールベースの強化学習(RL)アプローチを導入し、推論パターンの出現を可能にしました。これらの進歩は主にソフトウェアプログラミング言語を対象としていますが、ハードウェア記述言語(HDL)、特にVerilogに対するLLMの適用に対する関心が高まっています。
しかし、VerilogなどのHDLは、低リソース言語に似た課題に直面しており、高品質の命令追従データが限られており、正確なレジスタ転送レベル(RTL)コードを生成するモデルの能力が制限されています。これらの制限は、専用コードLLMの性能と言語間の汎化能力を妨げています。これを解決するために、知識蒸留を利用して、DeepSeek-R1のような推論能力を小規模で効率的なモデルに備えさせることを提案します。
CodeVで始まった作業の続きとして、DeepSeek-R1からCodeVデータセットを使用して蒸留されたCodeV-R1-Distill-Qwen-7Bを紹介します。このモデルは、主要なVerilogベンチマークで以前の非推論LLMを上回り、優れたコード合成と問題解決能力を示しています。興味深いことに、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
📚 ドキュメント
モデルの概要
- データ準備:最初に、Deepseek-v3を利用して元のCodeVデータセットから質問を再要約し、定式化します。次に、Qwen2.5-Coder-7B-InstructとQwen2.5-Coder-32B-Instructが5回以内で解決できる簡単な問題、および合成不可能な問題をフィルタリングします。残りのデータについては、DeepSeek-R1を使用して質問ごとに1つの回答を生成します。ベンチマークテストされた問題と比較してRouge-Lスコアが0.5を超える問題もフィルタリングされます。これらのプロセスの後、約87,000の(問題、コード)ペアが残ります。
- 学習:LLaMAFactoryを使用して、この精製された87,000ペアのデータセットを使用してQwen2.5-Coder-7B-Instructに教師付き微調整(SFT)を適用します。学習は、学習率1e-5、バッチサイズ64で6エポック行われます。
評価結果
評価段階では、最大生成長は16,384トークンに設定されています。温度設定は0.6で、クエリごとに20の回答が生成され、pass@1スコアが推定されます。
評価には、VerilogEvalやRTLLMなどのVerilogベンチマークが含まれています。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.4% |
65.1% |
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% |
数学的能力
モデル |
AIME |
数学 |
AMC |
Minerva |
オリンピックベンチマーク |
平均 |
Qwen2.5-7b-instruct-1M |
11.25% |
72.61% |
41.11% |
25.92% |
34.66% |
37.11% |
Qwen2.5-math-7b-instruct |
12.08% |
82.25% |
49.4% |
27.64% |
37.31% |
41.74% |
Qwen2.5-coder-7b-instruct (ベースライン) |
5.63% |
63.5% |
35.62% |
21.02% |
28.64% |
30.88% |
CodeV-R1-distill (当社) |
11.04% |
74.35% |
45.86% |
25.79% |
38.7% |
39.15% |
ライセンス
CodeV-R1-Distill-Qwen-7Bは、Qwen-2.5シリーズから派生しており、元々はApache 2.0 Licenseの下でライセンスされています。現在は、DeepSeek-R1で選別された87kのサンプルで微調整されています。
引用
@misc{CodeV-R1-Distill-Qwen-7B,
author = {IPRC-DIP},
title = {CodeV Model Distilled from DeepSeek-R1},
url = {https://huggingface.co/zhuyaoyu/CodeV-R1-Distill-Qwen-7B},
year = {2025}
}