Quellcode durchsuchen

glm53-mxfp4-fp8-4x: GLM-5.3 (full, 78 layers) RedHatAI MXFP4xFP8 on 4 Sparks at TP4

415.4 GB / ~4.5 bits per param -> ~97 GiB of weights per rank in a ~119 GiB
unified pool: a first boot with a 32K window and 4 sequences, raise after the
pool is measured. Engine spark-glm53:v10 (kindling fork) already registers
GlmMoeDsaForCausalLM and the glm47 parsers the checkpoint wants; MTP k=5 per the
RedHat card. Staged on the free stand (dgx5-8).
Alexander Korolev vor 1 Tag
Ursprung
Commit
817cb85d66
1 geänderte Dateien mit 61 neuen und 0 gelöschten Zeilen
  1. 61 0
      recipes/glm53-mxfp4-fp8-4x/recipe.toml

+ 61 - 0
recipes/glm53-mxfp4-fp8-4x/recipe.toml

@@ -0,0 +1,61 @@
+# GLM-5.3 (full, not Flash) — RedHatAI mixed MXFP4×FP8, TP4 on four DGX Spark.
+#
+# Weights: RedHatAI/GLM-5.3-MXFP4xFP8 (2026-10-21, 415.4 GB, 141 shards,
+# GlmMoeDsaForCausalLM, ~4.5 bits/param: routed experts + dense MLPs at MXFP4
+# weights with FP8 dynamic activations, attention/shared-experts/MTP at FP8
+# block-wise). Base: zai-org/GLM-5.3 — the *full* model, 78 layers, 1M window,
+# not the Flash variant our other glm53-* lanes serve.
+#
+# Why 4 nodes: the vendor card serves it with --tensor-parallel-size 8 on
+# 1507 GB-class hardware trimmed to 415 GB. At TP4 each rank holds ~97 GiB of
+# weights inside a ~119 GiB unified pool — tight, so this lane starts with a
+# small window (32768) and few sequences; raise only after the boot numbers
+# show how much KV is really left.
+#
+# Engine: spark-glm53:v10 (kindlingai gx10 stack, vLLM 0.30.1 dev fork) — its
+# model registry already carries GlmMoeDsaForCausalLM + the glm47 parsers this
+# checkpoint expects. The card's "vLLM v0.32" refers to their Hopper-tuned path;
+# the arch class is what matters for a first boot.
+
+engine = "vllm"
+name = "GLM-5.3 (full) MXFP4xFP8, 4x Spark TP4"
+docker_image = "spark-glm53:v10"
+docker_image_dir = "glm53-kindling"
+entrypoint = ["vllm", "serve"]
+model = "RedHatAI/GLM-5.3-MXFP4xFP8"
+parent_model = "zai-org/GLM-5.3"
+port = 30000
+required_nodes = 4
+tensor_parallel_size = 4
+pipeline_parallel_size = 1
+distributed_backend = "mp"
+shm_size = "32gb"
+# the free stand: dgx5-8 (dgx1-4 runs the production 1017 lane)
+cluster = "dgx58-switch"
+
+args = [
+    "--served-model-name", "glm53-full",
+    # 415 GB of shards are read from the shared NAS cache: eager streaming keeps
+    # the peak host RSS down (each rank touches the whole bundle, keeps 1/4).
+    "--load-format", "auto",
+    "--safetensors-load-strategy", "eager",
+    "--kv-cache-dtype", "fp8",
+    "--gpu-memory-utilization", "0.90",
+    "--max-model-len", "32768",
+    "--max-num-seqs", "4",
+    "--trust-remote-code",
+    "--enable-auto-tool-choice",
+    "--tool-call-parser", "glm47",
+    "--reasoning-parser", "glm47",
+    # the checkpoint ships MTP blocks: the vendor card runs k=5
+    "--speculative-config", '{"method":"mtp","num_speculative_tokens":5}',
+]
+
+[env]
+# 415 GB from the NAS per rank: the default 600 s engine-ready timeout is far
+# too short for a first load (and the FlashInfer/CUTLASS autotune pass).
+VLLM_ENGINE_READY_TIMEOUT_S = "5400"
+# keep the loader from pulling anything: the bundle is already in the cache
+HF_HUB_OFFLINE = "1"
+TORCH_MEM_FRACTION = "0.92"
+PYTORCH_CUDA_ALLOC_CONF = "expandable_segments:True"