Files
qwen38-flash-next-dgx-spark/README.md
T

4.7 KiB
Raw Blame History

Qwen3.8 Flash Next NVFP4 on DGX Spark

在单台 NVIDIA DGX SparkGB10 / ARM64 / 128 GB 统一内存)上部署 nvidia/Qwen3.8-Flash-Next-NVFP4 的可复现配置。 来自 2026-09-17 的实际部署:262144 上下文上限、MTP 2 tokens、OpenAI 兼容 API。 优化版启用经验证的前缀缓存,保持 eager 执行;32K 重复前缀首个 token 约从 14.05 秒降至 1.34 秒。 这里的首个 token 包括思考内容,完整回答不会因此保证快 10 倍。详见 优化报告。 PLE 查找表通过磁盘映射按需读取;原始模型权重未重新量化。

这是针对固定 nightly 的社区适配,非 NVIDIA/vLLM 官方支持方案。 已验证短问答和工具调用;未压测完整 262K 输入。仅适用于此模型、单 GPU / ETP=1。

快速开始

需要 Linux ARM64、GB10、Docker Compose(支持 gpus: all)、NVIDIA Container Toolkit 以及至少约 150 GiB 的模型下载空间,另留 Docker 镜像和缓存空间。 实测驱动为 580.173.02。首次启动约需 1013 分钟。

cp .env.example .env
# 编辑 .env:模型缓存目录、现有 API Key 文件、代理和端口
# API_KEY_FILE 指向非空的纯文本密钥文件,不把密钥写入 .env。
./scripts/download.sh
./scripts/build.sh
./scripts/start.sh
./scripts/wait.sh
./scripts/test.sh

已有 Hugging Face 缓存时,HF_CACHE_DIR 应指向包含 hub/ 的目录。 下载脚本固定模型 revision,支持断点续传;服务离线读取该快照。 已有本项目所固定的基础镜像时,可在 .env 设置 BASE_IMAGE=local/vllm-base:0bfc7a15。 请先核实本地 tag 对应 版本清单 中的 digest,不能用任意 nightly 替代。

API 地址:http://<Spark-IP>:8000/v1;模型名:qwen3.8-flash-next。 使用 Authorization: Bearer <已有密钥>。代理仅供模型下载/容器出网使用。

当前配置

参数 设置
上下文上限 262144 tokens
MTP 2 speculative tokens
同时调度请求数 4
批处理 token 上限 2048
GPU 内存比例 0.80
KV 精度 auto(本配置为 BF16
执行 eager,未启用 CUDA Graph
Prefix caching 开启,含 Mamba 块对齐修正
API 8000,启用密钥、reasoning parser、工具调用
自动重启 unless-stopped

0.80 留出的内存供系统和 PLE 文件缓存使用,并非浪费。 增加 KV 分配会挤占页缓存,不一定提高响应速度,见 内存说明mem_limit: 112g 沿用实测配置;统一内存/CUDA 占用不能只用 Docker stats 判断,需结合主机内存。

运维与回退

docker compose logs -f vllm
docker compose ps
docker compose stop vllm
# 切换为已验证的 32K、不启用 MTP 的基础配置(会重建服务)
./scripts/start.sh baseline
./scripts/wait.sh
./scripts/test.sh
# 保持 262K + MTP,只关闭前缀缓存
./scripts/start.sh no-prefix
# 恢复默认 262K + MTP + 前缀缓存
./scripts/start.sh

首次迁移到本项目时,先停止旧部署中占用同一端口/模型内存的服务;不要并行启动两份。 项目脚本不会自动停止 MinerU 或其他业务容器。原部署的容器与回退配置可以保留。

tests/test_disk_adapter.py 验证 FP8 字节、边界/重复索引、缩放、原始哈希和 torch.compile。 可用 scripts/test-adapter.sh 单独执行,需要真实 CUDA GPU 和额外内存。 该测试通过不代表完整模型的 CUDA Graph 已验证。

文件说明

  • Dockerfile:固定基础镜像,安装 PLE 适配、两项 GB10 FLA 修改及 Mamba 缓存块对齐修正。
  • patches/:针对当前 nightly 的适配层。
  • vendor/:保持原样的社区 mmap 代码及许可证。
  • configs/baseline-32k.yaml:基础配置的 Compose override。
  • docs/optimization-results.md:基准比较、缓存正确性与未采用的图执行实验。
  • experiments/graph/:未采用为默认的图执行实现与复现说明。
  • docs/validation.md:实测结果和未验证边界。
  • docs/troubleshooting.md:故障依据、上游修复与排查步骤。
  • docs/provenance.md:模型/镜像/第三方源码的固定版本和校验值。

.env、密钥、权重、日志、运行缓存均不提交。仓库不包含模型权重;模型使用条件以 NVIDIA 模型页 为准。 第三方代码按其原许可证使用,见 第三方声明

复测优化

./scripts/benchmark.sh current > benchmark.jsonl
python3 scripts/summarize-benchmark.py benchmark.jsonl
./scripts/test-prefix.sh

测试只使用合成输入。方法、首字时间口径与小样本限制见 docs/benchmark-method.md。