自己回帰事前学習 — 次トークン予測という単純で強力な目的関数
LLMの事前学習(Pre-training)の核心は驚くほどシンプルです。 「直前までのトークン列を与えて、次のトークンを予測する」——これだけです。 この自己回帰(Autoregressive)な目的関数を、数兆トークンの大規模コーパスに対して繰り返し最適化することで、 モデルは言語の構造、世界知識、推論能力までも獲得していきます。
数学的には、トークン列 x₁, x₂, ..., xₙ が与えられたとき、
モデルは条件付き確率 P(xₜ | x₁, ..., xₜ₋₁) を最大化するように学習します。
損失関数にはクロスエントロピー損失が用いられ、モデルの予測確率分布と実際の次トークンとの差を最小化します。
# 自己回帰事前学習の疑似コード
for batch in dataloader:
input_ids = batch[:, :-1] # x₁ ... xₙ₋₁
labels = batch[:, 1:] # x₂ ... xₙ(1つずらしたターゲット)
logits = model(input_ids) # 各位置で語彙全体の確率分布を出力
loss = cross_entropy(logits, labels)
loss.backward()
optimizer.step() 事前学習に使用されるコーパスの規模は年々拡大しています。 GPT-3(2020年)は約3000億トークン、Llama 2(2023年)は2兆トークン、 Llama 3.1(2024年)は15兆トークン以上で訓練されました。 テキストの主な供給源はWebクロール(Common Crawl)、書籍、Wikipedia、コードリポジトリ(GitHub)、 学術論文、対話データなど多岐にわたります。
訓練データの品質管理 — ゴミを入れればゴミが出る
「Garbage In, Garbage Out」はLLM訓練において文字通り真実です。 数兆トークンのWebデータをそのまま使えば、スパム、重複コンテンツ、有害テキスト、低品質な文章がモデルに混入します。 データ品質管理はLLM訓練パイプラインの最重要工程の一つです。
ルールベースフィルタリング
最も基本的なアプローチは、ヒューリスティクスに基づくフィルタリングです。 文の長さ、記号の比率、言語判定(fastText言語分類器)、ブラックリストURL、 定型文の除去(ナビゲーションテキスト、Cookie同意文等)などのルールで、明らかな低品質データを排除します。 Llama 3の技術レポートでは、元データの約85%がこの段階で除外されたと報告されています。
分類器ベースフィルタリング
ルールベースでは対応しきれない品質判定には、機械学習分類器を用います。 代表的なのはfastTextベースの品質分類器で、Wikipediaや高品質な書籍テキストを正例、 ランダムなWebテキストを負例として訓練します。 GPT-3の論文では、この手法が「WebText分類器」として詳述されています。
重複排除 — MinHash LSHとSoftDedup
Webデータには驚くほど多くの重複が含まれています。 完全一致の重複排除(Exact Dedup)は比較的簡単ですが、問題はほぼ同一だが微妙に異なるテキスト(Near-Duplicate)です。
MinHash LSH(Locality-Sensitive Hashing)は、文書をn-gramの集合として表現し、 MinHashで固定長のシグネチャに変換した後、LSHでバケットに分類することで、 類似文書のペアを効率的に検出します。Llama 3ではURL単位、文書単位、行単位の3段階で重複排除を実施しています。
SoftDedupはさらに進んだ手法で、重複度の高いテキストを完全に除去するのではなく、 訓練時のサンプリング重みを下げることで、情報の損失を最小限に抑えつつ重複の悪影響を軽減します。
データミックス
異なるデータソース(Web、書籍、コード、学術論文等)の混合比率もモデル性能に大きく影響します。 Llama 3では、小規模モデルで様々な混合比率を実験し、最適なデータミックスを決定してから 大規模モデルの訓練に適用するという手法が採られています。 一般的に、コードデータの比率を高めるとモデルの推論能力が向上することが知られています。
| 手法 | 対象 | 代表的なツール/手法 | 効果 |
|---|---|---|---|
| ルールベースフィルタ | スパム・低品質テキスト | ヒューリスティクス、正規表現 | 明らかなゴミデータの除去(〜85%削減) |
| 分類器ベースフィルタ | 品質の低いWebテキスト | fastText品質分類器 | 高品質データの選別 |
| Exact Dedup | 完全一致の重複 | ハッシュベース比較 | 完全重複の除去 |
| MinHash LSH | 近似重複(Near-Dup) | MinHash + LSH | 類似文書の効率的な検出・除去 |
| SoftDedup | 部分的重複 | サンプリング重み調整 | 情報損失を抑えた重複軽減 |
| データミックス最適化 | ソース間の比率 | 小規模実験で探索 | 各能力のバランス調整 |
合成データ — LLMがLLMを育てる
高品質なWebデータには限りがあります。一説では2026年頃に「データの壁」に到達するとも言われています。 この課題に対するアプローチの一つが合成データ(Synthetic Data)の活用です。
Self-Instruct
Self-Instruct(Wang et al., 2023)は、少数のシード命令から出発して、 LLM自身に新しい命令・入力・出力のペアを生成させる手法です。 人間によるアノテーションのコストを大幅に削減しながら、 多様な指示追従データを作成できます。Alpacaはこの手法でGPT-3.5から52Kの命令データを生成し、 低コストで高品質な指示追従モデルを実現しました。
Evol-Instruct
Evol-Instruct(Xu et al., 2024)は、既存の命令を段階的に「進化」させて複雑化する手法です。 具体的には、制約の追加、深い推論の要求、具体化、別トピックへの変換などの操作をLLMに施すことで、 難易度と多様性を段階的に高めます。WizardLMシリーズで採用され、大きな成果を上げました。
蒸留(Distillation)
より強力なモデル(教師モデル)の出力を使って弱いモデル(生徒モデル)を訓練する蒸留は、 合成データの最も直接的な活用法です。DeepSeek V3はDeepSeek R1からの蒸留データを活用して 推論能力を大幅に向上させました。
スケーリング則 — 性能予測の科学
LLM訓練における最も重要な発見の一つがスケーリング則(Scaling Laws)です。 モデルの性能(損失)がモデルサイズ、データ量、計算量に対してべき乗則(Power Law)に従うことが明らかになり、 訓練前に性能を予測できるようになりました。
Kaplanのスケーリング則(2020年)
OpenAIのKaplan et al.は、損失 L がパラメータ数 N、データセットサイズ D、
計算量 C のそれぞれに対してべき乗則で減少することを示しました。
この研究は「計算予算が限られている場合、大きなモデルを少ないデータで訓練する方が効率的」という結論を導き、
GPT-3のような巨大モデルの訓練を正当化しました。
Chinchillaの最適スケーリング(2022年)
DeepMindのHoffmann et al.は、Kaplanの結論を覆す重要な発見をしました。 固定された計算予算の下では、モデルサイズとデータ量を同じ比率でスケールさせるのが最適だというのです。 具体的には、パラメータ数の約20倍のトークン数で訓練するのが最適(20:1ルール)とされました。
この発見は衝撃的でした。GPT-3(175Bパラメータ、300Bトークン)は20:1ルールでは3.5兆トークンが必要であり、 大幅にデータ不足だったことになります。 ChinchillaはGopherの4分の1のパラメータ数(70B)で同等以上の性能を達成し、 「モデルを大きくするだけでなく、データも十分に与える」というパラダイムシフトを引き起こしました。
| スケーリング則 | 発表年 | 主張 | 訓練戦略への影響 |
|---|---|---|---|
| Kaplan et al. | 2020 | モデルを大きくする方が計算効率が良い | GPT-3のような巨大モデル訓練を後押し |
| Chinchilla(Hoffmann et al.) | 2022 | モデルとデータを同比率でスケールが最適 | データ量の重要性を再認識、20:1ルール |
| 推論時スケーリング | 2024〜 | 推論時の計算量増加でも性能向上 | o1, DeepSeek R1等の推論モデル |
推論時スケーリング
従来のスケーリング則は訓練時の計算量に焦点を当てていましたが、 2024年以降、推論時に計算量を増やすことでも性能が向上することが示されました。 OpenAIのo1やDeepSeek R1は、Chain-of-Thought(思考の連鎖)を長く生成することで、 数学やコーディングなどの複雑なタスクで大幅な性能向上を達成しています。 これは訓練時スケーリングとは独立した、新しいスケーリングの次元として注目されています。
分散訓練 — 数千GPUを束ねる技術
数百億〜数兆パラメータのモデルは、単一のGPUに載りません。 メモリにも計算にも限界があるため、複数のGPUにまたがって訓練を分散する技術が不可欠です。 分散訓練には主に3つの並列化戦略があり、これらを組み合わせた「3D並列化」が現在の標準です。
graph TB
subgraph DP["データ並列(Data Parallelism)"]
D1[GPU 0\nモデル全体の複製] --- D2[GPU 1\nモデル全体の複製]
D1 --- D3[GPU 2\nモデル全体の複製]
D1 --- D4[GPU 3\nモデル全体の複製]
end
subgraph TP["テンソル並列(Tensor Parallelism)"]
T1[GPU 0\n行列の左半分] --- T2[GPU 1\n行列の右半分]
end
subgraph PP["パイプライン並列(Pipeline Parallelism)"]
P1[GPU 0\nLayer 1-8] --> P2[GPU 1\nLayer 9-16]
P2 --> P3[GPU 2\nLayer 17-24]
P3 --> P4[GPU 3\nLayer 25-32]
end
subgraph 3D["3D並列化(Megatron-LM)"]
M1[DP × TP × PP\n数千GPUを効率的に活用]
end
DP --> 3D
TP --> 3D
PP --> 3D
style DP fill:#3b82f6,stroke:#1d4ed8,color:#fff
style TP fill:#8b5cf6,stroke:#6d28d9,color:#fff
style PP fill:#f97316,stroke:#c2410c,color:#fff
style 3D fill:#10b981,stroke:#047857,color:#fffデータ並列(Data Parallelism)
最もシンプルな並列化手法です。モデル全体を各GPUに複製し、 訓練データのバッチを分割して各GPUに配布します。 各GPUが独立にフォワード・バックワードパスを計算し、勾配をAll-Reduceで集約して同期します。 モデルが単一GPUに載る場合は最も実装が容易ですが、大規模モデルではメモリが不足します。
テンソル並列(Tensor Parallelism)
単一の層(レイヤー)内の行列演算を複数GPUに分割する手法です。 たとえば、Attention層の重み行列を列方向に分割し、各GPUが行列の一部を担当します。 GPU間の通信が頻繁に発生するため、高速なインターコネクト(NVLink等)を持つ同一ノード内のGPU間で使用されます。
パイプライン並列(Pipeline Parallelism)
モデルの層を複数GPUに分割し、各GPUが異なる層の計算を担当します。 単純に分割するとGPUの待機時間(バブル)が発生しますが、 マイクロバッチに分割してパイプライン的に処理することで効率を改善します。 ノード間の通信に適しており、テンソル並列と補完的に使われます。
FSDP/ZeRO — メモリ効率の革命
データ並列の変種として、ZeRO(Zero Redundancy Optimizer)とその実装である FSDP(Fully Sharded Data Parallel)があります。 従来のデータ並列では各GPUがモデルパラメータ、勾配、オプティマイザ状態の完全なコピーを保持しますが、 ZeROはこれらをGPU間でシャーディング(分割配置)することでメモリ使用量を劇的に削減します。 ZeRO Stage 3(FSDP)では、パラメータ・勾配・オプティマイザ状態のすべてをシャーディングし、 必要な時にのみAll-Gatherで収集します。
3D並列化 — Megatron-LM
NVIDIAのMegatron-LMは、上記3つの並列化を統合した3D並列化フレームワークです。 テンソル並列は同一ノード内の高速GPU間(通常8GPU)、パイプライン並列はノード間、 データ並列は全体に適用するという階層的な構成により、数千GPU規模の訓練を効率的に実現します。 Llama 3.1 405Bの訓練では16,384台のH100 GPUが使用されました。
訓練コストの実態 — 数億ドルの世界
LLMの訓練コストは年々増加しており、最先端モデルの開発は巨額の投資を必要とします。 一方で、効率化の進展により、同等性能をより低コストで達成する事例も出てきています。
| モデル | 推定訓練コスト | GPU | 特徴 |
|---|---|---|---|
| GPT-4(2023) | $50M〜$200M(推定) | 数万台のA100 | 非公開だが業界最大級と推定 |
| Llama 3.1 405B(2024) | 約$25M(GPU時間のみ) | H100 × 16,384台 | オープンウェイト、3.8×10²⁵ FLOPs |
| DeepSeek V3(2024) | 約$5.5M | H800 × 2,048台 | FP8訓練、MoEアーキテクチャで効率化 |
| GPT-5(2025、推定) | $200M〜$500M(推定) | 次世代GPU大量投入 | 訓練コストの上限が議論の的に |
DeepSeek V3の訓練コスト$5.5Mは特に衝撃的でした。 FP8(8ビット浮動小数点)訓練の採用、Mixture of Experts(MoE)アーキテクチャによる計算効率の向上、 そして効率的な分散訓練アルゴリズムの組み合わせにより、 GPT-4の数十分の一のコストで匹敵する性能を実現したとされています。
訓練の安定性 — 損失スパイクとの戦い
大規模LLMの訓練では、訓練損失が突然急上昇する損失スパイク(Loss Spike)が深刻な問題です。 数週間〜数ヶ月かけた訓練が台無しになりかねないため、早期検知と回復の仕組みが重要です。
Llama 3の訓練では、約54日間の訓練中に466回のジョブ中断が発生し、 うち78%がGPUのハードウェア障害だったと報告されています。 訓練の安定性を確保するために、定期的なチェックポイント保存、自動リカバリ機構、 そして異常検知による損失スパイクの早期対応が不可欠です。
理解度チェック
Chinchillaスケーリング則(2022年)が示した、固定計算予算下でのモデルサイズとデータ量の最適な関係はどれですか?
キーボード: 1〜4 で選択、Enter で回答