DGX Spark 部署 vLLM 与 Open WebUI 运行 Qwen3-Coder-Next-FP8
摘要:本文详细记录在 NVIDIA DGX Spark(Grace Blackwell 架构)上部署 vLLM 推理服务并接入 Open WebUI 的完整流程,包含 FlashAttention 编译、vLLM wheel 安装、Qwen3-Coder-Next-FP8 模型加载等关键步骤,适配 aarch64 + CUDA 13.0 环境。
硬件平台:NVIDIA DGX Spark(Grace Blackwell GB10 架构)
操作系统:Ubuntu 24.04.4 LTS(aarch64)
CUDA Version:13.0(nvcc --version 确认)
用户:admin
模型:Qwen/Qwen3-Coder-Next-FP8(FP8 量化)
核心依赖:vLLM ≥ 0.15.1(需支持 CUDA 13.0 + aarch64 + cu130 wheel)
一、初始化 vLLM 部署环境
mkdir -p ~/vllm
cd ~/vllm
uv venv --python 3.12 --seed-source .venv/bin/activate
pip install torch==2.9.1+cu130 --index-url=https://download.pytorch.org/whl/cu130
uv pip install setuptools==80.10.2
uv pip install packaging -U
二、依赖安装(FlashAttention 2.8.3 + Triton 3.6.0)
2.1 安装 FlashAttention(aarch64 + CUDA 13.0)
当前 FlashAttention 官方暂未提供 cu130 + aarch64 的预编译 wheel。推荐下载社区构建版本或源码编译。
方案 A:预编译 wheel(首选)
# 替换为实际路径
uv pip install /path/to/flash_attn-2.8.3+cu130torch2.5.0cxx11abiFALSE-cp312-cp312-linux_aarch64.whl --no-build-isolation --no-cache-dir
方案 B:源码编译(若无 wheel)
export MAX_JOBS=4
export CMAKE_BUILD_PARALLEL_LEVEL=2
uv pip install flash-attn --no-build-isolation --no-cache-dir
注意:源码编译需提前安装
build-essential,cmake,nvidia-cuda-toolkit,python3-dev。
2.2 升级 Triton 至 3.6.0+
uv pip install --upgrade "triton>=3.6.0"
三、部署 vLLM(aarch64, CUDA 13.0)
3.1 安装 vLLM
官方 vLLM ≥ v0.15.1 已提供 cu130 + aarch64 wheel。
export VLLM_VERSION=$(curl -s https://api.github.com/repos/vllm-project/vllm/releases/latest | jq -r '.tag_name' | sed 's/^v//')
export CUDA_VERSION=130
export CPU_ARCH=$(uname -m)
uv pip install \
https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu${CUDA_VERSION}-cp38-abi3-manylinux_2_35_${CPU_ARCH}.whl \
--extra-index-url https://download.pytorch.org/whl/cu${CUDA_VERSION}
3.2 启动 vLLM 推理服务(单卡模式)
VLLM_USE_MODELSCOPE=true \
vllm serve \
Qwen/Qwen3-Coder-Next-FP8 \
--port 8000 \
--tensor-parallel-size 1 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder \
--gpu-memory-utilization 0.8
性能实测(DGX Spark GB10)
| 指标 | 结果 |
|---|---|
| GPU 使用率 | >90% |
| 显存占用(模型加载后) | ~110+ GB |
| 推理吞吐 | ~35–45 tokens/sec |
四、部署 Open WebUI(本地非容器)
4.1 启动服务
HF_ENDPOINT=https://hf-mirror.com \
DATA_DIR=~/open-webui/data \
uvx --python3.12 open-webui@latest serve \
--port 8080
访问地址:http://<dgx-spark-ip>:8080
4.2 连接 vLLM 后端
在 Open WebUI 管理员面板 -> 设置 -> 外部连接,OpenAI 接口,点击加号:
| 字段 | 值 |
|---|---|
| Url | http://localhost:8000/v1 |
| 模型 ID | Qwen/Qwen3-Coder-Next-FP8 |
| 密钥 | 留空 |
五、容器化部署 Open WebUI(跨主机)
5.1 架构图
Local Workstation (Win11 + Docker Desktop) <-> NVIDIA DGX Spark (GB10)
推理负载通过 HTTP/1.1 over TCP 传输。
- GPU: Blackwell
- CPU: Grace (aarch64)
- CUDA: 13.0
- vLLM Service: 端口 8000
- Open WebUI Container: 端口 3000
5.2 创建并运行容器
创建 docker-compose.yml 文件:
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui-app
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
运行命令:
docker compose up -d
5.3 配置端口映射
确保宿主机端口映射到 DGX Spark 宿主机局域网 IP。
5.4 配置 Open WebUI 连接 vLLM 地址
配置:http://host.docker.internal:8000/v1
六、模型采样参数推荐
| 参数 | 推荐值 | 说明 |
|---|---|---|
temperature | 1.0 | 代码生成任务平衡创造性与准确性 |
top_p | 0.95 | 核采样,过滤低概率 token |
top_k | 40 | 避免生成低频无意义 token |
max_tokens | 2048 | 建议 ≤ 2048;可升至 4096 |
| 函数调用 | 原生 (native) | Qwen3-Coder-Next-FP8 自带函数调用 |
七、故障排查
| 问题 | 解决方案 |
|---|---|
ImportError: libcurand.so.10... | 确认 CUDA Toolkit 13.0 安装完整 |
CUDA driver version is insufficient | nvidia-smi 显示驱动版本 ≥ 550.54.15 |
| FlashAttention 加载失败 | 确认 wheel 名称含 linux_aarch64 且 cu130 |
vLLM 启动报 Triton not installed | 重新运行 uv pip install --upgrade triton |


