MiaAI-Lab/GLM-5.3-Flash-EXL3-2x-DGX-Sparks · 上手攻略

  • 仓库:MiaAI-Lab/GLM-5.3-Flash-EXL3-2x-DGX-Sparks
  • 链接:https://github.com/MiaAI-Lab/GLM-5.3-Flash-EXL3-2x-DGX-Sparks
  • 分类:LLM推理 · 量化部署 · vLLM
  • 作者:Jay
  • 更新:2026-08-30

这是什么

一个在 2× NVIDIA GB10(DGX Sparks) 上通过 vLLMEXL3 4-bit 量化Serving zai-org/GLM-5.3-Flash 的开源配方。核心目标是用 ~164 GiB 的量化权重在消费级双 GB10 机器上跑起百万 token 上下文的 GLM-5.3-Flash,并附带 DFlash2 投机解码(k=7)加速。

简单说:让你在双 GB10 机器上,用比 FP8 少 46% 的显存占用,跑出一个支持 1M 上下文、多模态(图像+视频)、带工具调用能力的开源大模型推理服务。


解决什么问题

GLM-5.3-Flash 原生权重约 328 GB(FP8),普通开发者根本跑不动。这个 Recipe 通过 EXL3 4-bit 量化,把权重压到 ~164 GiB,同时保留 SM_121a 原生 cubin,在双 GB10 上用 TP=2 跑起来。

关键痛点解决: - 显存不够:FP8 要 328 GB,EXL3 4bpw 只用 164 GiB(同精度质量 KLD 基本持平) - 长上下文贵:KV pool 配了 1.75M token(1M 请求量的 1.75 倍),支持百万 token 级别 RAG/Agent 场景 - 投机解码:DFlash2 k=7 加速 structured generation,单请求 62.9 tok/s - OpenAI 兼容:直接用 /v1/chat/completions 接口,现有应用无需改代码


快速安装

前置要求

  • 2× NVIDIA GB10(每卡支持 SM_121a),CX7 网卡(TP 通讯)
  • CUDA 13.0 环境(镜像基于 nvidia/cuda:13.0-cudnn9-devel-ubuntu22.04
  • 约 200 GB 磁盘(存量化权重 + KV cache)
  • Docker

拉取并启动

# 拉取 Docker 镜像
docker pull ghcr.io/miaai-lab/glm-5.3-flash-2x-dgx-sparks:exl3

# 在 head 节点启动(假设 worker IP = 10.0.0.2)
docker run -it --rm \
  --gpus all \
  --network host \
  --shm-size=64g \
  -e HEAD_IP=10.0.0.1 \
  -e WORKER_USER=zurih \
  -e WORKER_IP=10.0.0.2 \
  ghcr.io/miaai-lab/glm-5.3-flash-2x-dgx-sparks:exl3 \
  --headless

⚠️ 以上 IP/用户名为占位符,需要替换为你实际的双机 CX7 网卡 IP 和 SSH 用户名。镜像默认 OpenAI API 在 :8888,无需认证即可访问(正式部署务必设置 VLLM_API_KEY)。

下载量化权重

# 权重来自 HuggingFace,无需手动下载(vLLM 启动时自动拉取)
# 模型 ID: Mia-AiLab/GLM-5.3-Flash-EXL3-TR3-4bpw
#(brandonmusic 快照镜像: 5ab363a8…)

核心用法

启动服务(最小命令)

docker run -it --rm \
  --gpus all \
  --network host \
  --shm-size=64g \
  -e TORCH_CUDA_ARCH_LIST=12.1 \
  ghcr.io/miaai-lab/glm-5.3-flash-2x-dgx-sparks:exl3 \
  --headless \
  --model Mia-AiLab/GLM-5.3-Flash-EXL3-TR3-4bpw \
  --served-model-name GLM-5.3-Flash-EXL3 \
  --tensor-parallel-size 2 \
  --max-model-len 1000000 \
  --kv-cache-dtype fp8 \
  --enforce-eager 0 \
  --enable-prefix-caching

⚠️ --moe-backend marlin 在此 Recipe 中禁止使用,会与 EXL3 MoE 实现冲突。

OpenAI 兼容调用

# 流式对话
curl http://localhost:8888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "GLM-5.3-Flash-EXL3",
    "messages": [{"role": "user", "content": "用一句话解释量子纠缠"}],
    "max_tokens": 200,
    "stream": true
  }'

# 非流式
curl http://localhost:8888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "GLM-5.3-Flash-EXL3",
    "messages": [{"role": "user", "content": "解释量子纠缠"}],
    "max_tokens": 200
  }'

工具调用(Agent 场景)

GLM-5.3-Flash 支持 --tool-call-parser glm47 + --reasoning-parser glm45

# 启用自动工具选择
curl http://localhost:8888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "GLM-5.3-Flash-EXL3",
    "messages": [{"role": "user", "content": "帮我查一下北京的天气"}],
    "tools": [{"type": "function", "function": {"name": "get_weather", "parameters": {"type": "object", "properties": {"city": {"type": "string"}}}}}],"tool_call_parser": "glm47","enable_auto_tool_choice": true
  }'

多模态(图像+视频)

curl http://localhost:8888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "GLM-5.3-Flash-EXL3",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "这张图里有什么?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
      ]
    }],
    "max_tokens": 200
  }'

性能基准(来自 README)

⚠️ 以下数字均在空 KV(无 1M 缓存填充)、CUDA graphs 开启、temp=0、thinking=off 条件下测得。实际线上吞吐会因 KV cache 命中率不同而变化。

并发 TTFT 流 tok/s 总 tok/s
×1 719 ms 62.9 62.9
×2 6.62 s 51.7 103.3
×4 6.30 s 37.1 146.5

Structured generation(代码/结构化输出)lab median:61.7 tok/s(accept rate 0.918,每步 6.43 token)。


典型适用场景

  1. 私有化 LLM API 服务:在双 GB10 机器上搭一个内部 GPT-4-class 模型,支持 OpenAI SDK 直连
  2. 长上下文 Agent:1M token 上下文,适合知识库 RAG、代码库分析、长文档理解
  3. 多模态应用:图生文、视频帧理解,集成进现有 Agent pipeline
  4. 量化研究:对比不同精度(FP8 vs EXL3 4bpw vs NVFP4)在同硬件上的质量/性能 tradeoff

坑与注意

  1. GB10 专用镜像:不能用 stock vllm/vllm-openai:* 镜像,会在第一个 forward 报 pe_dim must be 64 for fp8_ds_mla 而崩溃——必须用本 Recipe 提供的 overlay 镜像。
  2. EXL3 + fp8 KV 绑定:TF32/FP16 MoE 会炸显存,DFlash2 draft KV 必须保持 auto/bf16,不要手动强制 fp8。
  3. TRITON_ATTN 陷阱:speculative decoding 开启时 pinned TRITON_ATTN 会把 structured 性能从 61.7 tok/s 跌到 ~29 tok/s,必须用 FLASH_ATTN
  4. 1M context ≠ 1M KV pool:实际 pool 是 1,754,237 token(1.75×),不要误以为设 --max-model-len 256k 就能省显存——Mamba + DFlash window block-id 需求是长度无关的。
  5. 不要用 --moe-backend marlin:明确写在 README 里,会破坏 EXL3 MoE 的 fused kernel。
  6. API 默认无认证:生产环境必须设 VLLM_API_KEY,否则完全裸奔。

与同类对比

方案 硬件 精度 显存占用 1M ctx 多模态 开源
本 Recipe(EXL3 4bpw TP2) 2× GB10 EXL3 4bpw ~164 GiB ✅ 1.75× pool
vLLM 原生 FP8 2× H100 FP8 ~328 GiB
llama.cpp (Q4_K_M) 单机 Mac/PC Q4 ~20 GB ❌ 受限
Ollama 单机 量化 ~10-30 GB 部分
Text generation webui 单机 量化 ~10-30 GB 部分

本 Recipe 核心差异:是目前唯一在 GB10 上针对 GLM-5.3-Flash EXL3 量化做深度调优的 vLLM fork,目标是在消费级多卡环境(而非 H100 服务器)上实现百万 token 级别 serving。

⚠️ 注意:KLD 数据(0.024555 vs FP8 0.020615)表明 4bpw 精度相比官方 FP8 有约 19% 的质量损失,在对精度敏感的任务中需评估是否可以接受。


一句话推荐结论

如果你有双 GB10 机器、想在本地跑百万 token 上下文的开源 GPT-4-class 模型、且能接受 EXL3 4bpw 带来的约 19% KLD 质量损失,这个 Recipe 是目前最省显存的方案;否则建议用 FP8 + H100 或消费级 Ollama。


最小可跑命令清单

# 硬件:2× NVIDIA GB10, CX7 网卡互通
# CUDA:13.0(镜像内置)
# 模型:Mia-AiLab/GLM-5.3-Flash-EXL3-TR3-4bpw(HuggingFace 自动下载)
# 精度:EXL3 4bpw, fp8 KV cache
# 命令:
docker pull ghcr.io/miaai-lab/glm-5.3-flash-2x-dgx-sparks:exl3
# head 节点:
docker run -it --rm --gpus all --network host --shm-size=64g \
  -e HEAD_IP=10.0.0.1 -e WORKER_USER=<user> -e WORKER_IP=<worker_ip> \
  ghcr.io/miaai-lab/glm-5.3-flash-2x-dgx-sparks:exl3 \
  --model Mia-AiLab/GLM-5.3-Flash-EXL3-TR3-4bpw \
  --served-model-name GLM-5.3-Flash-EXL3 \
  --tensor-parallel-size 2 --max-model-len 1000000 \
  --kv-cache-dtype fp8 --enforce-eager 0 --enable-prefix-caching
# 验证:
curl http://localhost:8888/v1/models

来源

  • 仓库 README:https://github.com/MiaAI-Lab/GLM-5.3-Flash-EXL3-2x-DGX-Sparks
  • 量化权重:https://huggingface.co/Mia-AiLab/GLM-5.3-Flash-EXL3-TR3-4bpw
  • 原始 FP8 权重:https://huggingface.co/zai-org/GLM-5.3-Flash
  • EXL3 upstream:https://huggingface.co/brandonmusic/GLM-5.3-Flash-tr3-4bpw
  • vLLM 官方:https://github.com/vllm-project/vllm
  • DFlash2 spec:https://huggingface.co/incoai/GLM-5.3-Flash-DFlash2