生成物一覧¶
更新日: 2026-07-24
生成物の保存場所、作成処理、利用する処理、主なフィールドをまとめる。
概要¶
| 生成物 | 主な保存先 | 作成処理 | 利用する処理 | 補足 |
|---|---|---|---|---|
| 自己対戦JSONL | data/selfplay/*.jsonl |
pca.training.selfplay |
training.train、belief_train、分析ツール |
1行が1つの意思決定を表す。 |
| エージェント集計CSV | *.agent-summary.csv |
自己対戦CLI | 表計算ソフト、分析ツール | ルールエージェント別の対戦結果。 |
| エージェント組み合わせCSV | *.agent-matchup.csv |
自己対戦CLI | 表計算ソフト、分析ツール | エージェントの組み合わせ別集計。 |
| デッキ集計CSV | *.deck-summary.csv |
自己対戦・評価CLI | 表計算ソフト、分析ツール | デッキ別の勝敗、サイド取得数、攻撃回数。 |
| 評価結果JSON | data/eval/*.json |
pca.evaluation.tournament |
分析、レポート作成 | 対戦結果の詳細。 |
| 評価結果CSV | data/eval/*.csv |
pca.evaluation.tournament |
表計算ソフト、分析ツール | 評価結果の集計。 |
| 戦術プローブJSONL | data/eval/tactical-probe/*.jsonl |
pca.evaluation.tactical_probe |
チェックポイントの比較 | 固定局面、非公開状態、4方式の探索結果。 |
| 戦術プローブ集計JSON | data/eval/tactical-probe/*.json |
pca.evaluation.tactical_probe |
人による確認、自動集計 | 一致率、Q値の後悔量、KL、速度、深度。 |
| 探索方式のA/Bテスト結果 | data/eval/search-ab/<run>/* |
pca.evaluation.search_ab |
人による確認、自動集計 | GumbelとVisitの両方向評価と正規化した集計。 |
| Policy・Valueチェックポイント | checkpoints/policy_value*.pt |
pca.training.train |
自己対戦、評価、提出、推論サーバー | モデルの重み、モデル設定、メタデータ。 |
| 学習再開用の状態 | checkpoints/*.train-state.pt |
pca.training.train |
中断した学習の再開 | モデル、オプティマイザー、乱数状態、エポック、バッチ位置。 |
| 自己対戦・学習の実行記録 | logs/selfplay-train/*.manifest.yaml |
scripts/run_selfplay_train.sh |
人による確認、自動集計 | 実行設定、入力、出力、再開状況、最新モデルの状態。 |
| 自己対戦・学習のサイクル台帳 | logs/selfplay-train/*.ledger.yaml |
pca.training.run_ledger |
人による確認、自動集計 | サイクルごとの評価と現在のChampion。 |
| 逐次記録する指標のJSONL | logs/selfplay-train/*.metrics.jsonl |
pca.training.telemetry |
MLflow、復旧、分析 | 処理段階、ステップ、時刻、指標を追記形式で保存する。 |
| 試合ごとの指標JSONL | data/selfplay/*.game-metrics.jsonl |
selfplay.game_metrics |
MLflow、復旧、試合分析 | 試合ID、分類、指標、診断用の生データ。 |
| MLflow実行ID | logs/selfplay-train/*.mlflow-run-id |
pca.tools.mlflow_tracking |
再開、終了処理 | パイプライン全体と各サイクルの実行を対応付ける。 |
| MLflow指標リファレンス | Artifacts/metadata/metrics-reference.* |
pca.tools.mlflow_tracking |
人による確認、分析ツール | 全指標の名前、意味、単位、増減の見方、注意点。 |
| MLflow指標カタログ | Artifacts/metadata/metrics-catalog.* |
pca.tools.mlflow_tracking |
人による確認、分析ツール | 実際に記録された指標だけを列挙する。 |
| MLflowシステム指標 | system/* |
pca.tools.telemetry_runner |
性能と処理能力の分析 | 各処理段階のCPU、メモリ、ディスク、ネットワーク、NVIDIA GPU。 |
| MLflowトレース | MLflowのトレース用テーブル | pca.training.tracing |
失敗、待ち時間、試合内容の分析 | 処理段階、検証、抽出した試合、異常のある試合。 |
| 最新Policy・Valueの別名 | checkpoints/policy_value_latest*.pt |
scripts/run_selfplay_train.sh |
次の自己対戦、学習、評価 | 最新の実行で作成したチェックポイントへのシンボリックリンク。 |
| 学習系列の最新モデルの別名 | checkpoints/policy_value_training_latest*.pt |
scripts/run_selfplay_train.sh |
反復する自己対戦と学習 | 勝率50%の基準を通過した学習系列。正式な最新モデルとは分離する。 |
| 最新モデルの対応表 | checkpoints/policy_value_latest.yaml |
scripts/run_selfplay_train.sh |
人による確認、自動集計 | 別名が指す実行、設定、実体のパス。 |
| 昇格済みリプレイの登録簿 | data/replay/*/promoted.yaml |
pca.training.replay_buffer |
次の自己対戦・学習サイクル | 昇格済みの直近学習JSONLを列挙する。 |
| 過去リプレイの抽出データ | data/replay/*/*-history.jsonl |
pca.training.replay_buffer |
pca.training.train |
過去の試合だけを含む、サイクル別の追加入力。 |
| Beliefチェックポイント | checkpoints/belief*.pt |
pca.training.belief_train |
ISMCTSのBelief事前分布 | BeliefNetの重み、語彙、設定。 |
| メタデータキャッシュ | *.unified-metadata-cache.json |
policy_value.metadata |
学習の再実行 | JSONLの走査を省略して読み込みを高速化する。 |
| 提出用バンドル | submission*.tar.gzまたはバンドル用ディレクトリ |
pca.submission.build_bundle |
Kaggleの実行環境 | src/pca、チェックポイント、設定、デッキ。 |
| リプレイHTML | data/replays/*.html |
スクリプト、CABTの補助ツール | 目視確認 | 対戦中の行動を調査する。 |
自己対戦JSONL¶
作成するモジュール:
src/pca/training/selfplay/battle.pyrecords.pyrecord_targets.pyrecord_metadata.pyrecord_io.py
読み込むモジュール:
src/pca/training/data/records.pysrc/pca/training/policy_value/data.pysrc/pca/training/belief/data.py
最上位のデータ構造:
| フィールド | 説明 |
|---|---|
search |
SearchTrainingTarget。Policy・Value学習の中心となるデータ。 |
belief |
任意のBeliefTrainingTarget。完全観測から正解データを作れる場合だけ使用する。 |
aux |
任意のAuxPrizeTrainingTarget。サイド取得を学習するための補助データ。 |
meta |
試合ID、ステップ番号、結果、デッキ/エージェント情報、教師データの重み。 |
互換性:
- 古いJSONLでは
belief、aux、メタデータの一部が欠けることがある。 - dataclassにフィールドを追加する場合は既定値を付ける。
- 読み込み側は欠けているフィールドを補完する。
集計CSV¶
作成するモジュール:
training/selfplay/summary_csv.pyevaluation/tournament/summaries.py
共通の列:
| 列の種類 | 意味 |
|---|---|
| 試合数 | 試合数、勝ち、負け、未完了。 |
| 終了理由 | ポケモン切れ、山札切れ、その他。 |
| サイド情報 | 取得したサイド数、終了時の残りサイド数。 |
| 行動情報 | 攻撃回数、攻撃可能だった回数。 |
| 対戦情報 | デッキ名、エージェントID、対戦の組み合わせ。 |
注意点:
- CSVは分析用であり、学習の入力には使用しない。
- 指標を追加する場合は、JSONとCSVの両方に正しく出力されるか確認する。
評価結果のJSON・CSV¶
pca evalは対戦全体の詳細をJSON、相手・デッキ別の集計をCSVへ保存する。同じ評価条件を比較できるよう、checkpoint、config、games、seed、使用デッキを結果と一緒に記録する。
| 形式 | 主な用途 |
|---|---|
| JSON | 昇格判定、再集計、実験記録 |
| CSV | デッキ別・相手別の比較、表計算ソフトでの確認 |
戦術プローブJSONL¶
1行が1つの固定戦術局面であり、snapshot.observationはCABT public observation、
snapshot.hiddenは収集時の完全情報hidden stateを保存する。methodsにはnn_only、visit、
gumbel、oracle_visitの選択、policy、Q、時間、探索深度、oracle比較を記録する。
保存済みJSONLはpca tactical-probe --input ...で別checkpointから再評価できる。完全情報hiddenは評価専用であり、実戦policyやself-playの行動選択には使用しない。
チェックポイント.pt¶
Policy・Valueチェックポイントを作成するモジュール:
training/train.pytraining/policy_value/checkpointing.py
Policy・Valueチェックポイントを読み込むモジュール:
decision.policytraining.selfplay.policiesevaluation.tournament.implserving.policy_serversubmission.main
主なメタデータ:
| キー | 意味 |
|---|---|
model_class |
旧モデルと統合モデルの選択。 |
model_config |
モデルを構築するためのパラメータ。 |
vocab / feature metadata |
トークンと静的特徴量の互換情報。 |
| 学習設定 | 損失の重み、プロファイル、データ設定。 |
Beliefチェックポイントを作成するモジュール:
training/belief/runner.pytraining/belief/checkpointing.py
Beliefチェックポイントを読み込むモジュール:
search.belief.belief_prior_from_modeltraining.selfplay.policiestraining.selfplay.policy_factory
最新チェックポイントの別名¶
pca selfplay-train /
scripts/run_selfplay_train.shは学習処理の完了後、次のサイクルから指定しやすい固定パスを更新する。
| パス | 意味 |
|---|---|
checkpoints/policy_value_latest_best.pt |
最後に完了した policy/value 学習 run の best checkpoint。 |
checkpoints/policy_value_latest_final.pt |
最後に完了した policy/value 学習 run の final checkpoint。 |
checkpoints/policy_value_<run_name>_latest_best.pt |
同じ --run-name 内で最後に完了した best checkpoint。 |
checkpoints/policy_value_<run_name>_latest_final.pt |
同じ --run-name 内で最後に完了した final checkpoint。 |
checkpoints/policy_value_latest.yaml |
global latest alias の実体、run_name、run_id、config。 |
checkpoints/quantized/<run_name>/*_fp16.pt |
self-play 推論専用の fp16 checkpoint。train 入力には使わない。 |
次の self-play / train / eval で「最新」を使いたい場合は
--checkpoint checkpoints/policy_value_latest_best.pt を指定する。実験系列を分けたい場合は run-name
scoped alias を使う。
実行記録¶
pca selfplay-train / scripts/run_selfplay_train.sh は、run ごとに
logs/selfplay-train/<run-name>-<run-id>.manifest.yaml を更新する。
主なフィールド:
| フィールド | 意味 |
|---|---|
status |
run 全体の状態。running / complete。 |
selfplay.status |
self-play stage の状態。chunk resume 時は完了済み chunk を skip する。 |
selfplay.checkpoint |
self-play が実際に読んだ checkpoint。--selfplay-precision fp16 では fp16 copy。 |
selfplay.source_checkpoint |
fp16 copy の元になった fp32 checkpoint。通常は training.init_checkpoint と同じ。 |
selfplay.precision |
self-play checkpoint の読み込み precision。auto / fp32 / fp16。 |
training.status |
bestがあればskipし、途中stateがあればepoch内batch位置から再開する。 |
training.init_checkpoint |
train の warm start に使った fp32 checkpoint。 |
training.input |
train が読んだ merged JSONL または chunk JSONL 群。 |
training.recent_input |
replay追加前の直近train入力。 |
training.metrics_output |
final/bestのtrain/validation metrics JSON。 |
training.attempts_requested |
同じself-playデータから作るtrain candidateの上限。 |
training.selected_attempt |
promotion対象または昇格したcandidateのattempt番号。 |
training.attempts_output |
attempt条件、validation score、retry選抜結果を持つJSON。 |
replay.* |
registry、履歴比率、sample/summary path、実行状態。 |
promotion.status |
promoted / training_promoted / rejected。無効時は not_run。 |
latest.status |
latest alias を更新したか、前の alias を維持したか。 |
telemetry.* |
metrics JSONL、MLflow experiment/backend/run ID。 |
repeat runの集約は *.ledger.yaml に出力する。champion.best_cycle / best_checkpoint
と、各cycleの training.metrics.best.val_loss、promotion.head_to_head、
promotion.rule_pool、replay.summary を確認すれば、checkpointと評価経過を1ファイルで追える。
MLflow runには同じmetric定義をMarkdownとJSONで保存する。metrics-referenceはrun開始時の全定義、
metrics-catalogはrun終了時の観測済みmetric一覧である。MarkdownはUIで読む用途、JSONは集計scriptや別dashboardが同じ説明を再利用する用途を想定する。runのOverview > Notesには、このcatalogへの導線と勝率、validation
gap、lossなどの基本的な読み方を記録する。
途中停止後は、同じ --run-name、--run-id、--resume
で再実行する。cycle 実行では各 cycle にも個別 manifest が作られるため、どの checkpoint から何 games を生成して学習したかを後から追える。
メタデータキャッシュ¶
作成するモジュール:
training/policy_value/metadata.py
目的:
- 大きなJSONLを毎回走査せずに、カードとワザのメタデータ表を再利用する。
作り直す条件:
- input JSONL が変わる場合は cache path / mtime / metadata consistency を確認する。
- static metadata schema を変えた場合は cache を作り直す。
提出用バンドル¶
作成するモジュール:
pca.submission.build_bundle
含まれるもの:
src/pca/- selected checkpoint(s)
- deck files
- optional configs / metadata
読み込むモジュール:
- Kaggle runtime via
pca.submission.main
注意点:
src/pca/はsample/, local scripts, notebooks に依存しないこと。- bundle size と checkpoint load path を evaluation 前に確認する。