{
  "schema_version": 1,
  "observed_at": "2026-07-13",
  "source_repo_id": "zai-org/GLM-5.2",
  "source_revision": "b4734de4facf877f85769a911abafc5283eab3d9",
  "source_files": [
    {
      "path": "config.json",
      "size_bytes": 3732,
      "sha256": "185f93ee6d12548e16a847e279dc0c3c90b1524c970b0866b42fb545747d859a",
      "url": "https://huggingface.co/zai-org/GLM-5.2/resolve/b4734de4facf877f85769a911abafc5283eab3d9/config.json"
    },
    {
      "path": "chat_template.jinja",
      "size_bytes": 5076,
      "sha256": "172dc74a35e1752df75ecfb2b2cf9326d2852bb1379868ebeec9571654489679",
      "url": "https://huggingface.co/zai-org/GLM-5.2/resolve/b4734de4facf877f85769a911abafc5283eab3d9/chat_template.jinja"
    },
    {
      "path": "generation_config.json",
      "size_bytes": 194,
      "sha256": "ac76b43d8683d3b930126870fc8be73d8679308fe752fa1f381096d8354f6a55",
      "url": "https://huggingface.co/zai-org/GLM-5.2/resolve/b4734de4facf877f85769a911abafc5283eab3d9/generation_config.json"
    },
    {
      "path": "tokenizer_config.json",
      "size_bytes": 761,
      "sha256": "98b1271574f41abf89427ae2dda030d94dc9478f0edc5a8bd240db213c6fd5fc",
      "url": "https://huggingface.co/zai-org/GLM-5.2/resolve/b4734de4facf877f85769a911abafc5283eab3d9/tokenizer_config.json"
    }
  ],
  "architecture": {
    "architectures": [
      "GlmMoeDsaForCausalLM"
    ],
    "model_type": "glm_moe_dsa",
    "num_hidden_layers": 78,
    "num_nextn_predict_layers": 1,
    "total_artifact_layers": 79,
    "first_k_dense_replace": 3,
    "dense_layers": 3,
    "sparse_moe_layers": 75,
    "hidden_size": 6144,
    "intermediate_size": 12288,
    "moe_intermediate_size": 2048,
    "n_routed_experts": 256,
    "num_experts_per_tok": 8,
    "n_shared_experts": 1,
    "scoring_func": "sigmoid",
    "topk_method": "noaux_tc",
    "norm_topk_prob": true,
    "routed_scaling_factor": 2.5,
    "num_attention_heads": 64,
    "head_dim": 192,
    "qk_nope_head_dim": 192,
    "qk_rope_head_dim": 64,
    "qk_head_dim": 256,
    "v_head_dim": 256,
    "kv_lora_rank": 512,
    "q_lora_rank": 2048,
    "mla_cached_values_per_token_per_layer": 576,
    "index_topk": 2048,
    "index_head_dim": 128,
    "index_n_heads": 32,
    "index_topk_freq": 4,
    "index_skip_topk_offset": 3,
    "index_share_for_mtp_iteration": true,
    "indexer_full_layers": 21,
    "indexer_shared_layers": 57,
    "indexer_types_sha256": "ec3b4927af83cf02baf37fb10454c40176ec8bf501ae89334b27a9df5fa17025",
    "max_position_embeddings": 1048576,
    "vocab_size": 154880,
    "rope_theta": 8000000,
    "dtype": "bfloat16",
    "tie_word_embeddings": false
  },
  "reasoning_effort": {
    "alpha_mode": "max",
    "rendered_marker": "<|system|>Reasoning Effort: Max",
    "template_rule": "effective_reasoning_effort = 'high' if reasoning_effort == 'high' else 'max'",
    "default_is_max": true,
    "suppressed_when": "enable_thinking is defined and false",
    "note": "The template recognises exactly one non-max level ('high'); every other value, including an absent reasoning_effort, renders Max. Alpha therefore asserts the rendered 'Reasoning Effort: Max' marker, not merely the presence of a request field."
  },
  "notes": [
    "indexer_types has 78 entries: layers 0-2 are 'full', then a repeating [shared, shared, shared, full] pattern, giving 21 Full producer layers and 57 Shared consumer layers.",
    "MLA caches kv_lora_rank (512) + qk_rope_head_dim (64) = 576 values per token per backbone layer.",
    "num_nextn_predict_layers=1 is the NextN/MTP layer present in the artifact. Alpha does not run MTP; the tensors are loaded or explicitly excluded by a certified recipe and must never be silently reinterpreted as a 79th backbone layer.",
    "Values are derived from the pinned config.json. The runtime must re-derive them from the artifact and fail closed on contradictory metadata; marketing names are not compatibility identity."
  ]
}
