|
|
@@ -384,3 +384,42 @@ NVFP4-Spark boot on it (recipe glm53-flash-nvfp4-spark, retargeted):
|
|
|
Build running on dgx3 (tmux r12build → /tmp/r12build2.log), same tag
|
|
|
glm53-jovian-r12:local (running serve keeps the old image; re-verify lane
|
|
|
after build).
|
|
|
+
|
|
|
+## 2026-09-02 (cont 2): lil — the lab's own launcher, read
|
|
|
+
|
|
|
+local-inference-lab/lil = standalone Go launcher (their sm121 equivalent):
|
|
|
+reads each HF model repo's lil.yaml at runtime + embedded family policy +
|
|
|
+discovered topology (local or spark-rdma via SSH), renders/validates/runs a
|
|
|
+typed vLLM invocation. `lil render <model>` prints the exact env + command.
|
|
|
+
|
|
|
+GLM family policy (configs/models/_bases.yaml) — the lab's canonical
|
|
|
+launch for these checkpoints, vs our spark recipe today:
|
|
|
+- --attention-backend B12X, --linear-backend b12x, --moe-backend b12x
|
|
|
+ (we have only the global attention flag; linear/moe backends MISSING)
|
|
|
+- spec config: {"method":"mtp","num_speculative_tokens":5 (lil.yaml
|
|
|
+ mtp_tokens), "moe_backend":<quant-mapped: nvfp4→b12x, mxfp8/bf16→triton>,
|
|
|
+ "attention_backend":"B12X"} — we use k=3 and no moe_backend. MTP:3 is the
|
|
|
+ r12 x86-qualified mode; the checkpoint's manifest default is 5.
|
|
|
+- --load-format instanttensor (+INSTANTTENSOR_BUFFER_SIZE/CHUNK_SIZE env)
|
|
|
+- --mamba-cache-mode align, --max-num-seqs 8, --max-num-batched-tokens 4096,
|
|
|
+ --max-model-len auto
|
|
|
+- --reasoning-parser glm45, --tool-call-parser glm47
|
|
|
+- DFlash2 (the GLM-side second speculator, method "dflash") needs the
|
|
|
+ separate draft checkpoint local-inference-lab/GLM-5.3-Flash-DFlash2-MXFP8.
|
|
|
+
|
|
|
+TODO: after the clean image lands, align the spark recipe to the lil policy
|
|
|
+(moe/linear backend b12x, spec moe_backend, instanttensor, mamba-cache-mode,
|
|
|
+parsers) and A/B k=3 vs k=5.
|
|
|
+
|
|
|
+## Clean r12 build: fix log (builds 2-9)
|
|
|
+1. flashinfer: whl-index path dead → flashinfer-python 0.6.17 from PyPI
|
|
|
+ (fork's setup.py skips flashinfer-cubin at build; runtime fetches cubins).
|
|
|
+2. git protocol v2 flake in-container → GIT_PROTOCOL=0 + protocol.version 0.
|
|
|
+3. setuptools: fork build needs setuptools-rust + setuptools-scm (uv hint).
|
|
|
+4. DeepGEMM FetchContent: pinned SHA on non-default nv_dev branch → GitHub
|
|
|
+ 404s raw-SHA fetch → DEEPGEMM_SRC_DIR pre-clone stage (cmake escape hatch).
|
|
|
+5. PR 550 closed (unmerged) → refs/pull/550/head deleted; all PR heads now
|
|
|
+ pinned by commit SHA (vllm 550-557, b12x 260-270). Raw-SHA fetches
|
|
|
+ verified working.
|
|
|
+6. Operator rule: no build while a serve container runs (OOM risk on 128 GB
|
|
|
+ unified) — spark lane stopped for the build window.
|