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

89 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。
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 分钟。
```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)。