环境信息
Windows11 + WSL2 Ubuntu22 + RTX 5060Ti 16G + CUDA 13.1 + Python 3.10
基础准备
Windows11安装好NVIDIA驱动,然后激活WSL2并初始化Ubuntu22.04LTS系统。
确认 WSL2 GPU 支持: 原则上win11安装驱动之后,WSL2会自动识别到显卡,在Ubuntu对话窗口执行如下命令验证
nvidia-smi
通过NVIDIA-SMI能看到电脑安装的Driver Version驱动版本,以及CUDA版本13.1(vLLM最低要求CUDA 11.8+),还有GPU使用情况:

更新为国内镜像加速: 先替换 Ubuntu 官方源为阿里云源,避免下载超时:
# 备份原数据源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑数据源文件
sudo vim /etc/apt/sources.list
# sources.list插入阿里云源(Ubuntu 22.04 对应 jammy 版本)
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# 以上sources.list保存后,执行源的更新
sudo apt update && sudo apt upgrade -y
检查Python3是否安装: 一般都自带了Python3环境,此步仅仅是为了检查确认一下
python3 --version
可以看到当前Python3是3.10版本,vLLM最低要求是python3.8,故当前版本可用:

前置依赖安装: 先安装 Ubuntu 系统依赖和 Python 工具链
# 1. 更新系统包
sudo apt update && sudo apt upgrade -y
# 2. 安装编译依赖(vllm 编译需要)
sudo apt install -y build-essential cmake git libopenmpi-dev libssl-dev zlib1g-dev
# 3. 安装 Python 依赖工具
sudo apt install -y python3-pip python3-venv python3-dev
安装vLLM及核心依赖
vllm 依赖 Python 3.8+、CUDA 11.8+、CMake 等。
创建独立 Python 虚拟环境
避免依赖冲突,优先使用python虚拟环境:
# 1. 创建虚拟环境(命名为 vllm-env,可自定义)
python3 -m venv vllm-env
# 2. 激活虚拟环境(激活后命令行前缀会显示 (vllm-env))
source vllm-env/bin/activate
# 退出Python虚拟环境执行 deactivate 命令即可
# 3. 升级 pip 并配置国内镜像(永久生效,避免后续下载慢)
pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
# 4. 备用镜像:阿里云
pip config set global.extra-index-url https://mirrors.aliyun.com/pypi/simple/
# 5. 优化下载参数
pip config set global.timeout 120
pip config set global.retries 5
pip config set global.default-timeout 120
# 6. 检查配置信息
pip config list
安装 CUDA Toolkit 工具链
WSL2 已识别 CUDA 13.1,但需要安装 CUDA Toolkit(编译 vllm 时需要 nvcc 编译器),用 NVIDIA 国内镜像:
CUDA Toolkit最新版本下载清单:https://developer.nvidia.com/cuda-downloads
CUDA Toolkit历史版本下载清单:https://developer.nvidia.com/cuda-toolkit-archive
这个需要根据自身CUDA版本下载对应的CUDA Toolkit:

从NVIDIA获取CUDA Toolkit安装信息后,按如下方式执行下载和安装:
# 1. 下载地址仅供参考,一定要从官网获取地址
wget https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda_13.1.1_590.48.01_linux.run
# 2. 增加执行权限
chmod +x cuda_13.1.1_590.48.01_linux.run
# 3. 安装 CUDA Toolkit(仅安装工具链,不覆盖 Win11 的驱动),本步执行可能需要1分钟以上
sudo ./cuda_13.1.1_590.48.01_linux.run --silent --toolkit --toolkitpath=/usr/local/cuda-13.1
# 4. 删除安装包,安装完就可以删掉了
rm cuda_13.1.1_590.48.01_linux.run
# 5. 配置 CUDA 环境变量(永久生效)
echo 'export PATH=/usr/local/cuda-13.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
# 使配置立即生效
source ~/.bashrc
# 6. 验证 nvcc(编译器)是否安装成功(显示 CUDA 13.1 即可)
nvcc -V
安装 vllm 及核心依赖
# 激活虚拟环境(激活后命令行前缀会显示 (vllm-env))
source ~/vllm-env/bin/activate
# 1. 安装 PyTorch(AI生成的匹配 CUDA 13.1,默认用阿里镜像)
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu131
# 2. 安装其他依赖(AI生成的 transformers、accelerate 等,阿里镜像自动生效)
pip install transformers==4.35.2 accelerate==0.24.1 sentencepiece==0.1.99 protobuf==4.25.3
# 3. 安装vllm,方式一:直接安装「CUDA 13.1 专用预编译包」
pip3 install vllm[cuda131] -i https://pypi.tuna.tsinghua.edu.cn/simple
# 3. 安装vllm,方式二:pip 直接安装指定稳定版本(国内镜像加速)
# pip install vllm==0.2.7 # 0.2.7 是稳定版,适配 CUDA 13.1 和 Python 3.10
# 3. 安装vllm 方式三:源码编译安装(如果 pip 安装失败,用这种,同样国内镜像)
# git clone https://gitee.com/mirrors/vllm.git # 国内 gitee 镜像(替代 github)
# cd vllm
# pip install -e . # editable 安装,支持后续修改
安装包还是较大的,耐心等待:

验证安装结果:
# 1. 验证 vllm 是否能导入(无报错即成功)
python -c "from vllm import LLM, SamplingParams; print('vllm 导入成功')"
# 2. 验证 CUDA 可用性(显示 True 即成功)
python -c "import torch; print('CUDA 可用:', torch.cuda.is_available())"
# 3. 显示GPU型号
python -c "import torch; print('GPU 型号:', torch.cuda.get_device_name(0))"
# 4. 查看vllm
pip show vllm

安装nvitop GPU监控
nvidia-smi实测vllm运行后都检测不到gpu的process,故需要安装更强大的nvitop来做GPU监控:
# 安装nvitop
pip install --upgrade pip
pip install nvitop
# 查看GPU信息
nvitop
q键退出

魔搭社区下载运行大模型
访问国内最大的模型开源社区魔搭社区:https://www.modelscope.cn/home
Qwen3-4B-Instruct-2507-FP8下载运行
下载阿里官方上传的qwen3-4B模型,显存有限,使用8位量化 https://www.modelscope.cn/models/Qwen/Qwen3-4B-Instruct-2507-FP8
# 以下,在python虚拟环境下运行
# 安装modelscope
pip install modelscope
# 将模型下载到指定目录,如/home/hello/models下
modelscope download --model Qwen/Qwen3-4B-Instruct-2507-FP8 --local_dir /home/hello/models/Qwen3-4B-Instruct-2507-FP8
# 下载qwen3_nonthinking.jinja模板,启动qwen3稠密模型时应用该模板会默认非思考模式运行
sudo mkdir -p /home/hello/models/chat-template
wget https://qwen.readthedocs.io/en/latest/_downloads/c101120b5bebcc2f12ec504fc93a965e/qwen3_nonthinking.jinja
# Python虚拟环境下运行(python3指向了明确的虚拟机路径) 启动模型
CUDA_VISIBLE_DEVICES=0 nohup /home/hello/vllm-env/bin/python3 -m vllm.entrypoints.openai.api_server \
--model="/home/hello/models/Qwen3-4B-Instruct-2507-FP8" \
--tensor-parallel-size 1 \
--max-num-seqs 16 \
--served-model-name "qwen3-4b-fp8" \
--enable-auto-tool-choice \
--chat-template /home/hello/models/chat-template/qwen3_nonthinking.jinja \
--tool-call-parser hermes \
--host 0.0.0.0 \
--gpu-memory-utilization 0.5 \
--port 8080 --max-model-len 4096 > logs-qwen3_4b_fp8.log 2>&1 &
# 停止服务方法:python虚拟机下运行nvitop,找到模型的GPU ProcessID,然后kill process
nvitop
kill -9 GPU ProcessID
# curl测试模型
curl -X POST http://172.18.57.229:8080/v1/chat/completions \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-4b-fp8",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "编写一首七绝诗!"
}
]
}'
BAAI/bge-m3下载运行
从魔搭社区下载Embedding文本向量模型bge-m3并启动运行:
# 以下,在python虚拟环境下运行
# 安装ModelScope
pip install modelscope
# 下载到指定目录
modelscope download --model BAAI/bge-m3 --local_dir /home/hello/models/bge-m3
# Python虚拟环境下运行(python3指向了明确的虚拟机路径) 启动模型
CUDA_VISIBLE_DEVICES=0 nohup /home/hello/vllm-env/bin/python3 -m vllm.entrypoints.openai.api_server \
--model="/home/hello/models/bge-m3" \
--max-num-seqs 4 \
--served-model-name "bge-m3" \
--max-model-len 8192 \
--host 0.0.0.0 \
--port 8081 > logs-bge-m3.log 2>&1 &
# 停止服务方法:python虚拟机下运行nvitop,找到模型的GPU ProcessID,然后kill process
nvitop
kill -9 GPU ProcessID
curl -X POST "http://172.18.57.229:8081/v1/embeddings" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-d '{
"model": "bge-m3",
"input": "大语言模型(Large Language Model,简称 LLM)是一种基于深度学习技术的人工智能模型。"
}'
BAAI/bge-reranker-v2-m3下载运行
从魔搭社区下载ReRank重排序模型bge-reranker-v2-m3并启动运行:
# 以下,在python虚拟环境下运行
# 安装ModelScope
pip install modelscope
# 下载到指定目录
modelscope download --model BAAI/bge-reranker-v2-m3 --local_dir /home/hello/models/bge-reranker-v2-m3
# Python虚拟环境下运行(python3指向了明确的虚拟机路径) 启动模型
CUDA_VISIBLE_DEVICES=0 nohup /home/hello/vllm-env/bin/python3 -m vllm.entrypoints.openai.api_server \
--model="/home/hello/models/bge-reranker-v2-m3" \
--served-model-name "bge-reranker-v2-m3" \
--host 0.0.0.0 \
--max-model-len 8192 \
--port 8082 > logs-bge-reranker-m3-v2.log 2>&1 &
# 停止服务方法:python虚拟机下运行nvitop,找到模型的GPU ProcessID,然后kill process
nvitop
kill -9 GPU ProcessID
curl -X POST "http://172.18.57.229:8082/v1/rerank" \
-H "Content-Type: application/json" \
-d '{
"model": "bge-reranker-v2-m3",
"query": "什么是大语言模型?",
"documents": [
"大语言模型是基于海量文本数据训练的深度学习模型,能理解和生成人类语言。",
"猫是一种常见的家庭宠物,性格温顺,喜欢吃鱼。",
"大语言模型的代表产品有 GPT、LLaMA 等,广泛用于对话、写作等场景。",
"大语言模型(Large Language Model,简称 LLM)是一种基于深度学习技术的人工智能模型,更可靠的内容生成机制(如事实核查、引用溯源)以及更完善的安全防护策略(如数据脱敏、权限控制、偏见检测),以推动大语言模型向更安全、更可控、更实用的方向发展。",
" 大语言模型主要有有 GPT、LLaMA 和qwen,广泛用于对话、写作等场景。",
"什么是大型建模的模具,大型建模的模具就是用来生成制造大型建模的工具"
],
"top_n": 6
}'
nvitop检查process运行情况:

测试模型:

qwen模型日志:
