自己対局学習を58,800局・16,000ステップへスケールする準備
Splendor は、宝石トークンを集めてカードを購入し、手に入れたカードのボーナスで以後の購入コストを割り引きながら得点を伸ばしていくボードゲームだ。開発中のモデルは、次の一手を選ぶ方針(policy)と、その局面からの勝率(勝つ・引き分ける・負ける確率の value)を同時に予測する構成をとっている。
前回は、学習行数を約42万行に固定したまま、教師データの元となるゲーム数を7,350局から29,400局へ増やしたところ、value の汎化性能が向上し、実対局での勝率改善も確認できた。
今回は、その知見を踏まえて採用した「より多くのゲームから局面を薄くサンプリングする」学習レシピそのものをスケールアップする。
ただし、今回の目的はスケールアップによる因果効果を厳密に比較検証することではない。「スケールさせたモデルを1つ構築し、次の自己対局ループへ投入できる実力があるか確認する」点に焦点を絞っている。
データ量と学習量を同時に2倍へ引き上げる
前回の採択レシピと、今回実行するスケールアップ後の設定は次の通りだ。
| 前回の採用recipe | 次のscaled recipe | |
|---|---|---|
| 初期配置の組数 | 14,700 | 29,400 |
| 席順交換込みのゲーム数 | 29,400 | 58,800 |
| 学習行数 | 419,840 | 839,680 |
| optimizer steps | 8,000 | 16,000 |
| batch size | 512 | 512 |
ゲーム数、学習行数、optimizer steps を一律で2倍にする一方、1ゲームあたりから抽出する局面数や、学習データ全体を何周(epoch)するかという比率はほぼ同等に維持している。
同一データに対してエポック数を増やす追加学習ではなく、独立した対局データ、保持する局面数、optimizer の計算リソースを同時に拡張する joint scaling のアプローチをとる。
この設計上、良好な結果が得られたとしても、その改善要因をデータ量の増加のみ、あるいはステップ数の増加のみに帰属させて個別に評価することはできない。今回の狙いはあくまで、現在のパイプラインを1段階スケールアップさせた際に、実際に実力の高いモデルが得られるかを確かめることにある。
教師データの生成パイプライン
今回のスケール実験に向けて、互いに独立した24系統のトレーニングデータソースに加え、評価用の共通 validation / test ソースを事前に生成してストレージへ保存した。
単一のトレーニングソースだけでも、以下の規模に達する。
29,988 initial groups59,976 games3,497,536 decisions全26ソース合計で52個の Parquet ファイルとなり、データサイズは約8.2 GBに達した。初期配置の重複チェックやソースの同一性検証も事前に済ませており、キャッシュ生成工程へ安全に進められる状態を確認している。
ただし、今回の学習で実際に利用するのは、このうち train-r00 の1系統のみだ。
今回はリソースを集中させ、train-r00 からスケールモデルを1つ学習してデプロイ基準を満たすかを判定する。24モデルを並列学習させてスケール効果の再現性を統計推定する検証は行わない。
これで、次期モデルの大規模学習に必要な教師データと実験環境の準備が整った。実際の学習の推移と、現行モデルに対する勝率検証の結果については次回の記事でまとめる。
この記事は、実装・実験記録をもとに、本文の大部分をLLMが執筆し、筆者が内容を確認・編集しています。