Deploy audited RTX 6000D Flash-Next 128K multimodal baseline

This commit is contained in:
2026-09-18 10:47:26 +08:00
commit 7e53821920
45 changed files with 1745 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
# Qwen3.8 Flash-Next on RTX 6000D
2026-09-18 已完成部署和验收。保留文字、图片、视频能力;采用 NVIDIA NVFP4 权重、原生 FP8 PLE 主机内存卸载、FP8 KV、128K 上下文及 FULL CUDA Graph。单个活动请求,MTP 暂不启用。
社区代码经过审计后仅作为参考,没有执行社区启动脚本或使用社区镜像。审计范围和取舍见 [源码审计](audit/source-review.md),实测数据见 [验收结果](audit/results.md)。
## 仓库导航
- `compose.yaml``Dockerfile`:已验收部署配置与固定镜像。
- `patches/`:最小补丁、精确源码保护及许可证。
- [部署心得](docs/lessons.md):取舍、踩坑、优化方向及升级方法。
- `scripts/`:功能、上下文、速度和资源验证工具。
- `audit/runtime/`2026-09-18 历史原始回执,不代表实时状态。
本仓库不保存 SSH 密码、API key、私有代理配置、模型权重或运行缓存。
## 调用
- OpenAI 兼容 Base URL`http://172.16.104.92:8000/v1`
- 模型名:`qwen3.8-flash-next`
- API key:服务器 `/data/flash-next/project/secrets/api-key`,不纳入项目。
- 健康接口:`/health`;业务接口需要 Bearer API key。
- 131072 token 是输入、思考和最终输出的总预算。图片和视频也消耗上下文和计算资源。
在服务器执行以下示例,不会将密钥写进脚本:
```bash
cd /data/flash-next/project
python3 - <<'PY'
import json, urllib.request
from pathlib import Path
body = {'model': 'qwen3.8-flash-next', 'messages': [{'role': 'user', 'content': '你好,请介绍一下自己。'}], 'max_tokens': 1024, 'reasoning_effort': 'low'}
req = urllib.request.Request('http://127.0.0.1:8000/v1/chat/completions', data=json.dumps(body).encode(), headers={'Content-Type': 'application/json', 'Authorization': 'Bearer '+Path('secrets/api-key').read_text().strip()})
print(json.load(urllib.request.urlopen(req, timeout=180)))
PY
```
图片和视频请求示例见 `scripts/multimodal.py`,使用 `image_url``video_url` 内容块。
## 固定版本
- 官方 vLLM commit`0bfc7a15d095fe83ecc82b50561a93c177fece2d`,镜像 digest 写在 Dockerfile。
- NVIDIA 模型 revision`fc694b54fb0174e0913e6adf86691ef85a4ead47`
- 11 个 safetensors 文件全部通过 SHA256 校验。
- PLE 保留原生 FP8 数据及缩放,常驻锁页 CPU 内存,通过 UVA 查表;本配置不使用磁盘 mmap PLE。
- 额外补丁仅两处 Mamba prefix block alignment 修复;修改前核对精确源码哈希,保留出处和许可证。
不要换成浮动 nightly 后继续沿用本项目的验收结论。
## 运维
服务器目录 `/data/flash-next/` 下,`project/` 是部署项目,`models/` 为权重,`cache/` 为缓存,`audit/``logs/` 保存验证证据。
```bash
cd /data/flash-next/project
docker compose build
docker compose up -d
docker compose logs --tail 100 -f
# 主动停止;unless-stopped 会尊重手动停止
# docker compose stop
```
Compose 默认绑定回环地址;服务器 `.env` 设置 `BIND_ADDRESS=0.0.0.0` 提供内网访问。API key 文件必须存在。新环境可参考 `.env.example`,在 `secrets/` 生成随机密钥,目录权限 0700、文件权限 0600。镜像和模型下载代理属于机器私有配置,不写入项目。
已移除本机旧 MinerU、旧 27B 容器、相关旧镜像和模型目录。保留操作系统、SSH、网络和已修复的 NVIDIA 驱动。DGX Spark 服务配置未改动。
## 复测
```bash
python3 scripts/acceptance.py --output /data/flash-next/audit/acceptance-new.jsonl
python3 scripts/long_context.py --tokens 128000 --output /data/flash-next/audit/context-new.jsonl
python3 scripts/benchmark.py --output /data/flash-next/audit/benchmark-new.jsonl
```
脚本拒绝覆盖同名结果。长上下文验证为固定位置检索及前缀复用;多模态验证为合成图片和短视频;不代表综合质量评测或长期压力测试。当前基线优先单请求和多模态能力,额外并发、MTP、更长视频应另行测试。