AI・機械学習
上級
Evol-Instruct(エボルインストラクト)
WizardLMが提案した、既存の指示データをLLMで段階的に複雑化・多様化する合成データ生成手法。簡単な指示を「深化」「拡張」の2方向に進化させ、高品質な難易度分布を持つ指示データセットを自動構築する。
0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
Evol-Instruct
WizardLM
合成データ
instruction tuning
LLM
Evol-Instruct とは
Evol-Instructは、Xu Canら(Microsoft + MSRA)が2023年に提案した指示データ進化手法です。既存の簡単な指示データをLLMを使って段階的に複雑化・多様化することで、高品質で難易度分布に富んだ合成指示データセットを自動構築します。
問題意識
Self-Instructなどで生成された初期データは「比較的簡単な指示」に偏りがちでした。モデルを本当に強化するには、段階的に難しい問題への対応力が必要です。Evol-Instructはこの課題に取り組みます。
進化の2方向
In-depth Evolving(深化方向)
指示をより難しく・具体的に変換します:
- Add Constraints(制約追加): 「リストをソートせよ」→「メモリ使用量O(1)でin-placeソートせよ」
- Deepen(深化): 浅い問いをより専門的・技術的な問いへ
- Concretize(具体化): 抽象的な指示を具体的シナリオへ
- Increase Reasoning Steps(推論ステップ増加): 多段階の思考を要求
- Complicate Input(入力複雑化): データ入力を複雑にする
In-breadth Evolving(拡張方向)
既存指示から全く新しいカテゴリの指示を生成します。多様なトピックへの分布を広げます。
アルゴリズムフロー
初期データ(Alpaca 52k等)
↓
各指示にEvolver LLM(ChatGPT)適用
├ In-depth: ランダムに深化手法選択
└ In-breadth: 新カテゴリへの転換
↓
Eliminator LLMでフィルタリング
(「わかりません」応答を除外・コピー劣化を除外)
↓
進化済み指示プールへ追加
↓
繰り返し(複数ラウンド)
WizardLMの成果
70kの進化済み指示データでLLaMAをファインチューニングしたWizardLMは、Vicuna-13B・Alpaca-13BをMT-Benchで上回り、ChatGPT(gpt-3.5-turbo)に匹敵する応答品質を達成しました。
派生応用
- WizardCoder: Code Evol-Instructを適用。HumanEval 78.6%でGPT-4を一時的に上回る
- WizardMath: Math Evol-Instructを適用。GSM8K 92.0%・MATH 52.6%達成
- MagicCoder: Evol-Instructの変種でコード特化合成データを生成
Self-Instructとの違い
| 比較軸 | Self-Instruct | Evol-Instruct |
|---|---|---|
| アプローチ | ゼロからデータ生成 | 既存データを進化 |
| 難易度分布 | 自然発生(やや簡単寄り) | 意図的に難易度を上げる |
| 多様化手法 | ランダム生成 | 系統的な進化方向 |
まとめ
Evol-Instructは「既存データを捨てず、進化させる」という発想で指示チューニングデータの質と難易度分布を改善します。数学・コード等の専門領域でオープンソースモデルが商用モデルに迫る性能を達成した重要な手法です。