1. 为什么说vLLM和Windows是天敌
1.1 vLLM的底层依赖决定它“挑系统”
先说一个不少人都踩过的坑:在Windows上直接pip install vllm,看着装完了,一启动就报错,或者干脆在安装阶段就编译失败。这不是你操作有问题,而是vLLM的底层设计就决定了它天然偏向Linux。PagedAttention、CUDA Graph、各种自定义的高性能算子,这些核心组件依赖大量Linux下的编译工具链和运行时环境,Windows原生环境下要么没有预编译wheel,要么编译到一半报GCC/链接库错误。官方文档也写得很明白,支持平台是Linux,Windows属于“你行你上”的状态。
那这是不是说Windows用户就彻底没戏了?不是。现在的硬件和系统版本其实给了我们一条很顺的路:WSL2。微软这几年把WSL2的GPU透传做得相当成熟,NVIDIA在WSL2里可以直接调用Windows侧安装的GPU驱动,性能接近原生Linux。换句话说,你的Windows电脑里藏着一个可以跑vLLM的Linux环境,只是很多人不知道或者没用好。
这篇文章要做的就是一件事:从零开始,在你的Windows机器上把vLLM跑起来,并且真正加载一个Qwen3-8B-FP8模型,提供可用的OpenAI兼容API。我会把环境选型、安装、模型下载、启动、调用、排障全部走一遍,每一步都说清楚为什么这么做。适合的人群是:想在本地Windows机器上跑大模型的开发者、做RAG或Agent应用需要本地推理服务的同学,以及被各种Linux教程劝退但手里只有Windows电脑的人。
1.2 两条可行路线:WSL2还是Docker
在Windows上跑vLLM,绕不开两条主流路线:WSL2里直接用pip装,或者走Docker Desktop的GPU容器。我用一个表格把两者的差异摊开说:
| 对比项 | WSL2 + pip直接装 | Docker Desktop + GPU容器 |
|---|---|---|
| 环境隔离 | 较弱,和Ubuntu系统共享 | 强,镜像即环境 |
| GPU透传 | 原生支持,性能损耗小 | 依赖WSL2后端,性能接近 |
| 安装复杂度 | 低,一条命令进Ubuntu | 中,需要装Docker Desktop |
| 调试方便度 | 高,直接跑进程看日志 | 中,需进容器或看容器日志 |
| 镜像/依赖管理 | 手动管理,conda可隔离 | 镜像复用,团队分发方便 |
| 显存共享 | WSL2自动管理 | 需要注意共享内存限制 |
Docker方案的好处是干净,vLLM官方维护镜像,装好Docker Desktop拉下来就能用。但有个前提:Docker Desktop当前版本依然依赖WSL2后端来实现GPU透传,等于你绕了一圈最后还是回到WSL2上。而且镜像动辄几个GB,遇到网络波动能让人崩溃。所以我个人更推荐WSL2直装,碰到问题可以进系统直接排查,不需要在容器里外来回穿梭。
1.3 我的选择:WSL2直装的理由
坦白说,我一开始也试过Docker方案,后来放弃了。原因是排查问题太难受:服务起不来,得先看容器日志,日志不够还得docker exec进容器,容器里没装vim没法改配置,改完又要commit新镜像,循环下来半天过去了。换成WSL2直装之后,所有问题都变成了“在Ubuntu里怎么处理”,网上能搜到的Linux教程直接可用,解决路径一下子短了很多。
另外还有一个实际收益:WSL2里跑vLLM的同时,Windows侧还能正常做别的事情。vLLM是个长驻服务,WSL2的特点是Windows桌面不受影响,我经常一边跑着模型服务一边写代码。Docker Desktop长期挂后台吃内存不说,有时候还得手动调资源上限,体验不如WSL2清爽。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 先搞定GPU穿透:WSL2里的显卡与驱动适配
2.1 一条命令装好WSL2和Ubuntu
如果你的Windows是Win10 21H2以上或者Win11,装WSL2已经非常简单了。管理员身份打开PowerShell或者CMD,直接输入:
code复制wsl --install
这条命令会帮你把WSL2内核、默认的Ubuntu发行版一次性装好。装完重启,系统会引导你设置Linux的用户名和密码。这一步值得注意:用户名和Windows用户名没必要一致,设置完之后记牢,后面每次进WSL2都要用。重启后可以用下面这条命令确认安装状态:
code复制wsl -l -v
看到Ubuntu的VERSION列是2,就说明WSL2正常。如果显示的是1,执行一下wsl --set-version Ubuntu 2升级。这一步是整个环境的地基,地基没打稳,后面所有问题都会变得复杂。
装完进入Ubuntu的第一件事,更新软件源索引。大部分情况下系统自带的源在国内拉取速度还行,如果慢可以换,但不换也能用。执行:
code复制sudo apt update && sudo apt upgrade -y
这个命令会花几分钟,属于正常现象。
2.2 nvidia-smi输出里的“障眼法”
GPU驱动这块是很多人第一次栽跟头的地方。记住一个关键事实:在WSL2的Ubuntu里,不需要安装NVIDIA的Linux驱动。WSL2直接复用Windows侧安装的NVIDIA驱动,这套机制就是微软和NVIDIA合作的GPU透传方案。
进入Ubuntu,输入:
code复制nvidia-smi
你会看到类似下面这样的输出:
code复制+---------------------------
