インストラクションチューニング
インストラクションチューニングは、ベースのLLMを数千の(指示, 望ましい応答)のペアでファインチューニングし、単にテキストを続けるのではなく自然言語の指示に従うことを学習させる、事後学習(ポストトレーニング)のプロセスです。これは、次の単語を予測することに長けた生のままの言語モデルを、「これを要約して」「韓国語に翻訳して」「SQLクエリを書いて」を理解するアシスタントへと変えるステップです。
インストラクションチューニングは、ベースのLLMを数千の(指示, 望ましい応答)のペアでファインチューニングし、単にテキストを続けるのではなく自然言語の指示に従うことを学習させる、事後学習(ポストトレーニング)のプロセスです。これは、次の単語を予測することに長けた生のままの言語モデルを、「これを要約して」「韓国語に翻訳して」「SQLクエリを書いて」を理解するアシスタントへと変えるステップです。
なぜ重要なのか
次トークン予測だけで学習されたベースモデルは、意外にも使いにくいものです。生のGPT-3ベースモデルに「フランスの首都は?」と尋ねると、答えるのではなく、「イタリアの首都は?スペインの首都は?」と、似た質問のパターンを続けてしまうかもしれません。インストラクションチューニングはこれを変えました。GoogleのFLAN(2021年)、OpenAIのInstructGPT(2022年)、AnthropicのClaudeは、インストラクションチューニングを用いて、実際に答えるモデルを作り出しました。現代のチャット指向のLLM、つまりGPT-4、Claude、Gemini、Llama Instruct、Mistral Instructは、いずれもインストラクションチューニングを施されています。このステップを理解すると、同程度のベース能力を持つ2つのモデルが、使い心地においてなぜ劇的に違って感じられるのかが分かります。
仕組み
1. 指示データを収集する: 人間が、要約、Q&A、コーディング、翻訳、数学、創作、推論など、多様なタスクにわたって数千の指示と応答のペアを書く(あるいは選別する)。
2. 一貫した形式にする: 各事例は、次のような構造に従います。
### Instruction:
Summarize the following article in 3 bullets.
### Input:
[article text]
### Response:
- point 1
- point 2
- point 3
3. 教師ありファインチューニング(SFT): これらの整形されたペアに対して、標準的な次トークン予測の損失でベースモデルを学習させます。モデルは、「### Instruction: ... ### Response:」を見た後、望ましい応答を生成すべきだと学習します。
4. 任意のマルチタスクの混合: FLAN、T0、Dollyといったデータセットは、数百のタスク種別を組み合わせて、モデルが未知の指示にも汎化できるようにします。
5. 未見の指示で評価する: チューニング中に一度も見ていない新しい指示に、モデルが従えるかを測定します。
インストラクションチューニング vs ファインチューニング vs RLHF
| 観点 | ファインチューニング | インストラクションチューニング | RLHF |
|---|---|---|---|
| データ | タスク固有の事例 | 多様な(指示, 応答)のペア | 人間の選好の比較 |
| 損失 | 次トークン予測 | 次トークン予測 | 報酬モデル + PPO |
| 目標 | 1つのタスクに特化する | 一般的な指示追従 | 人間の選好に整合させる |
| 例 | 法律契約だけでファインチューニングされたモデル | FLAN、Alpaca、Dolly | ChatGPT、Claude |
| 難易度 | 易しい | 中程度 | 難しい |
実際には、現代のチャットモデルはこの3つすべてを経ます。ベースの事前学習 → インストラクションチューニング(SFT)→ RLHF(またはDPO/constitutional AI)です。インストラクションチューニングは中間のレイヤーであり、モデルが使えるようになるものの、有用性、安全性、誠実さといった選好にはまだ整合していない地点です。
有名なインストラクションチューニング済みモデル
FLAN-T5(Google、2022年): 最初期のオープンソースのインストラクションチューニング済みモデルの一つ。インストラクションチューニングを施した3Bモデルが、それなしの175Bモデルを上回りうることを示しました。
Alpaca(Stanford、2023年): GPT-3.5が生成した52,000件の指示事例でLlama 7Bをファインチューニング。インストラクションチューニングが、小型モデルでも安価かつ効果的であることを実証しました。
Dolly(Databricks、2023年): 人間が書いた15,000件の指示でファインチューニング。高品質なデータが量に勝ることを証明しました。
Llama Instruct / Mistral Instruct: ベースモデルと並んでリリースされた、オープンウェイトのインストラクションチューニング版。
Open-InstructとTulu(AI2): 透明性を重視した、研究志向のインストラクションチューニング済みモデル。
トレードオフ
データの品質 > 量: 入念に書かれた15,000件の事例が、自動生成された500,000件を上回ることがあります。AlpacaとDollyの対比がこれを示しました。
狭い vs 広いカバレッジ: より多くのタスク種別をカバーすると汎化は向上しますが、個々のタスクのパフォーマンスを損なうことがあります。
形式への敏感さ: インストラクションチューニング済みモデルは特定のプロンプト形式を期待します。誤った形式を使うと、パフォーマンスが目に見えて低下します。
ハルシネーションのリスク: 指示データに裏付けのない回答が含まれていると、モデルは自信たっぷりに捏造することを学習します。
コスト: 小型モデルなら数百から数千ドルのGPU時間。フロンティア規模ではさらに多くかかります。
よくある間違い
RLHFと混同する: これらは別々のステップです。モデルはRLHFなしでもインストラクションチューニングできますが(多くのオープンモデルがそうです)、選好の整合は欠けることになります。
生のベースモデルをチャットモデルとして使う: ベースモデルは指示に確実には従いません。アシスタントのタスクには、必ずインストラクションチューニング版またはチャット版を使いましょう。
モデル間でプロンプト形式を混在させる: インストラクションチューニング済みモデルには、それぞれ期待する形式があります。Llamaの形式はMistralの形式ではなく、OpenAIの形式でもありません。
自社ドメインで学習させて一般能力を失う: インストラクションチューニング済みモデルの上に狭いファインチューニングを施すと、指示追従が消えてしまうことがあります。LoRAを使い、幅広く評価しましょう。
評価を忘れる: 未見のプロンプトに対する人間の判断やLLM-as-a-judgeだけが、インストラクションチューニングが実際にうまくいったかを検証する唯一の方法です。
Sources: