Features Modules
対象: pca.features
Purpose
CABT observation、ログ、盤面、legal option を、NN と探索が使える token / object 表現に変換する。動的 action space を扱うため、state と action は分離して encode する。
Modules
| Module |
Role |
Implementation Details |
pca.features.encoder |
observation encoder |
encode_observation() が中心。state tokens、history tokens、action tokens、card ids、unified object rows、min_count/max_count をまとめた EncodedObservation を返す。 |
pca.features.vocab |
vocabulary |
token kind/value から安定 token id を作る。static card / attack feature token もここで vocabulary を共有する。 |
Public API
| API |
Usage |
encode_observation(obs, card_db=None) |
policy/value model と search の入力を作る。 |
token(kind, value) |
テストや static feature で明示 token を作る。 |
get_value(obj, name, default=None) |
dict/dataclass/attribute 混在の CABT object から値を読む。 |
encode_static_card_features(card, vocab) |
card metadata を token 化する。 |
encode_static_attack_features(attack, vocab) |
attack metadata を token 化する。 |
EncodedObservation Contract
| Field |
Meaning |
state_tokens |
公開盤面 token。 |
history_tokens |
log history token。 |
action_tokens |
legal option ごとの token。 |
state_card_ids / action_card_ids / history_card_ids |
static card embedding 用 ID。 |
state_objects / action_objects / history_objects |
unified model 用 object rows。 |
min_count / max_count |
CABT selection の選択数制約。 |
Usage
from pca.features.encoder import encode_observation
encoded = encode_observation(obs)
if encoded.action_count:
first_action_tokens = encoded.action_tokens[0]
Notes
- fixed action class は使わない。
select.option の順番に合わせた action-conditioned model を前提にする。
- hidden zone は public information として見える範囲だけ encode する。full observation labels は training target 側でのみ使う。