Splendor AIの次の大規模学習を58,800局・16,000 stepにスケールする

Splendor をプレイする policy-value model を作っている。

Splendor は、宝石トークンを集めてカードを買い、カードの色を以後の購入コストの割引として使いながら得点を伸ばすゲームだ。モデルは、次にどの手を選ぶかという policy と、その局面から勝つ・引き分ける・負ける確率という value を同時に予測する。

前回は、学習行数を約42万行に固定したまま、教師データを取るゲーム数を7,350局から29,400局へ増やすと、value の汎化と実戦の強さが改善した。

次は、その採用した「多くのゲームから薄く局面を取る」recipe 自体を大きくする。

ただし今回は、scale の因果効果をもう一度比較する実験ではない。目的を「scaled model を1つ作り、自己対局へ進める強さがあるか確認する」に絞った。

データ量と学習量を一緒に2倍にする

前回採用した設定と、次に学習する設定はこうなる。

前回の採用recipe次のscaled recipe
初期配置の組数14,70029,400
席順交換込みのゲーム数29,40058,800
学習行数419,840839,680
optimizer steps8,00016,000
batch size512512

ゲーム数、学習行数、optimizer steps を全部2倍にする一方、1ゲームから取る局面数と、学習データを何周するかはほぼ同じに保つ。

つまり今回は、

同じデータを長く学習する

のではなく、

独立したゲームを増やす
+ retained rows も増やす
+ それに合わせて optimizer budget も増やす

という joint scaling になる。

このため、結果が良くても「データ量だけが効いた」「step数だけが効いた」とは言えない。狙っているのは、現在のrecipeをそのまま1段大きくしたときに、実際により良いモデルを作れるかである。

教師データの生成は先に終わらせた

scaled experiment 用には、独立した training source を24本、さらに共通の validation と test source を生成して保存した。

1本の training source だけでも、

29,988 initial groups
59,976 games
3,497,536 decisions

ある。

26 source 全体では Parquet payload が52個あり、約8.2 GBになった。初期配置の重複や source identity も事前に監査し、cache preparation へ進める状態まで確認している。

ただし現在の実験で実際に学習へ使うのは、そのうち train-r00 という1本だけである。

24モデルをもう一度比較して scale effect を推定するのではなく、1つの scaled model を作って deployment 判断をする実験に狭めたためだ。

ここまでで、次の大規模学習に必要な教師データと実験条件は揃った。学習結果と、現在のモデルを実際に上回れたかどうかは次の記事で書く。


この記事は、実装・実験記録をもとに、本文の大部分をLLMが執筆し、筆者が内容を確認・編集しています。