以下は、**大規模言語モデル(LLM)の訓練**を、目的→データ→モデル→最適化→分散実装→評価→安全性→運用の流れで体系化した技術解説。
## 0. 目的と問題設定
LLM 訓練は大きく **(A) 事前学習(pretraining)** と **(B) [[ファインチューニング]]微調整(fine-tuning / alignment)** に分かれます。
- **A. 事前学習**
目的関数:次トークン予測(自己回帰言語モデリング)
$minθEx∼D[−logpθ(x)]\min_\theta \mathbb{E}_{x \sim \mathcal{D}}[-\log p_\theta(x)]$
多様な生テキスト(Web、書籍、ニュース、コード等)で汎用能力を獲得。
- **B. 微調整**(用途・規範への整合)
- **SFT(教師あり指示追従)**:人手や合成の「良い応答」データで MLE。
- **選好最適化(Preference Optimization)**:ペア比較データで「どちらが好ましいか」を学習(DPO/IPO/KTO など、PPO を使わないアプローチが主流化)。
- **RLHF/RLAIF**:報酬モデル(人/AIの選好)+KL 正則化で方策更新。
- **安全性・方針調整**:拒否・言い換え・証跡提示・機密回避などのポリシーを埋め込む。
- **タスク特化**:コード/数学/対話ツール使用、長文要約、多言語、マルチモーダル等。
## 1. データエンジニアリング
LLM の性能上限は **データの質と多様性** が決めます。工程は「収集→前処理→選別→混合→スケジューリング」。
1. **取得と権利**
- ライセンス確認、ロボッツ遵守、出典メタデータ保持(監査のため)。
- プライバシー配慮(PII 除去、微妙な境界の人名・住所・連絡先の扱い方針)。
2. **前処理**
- 正規化(Unicode、空白、句読点、HTML 除去、言語判定)。
- **重複除去(dedup)**:MinHash/LSH、n-gram 指標。
- 品質推定(ルール・モデル併用)、スパム/テンプレ/翻訳体/機械生成検出。
3. **データ混合(mixture)**
- 書籍/百科/ニュース/フォーラム/コード/学術などの比率設計。
- 多言語バランス(母語・主要言語・低資源言語)。
- **温度サンプリング**やストラタム別の **reweighting** で希少だが重要な分布を強化。
4. **境界管理**
- 評価セット汚染の防止(URL・ハッシュ・n-gram 照合)。
- 文書パッキング:文書境界トークンを保ちつつ長さ効率を最大化。
- **長文化**:長コンテキスト学習用に本物の長文と合成連結データを併用。
> 実務メモ:学習中に損失が頭打ちなら、データの**新規性と多様性**(≒情報エントロピー)を見直すのが最も効きます。
---
## 2. トークナイゼーション
- **方式**:Byte-level BPE / Unigram(SentencePiece)等。
- **語彙設計**:語彙サイズ(例:32k〜200k)、多言語やコード記号のカバレッジ。
- **特殊トークン**:BOS/EOS、区切り、役割(system/user/assistant)、関数呼び出し、画像・ツールプレースホルダ。
- **実務の落とし穴**:空白・改行・大文字小文字の扱い、句読点の分割規則。コードや数式はトークン化ポリシーで性能が変わりやすい。
## 3. モデルアーキテクチャ
- **基本**:デコーダ専用 Transformer、Pre-LN(RMSNorm など)、SwiGLU/GELU。
- **位置表現**:RoPE(回転位置埋め込み)、相対位置、ALiBi 等。長文最適化には RoPE スケール調整が定番。
- **注意機構の最適化**:
- **MQA/GQA** で KV キャッシュを節約。
- **FlashAttention** 系で高速・省メモリなアテンション。
- **MoE([[Mixture-of-Experts]])**:計算効率と容量を両立(Top‑k ルーティング、負荷分散・安定化が要)。
- **正規化と安定化**:勾配爆発を避ける設計(学習率、初期化、Norm、スケール)。
- **マルチモーダル拡張**:視覚エンコーダ(Vision Transformer 等)とのブリッジ、画像トークン化、ツール/関数トークン。
---
## 4. 最適化(オプティマイザ・スケジュール・正則化)
- **損失**:トークンごとのクロスエントロピー(ラベル平滑化は多用しない/用途限定)。
- **オプティマイザ**:AdamW/Adafactor/Lion 等。勾配クリッピング(例:global norm)を標準装備。
- **学習率**:ウォームアップ(数百〜数千ステップ)+コサイン/多段階減衰が実務で安定。
- **数値精度**:BF16/FP16(混合精度)、FP8(最新ハード)を状況に応じて。
- **正則化**:重み減衰、ドロップアウト(大規模では控えめ)、早期停止は通常使わず**総トークン予算で完走**。
- **メモリ節約**:勾配チェックポイント、勾配累積、オプティマイザステートの圧縮/分割。
---
## 5. スケーリングと「計算最適」
- 同一計算量なら **パラメータを増やすだけより、学習トークン数を増やす**方が汎化に有利。
- 指針:**モデル規模と学習トークンのバランス**をとり、データ品質を確保。
- 実務では、まず目標コスト(GPU 時間・電力)→目標トークン数→それに合うパラメータ規模とバッチ設計、の順で決める。
---
## 6. 分散学習とシステム設計
- **並列化の三本柱**:データ並列(DP)、テンソル並列(TP)、パイプライン並列(PP)。
- **ZeRO / FSDP**:オプティマイザ・勾配・重みのシャーディングでメモリ分散。
- **I/O パイプライン**:圧縮 TFRecord/Parquet、プリフェッチとシャッフル、トークン化を前処理段階で完了。
- **チェックポイント**:定期保存+クラッシュ回復。
- **監視**:スループット(tokens/sec)、利用率、勾配ノルム、損失のドリフト、学習率スケジュールの適用確認。
- **再現性**:データ版管理、ランダム種、依存ライブラリの固定。
---
## 7. 微調整とアラインメントの具体
1. **SFT(教師あり)**
- 指示→応答のペアを高品質に収集(脱線や幻覚の少ないデータ)。
- 役割トークンと会話フォーマットを固定し、**プロンプト崩壊**を避ける。
- 小規模 GPU では **LoRA/QLoRA**(低ランク適応・量子化)で効率化。
2. **選好学習**
- **ペアワイズ比較**(良/悪)を収集し、方針を「より好ましい応答」へ一貫して更新。
- DPO 系:明示の RL なしでロジスティック損失+参照モデルとの KL を暗黙制御。
3. **RLHF/RLAIF**
- 報酬モデル(RM)で応答スコアリング。PPO などで方策更新しつつ KL で暴走抑制。
- **プロセス監督**(推論途中の品質を評価)や **段階型カリキュラム**で推論力を伸ばす。
4. **安全性微調整**
- 危険・不適切領域の拒否、迂回誘導、根拠要求への対応。
- **逆プロンプト耐性**(プロンプトインジェクション等)データでの強化。
- レッドチーミング(人/自動)でギャップを継続的に埋める。
---
## 8. ツール使用・RAG・マルチモーダル
- **ツール使用**:関数呼び出しフォーマットを固定し、**観測(ツール出力)→要約**の往復を SFT/選好学習で学習。
- **RAG(検索拡張)**:
- 索引(分割・埋め込み・圧縮)、再ランキング、**コンテキスト汚染**(参照の無秩序貼り付け)を防ぐプロンプト設計。
- 訓練側では「検索前提の応答」データで**外部知識利用の方略**を学習。
- **マルチモーダル**:視覚塔+LLM の結合、画像指示追従の SFT、画像・テキスト混在の会話データ整形。
---
## 9. 評価と検証
- **事前学習指標**:損失、perplexity(領域別)。
- **機能評価**:QA、コード、数学、要約、翻訳、多言語、長文、ツール使用。
- **安全評価**:有害生成、偏り、公平性、プライバシー漏洩、プロンプトインジェクション耐性。
- **人間評価**:**ペア比較**(勝率)を主指標に。
- **汚染チェック**:評価セットと学習コーパスの重複除去、n-gram/ハッシュ照合。
- **統計**:信頼区間、分布別の分解(例:質問難易度別)、有意差検定。
- **回帰防止**:モデル更新ごとに**基準スイート**で継続的評価。
---
## 10. プライバシー・著作権・倫理・セキュリティ
- **プライバシー**:PII 除去、差分プライバシー的手法(ユースケース次第)、モデルからの訓練記憶漏洩の監査。
- **著作権**:ライセンス遵守、テイクダウン対応、出典追跡。
- **安全性**:ハームカテゴリ別の拒否方針、説明可能性(出典提示・自信指標)、誤情報抑制。
- **セキュリティ**:データ・モデルの機密保持、サプライチェーン(依存ライブラリ)管理、学習クラスタの隔離。
---
## 11. ロングコンテキストと推論(Reasoning)強化
- **長文学習**:RoPE スケール、長文バッチ、合成連結+本物長文の混合。
- **推論データ**:分解・計画・ツール併用の**プロセス指向**データで SFT→選好。
- **テスト時計算の活用**:自己検査・多数決・逐次改善の方略を、訓練で**適切に使う振る舞い**として学習。
---
## 12. 実装指針(ハイパーパラメータの目安)
> 数値は規模・データ質で変わります。以下は**方向性**の例。
- **学習率**:事前学習で 1e‑4 前後から、数百〜数千ステップのウォームアップ後にコサイン減衰。微調整はもう一段小さく。
- **バッチ設計**:大バッチほど安定だが過学習の兆候(損失急落→停滞)に注意。
- **重み減衰**:1e‑2〜1e‑4 の範囲で要探索。
- **勾配クリップ**:global norm で固定(例:1.0 など)。
- **混合精度**:BF16 を第一候補。
- **データ反復**:高品質セットは複数エポック回す価値あり。低品質は 1 パス。
---
## 13. 典型的な落とし穴
- 評価セット汚染(性能の過大評価)。
- 役割トークン不整合(SFT→実運用で壊れる)。
- 混ぜすぎたデータミクス(方針がぶれて選好学習が効かない)。
- RLHF の KL 制御不足(過度な冗長・保守的/逆に攻撃的)。
- 長文学習での数値不安定(RoPE 設定や学習率が要因)。
- LoRA/QLoRA の過学習(少数高品質データで rank/正則化を要調整)。
- モデル更新での**回帰**(安全性やツール使用が後退)。
## 14. 開発ロードマップ(規模別の現実解)
**A. 少リソース(数枚 GPU)**
1. 既存オープン LLM を選定 → 目的に合わせて **QLoRA で SFT**。
2. 必要なら小規模で **選好最適化(DPO 系)** を追加。
3. 評価・安全性チェック → RAG/ツール接続で機能補完。
**B. 中リソース(十数〜数十枚 GPU)**
1. ドメイン混合を設計した **SFT** + **選好学習**。
2. ロングコンテキスト・ツール使用・多言語などの**専門データバケット**を別途用意して重み付け。
3. ランブック(障害時対応)、データ版管理、回帰防止の自動評価パイプライン。
**C. 大規模(数百〜)**
1. 事前学習用コーパスの品質・ dedup の徹底。
2. DP/TP/PP+ZeRO/FSDP の最適化、プロファイリングとホットスポット解消(I/O、[[KVキャッシュ]]、通信)。
3. 事前学習→段階的 SFT→選好/RLHF→安全性調整の**多段カリキュラム**と、フェーズごとのゲート(評価基準を満たすまで次へ進めない)。
## 15. 簡易「工程→決定→注意点」表
|工程|主な決定|失敗パターン|
|---|---|---|
|データ収集|出典、ライセンス、言語/領域比率|汚染・PII 漏れ・低品質過多|
|前処理|正規化・dedup・品質推定|重複・機械生成混入・文書境界喪失|
|トークナイザ|方式/語彙/特殊トークン|コード・多言語のカバレッジ不足|
|アーキ|位置表現、MQA/GQA、MoE|長文不安定、負荷偏り|
|最適化|LR/スケジュール、精度、正則化|勾配爆発、過度正則化、過学習|
|並列化|DP/TP/PP、ZeRO/FSDP|通信律速、I/O 待ち|
|微調整|SFT→選好→安全|方針ぶれ、KL 不足、拒否過多|
|評価|汎用・安全・人間比較|セット汚染、統計不足|
|運用|RAG/ツール、監視|回帰・ハルシネーション未検知|
## 16. まとめ
- **事前学習**で基礎能力、**微調整**で用途と規範への整合、**評価と安全性**で品質保証、という三層構造。
- 成否の鍵は **データ品質と混合設計**、**安定した最適化**、**分散実装の健全性**。
- 近年は **選好最適化(PPO に依らない手法)** と **ツール/RAG/長文への適応** が主戦場。運用では**継続的評価と回帰防止**が不可欠。