LLM自身に多様な指示(Instruction)と応答のペアを自動生成させ、それをInstruction Tuningの訓練データとして再帰的に活用する手法。Wang et al.(2023)が提案し、175件のシードタスクからGPT-3で52K件の指示データを生成してAlpacaの訓練に成功した。
Self-Instruct は、大規模言語モデル(LLM)自身の生成能力を活用して Instruction Tuning 用の訓練データを自動的に作成する手法である。Wang et al.(2023)が論文「Self-Instruct: Aligning Language Models with Self-Generated Instructions」で提案し、少数のシードタスク(175件)から GPT-3(text-davinci-003)を使って 52,000件以上の多様な指示-応答ペアを生成することに成功した。
従来の Instruction Tuning では、人手で大量の指示-応答ペアを作成する必要があり、InstructGPT の訓練には数万件の人手アノテーションと推定 $100万以上のコストがかかっていた。Self-Instruct はこのボトルネックを解消し、高品質な指示データの民主化を実現した画期的な手法である。
Self-Instruct の生成パイプラインは以下の 4 段階で構成される。
人手で作成した 175件のシードタスクを用意する。各タスクは以下の形式を持つ。
Task: 与えられた文の感情を分析してください
Input: 「今日の天気は最高で気分が良い」
Output: ポジティブ
シードタスクは多様なカテゴリ(分類・生成・変換・QA・推論等)をカバーするよう設計する。
LLM にシードタスクからランダムに 8件をサンプリングして提示し、新たなタスク指示の生成を依頼する。
生成された指示に対して、LLM に入力例と出力例のペアを生成させる。分類タスクの場合はOutput-First(まず出力ラベルを決めてから入力を生成)、生成タスクの場合はInput-First(まず入力を決めてから出力を生成)のアプローチを使い分ける。
生成されたデータから以下の条件に該当するものを除外する。
| フィルタ | 除外条件 | 目的 |
|---|---|---|
| ROUGE-L 類似度 | 既存タスクと ROUGE-L > 0.7 | 重複排除 |
| 長さフィルタ | 指示が 5語未満 or 500語超 | 極端なデータの排除 |
| キーワードフィルタ | 「image」「picture」「graph」等を含む |
| 実行不能タスクの排除 |
| 同一性フィルタ | Input と Output が同一 | 無意味なデータの排除 |
| 手法 | 提案者 | 改良点 | 代表的な成果物 |
|---|---|---|---|
| Self-Instruct (原版) | Wang et al., 2023 | 175 seed → 52K生成 | Alpaca (Stanford) |
| Evol-Instruct | Xu et al., 2023 | 段階的に指示を複雑化 | WizardLM |
| Self-Alignment | Li et al., 2023 | 原則に基づく自己修正 | Dromedary |
| Unnatural Instructions | Honovich et al., 2023 | 生成→言い換え→フィルタ | 64K件のデータセット |
| Orca | Mukherjee et al., 2023 | 思考過程(CoT)を含む生成 | Orca 1/2 |
| Magpie | Xu et al., 2024 | 入力テンプレートからの自己生成 | Magpie-Air |
Self-Instruct の実用化で最も有名なのが Stanford の Alpaca プロジェクトである。
52K件のデータで7Bモデルを微調整するだけで、1750億パラメータの GPT-3 に迫る性能を実現したことが大きな衝撃を与え、オープンソース LLM の発展を加速させた。
| 手法 | 52K件生成コスト | 品質(GPT-4評価) | 多様性スコア |
|---|---|---|---|
| 人手アノテーション | $50,000-200,000 | 4.5/5.0 | 0.82 |
| Self-Instruct (GPT-3) | $500 | 3.8/5.0 | 0.75 |
| Self-Instruct (GPT-4) | $3,000 | 4.3/5.0 | 0.80 |
| Evol-Instruct (GPT-4) | $4,500 | 4.4/5.0 | 0.85 |
| Magpie (Llama-3-70B) | $0 (ローカル) | 3.5/5.0 | 0.72 |
Q1: Self-Instruct で生成したデータの品質は人手データと比べてどうですか? A: GPT-4 で生成した Self-Instruct データは人手データの約 90-95% の品質に達する。ただし、高度な推論・数学・コーディングタスクでは人手データとの差が大きく、これらのドメインでは人手データの補完が推奨される。
Q2: シードタスクの数はどの程度必要ですか? A: 原論文の 175件が標準的。実験では 50件でもそれなりの品質が得られるが、タスク多様性の確保のため最低 100件を推奨。500件以上にしても収穫逓減が報告されている。
Q3: Self-Instruct のデータでファインチューニングしたモデルに著作権の問題はありますか? A: GPT-4/Claude 等の商用 API で生成したデータの利用は各プロバイダの利用規約に従う。OpenAI は 2023年3月に利用規約を改定し、API 出力を競合モデルの訓練に使用することを禁止した。オープンソースモデル(Llama 3等)でのローカル生成ならこの制約を回避できる。
Q4: Evol-Instruct と Self-Instruct の違いは? A: Self-Instruct はシードから新規指示を「水平展開」するのに対し、Evol-Instruct は既存の指示を「垂直進化」(複雑化)させる。Evol-Instruct は特に難易度の高いタスクへの対応力を向上させ、WizardLM-70B は HumanEval コーディングベンチマークで ChatGPT を上回った。