[論文レビュー] WizardCoder: Empowering Code Large Language Models with Evol-Instruct
WizardCoder は Code LLM (StarCoder) をコードに焦点を当てた Evol-Instruct でファインチューニングし、オープンソースの Code LLM の中で最先端を達成し、HumanEval、HumanEval+、MBPP でいくつかのクローズドモデルを上回る。
Code Large Language Models (Code LLMs), such as StarCoder, have demonstrated exceptional performance in code-related tasks. However, most existing models are solely pre-trained on extensive raw code data without instruction fine-tuning. In this paper, we introduce WizardCoder, which empowers Code LLMs with complex instruction fine-tuning, by adapting the Evol-Instruct method to the domain of code. Through comprehensive experiments on four prominent code generation benchmarks, namely HumanEval, HumanEval+, MBPP, and DS-1000, we unveil the exceptional capabilities of our model. It surpasses all other open-source Code LLMs by a substantial margin. Moreover, our model even outperforms the largest closed LLMs, Anthropic's Claude and Google's Bard, on HumanEval and HumanEval+. Our code, model weights, and data are public at https://github.com/nlpxucan/WizardLM
研究の動機と目的
- コードタスクに合わせた細粒度の指示調整で Code LLM の強化を促進する。
- Evol-Instruct を活用して、より複雑で多様な、コード中心の指示データを生成する。
- 強化された指示ファインチューニングがベースラインを上回るコード生成ベンチマークを改善することを示す。
提案手法
- プロンプトを洗練させ、コード特有の制約を追加することで Evol-Instruct をコードに適用する(デバッグ、時間/空間計算量など)。
- StarCoder 15B から開始し、Code Alpaca データを約78k サンプルへ拡張する。
- 進化データで StarCoder を200ステップ、バッチサイズ512、シーケンス長2048、学習率2e-5、fp16 でファインチューニングする。
- Greedy デコードと標準プロンプトを用いて HumanEval、HumanEval+、MBPP、DS-1000 で評価する。
- pass@1 および DS-1000 スコアを評価するために、オープンソースとクローズドソースのベースラインと比較する。
実験結果
リサーチクエスチョン
- RQ1コードを重視した Evol-Instruct は標準ベンチマークでの Code LLM の性能にどう影響するか?
- RQ2WizardCoder はコード生成タスクにおいてクローズドソースモデルとのギャップを縮めるか?
- RQ3データ進化ラウンドの回数が pass@1 の性能に与える影響はどの程度か?
主な発見
| モデル | パラメータ | HumanEval | MBPP |
|---|---|---|---|
| LaMDA | 137B | 14.0 | - |
| AlphaCode | 1.1B | 17.1 | - |
| PaLM | 540B | 26.2 | 36.8 |
| PaLM-Coder | 540B | 36.0 | 47.0 |
| PaLM 2-S | - | 37.6 | 50.0 |
| Codex | 2.5B | 21.4 | - |
| Codex | 12B | 28.8 | - |
| Code-Cushman-001 | - | 33.5 | 45.9 |
| Code-Davinci-002 | - | 47.0 | 58.1 |
| GPT-3.5 | - | 48.1 | - |
| GPT-4 | - | 67.0 | - |
| LLaMA | 33B | 21.7 | 30.2 |
| LLaMA | 65B | 23.7 | 37.7 |
| CodeGen-Multi | 16B | 18.3 | 20.9 |
| CodeGen-Mono | 16B | 29.3 | 35.3 |
| CodeGeeX | 13B | 22.9 | 24.4 |
| StarCoder | 15B | 33.6 | 43.6 * |
| CodeT5+ | 16B | 30.9 | - |
| InstructCodeT5+ | 16B | 35.0 | - |
| WizardCoder | 15B | 57.3 (+22.3) | 51.8 (+8.2) |
- WizardCoder は4つのベンチマーク(HumanEval、HumanEval+、MBPP、DS-1000)でオープンソースの Code LLM の中で SOTA を達成。
- HumanEval では、pass@1 がベースラインのオープンソースモデルに比べて+22.3 ポイント改善(57.3 vs 35.0)。
- MBPP では +8.2 ポイント(51.8 vs 43.6)改善。
- WizardCoder は小型ながら HumanEval および HumanEval+ で Claude および Bard を上回る。
- 3ラウンドの Evol-Instruct データ進化が HumanEval で最高の pass@1 をもたらし、データ選択を導いた。
- WizardCoder はほとんどのライブラリで DS-1000 の性能が高いことを示す。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。