89 lines
3.9 KiB
Markdown
89 lines
3.9 KiB
Markdown
# Qwen3.8 Flash Next NVFP4 on DGX Spark
|
||
|
||
在单台 NVIDIA DGX Spark(GB10 / ARM64 / 128 GB 统一内存)上部署
|
||
`nvidia/Qwen3.8-Flash-Next-NVFP4` 的可复现配置。
|
||
来自 2026-09-17 的实际部署:262144 上下文上限、MTP 2 tokens、OpenAI 兼容 API。
|
||
PLE 查找表通过磁盘映射按需读取;原始模型权重未重新量化。
|
||
|
||
> 这是针对固定 nightly 的社区适配,非 NVIDIA/vLLM 官方支持方案。
|
||
> 已验证短问答和工具调用;未压测完整 262K 输入。仅适用于此模型、单 GPU / ETP=1。
|
||
|
||
## 快速开始
|
||
|
||
需要 Linux ARM64、GB10、Docker Compose(支持 `gpus: all`)、NVIDIA Container Toolkit,
|
||
以及至少约 150 GiB 的模型下载空间,另留 Docker 镜像和缓存空间。
|
||
实测驱动为 580.173.02。首次启动约需 10–13 分钟。
|
||
|
||
```bash
|
||
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 对应 [版本清单](docs/provenance.md) 中的 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 | 关闭 |
|
||
| API | 8000,启用密钥、reasoning parser、工具调用 |
|
||
| 自动重启 | unless-stopped |
|
||
|
||
0.80 留出的内存供系统和 PLE 文件缓存使用,并非浪费。
|
||
增加 KV 分配会挤占页缓存,不一定提高响应速度,见 [内存说明](docs/architecture.md)。
|
||
`mem_limit: 112g` 沿用实测配置;统一内存/CUDA 占用不能只用 Docker stats 判断,需结合主机内存。
|
||
|
||
## 运维与回退
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
首次迁移到本项目时,先停止旧部署中占用同一端口/模型内存的服务;不要并行启动两份。
|
||
项目脚本不会自动停止 MinerU 或其他业务容器。原部署的容器与回退配置可以保留。
|
||
|
||
`tests/test_disk_adapter.py` 验证 FP8 字节、边界/重复索引、缩放、原始哈希和 torch.compile。
|
||
可用 `scripts/test-adapter.sh` 单独执行,需要真实 CUDA GPU 和额外内存。
|
||
该测试通过不代表完整模型的 CUDA Graph 已验证。
|
||
|
||
## 文件说明
|
||
|
||
- `Dockerfile`:固定基础镜像,安装 PLE 适配和两项 GB10 FLA 修改。
|
||
- `patches/`:针对当前 nightly 的适配层。
|
||
- `vendor/`:保持原样的社区 mmap 代码及许可证。
|
||
- `configs/baseline-32k.yaml`:基础配置的 Compose override。
|
||
- `docs/validation.md`:实测结果和未验证边界。
|
||
- `docs/troubleshooting.md`:故障依据、上游修复与排查步骤。
|
||
- `docs/provenance.md`:模型/镜像/第三方源码的固定版本和校验值。
|
||
|
||
`.env`、密钥、权重、日志、运行缓存均不提交。仓库不包含模型权重;模型使用条件以
|
||
[NVIDIA 模型页](https://huggingface.co/nvidia/Qwen3.8-Flash-Next-NVFP4) 为准。
|
||
第三方代码按其原许可证使用,见 [第三方声明](THIRD_PARTY_NOTICES.md)。
|