コンピテンスベースカリキュラム(コンピテンスベースカリキュラム)
コンピテンスベースカリキュラム(Competence-Based Curriculum Learning)とは、モデルの「コンピテンス(能力水準)」を定量的に測定し、その能力水準に応じた難易度のデータを提示するカリキュラム学習の一手法である。モデルが特定のスキルを習得したと判定された時点で次の難易度段階に移行するため、訓練効率と最終性能の両面で優れた結果を示す。
コンピテンスベースの基本概念
コンピテンスベースカリキュラム学習は、教育学における「マスタリー学習(Mastery Learning)」に着想を得た手法である。Benjamin Bloomが1968年に提唱したマスタリー学習では、生徒が現在の単元を十分に理解(マスタリー達成)するまで次の単元に進まない。同様に、コンピテンスベースCLではモデルが現在の難易度レベルのデータに対して十分な性能を示すまで、次の難易度に移行しない。
形式的には、コンピテンス関数c(t)を定義し、データサンプルの難易度d(x)がc(t)以下のサンプルのみを訓練に使用する:
訓練データ(t) = {x | d(x) ≤ c(t)}
c(t)はバリデーション指標に基づいて動的に更新される。
コンピテンス測定指標
| 指標名 | 測定方法 | 更新頻度 | 精度 | 計算コスト |
|---|---|---|---|---|
| バリデーション損失 | held-outセットでの平均NLL | 100〜1000 steps | 高 | 中 |
| タスク正解率 | ベンチマークサブセットでの正答率 | 500〜5000 steps | 非常に高 | 高 |
| 勾配ノルム収束度 | 勾配L2ノルムの変動係数 | 各step | 中 | 低 |
| 損失改善率 | 直近N stepsでの損失減少率 | 各step | 中〜高 | 低 |
| EMAパープレキシティ | 指数移動平均のパープレキシティ | 各step | 高 | 低 |
LLMの大規模事前学習では、計算コストの観点からEMAパープレキシティや損失改善率が実用的である。1000ステップごとのバリデーション損失測定も一般的だが、バリデーションセットのサイズとドメインカバレッジに注意が必要である。
Platanios et al.のコンピテンスベースCL
2019年にPlatanios et al.が提案した手法は、コンピテンスベースCLの代表的な定式化である。以下の特徴を持つ。
コンピテンス関数の設計
c(t) = min(1, √(t × (1 - c_0²) / T + c_0²))
ここでc_0は初期コンピテンス(一般に0.01)、Tは総訓練ステップ数。この関数により、訓練初期は急速にコンピテンスが向上し、後半は緩やかに飽和する。
難易度関数の設計
テキストの難易度はワード頻度の逆数(稀な単語が多い→難しい)やセンテンス長で定義。LLMへの拡張では、perplexityベースの難易度が標準的に使用される。
この手法はニューラル機械翻訳で最初に実証され、WMT英独翻訳でBLEUスコアを1.5ポイント改善した。
LLMにおける実装パターン
パターン1: ベンチマーク駆動コンピテンス
定期的に小規模ベンチマーク(MMLU 100問サブセット、GSM8K 50問、HumanEval 20問など)を実行し、各カテゴリのスコアをコンピテンス指標とする。特定カテゴリのスコアが閾値を超えた時、そのカテゴリに関連する高難度データを訓練セットに追加する。
Googleの2024年の研究では、Gemma 2の訓練でこのアプローチを採用。数学コンピテンスがGSM8K 60%に達した時点で競技数学データ(MATH、AMC)を導入し、最終的にGSM8K 85%、MATH 48%を達成した。
パターン2: ドメイン別コンピテンス追跡
訓練データを10〜50のドメインに分類し、各ドメインのバリデーション損失を独立に追跡する。コンピテンスが低いドメインのサンプリング比率を上げ、高いドメインの比率を下げることで、均衡のとれた能力獲得を実現する。
パターン3: スキルツリー型カリキュラム
ゲームのスキルツリーのように、能力間の前提条件(依存関係)を定義する。例えば「基礎文法理解」→「複文理解」→「論理推論」→「数学的推論」という依存チェーンを設定し、前提スキルのコンピテンスが閾値を超えた場合のみ次のスキルの訓練データを導入する。
マルチタスクコンピテンスバランシング
LLMのInstruction TuningにおけるコンピテンスベースCLの応用として、マルチタスクバランシングがある。
| タスクカテゴリ | コンピテンス閾値 | 導入タイミング | 最終精度 |
|---|---|---|---|
| 要約 | 基礎言語理解 > 70% | Phase 1(最初から) | ROUGE-L 42.3 |
| 翻訳 | 多言語理解 > 50% | Phase 2 | BLEU 35.8 |
| コード生成 | 構造化出力 > 60% | Phase 3 | HumanEval 72.1 |
| 数学推論 | 論理推論 > 65% | Phase 4 | GSM8K 82.5 |
| 創作 | 全タスク > 40% | Phase 5 | 人間評価 4.2/5 |
このアプローチにより、単純なマルチタスク同時学習と比較して、難しいタスク(コード生成、数学推論)の最終精度が3〜8ポイント向上することが報告されている。
コンピテンスベースCLの課題
評価コスト
コンピテンス測定のために定期的なバリデーション実行が必要で、大規模モデルでは1回の評価に数十GPU時間を要する場合がある。軽量プロキシ指標(EMA損失、勾配統計量)の活用で対処可能だが、精度とのトレードオフが存在する。
コンピテンスの偽陽性
モデルが特定のパターンを丸暗記(メモライゼーション)した場合、バリデーションスコアは高いが真の理解は不十分というコンピテンスの偽陽性が発生する。対策として、バリデーションセットを定期的にリフレッシュする、または複数の異なる形式の評価を組み合わせる方法がある。
ドメイン間の干渉
あるドメインのコンピテンス向上が他のドメインのコンピテンス低下を引き起こす「カタストロフィック・フォゲッティング」が問題となる。Elastic Weight Consolidation(EWC)やProgressive Neural Networksなどの継続学習技法との統合が研究されている。
FAQ
Q: コンピテンスベースCLはRLHFと併用できますか?
A: 併用可能で相性が良い。RLHFの報酬モデルのスコアをコンピテンス指標として利用し、モデルの応答品質が一定水準に達した時に次の難易度の指示データを導入する方式が有効である。Anthropicの研究ではHHH(Helpful, Harmless, Honest)の各軸でコンピテンスを独立追跡するアプローチが検討されている。
Q: コンピテンス閾値はどのように設定しますか?
A: 経験的には、バリデーション損失ベースの場合は「損失改善率が0.05%/100steps以下」を閾値とすることが多い。タスク正解率ベースの場合はタスクごとに異なるが、一般に60〜80%が次段階への移行閾値として設定される。グリッドサーチによる最適化も可能だが、訓練コストが大きいため、小規模実験で閾値を決定し大規模に適用する転移アプローチが実用的である。
Q: SPLとコンピテンスベースCLの使い分けは?
A: SPLはサンプルレベルの適応(どのサンプルを学習するか)に強く、コンピテンスベースCLはフェーズレベルの適応(いつ次の段階に進むか)に強い。実務的にはSPCL(Self-Paced Curriculum Learning)としてこの2つを統合し、コンピテンスベースでフェーズ制御しつつ、各フェーズ内ではSPLでサンプル選択する二層構造が最も効果的である。