AI・機械学習
中級
データカリキュラム学習(データカリキュラムガクシュウ)
LLM事前学習においてデータを易しいものから難しいものへと段階的に提示するスケジューリング手法。収束速度と最終性能の向上を目指す。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
事前学習
カリキュラム学習
データ混合
学習スケジューリング
データカリキュラム学習(Data Curriculum Learning)とは
データカリキュラム学習(Data Curriculum Learning)は、機械学習の学習順序・データ提示方法を最適化する手法で、LLM事前学習に適用した場合に収束の安定化と最終性能向上が期待できます。人間の教育において「基礎→応用」の順で学ぶことに着想を得ており、Bengio et al.(2009)の古典的提案をLLMスケールに発展させたものです。
カリキュラムの定義
LLM事前学習でのカリキュラムは主に2つの軸で設計されます:
1. 難易度ベースのカリキュラム
- 易: 短文、単純な文法、高頻度語彙中心のテキスト
- 難: 長文、複雑な構造、専門用語・低頻度語含む学術論文
難易度スコアリング方法:
- Perplexity(小モデルで算出): 低perplexity = 易
- 文長・語彙多様性による計測
- 文法複雑性(依存木の深さなど)
2. ドメインベースのカリキュラム
- 初期: 汎用Web文書(多様・大量)
- 中期: 書籍・ニュース(高品質)
- 後期: コード・数学・科学論文(専門性)
代表的な実装例
Phi-1(Microsoft, 2023)
「Textbooks Are All You Need」と題した論文で、教育的コンテンツ優先のデータカリキュラムを採用:
- 段階1: 教科書品質テキスト(GPT-4生成合成データ含む)で初期学習
- 段階2: Python演習問題・チュートリアルで強化
- 結果: 1.3Bパラメータながら7B以上の性能達成
LLaMA 3(Meta, 2024)
学習後半(後半30%のトークン)での混合比率変更:
- コードデータの比率を増加
- 長文コンテキストの比率を増加
- 数学的推論データを増加
DeepSeek-V2
多段階カリキュラム:
- Phase 1: 一般コーパスで安定した言語モデルを形成
- Phase 2: 高品質・長コンテキストデータを追加
- Phase 3: 指示追従データでアライメント
難易度判定の自動化
def compute_difficulty(text, model, tokenizer):
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs, labels=inputs["input_ids"])
perplexity = torch.exp(outputs.loss).item()
return perplexity # 低いほど易しい
# 全データセットにスコアを付与してソート(易→難)
dataset_with_scores = [(text, compute_difficulty(text, ref_model, tok)) for text in dataset]
dataset_sorted = sorted(dataset_with_scores, key=lambda x: x[1])
効果と限界
効果:
- 学習初期の収束安定化(損失スパイクの減少)
- 同じ計算量でより高い最終性能
- ドメイン外汎化性能の向上
限界・課題:
- 難易度の定義と測定が主観的になりやすい
- カリキュラムスケジュール(いつどれだけ難しくするか)の調整コスト
- 易しいデータのみ長く学習すると難しいデータへの適応が遅れる安定性-可塑性ジレンマ
DoReMiとの関係
DoReMi(ドメイン混合比率の最適化)とデータカリキュラムは補完関係にあります:
- DoReMi: 最適な静的混合比率を算出
- データカリキュラム: 学習ステップに応じて混合比率を動的変化
組み合わせることで、各フェーズの最適混合比率を段階的に適用するより高度な学習設計が可能です。
2025年の動向
自動カリキュラム生成(AutoCurriculum)の研究が進んでおり、強化学習で学習進捗に応じてリアルタイムにデータ選択を変更する手法が探索されています。現時点ではPhase分けによる手動設計が実用上の主流ですが、今後の自動化が期待されます。