LLMの事後学習とは
LLMの事後学習(Post-training)とは、事前学習済みの大規模言語モデルを、ユーザーの指示に適切に従えるモデルや、特定の用途で使いやすいモデルへ調整するための学習工程です。
LLMは、事前学習を行っただけでは必ずしも「質問に答えるAIアシスタント」として最適化されているわけではありません。
そこで、SFTやPreference Optimization、RLHF、DPOなどを利用して、回答の品質や指示追従能力、安全性、出力形式などを調整します。
現在のLLM開発では、事前学習と同じくらい事後学習も重要な工程になっています。
事前学習後のモデルを実用的に仕上げる工程
LLMの学習は、大きく分けると次のように整理できます。
事前学習
↓
Base Model
↓
事後学習
↓
Instruction / Assistant Model
事前学習では、モデルに幅広い言語能力や知識、パターン認識能力を身につけさせます。
一方、事後学習では、事前学習によって獲得した能力を、実際の用途に適した形で引き出せるように調整します。
つまり、非常に単純化すると、
事前学習
=幅広い知識や基礎能力を身につける
事後学習
=その能力を望ましい形で使えるように調整する
という違いがあります。
ただし、これはあくまで理解しやすくするための整理です。
事後学習によって新しい知識や能力が身につく場合もありますし、事前学習によって推論やコード生成などの高度な能力が形成される場合もあります。
事前学習と事後学習の違い
LLMの事前学習と事後学習には、目的や使用するデータに違いがあります。
事前学習では幅広い基礎能力を身につける
GPTのような自己回帰型LLMでは、一般的に「次に来るトークンを予測する」という目的で事前学習を行います。
例えば、
日本の首都は
という文章が入力された場合に、
東京
が続く確率を高くするように学習します。
この処理を膨大な文章やコードなどに対して繰り返すことで、モデルは文法、語彙、一般知識、プログラミング、推論につながるパターンなどを学習していきます。
ただし、すべての言語モデルが次トークン予測だけを利用するわけではありません。
モデルによっては、Masked Language ModelingやDenoisingなど、異なる学習目的が利用される場合もあります。
事後学習では振る舞いや用途を調整する
事前学習されたBase Modelは、高い言語能力を持っていても、必ずしもユーザーの質問に直接答えるとは限りません。
例えば、
ユーザー:
フランスの首都を教えてください。
という入力に対して、事前学習だけのモデルでは、
ドイツの首都を教えてください。
のように、文章の続きを生成する可能性があります。
一方、事後学習されたInstruction Modelでは、
フランスの首都はパリです。
といった形で、ユーザーの意図に沿った回答を生成できるようになります。
LLMで事後学習を行う主な目的
事後学習には複数の目的があります。
代表的なのが、指示追従能力の向上、回答品質の改善、安全性の強化、特定分野への適応などです。
ユーザーの指示に従えるようにする
事後学習の重要な目的の一つが、Instruction Following、つまり指示追従能力の向上です。
ユーザーが、
初心者向けに説明してください。
と指定した場合には難しい専門用語を減らしたり、
JSON形式で出力してください。
と指定された場合にはJSON形式で回答したりする能力を学習します。
単に正しい文章を生成するだけでなく、ユーザーの意図や条件を理解して出力する能力が重要になります。
人間にとって望ましい回答を生成する
内容が事実として正しくても、必ずしも良い回答とは限りません。
例えば、
- 必要以上に長い
- 質問に直接答えていない
- 説明が分かりにくい
- 不必要に断定的
- 危険な内容を無制限に説明する
といった回答は、AIアシスタントとして望ましいとはいえません。
そこで事後学習では、
「どの回答がより望ましいか」
というPreference、つまり選好情報を利用してモデルを調整することがあります。
回答の安全性を高める
事後学習は、安全性の向上にも利用されます。
例えば、
- 危険な要求への対応
- 個人情報への配慮
- 不正行為への対応
- 不適切な内容への対応
- 過剰な拒否を防ぐ
- 安全な範囲で有用な回答を行う
といった振る舞いを調整します。
現在の安全性学習は、単に「危険な質問を拒否する」だけではありません。
安全性を保ちながら、可能な範囲で役に立つ回答を提供することも重要になっています。
特定の分野に適応させる
事後学習によって、特定分野に適したモデルを作ることもできます。
例えば、
- 法律
- 医療
- 金融
- プログラミング
- カスタマーサポート
- 社内業務
- 特定の商品やサービス
などです。
企業独自のデータを利用してFine-tuningを行えば、特定業務に適したLLMを構築できます。
回答形式や文体を調整する
事後学習は、知識や能力だけでなく、回答スタイルの調整にも利用できます。
例えば、
- Markdownで回答する
- JSON形式で出力する
- 箇条書きを利用する
- 簡潔に回答する
- 丁寧な文体にする
- 特定のフォーマットを守る
といった振る舞いを学習できます。
LLMの代表的な事後学習の流れ
LLMの事後学習にはさまざまな構成がありますが、概念的には次のような流れで説明できます。
Pre-training
↓
Base Model
↓
SFT
↓
Preference Optimization / Reinforcement Learning
↓
Safety・Behavior Tuning
↓
Evaluation
↓
Assistant Model
ただし、すべてのLLMがこの順番で学習されるわけではありません。
モデルによって複数の工程を繰り返したり、異なる学習手法を組み合わせたりします。
SFTとは
SFTは、
Supervised Fine-Tuning
の略で、日本語では教師ありファインチューニングなどと呼ばれます。
LLMの事後学習における基本的な手法の一つです。
SFTでは質問と模範回答を学習する
SFTでは、次のような学習データを利用します。
ユーザー:
日本の首都はどこですか?
アシスタント:
日本の首都は東京です。
モデルは、ユーザーの入力に対して教師データとして与えられた回答を生成しやすくなるように学習します。
より厳密には、教師回答に含まれるトークン列の生成確率を高めるようにモデルを最適化します。
SFTによって基本的な指示追従能力を学習できる
SFTによって、
- 質問に回答する
- 指示に従う
- 指定された形式で出力する
- 会話形式を理解する
といった基本的な振る舞いを身につけることができます。
一方で、SFTだけでは、
「複数の正しい回答のうち、どれがより良いか」
といった細かなPreferenceを十分に学習できない場合があります。
そこでPreference Learningが利用されます。
Preference Learningとは
Preference Learningとは、複数の回答を比較し、どちらがより望ましいかという情報を利用してモデルを学習する考え方です。
ChosenとRejectedを利用する
代表的な形式として、次のようなデータがあります。
Prompt:
量子コンピュータとは何ですか?
Chosen:
初心者向けに簡潔で正確に説明した回答
Rejected:
専門用語が多く、質問に直接答えていない回答
このような、
Prompt
Chosen Response
Rejected Response
という形式は、Preference Optimizationで広く利用されています。
ただし、Preference Dataは必ずしも2択形式とは限りません。
例えば、
回答A > 回答C > 回答B > 回答D
のようなランキング形式や、数値評価などを利用する場合もあります。
RLHFとは
RLHFは、
Reinforcement Learning from Human Feedback
の略です。
日本語では、
人間のフィードバックによる強化学習
などと呼ばれます。
人間の評価を報酬として利用する
代表的なRLHFでは、まず同じPromptに対して複数の回答を生成します。
例えば、
回答A
回答B
回答C
回答D
を人間の評価者が比較し、
B > A > D > C
のようなPreference Dataを作成します。
このデータを利用して、
Reward Model
を学習します。
Reward Modelは、
「この回答は人間からどの程度高く評価されそうか」
を推定するモデルです。
Reward Modelを利用してLLMを最適化する
古典的なRLHFでは、Reward Modelから得られるスコアを利用してLLMを強化学習します。
代表的な流れは次のとおりです。
SFT
↓
人間による回答比較
↓
Preference Data
↓
Reward Model
↓
Reinforcement Learning
↓
LLM
OpenAIのInstructGPTでは、この代表的なRLHFパイプラインが利用されました。
PPOとは
PPOは、
Proximal Policy Optimization
の略で、強化学習アルゴリズムの一つです。
InstructGPTなどの初期のRLHFで利用されたことで、LLM分野でも広く知られるようになりました。
モデルを急激に変化させないように更新する
PPOでは、モデルのPolicyを一度に大きく変更しすぎないように制約しながら学習します。
これによって、比較的安定した強化学習を行いやすくなります。
ただし、
RLHF = PPO
ではありません。
PPOはあくまでRLHFで利用できる強化学習アルゴリズムの一つです。
現在のLLM事後学習では、PPO以外の手法も利用されています。
DPOとは
DPOは、
Direct Preference Optimization
の略です。
Preference Dataから直接Policy Modelを最適化する代表的な手法です。
Reward Modelを別途学習せずにPreferenceを学習する
古典的なRLHFでは、
Preference Data
↓
Reward Model
↓
Reinforcement Learning
↓
LLM
という工程があります。
一方DPOでは、
Preference Data
↓
LLM
という形で、Preference Dataから直接モデルを最適化できます。
そのため、別個の明示的なReward Modelを学習したり、RLの学習ループを構築したりする必要がありません。
ChosenとRejectedの相対的なPreferenceを学習する
DPOでは単純に、
Chosenの生成確率を上げる
Rejectedの生成確率を下げる
だけではありません。
Reference Modelを基準として、Chosen ResponseがRejected Responseより相対的に望ましい出力になるようPolicy Modelを最適化します。
そのためDPOは、
Preference Dataを利用した直接的なPolicy Optimization
と考えると理解しやすいでしょう。
DPOの主なメリット
DPOには、
- 実装が比較的シンプル
- 明示的なReward Modelが不要
- RLループが不要
- 学習を安定させやすい場合がある
といったメリットがあります。
一方で、
「DPOなら必ずRLHFより優れている」
というわけではありません。
モデル、データ、目的、学習環境によって適切な手法は異なります。
RLAIFとは
RLAIFは、
Reinforcement Learning from AI Feedback
の略です。
人間だけでなく、AIによる評価を利用して強化学習を行う手法です。
AIに回答を評価させる
例えば、
回答Aと回答Bのうち、
どちらが正確で役に立ち、安全か?
という判断を別のLLMに行わせることができます。
AIによる比較結果からPreference DataやReward Signalを作成し、モデルの学習に利用します。
AI FeedbackとRLAIFは完全に同じ意味ではない
AIによる評価は、必ずしもRLにだけ利用されるわけではありません。
例えば、
AI Feedback
↓
DPO
のように、Preference Optimizationへ利用することもできます。
そのため、
AI Feedback
は広い概念であり、
RLAIF
はその中でもAI Feedbackを利用した強化学習を指すと考えると分かりやすいでしょう。
Rule-Based Rewardsとは
事後学習では、人間やAIによるPreferenceだけでなく、ルールに基づいたRewardを利用する方法もあります。
明確なルールをReward Signalとして利用する
例えば、
- 特定の安全性ルールを守っているか
- 指定された形式を守っているか
- 禁止された情報を出力していないか
といった条件を評価できます。
ただし、Rule-Based Rewardsは必ずしも単純なif文だけで実装されるわけではありません。
ルールや評価基準をLLMによるGraderなどと組み合わせてRewardを計算する場合もあります。
RLVRとは
近年のLLM事後学習では、
RLVR(Reinforcement Learning with Verifiable Rewards)
も重要な考え方です。
正解を自動的に検証できるタスクで利用する
例えば、
- 数学問題
- プログラミング
- Unit Test
- Formal Verification
- 明確な正解が存在するタスク
などでは、人間のPreferenceを利用しなくても回答を自動評価できます。
例えば、
モデルが回答を生成
↓
自動採点
↓
Correct / Incorrect
↓
Reward
という仕組みです。
人間の主観評価ではなく、検証可能な結果をRewardとして利用できる点が特徴です。
LoRAとは
LLMのFine-tuningでは、LoRAという手法もよく利用されます。
LoRAは、
Low-Rank Adaptation
の略です。
LoRAは学習目的ではなくパラメータ更新方法
SFTやDPOとLoRAは、同じ分類ではありません。
SFTやDPOは、
どのような目的でモデルを学習するか
に関する手法です。
一方LoRAは、
モデルのパラメータをどのように効率的に更新するか
に関する手法です。
したがって、
SFT + LoRA
DPO + LoRA
といった組み合わせが可能です。
LoRAでは一部の追加パラメータだけを学習する
通常のFull Fine-tuningでは、モデル全体のパラメータを更新します。
一方LoRAでは、元のモデルの大部分を固定し、低ランク行列などの追加パラメータを学習します。
そのため、学習時に必要なメモリや計算量を削減できる場合があります。
QLoRAとは
QLoRAは、量子化とLoRAを組み合わせたFine-tuning手法です。
量子化されたBase Modelを利用する
QLoRAでは、Base Modelを低ビット量子化した状態で保持し、主にLoRA Adapterを学習します。
これによって、大規模なモデルでも比較的少ないGPUメモリでFine-tuningできる可能性があります。
ただし、
QLoRA = 量子化されたモデル全体をそのまま通常学習する
という意味ではありません。
基本的には量子化したBase Modelを固定し、追加Adapterを学習する考え方です。
Continued Pre-trainingとは
事後学習と混同されやすいのが、
Continued Pre-training
です。
日本語では継続事前学習などと呼ばれます。
特定分野の大量データを追加学習する
例えば、一般的なLLMに大量の医療文献を追加で学習させる場合、
General Base Model
↓
医療データによるContinued Pre-training
↓
Medical Base Model
という流れになります。
その後、
SFT
↓
Preference Optimization
を行えば、医療分野向けAssistant Modelを構築できます。
Post-trainingとの境界は文脈によって異なる
Continued Pre-trainingも、文字どおり考えれば事前学習後に行う追加学習です。
しかし、実務や研究では、
Continued Pre-training
と、
SFT
RLHF
DPO
Preference Optimization
を区別して説明することがよくあります。
そのため、Post-trainingという言葉の範囲は文脈によって多少異なる点に注意が必要です。
事後学習で新しい知識を覚えることはあるのか
事後学習の主な目的は、必ずしも大量の新しい知識を覚えさせることではありません。
一般的には、
Pre-training
=幅広い基礎能力を形成
Post-training
=能力を用途や望ましい振る舞いに合わせて調整
という役割分担で考えると理解しやすいでしょう。
ただし、SFTでもモデルのパラメータは更新されます。
そのため、事後学習によって新しい知識やスキルが身につく場合もあります。
「事後学習では知識を覚えない」という意味ではありません。
事後学習はモデルの振る舞いを形成する
事後学習は、モデルのBehaviorを設計する工程とも考えられます。
例えば同じBase Modelでも、学習データやReward設計を変えることで、
- 簡潔に回答するモデル
- 詳しく説明するモデル
- コーディングに強いモデル
- 数学に強いモデル
- カスタマーサポート向けモデル
- 安全性を重視するモデル
など、異なる性質を持たせることができます。
一般向けには「モデルの性格を作る」と表現されることもありますが、技術的には、
振る舞い・回答スタイル・Policyを調整する
と表現するほうが正確です。
LLMの事後学習には問題点もある
事後学習は非常に重要ですが、万能ではありません。
学習データやReward設計によって、新たな問題が生じることもあります。
Preference Dataの品質に左右される
人間やAIによる評価が間違っていれば、その誤ったPreferenceをモデルが学習する可能性があります。
例えば評価者が、
「長い回答ほど良い」
と偏って評価してしまえば、モデルが必要以上に冗長になる可能性があります。
そのため、評価基準やPreference Dataの品質管理が重要です。
Reward Hackingが発生する可能性がある
Rewardを最大化する学習では、
「本当に望ましい回答」
ではなく、
「Reward Modelから高い評価を得やすい回答」
を学習してしまう可能性があります。
このような問題は、
Reward Hacking
や、
Reward Overoptimization
などと関連します。
Rewardはあくまで本当に望んでいる品質を近似するProxyであるため、Reward設計には注意が必要です。
過度な最適化で能力が低下する場合がある
事後学習を強く行いすぎることで、
- 回答の多様性が低下する
- 特定の文体に偏る
- 一部の能力が低下する
- 必要以上に回答を拒否する
- ユーザーへ過度に迎合する
といった問題が発生する可能性があります。
そのため、単一の評価指標だけを最大化するのではなく、複数の能力や安全性を総合的に評価することが重要です。
現代のLLM事後学習を整理すると
現在のLLMにおける事後学習は、一つの手法だけで構成されているわけではありません。
概念的には、次のように整理できます。
Post-training
├─ Supervised Fine-Tuning
│ └─ SFT
│
├─ Preference Optimization
│ ├─ RLHF
│ ├─ DPO系手法
│ └─ AI Feedbackを利用した学習
│
├─ Reinforcement Learning
│ ├─ Human Preference Reward
│ ├─ AI / Model Reward
│ ├─ Rule-Based Reward
│ └─ Verifiable Reward
│
└─ Safety / Behavior Tuning
実際の最先端モデルでは、これらを組み合わせながら何度も学習と評価を繰り返すことがあります。
まとめ
LLMの事後学習とは、事前学習によって幅広い知識や能力を獲得したBase Modelを、実際の用途に適したモデルへ調整する学習工程です。
代表的な手法として、
- SFT
- Preference Learning
- RLHF
- PPO
- DPO
- RLAIF
- Rule-Based Rewards
- RLVR
などがあります。
また、LoRAやQLoRAは、これらとは少し性質が異なり、モデルを効率的にFine-tuningするための技術です。
LLMの学習を非常に単純化すると、
Pre-training
↓
知識・言語能力・基礎能力を形成
Post-training
↓
指示追従・回答品質・安全性・専門性を調整
と整理できます。
そのため、現在のLLMの性能を理解するときには、モデルサイズや事前学習データだけを見るのではなく、
どのような事後学習が行われているか
も非常に重要です。
近年では、従来型のRLHFだけでなく、DPOのような直接的Preference Optimization、AIによる評価、ルールベースのReward、検証可能なRewardを利用した強化学習など、事後学習の手法も急速に多様化しています。
今後のLLM開発においても、事後学習はモデルの実用性や安全性、推論能力を左右する重要な技術の一つであり続けると考えられます。
以上、LLMの事後学習とは何か、目的や主な手法についてでした。
最後までお読みいただき、ありがとうございました。
