{ "name": "draftzero-fdn-gnn-full-r1", "arch": { "type": "graph", "d_model": 256, "heads": 4, "ff": 1024, "dropout": 0.1, "passes": 2, "global_layers": 2, "head_hidden": 256, "leaf_dropout": 0.0, "local_depth": 1 }, "num_leaves": 1932, "num_edge_labels": 22, "parameters": 13412101, "node_types": { "ROOT": 0, "PLAYER": 1, "ZONE": 2, "STACK_OBJECT": 3, "PERMANENT": 4, "CARD": 5, "ABILITY": 6, "LEAF": 7 }, "type_node_ids": { "ROOT": 0, "PLAYER": 499558809, "ZONE": 1485202092, "STACK_OBJECT": 191223077, "PERMANENT": 11906542, "CARD": 587455872, "ABILITY": 1229966541 }, "value_bounds": [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 26, 31, 41, 61 ], "feature_hash": { "algorithm": "xmage_feature_hash", "version": 2, "bins": 2147483647, "python": "graph_net.feature_id(name)", "java": "StateEncoder.indexFor(StateEncoder.hash64(name))" }, "graph_types": { "PRIORITY": 0, "CHOOSE_TARGET": 3, "CHOOSE_USE": 5 }, "heads": { "priority": "per node, read at ABILITY nodes (a play is its ability's node; Pass has one)", "target": "per node, read at CARD / PERMANENT / STACK_OBJECT / PLAYER nodes (Stop Choosing is a CARD); 'attack with X?' is a target choice between Stop Choosing (no) and the defending player (yes)", "use": "[no, yes] logits for a yes/no question that isn't an attack", "value": "tanh(value_x), the acting player's expected result in -1..1; the fitted temperature (T = 1.607) is folded into the value head's last layer, so P(win) = sigmoid(2 * value_x)" }, "source": { "checkpoint": "danbrooks/draftzero-checkpoints:gnn/full_r1/best_policy_calibrated.pt.gz", "checkpoint_sha256": "3ee0839fbb6ed9a11f414ee290d2730335cf07490d76649c49d960cdc1f60706", "model_code": "danieljbrooks/draft-zero@2a461518985e3b2bb393bddac4649e217f8fddfe:src/draftzero/gameplay/graph_net.py (MageZero's NetGraph, WillWroble/MageZero@de225045c82a2ddc107b99ac833e21ab6d566279, graph-encoder)", "encoder": "WillWroble/mage@e4afc9c77ba7e4a6dbc24966cbdc6dc0819e0bff (graph-encoder) Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/encoder, vendored at danieljbrooks/draft-zero@2a461518985e3b2bb393bddac4649e217f8fddfe:java/mzbridge/src/org/draftzero/mzbridge/graph", "engine": "danieljbrooks/mage@48e4918413392523a5f9d7915e1f33941ddea21e (v0.2-generalist)", "search": "danieljbrooks/draft-zero@2a461518985e3b2bb393bddac4649e217f8fddfe:java/mzbridge/src/mage/player/ai (BenchPlayer, BenchSearch, GraphNet, GraphMCTSPlayer)" } }