LLM の学習パイプライン:事前学習・SFT・アライメント
なぜ素のモデルは指示に従わないのか。事前学習・SFT・アライメントの3段を、目的・データ・得られる能力で分解すれば、LLM の挙動とコストの勘所が一気に腑に落ちます。
- 1.学習は3段構成。事前学習で言語と知識の土台を作り、SFT(教師ありファインチューニング)で指示への従い方を教え、アライメント(RLHF/DPO)で人間の好みに沿った応答へ整える。
- 2.各段でデータの性質が変わる。事前学習はラベル不要の大量テキスト(自己教師あり)、SFT は人手の「指示と理想回答」ペア、アライメントは回答の優劣を示す選好データを使う。
- 3.RLHF は報酬モデルを介した強化学習、DPO は報酬モデルを省き選好ペアから直接最適化する手法。DPO は実装が軽く安定しやすいため近年広く採用される。
「賢い素材」と「使える助手」は別物
事前学習を終えただけのモデル(ベースモデル)に「日本の首都は?」と尋ねても、素直に「東京です」とは返ってきません。むしろ「日本の首都は? アメリカの首都は? フランスの首都は?」と質問の続きを書き足してくることすらあります。これはバグではありません。ベースモデルは「次トークン予測」しか学んでおらず、質問に答えるべき場面だと知らないからです。詳しくは LLM と Transformer を参照してください。
私たちが触る ChatGPT のような「指示に従い、丁寧に答える」モデルは、ベースモデルを土台に、さらに2段階の調整を重ねた結果です。学習パイプライン全体は、おおむね次の3段で構成されます。
| 段階 | 主な目的 | 使うデータ | 得られる能力 |
|---|---|---|---|
| 事前学習(Pre-training) | 言語・知識・推論の土台を作る | Web・書籍・コード等の大量テキスト(ラベルなし) | 文法・世界知識・文脈把握・基礎的推論 |
| SFT(教師ありFT) | 指示に従う応答形式を教える | 「指示→理想回答」の人手ペア(数千〜数十万件) | 質問応答・要約・対話など“タスクをこなす”力 |
| アライメント(RLHF/DPO) | 人間の好み・安全性へ寄せる | 回答の優劣を示す選好データ | 有用・無害・誠実さ、トーンの調整 |
重要なのは、後段ほどデータが「高価で少量」になる点です。事前学習は人手不要で何兆トークンも投入できますが、SFT とアライメントは人間の手作業が必要なため、桁違いに少ないデータで振る舞いだけを矯正します。知識の大半は事前学習で入り、後段は「持っている知識をどう出すか」を整えるのが基本構図です。
第1段:事前学習 ── 知識の土台を自己教師ありで詰め込む
事前学習の課題は単純で、**「途中まで見せて次のトークンを当てさせる」**だけです。正解ラベルは要りません。文章そのものが「次に何が来るか」の正解を内包しているため、テキストを集めるだけで無限に問題が作れます(自己教師あり学習)。
# 事前学習の損失(概念):次トークン予測の交差エントロピー
# x = [t1, t2, ..., tN] は1系列のトークン列
loss = 0
for i in range(1, N):
# これまでの t1..t_{i-1} から次トークン t_i の確率を予測
p = model(x[:i]) # 語彙全体にわたる確率分布
loss += -log(p[x[i]]) # 正解トークンの確率を上げる方向へ
loss = loss / (N - 1) # 系列平均(=言語モデルの困惑度の対数)
ここで最適化される指標が 困惑度(perplexity) で、「次トークンをどれだけ当てられないか」を表します。低いほど良い予測です。パラメータの更新は勾配降下で行われ、その原理は 勾配降下法 にまとまっています。
事前学習で身につくのは、文法・世界知識・文脈把握・初歩的な推論といった能力です。一方で「質問されたら答える」「危険な要求は断る」といった行儀(振る舞い方)は一切含まれません。能力と行儀を切り分けて考えると、なぜ後段の調整が必要かが明確になります。
第2段:SFT ── 「指示への従い方」を例示で教える
SFT(Supervised Fine-Tuning、教師ありファインチューニング) は、「指示」と「人間が書いた理想的な回答」のペアを大量に見せ、そのフォーマットで応答する癖をベースモデルに刻みます。学習の仕組みは事前学習と同じ「次トークン予測」ですが、決定的に違うのはデータの中身です。
# SFT のデータ1件(指示チューニング用)
[指示] 次の文章を3行で要約して: 「……(長文)……」
[理想回答] ・要点A
・要点B
・要点C
# ↑ この「理想回答」部分のトークンを当てるよう学習する
# (多くの実装では指示部分は損失計算から除外し、回答部分のみ学習)
ポイントは、回答部分のトークンに対してのみ損失を計算するのが一般的なこと。指示文そのものを生成できるようにする必要はなく、「与えられた指示に対して、こう返す」という条件付きの振る舞いを学ばせたいからです。これにより、ベースモデルは「文章の続きを書く機械」から「指示に従う助手」へと役割を変えます。
SFT は「応答の仕方・スタイル・タスク遂行能力」を教えるのに向きます。一方、社内文書のような最新・固有の知識を答えさせたい場合は、学習で詰め込むより検索で外から渡す RAG が定石です。両者の使い分けと、ドメイン適応のための追加学習については ファインチューニングと RAG を参照してください。
第3段:アライメント ── 人間の「好み」へ寄せる
SFT を経たモデルは指示に従えますが、複数のもっともらしい回答のうち「どれが人間に好まれるか」までは分かりません。丁寧さ、安全性、誠実さ、冗長すぎない簡潔さ──こうした優劣の感覚を教えるのが アライメント の段で、代表手法が RLHF と DPO です。両手法の原理と数式の詳細は RLHF と DPO を参照してください。
ここで使うのは「正解の文章」ではなく、回答どうしの優劣を示す選好データです。同じ指示に対する複数の回答を人間に見せ、「A より B が良い」と順位づけしてもらいます。
RLHF:報酬モデルを立てて強化学習する
RLHF(Reinforcement Learning from Human Feedback) は3ステップで進みます。
1. 選好データを集める:同じ指示への回答ペアに人間が優劣をつける(B ≻ A)
2. 報酬モデル(RM)を学習:回答を入力すると「人間の好みスコア」を返すよう訓練
3. 強化学習:方策(=LLM)を、RM のスコアが高くなる方向へ更新
- PPO などのアルゴリズムを用いる
- ただし元のSFTモデルから離れすぎないようKLペナルティで制約
3番目の KL ペナルティ が要です。報酬の最大化だけを追うと、モデルは RM の盲点を突く不自然な出力(報酬ハッキング)に陥ります。そこで「元の SFT モデルからの逸脱(KL ダイバージェンス)」に罰則を課し、好みに寄せつつ言語能力を壊さないバランスを取ります。強化学習そのものの枠組みは 強化学習 を参照してください。
DPO:報酬モデルを省いて選好から直接最適化する
DPO(Direct Preference Optimization) は、RLHF の「報酬モデル学習+強化学習」という二段構えを畳み込み、選好ペアから方策を直接最適化します。報酬モデルも PPO も使わず、教師あり学習に近い1つの損失関数で「好まれた回答(chosen)の確率を上げ、退けられた回答(rejected)の確率を下げる」よう更新します。
# DPO の発想(概念)
# 各データ = (指示 x, 好まれた回答 y_w, 退けられた回答 y_l)
# 参照モデル(=SFTモデル)からの“ズレの比”を使い、
# y_w を相対的に上げ、y_l を相対的に下げる損失を最小化する
loss = -log( sigmoid( β * (
(logπ(y_w|x) - logπ_ref(y_w|x)) # 好まれた側のズレ
- (logπ(y_l|x) - logπ_ref(y_l|x)) # 退けられた側のズレ
) ) )
# π_ref(参照モデル)が KL 制約の役割を兼ねる
参照モデル(SFT モデル)との比を取る形が、RLHF の KL ペナルティと同等の「離れすぎ防止」を暗黙に内包します。報酬モデルの誤差や強化学習の不安定さを避けられるため、実装が軽く再現しやすいのが利点です。
| 観点 | RLHF(PPO) | DPO |
|---|---|---|
| 報酬モデル | 別途学習して用いる | 不要(選好ペアから直接最適化) |
| 学習の仕組み | 強化学習(方策をRMで更新) | 教師あり学習に近い単一の損失 |
| 安定性・実装 | ハイパラ調整が難しく不安定になりがち | 比較的安定し実装が容易 |
| 計算コスト | RM・方策・参照を回し重い | 参照モデルとの比のみで軽量 |
| 表現力・上限 | 報酬設計次第で柔軟・高い天井 | 選好データの質に素直に依存 |
「RLHF と DPO の違いを述べよ」は頻出です。核は次の一点に集約できます──RLHF は報酬モデルを介した強化学習、DPO は報酬モデルを省き選好ペアから直接最適化する手法。DPO は実装が軽く安定しやすい反面、報酬モデルという中間表現を持たないため、複雑な報酬設計や追加の探索が必要な場面では RLHF 系が依然有利、と押さえておくと盤石です。
つまずきやすい注意点
RLHF も DPO も、教えるのは振る舞いと好みであって新しい事実知識ではありません。知識の大半は事前学習で決まっており、後段でできるのは「持っている知識の出し方の調整」が中心です。アライメントで賢くなったように見えても、事前学習に無い知識は埋まらず、ハルシネーションも根治しません。事実性は RAG やツール併用で補うのが現実的です。
加えて、アライメントには アライメント税(alignment tax) と呼ばれるトレードオフがあります。安全性や好ましさへ強く寄せるほど、一部のベンチマーク性能や多様性が下がることがある現象です。「無害化のしすぎで過剰に断る」モデルはこの典型で、有用性と無害性の綱引きは今も調整の難所です。実運用での挙動の引き出し方は プロンプトエンジニアリング も合わせて押さえると効果的です。
まとめ:3段を「目的・データ・能力」で捉える
| 段階 | ひとことで | 本質 |
|---|---|---|
| 事前学習 | 知識の土台を作る | ラベル不要の次トークン予測で能力を獲得 |
| SFT | 指示への従い方を教える | 「指示→理想回答」ペアで応答形式を刻む |
| アライメント | 人間の好みへ寄せる | 選好データで優劣の感覚を整える(RLHF/DPO) |
LLM の挙動は、この3段の積み重ねとして理解すると見通しが良くなります。能力は事前学習、行儀は SFT、好みはアライメント──どの能力がどの段で身についたかを切り分けられれば、モデルの強み・弱み・コスト構造、そして「なぜ素のモデルは指示に従わないのか」までが一本の線でつながります。
AI/機械学習 Article
LLM の学習パイプライン:事前学習・SFT・アライメントを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
LLM
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6
導入後に効く点
各段でデータの性質が変わる。事前学習はラベル不要の大量テキスト(自己教師あり)、SFT は人手の「指示と理想回答」ペア、アライメントは回答の優劣を示す選好データを使う。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 6
判断チェックリスト
- 自社の用途が「LLM / 事前学習」に近いか確認する。
- 強みである「学習は3段構成。事前学習で言語と知識の土台を作り、SFT(教師ありファインチューニング)で指示への従い方を教え、アライメント(RLHF/DPO)で人間の好みに沿った応答へ整える。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。