SFT(Supervised Fine-Tuning、教師ありファインチューニング)は、チャットモデルが「デビュー」する前の研修のようなものです。数千件の「指示-回答」のデモデータを使い、事前学習済みの大規模モデルに、人間が期待する話し方・振る舞い方を教えます。ここで注意したいのは、モデルに新しい知識を詰め込むのではなく、「すでに学んだことを正しい形式で話す」ことを教える点です。
事前学習・SFT・RLHF の役割分担
チャットモデルの学習パイプラインは通常、事前学習 → SFT → RLHF(または DPO などのアライメント手法)の3段階で進み、それぞれ役割がまったく異なります。
| 段階 | 学ぶこと | 一言で |
|---|---|---|
| 事前学習 | 膨大なテキストから言語の法則と世界の知識を学ぶ | 「話して理解する」を学ぶ |
| SFT | 指示デモから「指示に従い、期待される形式で答える」を学ぶ | 「要求通りに動く」を学ぶ |
| RLHF / DPO | 人間の好みから「より安全で役立つ」を学ぶ | 「満足してもらう」を学ぶ |
SFT のやり方
第一に、指示データセットを用意します。「ユーザーの指示-理想の回答」のペアを数千件集め、Q&A・文章作成・コード・推論などのタスクをカバーします。第二に、損失は回答部分だけに計算します。モデルはデータ全体を見ますが、「回答がデモにどれだけ似ているか」だけが採点対象で、指示部分は採点されません。第三に、質が量をはるかに上回ります。数百〜千件の高品質なデモが、数十万件の粗いデータより良い結果を出すことが研究で示されています。
ちなみに、SFT は必ずしもフルファインチューニングを必要としません。LoRA ファインチューニングのようなパラメータ効率の良い手法で低コストに SFT を行うことができ、個人や小規模チームの定番の選択肢です。
SFT の限界
第一に、学習カットオフ以降の新しい知識は学べません。知識の上限は事前学習で決まり、SFT が教えるのは「表現の仕方」だけです。第二に、行動クローニングの上限です。モデルはデモデータの水準までしか学べず、デモ提供者を超えることはできません。第三に、データの偏りは増幅されます。デモデータに含まれる偏見や間違いは、モデルに学ばれ、定着してしまいます。
よくある3つの誤解
誤解1:「SFT のデータは多ければ多いほど良い。」 違います。粗いデータは悪い習慣を教え込みます。大事なのは高品質なデモです。
誤解2:「SFT をすればモデルが賢くなる。」 違います。モデルの知識量は変わらず、ただ回答が上手になるだけです。能力の上限は事前学習の段階で決まっています。
誤解3:「SFT をすればプロンプトエンジニアリングや RAG は不要になる。」 違います。SFT が決めるのはモデルの「デフォルトの振る舞い」、RAG が担うのは「リアルタイムの知識」、プロンプトエンジニアリングが担うのは「今のタスク」で、3つの層はそれぞれ別物であり、互いに置き換えられません。
SFT の本質は、モデルへの「職業習慣の研修」です。モデルが「何を知っているか」は変えず、「どう答えるか」を変えるのです。