大規模言語モデルのトレーニングプロセス:事前学習から強化学習までの完全ガイド

ChatGPTがなぜ「次の単語を予測するだけの言語モデル」から「質問に答える知能エージェント」へ進化したのか、ご存知ですか?本記事ではその秘密を解き明かします。

一、序論:大規模言語モデルの「成長過程」

子供を優秀な作家に育てるには、どのように教えますか?

  1. 読書と文字の習得:まず大量の書籍を読ませ、言語の基本規則と知識を習得させる
  2. 文章作成の練習:例えば「旅行記を書け」といった指示に従って文章を書く練習をさせる
  3. 評価とフィードバック:書いた文章の良い点と改善点を伝える
  4. 継続的な改善:常に改善を重ね、より良い文章が書けるようになる

大規模言語モデルのトレーニングプロセスは、この教育プロセスと驚くほど似ています!

二、第一段階:事前学習——大量データによる「読書と文字の習得」

2.1 事前学習とは?

事前学習(Pretraining)とは、モデルに大量のテキストを読ませ、言語の基本規則と世界の知識を学習させることです。

データ量はどれくらい?

  • GPT-3のトレーニングデータ:約5000億トークン(数千冊の本に相当)
  • 出典:ウェブページ、ウィキペディア、書籍、GitHubコード、論文、Q&Aサイトなど

类比

事前学習は、学生に図書館のすべての本を読ませるようなものです。各本の深い意味を完全に理解できないかもしれませんが、言語の規則を学び、多くの知識を記憶します。

2.2 データはどのように処理されますか?

元のデータの品質は様々なので、慎重に処理する必要があります:

データソース 元のサイズ フィルタリング後のサイズ 説明
CommonCrawl(ウェブクローラー) 45TB 570GB 低品質なウェブページをフィルタリング
WebText2(Reddit推奨) - 比較的小さい 高品質なディスカッションコンテンツ
Books1/Books2 - 比較的小さい インターネット上の書籍
Wikipedia - 比較的小さい ウィキペディアの百科知識

データ処理プロセス

  1. 品質フィルタリング:低品質、乱れたコンテンツを削除
  2. 重複排除:重複コンテンツを避ける
  3. プライバシー削除:個人の機密情報を除去
  4. トークン化(Tokenization):テキストをトークン単位に分割

2.3 トークンとは?

トークンは大規模言語モデルがテキストを処理する基本単位で、「文字」または「単語」と理解できます。

換算関係

  • 1つの英字 ≈ 0.3トークン
  • 1つの中国語文字 ≈ 0.6トークン

原文:"AIを学習するのが好きです"
トークン化:["AI", "を", "学習", "する", "の", "が", "好き", "です"]
トークン数:約8個

2.4 トレーニングにはどれくらいの計算リソースが必要ですか?

事前学習は「お金がかかる」段階です:

モデル パラメータ数 GPU数 トレーニング時間
GPT-3 1750億 約1000台 数週間
BLOOM 1760億 384台のA100 3.5ヶ月

なぜこんなに高価なのか?

  • モデルパラメータが巨大(数百億から数千億レベル)
  • データ量が巨大(数千億トークン)
  • 高性能GPUクラスターが必要

2.5 事前学習後、何が得られますか?

事前学習完了後、**基礎モデル(Base Model)**が得られます。

基礎モデルの能力:

  • 多くの言語規則を習得
  • 多くの世界の知識を記憶
  • しかし、人間の指示に従って質問に答えることはできない

思考問題:なぜ基礎モデルは直接使えないのですか?

そのトレーニング目標が「次の単語を予測する」ことであり、「質問に答える」ではないからです。あなたが「今日の天気はどうですか」と尋ねると、「どうですか、わかりません」と続くかもしれません——なぜなら、あなたが文章を続けさせようとしていると解釈するからです!

三、第二段階:教師あり微調整(SFT)——「指示を理解する」ことを学ぶ

3.1 SFTとは?

教師あり微調整(Supervised Finetuning、SFT)、または指示微調整とは、モデルに人間の指示を理解し、要求に応じて回答することを教えることです。

类比

事前学習で「話す」ことを学び、SFTで「聞く」ことを学びます——ユーザーが何を求めているかを理解します。

3.2 SFTデータはどのような形式ですか?

SFTデータは「指示+回答」のペア形式です:

サンプルデータ

{
  "instruction": "東京大学にはいくつのキャンパスがありますか?",
  "output": "東京大学には5つのキャンパスがあります。本郷キャンパス、駒場キャンパス、柏キャンパス、白金キャンパス、以及び柏キャンパス..."
}

データ量:通常、数万件の高品質データで十分(事前学習よりはるかに少ない!)

3.3 データはどのように構築されますか?

主に4つの方法があります:

方法 説明 利点 欠点
手動構築 人間が指示と回答を記述 高品質、解釈可能 時間と労力がかかる
データセット変換 既存のオープンソースデータセットを統合 多様性、大規模 フォーマットの標準化が必要
自動構築 LLMを使用して指示を生成(Self-Instruct) 効率的、拡張可能 品質のフィルタリングが必要
統合モデル 複数の方法を組み合わせ 各方面を考慮 プロセスが複雑

Self-Instructプロセス

  1. GPTを使用してタスク指示を生成
  2. 対応する入力と出力を生成
  3. 低品質データをフィルタリング(類似度フィルタリング)
  4. トレーニングデータセットを形成

3.4 興味深い発見:表層的なアライメント仮説

研究によると、高品質なデータ量はそれほど多くなくてもよいということが明らかになりました!

実験結果:LLaMA 65B + 1000件の高品質データ(LIMA)の効果は、52000件のデータ(Alpaca)とほぼ同じでした!

これは、モデルの能力は主に事前学習から来ており、SFTはそれを「表示」する方法を教えるだけであることを示しています。

3.5 SFT後のモデルは何ができますか?

SFTモデルは以下の能力を備えます:

  • ユーザーの指示を理解する能力
  • 基本的な質問応答、翻訳、要約能力
  • 未知のタスクに対する汎化能力

多くのオープンソースモデル(ChatGLM、Vicuna、MOSSなど)はSFTモデルであり、効果はChatGPTの90%に達することができます!

四、第三段階:報酬モデリング(RM)——「良い悪いを判断する」ことを学ぶ

4.1 RMとは?

報酬モデリング(Reward Modeling)とは、回答の品質を判断するモデルをトレーニングすることです。

类比

RMは「採点教師」のようなもので、各回答に点数をつけます。

4.2 RMデータはどのように構築されますか?

RMデータは「指示+複数の回答+順序付け」形式です:

サンプルデータ

指示:"プログラミングを効率的に学ぶ方法は?"

回答A(第1位):体系的に学習し、実践を重ねる...
回答B(第2位):毎日コードを書く習慣をつける...
回答C(第3位):適当に書けばよい...

アノテーターは品質に基づいて順序付け:A > B > C

データ量:通常、百万件の比較データが必要!

4.3 RMモデルはどのようにトレーニングされますか?

RMは本質的に二項分類モデルです:

2つの回答AとBが与えられた場合、どちらがより良いかを判断します:

  • 入力:指示 + 回答A + 回答B
  • 出力:Aがより良い確率

4.4 RMはなぜ重要ですか?

RMの正確さは、次の段階である強化学習の効果に直接影響します!

RMが誤って判断すると、モデルは「間違った方向に学習」してしまいます——悪い回答を良いものとして学習してしまいます。

五、第四段階:強化学習(RL)——最終的な「改善」

5.1 RLとは?

強化学習(Reinforcement Learning)とは、RMのフィードバックを使用してモデルをさらに最適化することです。

类比

RLは、学生が先生の採点に基づいて、自分の文章作成技術を継続的に改善するようなものです。

5.2 RLの核心プロセス

詳細なプロセス

  1. ユーザーが指示を出す
  2. SFTモデルが回答を生成
  3. RMが回答に点数を付け(報酬)
  4. 報酬に基づいてモデルパラメータを調整
  5. モデルが高得点回答を生成する傾向を持つようにする

5.3 RLにはどのような問題がありますか?

RLにはいくつかの課題があります:

  • 安定性が低い:トレーニングが発散しやすい
  • ハイパーパラメータが多い:調整が難しい
  • 多様性の低下:モデルが「保守的」になる可能性がある

興味深い発見:Andrej Karpathyは、RLがモデルの出力の「エントロピーを低下させる」、つまりより確実で安全になるが、創造性が減少する可能性があると指摘しています。

5.4 RL後、何が得られますか?

最終的に得られるRLモデルが、ChatGPT、Claudeのような製品レベルのモデルです。

以下の能力を備えます:

  • 複雑な指示を理解する
  • 高品質な回答を生成する
  • 幻覚や誤りを減らす

六、完全なプロセスのレビュー

4つの段階を表でまとめましょう:

段階 目標 データ 計算リソース 時間 出力
事前学習 言語と知識を学習 数千億トークン 1000+GPU 数週間 基礎モデル
SFT 指示を理解する能力を学ぶ 数万件の指示-回答 1-100GPU 数日 SFTモデル
RM 品質を判断する能力を学ぶ 百万件の比較順序付け 1-100GPU 数日 RMモデル
RL 回答品質を最適化 十万件の指示 1-100GPU 数日 ChatGPT

コスト分布

  • 事前学習:最も高価(90%以上のコスト)
  • 後の3段階:比較的安価

七、技術者への示唆

7.1 なぜオープンソースSFTモデルの効果が良いのですか?

モデルの能力は主に事前学習から来るからです!事前学習がしっかりできていれば、数千件のデータでSFTを行うだけで良い効果が得られます。

7.2 自分でモデルをトレーニングするには何が必要ですか?

シナリオ 推奨されるアプローチ
迅速な検証 オープンソースSFTモデル(ChatGLMなど)を使用
領域特化 オープンソースモデルを基に微調整
完全な自作 巨額の計算リソースが必要(非推奨)

7.3 LoRA:低コストの微調整ソリューション

微調整だけを行いたい場合は、LoRAが良い選択肢です:

  • 少数のパラメータのみをトレーニング(元のパラメータの1%未満)
  • 全量微調整に近い効果
  • 1つのGPUで7Bモデルを微調整可能

八、まとめ

大規模言語モデルのトレーニングプロセスは次のように要約できます:

事前学習で基礎を築く(知識を学ぶ)→ SFTで指示を学ぶ(ユーザーを理解する)→ RMで判断を学ぶ(良い悪いを知る)→ RLで改善を重ねる(より優れたものにする)

各段階にはそれぞれ独特の役割があります:

  • 事前学習:モデルの「天井」を決定
  • SFT:モデルを「実用化」させる
  • RM+RL:モデルを「昇華」させる

このプロセスを理解すれば、大規模言語モデルがなぜこれほど強力なのかがわかるでしょう!

参考リソース

  • Andrej Karpathyの講演:「State of GPT」
  • InstructGPT論文:OpenAI, 2022
  • LIMA論文:Zhou et al., 2023
  • Self-Instruct論文:Wang et al., 2022

次回予告:強化学習入門:スキナー箱から大規模言語モデルの推論まで

タグ: 大規模言語モデル 事前学習 強化学習 微調整 報酬モデル

6月1日 08:30 投稿