Download src/hamiltonzero/model/api.py from Twobombs/HamiltonZero: direct link, hf CLI and curl.
- Browser
- Download file 6.89 kB
-
https://huggingface.co/Twobombs/HamiltonZero/resolve/main/src/hamiltonzero/model/api.py
- Command line
-
hf download hf://Twobombs/HamiltonZero/src/hamiltonzero/model/api.py
-
curl -L -o api.py https://huggingface.co/Twobombs/HamiltonZero/resolve/main/src/hamiltonzero/model/api.py
6.89 kB
| # Copyright (c) 2026 Simulacra Research Inc. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| from __future__ import annotations | |
| from typing import Any | |
| from .model import ( | |
| SpinAnsatz, | |
| _normalize_leaf_carriers, | |
| ) | |
| from .tree import ( | |
| _balanced_subtree_mask, | |
| _quadrilinear_merge, | |
| _tagged_dense, | |
| _tagged_dense_no_bias, | |
| _tagged_rms_eqx_style, | |
| _tree_active_clock_depth, | |
| _tree_depth_count_features, | |
| _tree_sphere, | |
| edge_merge_masked, | |
| ) | |
| normalize_leaf_carriers = _normalize_leaf_carriers | |
| quadrilinear_merge = _quadrilinear_merge | |
| tagged_dense_no_bias = _tagged_dense_no_bias | |
| tree_sphere = _tree_sphere | |
| balanced_subtree_mask = _balanced_subtree_mask | |
| tree_active_clock_depth = _tree_active_clock_depth | |
| tree_depth_count_features = _tree_depth_count_features | |
| tagged_dense = _tagged_dense | |
| tagged_rms_eqx_style = _tagged_rms_eqx_style | |
| def _attention_name(value: str) -> str: | |
| if value == "tuned": | |
| return "mhsea_tuned" | |
| if value == "einsum": | |
| return "einsum" | |
| raise ValueError("attention must be 'tuned' or 'einsum'") | |
| def build_model(config: Any, key, *, n_max: int) -> SpinAnsatz: | |
| attention = _attention_name(str(config.attention)) | |
| model = SpinAnsatz( | |
| d_e=int(config.d_e), | |
| d_o=int(config.d_o), | |
| d_c=int(config.d_c), | |
| d_r=int(config.d_r), | |
| n_heads=int(config.n_heads), | |
| n_layers=int(config.n_layers), | |
| rank=int(config.rank), | |
| n_edge=int(config.edge_channels), | |
| d_e_attn=int(config.attention_qk_dim), | |
| d_c_attn=int(config.attention_v_dim), | |
| trunk_edge_node_ctx_dim=int(config.trunk_edge_node_context_dim), | |
| trunk_edge_hidden_dim=int(config.trunk_edge_hidden_dim), | |
| trunk_attn_bias_hidden_dim=int(config.trunk_attention_bias_hidden_dim), | |
| trunk_ffn_hidden_dim=int(config.trunk_ffn_hidden_dim), | |
| trunk_two_hop_hidden_dim=int(config.trunk_two_hop_hidden_dim), | |
| tree_edge_node_ctx_dim=int(config.tree_edge_node_context_dim), | |
| attn_impl=attention, | |
| global_d_g=int(config.global_dim), | |
| d_m_merge=int(config.merge_dim), | |
| merge_chain_hypernet_rank=int(config.merge_hypernet_rank), | |
| feat_d_bond=int(config.featurizer_bond_dim), | |
| feat_n_heads=int(config.featurizer_heads), | |
| feat_head_dim=int(config.featurizer_head_dim), | |
| feat_n_global_q=int(config.featurizer_global_queries), | |
| feat_edge_hidden_dim=int(config.featurizer_edge_hidden_dim), | |
| feat_zeeman_hidden_dim=int(config.featurizer_zeeman_hidden_dim), | |
| feat_global_hidden_dim=int(config.featurizer_global_hidden_dim), | |
| feat_combine_hidden_dim=int(config.featurizer_combine_hidden_dim), | |
| feat_token_initial_scale=float(config.featurizer_token_initial_scale), | |
| feat_d_edge=int(config.edge_channels), | |
| polar_group_norm_tau=float(config.polar_group_norm_tau), | |
| polar_group_norm_bond_hidden=int(config.polar_bond_hidden_dim), | |
| polar_group_norm_n_bond_groups=int(config.polar_bond_groups), | |
| polar_group_norm_d_bond_group=int(config.polar_bond_group_dim), | |
| polar_group_norm_n_zeeman_groups=int(config.polar_zeeman_groups), | |
| polar_group_norm_d_zeeman_group=int(config.polar_zeeman_group_dim), | |
| route_pointer_max_n=max(int(config.router_max_n), int(n_max)), | |
| route_pointer_d_model=int(config.router_model_dim), | |
| route_pointer_n_heads=int(config.router_heads), | |
| route_pointer_attn_dim=int(config.router_attention_dim), | |
| route_pointer_score_dim=int(config.router_score_dim), | |
| route_pointer_candidate_hidden=int(config.router_candidate_dim), | |
| route_pointer_summary_hidden=int(config.router_summary_dim), | |
| route_pointer_ffn_hidden=int(config.router_ffn_dim), | |
| route_pointer_score_init_scale=float(config.router_score_initial_scale), | |
| route_pointer_rope_base=float(config.router_rope_base), | |
| route_pointer_rope_scaling=float(config.router_rope_scaling), | |
| route_tree_prefix_layers=int(config.router_tree_prefix_layers), | |
| route_tree_prefix_candidate_layers=int(config.router_tree_candidate_layers), | |
| route_tree_prefix_merge_hidden=int(config.router_tree_merge_dim), | |
| route_tree_prefix_post_prefix_suffix_layers=int(config.router_tree_post_layers), | |
| route_contextualizer_layers=int(config.router_context_layers), | |
| route_contextualizer_n_heads=int(config.router_context_heads), | |
| route_contextualizer_attn_dim=int(config.router_context_attention_dim), | |
| route_contextualizer_edge_node_ctx_dim=int(config.router_context_edge_node_dim), | |
| level_edge_attn_n_heads=int(config.level_edge_heads), | |
| level_edge_attn_edge_mlp_hidden=int(config.level_edge_mlp_dim), | |
| level_edge_attn_edge_mlp_n_blocks=int(config.level_edge_mlp_blocks), | |
| level_edge_attn_ffn_d_hidden=int(config.level_edge_ffn_dim), | |
| level_edge_attn_rope_base=float(config.level_edge_rope_base), | |
| level_edge_attn_rope_scaling=float(config.level_edge_rope_scaling), | |
| root_readout_edge_rank=int(config.root_readout_edge_rank), | |
| ngpt_alpha_initial=float(config.ngpt_alpha_initial), | |
| ngpt_alpha_initial_fraction=float(config.ngpt_alpha_initial_fraction), | |
| ngpt_alpha_maximum=float(config.ngpt_alpha_maximum), | |
| global_ladder_tap_dim=int(config.global_ladder_tap_dim), | |
| level_edge_attn_bias_mlp_hidden=int(config.level_edge_bias_mlp_dim), | |
| level_edge_attn_bias_mlp_n_blocks=int(config.level_edge_bias_mlp_blocks), | |
| merge_c_mlp_hidden=int(config.merge_context_mlp_dim), | |
| readout_leaf_context_layers=int(config.readout_context_layers), | |
| readout_leaf_context_n_heads=int(config.readout_context_heads), | |
| readout_leaf_context_attn_dim=int(config.readout_context_attention_dim), | |
| readout_leaf_context_edge_node_ctx_dim=int( | |
| config.readout_context_edge_node_dim | |
| ), | |
| readout_leaf_context_summary_hidden=int(config.readout_context_summary_dim), | |
| readout_leaf_context_mlp_hidden=int(config.readout_context_mlp_dim), | |
| readout_leaf_context_bias_hidden=int(config.readout_context_bias_dim), | |
| readout_leaf_context_edge_ffn_hidden=int(config.readout_context_edge_ffn_dim), | |
| readout_leaf_context_rope_base=float(config.readout_context_rope_base), | |
| readout_leaf_context_rope_scaling=float(config.readout_context_rope_scaling), | |
| two_hop_channels=int(config.two_hop_channels), | |
| tree_edge_fwl_channels=int(config.tree_fwl_channels), | |
| key=key, | |
| ) | |
| return model | |
| __all__ = [ | |
| "SpinAnsatz", | |
| "balanced_subtree_mask", | |
| "build_model", | |
| "edge_merge_masked", | |
| "normalize_leaf_carriers", | |
| "quadrilinear_merge", | |
| "tagged_dense", | |
| "tagged_dense_no_bias", | |
| "tagged_rms_eqx_style", | |
| "tree_active_clock_depth", | |
| "tree_depth_count_features", | |
| "tree_sphere", | |
| ] | |