Instruction Tuning(インストラクションチューニング)
大規模言語モデルに対し、人間の指示(Instruction)と期待される応答のペアデータで追加学習を行い、モデルの指示追従能力を向上させる手法。ChatGPTの基盤技術の一つであり、汎用LLMを実用的なアシスタントに変換する鍵となる技術。
Instruction Tuningとは、事前学習済みLLMに「指示→応答」形式のデータセットで追加学習を施し、モデルが自然言語による指示を理解して適切に応答する能力を獲得させる手法である。2022年のFLAN(Finetuned Language Net)やInstructGPTの成功以降、商用・オープンソースLLMの標準的な学習パイプラインに組み込まれている。
概要
事前学習済みLLM(Base Model)は膨大なテキストから言語パターンを学習しているが、そのままでは人間の質問に直接答えるのが不得意である。例えば「日本の首都は?」と聞いても、「日本の首都はどこか、という問題は〜」と文章を続けてしまう。Instruction Tuningは、こうしたBase Modelを「質問に答える」「要約する」「翻訳する」といった指示に従えるモデル(Instruct Model / Chat Model)に変換する。
Googleの研究チーム(2022年、FLAN-T5/FLAN-PaLM)は、1,800以上のタスクにわたる指示データセットで学習することで、未知のタスクへの汎化能力(Zero-shot性能)が劇的に向上することを示した。OpenAIのInstructGPT(2022年)は、指示データ+RLHF(人間のフィードバックによる強化学習)の組み合わせでGPT-3の実用性を大幅に改善し、ChatGPT誕生の基盤となった。
代表的なInstruction Tuningデータセット
| データセット | 件数 | 言語 | 特徴 | ライセンス |
|---|---|---|---|---|
| FLAN Collection | 1,800タスク | 英語中心 | Google作成、最大規模 | Apache 2.0 |
| Alpaca | 52,000件 | 英語 | GPT-3.5で生成、Stanford | CC BY-NC 4.0 |
| ShareGPT | 90,000+件 | 多言語 | ユーザー投稿の会話ログ | 要確認 |
| OpenAssistant (OASST) | 161,000件 | 35言語 | 人間ボランティア作成 | Apache 2.0 |
| Dolly-15k | 15,000件 | 英語 | Databricks社員が作成 | CC BY-SA 3.0 |
| LIMA | 1,000件 | 英語 | 少量高品質の実証研究 | CC BY-NC-SA |
主な特徴・仕組み
- データ形式: 「system prompt + user instruction + assistant response」の3要素構成が標準。ChatML形式やAlpaca形式が広く使われる
- タスク多様性: 翻訳、要約、QA、コード生成、数学、創作文、分類など多様なタスクを混合
- スケーリング則: タスク数を増やすほどZero-shot性能が向上。FLAN研究では1,800タスクで飽和傾向
- 品質の重要性: LIMA論文(2023年)は、わずか1,000件の極めて高品質なデータでGPT-4に匹敵する応答品質を達成できることを示した(「Less Is More for Alignment」)
- 合成データ活用: Alpacaに始まり、強力なLLM(GPT-4等)で指示データを自動生成する手法が一般化。コスト効率が高い
- 多言語対応: OASST、Aya(Cohere)など多言語Instructionデータセットの整備が進行
- 評価: MT-Bench(マルチターン、GPT-4評価)、AlpacaEval(自動評価)、Chatbot Arena(人間評価)が三大評価基盤
- 段階的学習: 多くの商用モデルはSFT(Supervised Fine-Tuning = Instruction Tuning)→ RLHF/DPO の2段階で学習
Instruction Tuning の学習パイプライン
- データ収集: 人間作成 or 合成生成 or 既存データセット活用
- データ整形: ChatML/Alpaca形式に統一。テンプレート適用
- SFT実行: LoRA/QLoRAまたはFull FTで学習。1〜3エポック
- 評価: MT-Bench、AlpacaEvalで自動評価。人間評価も併用
- 選好最適化(任意): DPO/KTO/RLHFで「好ましい応答」を強化
- デプロイ: vLLM/TGI等の推論サーバで提供
Base Model vs Instruct Model の違い
| 比較項目 | Base Model | Instruct Model |
|---|---|---|
| 学習データ | Web/書籍テキスト | + 指示-応答ペア |
| 出力傾向 | テキスト補完 | 指示に沿った回答 |
| Zero-shot | 低い | 高い |
| 安全性 | 制御なし | ガードレール付き |
| 用途 | 研究/追加学習ベース | エンドユーザー向け |
| 例 | Llama 3.1 8B | Llama 3.1 8B-Instruct |
よくある質問(FAQ)
Q1: Instruction Tuningのデータは何件必要? A: LIMA論文は1,000件の高品質データで十分と示したが、実用的には5,000〜50,000件が標準。合成データ活用で量は確保しやすいが、品質フィルタリング(不正確な応答や有害出力の除去)が重要。
Q2: 自社データでInstruction Tuningするには? A: 社内QA、ドキュメント、メールなどから「質問-回答」ペアを500件以上作成し、Alpaca形式に整形。QLoRA+Unslothで7Bモデルを学習すればRTX 4090 1枚で2〜3時間で完了。社内用語・トーンの反映に効果的。
Q3: ChatGPTとInstruction Tuningの関係は? A: ChatGPTはGPT-3.5/4にInstruction Tuning(SFT)→ RLHF の2段階学習を施したモデル。Instruction Tuningが「指示に従う能力」を付与し、RLHFが「人間の好みに合わせる」能力を付与している。
まとめ
- Instruction TuningはBase Modelを実用的なアシスタントに変換する必須技術
- 1,000件の高品質データでも効果あり(LIMA)、5,000件以上で安定
- FLAN、Alpaca、OASST等のオープンデータセットが充実
- 合成データ生成により低コストでの独自データセット構築が可能
- SFT → DPO/RLHFの2段階パイプラインが2026年の標準