|
|
@@ -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"
|