自己対局で出現しにくい終盤局面を、モデル推論なしで効率的にサンプリングする

強化学習において自己対局(self-play)データのみに依存して学習を反復すると、現行世代の方策(policy)がほとんど訪れない局面は次世代の学習データでも恒常的に不足し、モデルの分布外(OOD)挙動が是正されにくいという課題が生じる。

実際に第3世代モデル(G3)の自己対局コーパスを分析したところ、15点前後の競り合いが発生する終盤局面や、合法手が100手を超える分岐の広い局面(wide state)、プレイヤーが上限の10トークンを抱えた状態、ゴールドトークン(ワイルドカード)を保有した状態などが極めて低頻度しか出現していなかった。

こうした探索の盲点を補うために、重いニューラルネットワークの推論を用いず、軽量なルールベース行動(rule-based behavior)によって合法な対局遷移(trajectory)を生成し、指定した局面領域(state region)のみを開始局面(start state)として抽出・保存する高速サンプラーを実装した。

samplerの構成

項目方法
rolloutnative engineのみ
behaviorrandom / teacher / point rush / reserve anchor
stratumleader prestige × effective candidate count
sampling1 trajectoryから最大1 state
output既存の sml-start-state-set-v1

サンプラーの主要な設計方針は以下の通りである。

ニューラルネットワークのフォワードパスを完全に排し、C++で実装されたネイティブ対局エンジンのみで高速にロールアウトを実行する。これによりCPU単体でも短時間で膨大な局面を探索できる。

エージェントの行動特性(behavior)としては、完全ランダムな着手、既存のルールベース教師、勝利点を最速で狙う point rush、カード確保を積極的に行う reserve anchor など、意図的に性質の異なるヒューリスティックを用意した。

収集時は、首位プレイヤーの威信点(leader prestige)と有効な合法手候補数(effective candidate count)を軸に層化(stratum)を行い、各対局軌道(trajectory)から最大1局面のみをサンプリングすることで、局面間の自己相関を排除している。

出力フォーマットは既存の開始局面セット規格である sml-start-state-set-v1 に準拠させた。そのため、専用の学習パイプラインを新設することなく、既存の自己対局やアリーナ評価における初期局面ジェネレータを差し替えるだけでそのまま利用できる。

self-playに少ない状態を増やせた

20,000本の対局軌道(trajectories)を実行したところ、重複のない13,405件のユニーク局面を抽出できた。

第3世代(G3)の自己対局データセットと、今回サンプリングした開始局面セットの分布を比較した結果は以下の通りである。

metricG3 self-playsampled states
candidates ≥ 1002.2%14.2%
candidates ≥ 1500.41%3.9%
candidates ≥ 2000.049%0.69%
candidate p9030108
candidate p99130187
game ply ≥ 640.23%7.3%
endgame triggered1.1%7.8%
actor holds 10 tokens3.6%39%
actor holds any gold7.6%28%

通常の自己対局と比較して、合法手候補が100手を超える局面の割合は 2.2% から 14.2% へ、150手以上は 0.41% から 3.9% へと大幅に増加した。候補手数の90パーセンタイル値(p90)も 30手から 108手へと大きく引き上げられている。

また、手数64手以上の長手数局面や終盤トリガー局面(endgame triggered)の頻度も約7倍に拡大し、プレイヤーがトークン上限(10個)を保持している局面は 3.6% から 39% へと10倍以上に達した。

特筆すべきはサンプリング速度であり、M2 MacのCPU単体環境においてわずか26.6秒で生成が完了した。さらに、既存のG3学習コーパスとの局面完全一致(exact overlap)は0件であり、既存データと重複しない新規局面が網羅されていることを確認した。

サンプリングされた局面が実戦として健全に成立しているかを検証するため、抽出した1,000局面から各2回、計2,000回の対局を再開した。その結果、すべての対局が規定の勝利条件である target_score_equal_turns で正常終了し、最大手数到達によるタイムアウト(ply-cap timeout)は0件であった。

再開後の残り手数(remaining plies)の分布は以下の通りである。

remaining pliesvalue
p5015
p9048
max64

behaviorごとに作れる分布が違う

ロールアウトに用いるエージェントの行動方針(behavior)によって、生成される局面の特性には顕著な差異が見られた。

特にカードのキープ(確保)を積極的に行う reserve anchor は、手牌の選択肢を大きく広げるため、合法手の多い局面(wide state)を生成しやすい傾向を示した。

behavioremittedcandidate p90candidate p99share ≥ 100
point rush2,82511519517.0%
reserve anchor3,00813521724.7%

当然ながら、本サンプラーによって生成された局面セット自体にも独自の分布の偏り(distribution bias)は存在する。しかし本手法の狙いは、実戦対局における自然な出現分布を再現することではなく、標準的な自己対局では遭遇頻度が極めて低いロングテール領域を意図的に補強することにある。

本サンプラーの確立により、今後は終盤の価値関数(endgame value)、選択肢が膨大な局面での方策(wide-state policy)、あるいはGo-Exploit型の再開学習などを、自己対局ループ内での自然発生を待つことなく能動的かつ即座に評価・学習できる体制が整った。


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