Windows+WSL2+Ubuntu 22.04 部署 Qwen3.8-27B-NVFP4
2026-10-31
模型
00

目录

一、环境说明与前置要求
1.1 环境概览
1.2 前置硬性要求
二、Windows 宿主机准备
2.1 启用 WSL2 与虚拟机平台
2.2 安装 WSL2 与设置默认版本
2.3 安装 NVIDIA Windows 驱动
2.4 安装 Ubuntu 22.04
方式一:在线安装(推荐有代理环境)
方式二:离线导入(国内推荐)
三、WSL Ubuntu 22.04 初始配置
3.1 首次进入与创建普通用户
3.2 更换 apt 软件源(清华源)
3.3 启用 systemd(推荐)
3.4 查看 WSL 列表与启动
四、WSL 内基础环境与 CUDA 安装
4.1 安装基础工具链
4.2 安装 CUDA 13.0(WSL 版本)
4.3 验证 GPU 直通
4.4 安装 uv(Python 包管理器)
4.5 创建独立虚拟环境
五、安装核心依赖:FlashInfer + vLLM
5.1 安装 vLLM 0.31.0
5.2 验证 FlashInfer
5.3 vLLM 0.31.0 已知限制
六、模型准备:Qwen3.8-27B-NVFP4
6.1 方式 A:从 Windows 磁盘拷贝(推荐)
6.2 方式 B:ModelScope 下载
6.3 校验模型文件
七、启动 vLLM 推理服务(基线版,无 MTP)
参数说明
八、测试对话
九、vLLM Bench Serve 压测
压测参数说明
核心指标
十、Windows 宿主机访问 WSL 服务
十一、常见问题与注意事项

文档版本:2026-10-31
适用场景:RTX PRO 6000 Blackwell(96G)+ WSL2 + vLLM 0.31.0 基线部署
模型格式:NVFP4(compressed-tensors 量化,非 BF16 / AWQ / GPTQ)


一、环境说明与前置要求

1.1 环境概览

组件版本 / 说明
宿主机系统Windows 10 / 11(64 位)
虚拟化WSL2(严禁使用 WSL1)
GPUNVIDIA RTX PRO 6000 Blackwell(96G,支持 NVFP4)
WSL 发行版Ubuntu 22.04
推理框架vLLM 0.31.0(基线,MTP 有 bug)
备选框架SGLang(推荐用于 MTP 高吞吐场景)
关键依赖FlashInfer 0.7.0.post1、CUDA 13.0、NVIDIA WSL 驱动

1.2 前置硬性要求

  1. Windows 已安装 NVIDIA 显卡驱动(WSL 内 不装 CUDA 驱动,直接继承宿主机驱动)
  2. 显卡为 Blackwell 架构,支持 NVFP4 指令
  3. 已启用 WSL2 和虚拟机平台功能

二、Windows 宿主机准备

2.1 启用 WSL2 与虚拟机平台

以 管理员身份 打开 PowerShell:

powershell
展开代码
# 启用 WSL 功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台(WSL2 必需) dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

执行完毕后 必须重启电脑。

重启后检查:

控制面板 → 程序 → 启用或关闭 Windows 功能 → 确认【虚拟机平台】【适用于 Linux 的 Windows 子系统】已勾选。

2.2 安装 WSL2 与设置默认版本

powershell
展开代码
# 安装 WSL(若已安装可跳过) wsl --install # 设置默认版本为 WSL2 wsl --set-default-version 2

国内用户建议:若网络不稳定,使用离线安装包(百度网盘等)导入,避免下载中断。 通过网盘分享的文件:wsl应用 链接: https://pan.baidu.com/s/1nARxIJL06TkjcPB_hM7TvQ?pwd=tyq1 提取码: tyq1 --来自百度网盘超级会员v4的分享

2.3 安装 NVIDIA Windows 驱动

  1. 前往 NVIDIA 官网下载对应显卡的 Windows 驱动
  2. 仅安装显卡驱动,不要安装 CUDA Toolkit
  3. 安装完成后,进入 WSL 执行 nvidia-smi 验证

2.4 安装 Ubuntu 22.04

方式一:在线安装(推荐有代理环境)

powershell
展开代码
wsl --install -d Ubuntu-22.04

方式二:离线导入(国内推荐)

powershell
展开代码
# 语法:wsl --import <系统名> <安装目录> <镜像路径> wsl --import Ubuntu22.04 "D:\Ubuntu22.04" "C:\Users\Administrator\Downloads\ubuntu-22.04.5-wsl-amd64.tar"

三、WSL Ubuntu 22.04 初始配置

3.1 首次进入与创建普通用户

powershell
展开代码
wsl -d Ubuntu22.04

进入后提示符为 root@xxx:/#,执行以下命令创建用户(将 yourname 替换为实际用户名):

bash
展开代码
# 创建用户并加入 sudo 组 adduser test usermod -aG sudo test # 设置 WSL 默认登录用户 echo -e "[user]\ndefault=test" >> /etc/wsl.conf # 设置 sudo 免密(可选) echo "test ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/test chmod 0440 /etc/sudoers.d/test

退出并重启 WSL:

bash
展开代码
exit
powershell
展开代码
wsl --shutdown wsl -d Ubuntu22.04

再次进入后应以普通用户自动登录。

3.2 更换 apt 软件源(清华源)

bash
展开代码
# 备份原源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 写入清华源 sudo tee /etc/apt/sources.list << 'EOF' deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse EOF # 更新 sudo apt update && sudo apt upgrade -y

3.3 启用 systemd(推荐)

bash
展开代码
sudo tee -a /etc/wsl.conf << 'EOF' [boot] systemd=true EOF

退出后在 PowerShell 中重启:

powershell
展开代码
wsl --shutdown wsl -d Ubuntu22.04

验证:

bash
展开代码
systemctl status

3.4 查看 WSL 列表与启动

powershell
展开代码
# 查看列表 wsl --list -v # 启动指定发行版 wsl -d Ubuntu-22.04

四、WSL 内基础环境与 CUDA 安装

4.1 安装基础工具链

bash
展开代码
sudo apt install -y build-essential git python3 python3-venv python3-pip curl wget

4.2 安装 CUDA 13.0(WSL 版本)

从 NVIDIA 官网下载 CUDA 13.0 for WSL-Ubuntu 的 .run 文件。

bash
展开代码
sudo chmod +x cuda_13.0.0_580.65.06_linux.run sudo ./cuda_13.0.0_580.65.06_linux.run

4.3 验证 GPU 直通

bash
展开代码
nvidia-smi

应能看到 RTX PRO 6000 Blackwell,CUDA Version 显示 12.x(WSL 继承 Windows 驱动版本)。

4.4 安装 uv(Python 包管理器)

bash
展开代码
curl -LsSf https://astral.sh/uv/install.sh | sh source $HOME/.bashrc

4.5 创建独立虚拟环境

bash
展开代码
cd ~ uv venv vllm-env source vllm-env/bin/activate

激活后命令行前缀显示 (vllm-env)。


五、安装核心依赖:FlashInfer + vLLM

5.1 安装 vLLM 0.31.0

bash
展开代码
uv pip install vllm==0.31.0 --index-url https://pypi.tuna.tsinghua.edu.cn/simple

5.2 验证 FlashInfer

bash
展开代码
uv pip show flashinfer-python python -c "import flashinfer; print(flashinfer.__version__)" # 预期输出:0.7.0.post1

5.3 vLLM 0.31.0 已知限制

问题说明
MTP 加载本地模型--speculative-config 指定本地绝对路径会触发 HFValidationError
仅支持单 token 解码无法启用 Qwen3.8 MTP,吞吐受限(基线约 391 tok/s)
替代方案如需 MTP 高吞吐,请改用 SGLang

六、模型准备:Qwen3.8-27B-NVFP4

必须是 NVFP4 + compressed-tensors 格式,BF16/AWQ/GPTQ 不可直接使用此启动参数。

目标路径:/home/wdwc/Qwen3.8-27B-NVFP4

6.1 方式 A:从 Windows 磁盘拷贝(推荐)

bash
展开代码
# WSL 可直接访问 Windows 磁盘 cp -r /mnt/d/模型/Qwen3.8-27B-NVFP4 ~/

禁止直接在 /mnt/d 下加载模型,NTFS IO 性能极差,必须复制到 WSL ext4 目录。

6.2 方式 B:ModelScope 下载

bash
展开代码
pip install modelscope modelscope download --model unsloth/Qwen3.8-27B-NVFP4 --local_dir /home/wdwc/Qwen3.8-27B-NVFP4

6.3 校验模型文件

bash
展开代码
ls ~/Qwen3.8-27B-NVFP4 # 应包含:config.json、model-*.safetensors、tokenizer*、quantization_config.json 等

七、启动 vLLM 推理服务(基线版,无 MTP)

bash
展开代码
source ~/vllm-env/bin/activate export HF_HUB_OFFLINE=1 export TRANSFORMERS_OFFLINE=1 vllm serve /home/wdwc/Qwen3.8-27B-NVFP4 \ --host 0.0.0.0 \ --port 8000 \ --trust-remote-code \ --served-model-name Qwen3.8-27B \ --quantization compressed-tensors \ --kv-cache-dtype fp8 \ --max-model-len 32768 \ --gpu-memory-utilization 0.90

参数说明

参数说明
--host 0.0.0.0允许 Windows 宿主机访问
--served-model-nameAPI 请求中使用的模型名称
--quantization compressed-tensorsNVFP4 量化必需
--kv-cache-dtype fp8节省显存,提升并发
--max-model-len 32768最大上下文 32k
--gpu-memory-utilization 0.90显存占用上限

首次启动会 JIT 编译 FlashInfer 内核,耗时较长,请耐心等待。

成功标志:日志输出 Uvicorn running on http://0.0.0.0:8000


八、测试对话

新开 WSL 终端,激活环境:

bash
展开代码
curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "Qwen3.8-27B", "messages": [ {"role": "user", "content": "用一句话介绍 Qwen3.8-27B-NVFP4"} ], "max_tokens": 512, "temperature": 0.7, "top_p": 0.95, "chat_template_kwargs": {"enable_thinking": false} }'

九、vLLM Bench Serve 压测

保持服务运行,新开终端:

bash
展开代码
vllm bench serve \ --backend openai-chat \ --base-url http://localhost:8000 \ --endpoint /v1/chat/completions \ --model Qwen3.8-27B \ --tokenizer /home/wdwc/Qwen3.8-27B-NVFP4 \ --dataset-name random \ --random-input-len 1024 \ --random-output-len 256 \ --num-prompts 64 \ --max-concurrency 1 \ --temperature 0 \ --ignore-eos

压测参数说明

参数说明
--max-concurrency并发数,建议阶梯测试:4 / 8 / 16 / 24
--request-rate inf尽可能发送请求,打满并发
--ignore-eos强制生成指定长度,排除结束符干扰
--save-result保存 JSON 结果文件

核心指标

指标含义
Output token throughput输出 token 吞吐(核心)
Mean TTFT首 token 延迟(用户感知)
Mean TPOT单 token 生成延迟

十、Windows 宿主机访问 WSL 服务

WSL 监听 0.0.0.0:8000,Windows 可通过以下方式访问:

  1. 方式一:http://localhost:8000(WSL 自动端口转发,大部分场景可用)
  2. 方式二:使用 WSL IP 访问
bash
展开代码
# WSL 内查看 IP hostname -I

Windows 端使用 Postman / 前端 / 代码直接调用 http://<WSL_IP>:8000/v1/chat/completions


十一、常见问题与注意事项

问题解决方案
nvidia-smi 不可用确认 Windows 驱动已安装,WSL 内无需单独装驱动
模型加载极慢确保模型在 WSL ext4 目录,而非 /mnt/ 下
FlashInfer 版本不匹配强制安装 flashinfer-python==0.7.0.post1
MTP 启动报错vLLM 0.31.0 已知 bug,换 SGLang 或等待修复
端口无法访问检查 Windows 防火墙,或直接使用 WSL IP

本文作者:zzz

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!