Policy/Value Training Modules¶
対象: pca.training.train, pca.training.policy_value
Purpose¶
self-play JSONL から Policy/Value model を学習する。legacy ActionConditionedPolicyValueNet と v13 UnifiedTokenPolicyValueNet の両方を扱い、aux prize heads と integrated belief heads の loss もここで合成する。
Modules¶
| Module | Role | Implementation Details |
|---|---|---|
pca.training.train |
CLI / facade | train_policy_value() と CLI。policy_value helper を旧 import path 互換で re-export する。 |
pca.training.policy_value.config |
config | TrainConfig と SearchDataSummary。 |
pca.training.policy_value.data |
dataloader | search record prescan、streaming dataloader、data summary。 |
pca.training.policy_value.losses |
loss | policy/value/turn/aux prize/integrated belief loss と metrics。 |
pca.training.policy_value.metadata |
metadata tables | JSONL embedded card/attack metadata から unified feature tables と cache を作る。 |
pca.training.policy_value.model_config |
model config | checkpoint/input/CLI から model config を解決し、互換 state dict を load する。 |
pca.training.policy_value.checkpointing |
checkpoint payload | model state、optimizer-independent metadata、training config を保存形式にまとめる。 |
pca.training.policy_value.runtime |
runtime helpers | device selection、AMP、grad scaler、memory log、LR schedule、progress line。 |
Public API¶
| API | Usage |
|---|---|
TrainConfig |
training loop 設定。 |
train_policy_value(input_path, output_path, config, best_output_path) |
学習実行。 |
policy_value_loss(output, batch, ...) |
model output と batch から loss/metrics を作る。 |
resolve_model_config(...) |
model construction config を決める。 |
load_compatible_model_state(...) |
checkpoint 互換 load。 |
load_unified_feature_tables_from_jsonl(...) |
JSONL metadata から static feature tables を作る。 |
policy_value_checkpoint_payload(...) |
checkpoint 保存 payload。 |
CLI Usage¶
PYTHONPATH=src uv run python -m pca.training.train \
--input data/selfplay/example.jsonl \
--output checkpoints/policy_value.pt \
--best-output checkpoints/policy_value_best.pt \
--epochs 3 \
--batch-size 64 \
--model-class unified
Notes¶
TrainConfig.streaming=Trueの場合、大きい JSONL を memory に載せずに学習する。policy_target_sourceはsearch/oracleなどを切り替える。- aux prize / integrated belief は config の profile と weight が 0 でないと loss に入らない。