コンテンツにスキップ

生成物一覧

更新日: 2026-07-24

生成物の保存場所、作成処理、利用する処理、主なフィールドをまとめる。

概要

生成物 主な保存先 作成処理 利用する処理 補足
自己対戦JSONL data/selfplay/*.jsonl pca.training.selfplay training.trainbelief_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.py
  • records.py
  • record_targets.py
  • record_metadata.py
  • record_io.py

読み込むモジュール:

  • src/pca/training/data/records.py
  • src/pca/training/policy_value/data.py
  • src/pca/training/belief/data.py

最上位のデータ構造:

フィールド 説明
search SearchTrainingTarget。Policy・Value学習の中心となるデータ。
belief 任意のBeliefTrainingTarget。完全観測から正解データを作れる場合だけ使用する。
aux 任意のAuxPrizeTrainingTarget。サイド取得を学習するための補助データ。
meta 試合ID、ステップ番号、結果、デッキ/エージェント情報、教師データの重み。

互換性:

  • 古いJSONLではbeliefaux、メタデータの一部が欠けることがある。
  • dataclassにフィールドを追加する場合は既定値を付ける。
  • 読み込み側は欠けているフィールドを補完する。

集計CSV

作成するモジュール:

  • training/selfplay/summary_csv.py
  • evaluation/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_onlyvisitgumbeloracle_visitの選択、policy、Q、時間、探索深度、oracle比較を記録する。

保存済みJSONLはpca tactical-probe --input ...で別checkpointから再評価できる。完全情報hiddenは評価専用であり、実戦policyやself-playの行動選択には使用しない。

チェックポイント.pt

Policy・Valueチェックポイントを作成するモジュール:

  • training/train.py
  • training/policy_value/checkpointing.py

Policy・Valueチェックポイントを読み込むモジュール:

  • decision.policy
  • training.selfplay.policies
  • evaluation.tournament.impl
  • serving.policy_server
  • submission.main

主なメタデータ:

キー 意味
model_class 旧モデルと統合モデルの選択。
model_config モデルを構築するためのパラメータ。
vocab / feature metadata トークンと静的特徴量の互換情報。
学習設定 損失の重み、プロファイル、データ設定。

Beliefチェックポイントを作成するモジュール:

  • training/belief/runner.py
  • training/belief/checkpointing.py

Beliefチェックポイントを読み込むモジュール:

  • search.belief.belief_prior_from_model
  • training.selfplay.policies
  • training.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_losspromotion.head_to_headpromotion.rule_poolreplay.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 前に確認する。