由于使用Ollama安装的模型不支持多线程处理,改用vllm方式安装。
推荐使用 Windows Terminal 来打开powershell (微软官方现代终端,默认已预装在 Win11)不用不知道,一用吓一跳。
前面已经启用部署过
WSL2 支持 GPU 加速,但需 Windows 主机安装 NVIDIA Game Ready 或 Studio 驱动 ≥ 535。
在 Windows 主机上:
前往 NVIDIA 驱动下载页
下载并安装 支持 WSL 的最新驱动(通常 535+ 版本即可)
在 WSL2 Ubuntu 终端中验证 GPU 可见:
nvidia-smi python -c "import torch; print(torch.cuda.get_device_properties(0))"
如果能看到你的显卡信息(如 RTX3060),说明 GPU 已透传成功。
安装 CUDA Toolkit(vLLM 要求 CUDA ≥ 12.1):
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb dpkg -i cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb cp /var/cuda-repo-wsl-ubuntu-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/ apt-get update apt-get install -y cuda-toolkit-12-4
# 安装 Python 3.10+ apt install python3-pip python3-venv -y # 创建虚拟环境 mkdir tools cd tools python3 -m venv vllm-env source vllm-env/bin/activate # 升级 pip pip install --upgrade pip # 安装 vLLM(自动包含 PyTorch + CUDA) pip install vllm # 注意:不要手动安装 PyTorch!vLLM 的 PyPI 包已预编译好 CUDA 扩展。
登录 Hugging Face(需同意模型协议)需翻墙,翻墙不了的哈哈哈,原谅我笑了
访问:https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct
登录之后,从网页
https://huggingface.co/settings/tokens
创建一个 Access Tokens,然后记住这个tokens
我创建的是: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
在 WSL2 中配置 token:
pip install huggingface_hub huggingface-cli login # 粘贴你的 HF Token # 如果成功会显示如下 Token has not been saved to git credential helper. Your token has been saved to /root/.cache/huggingface/token Login successful. The current active token is: `qwen`
启动 vLLM 服务:
python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen3-VL-4B-Instruct \ --dtype bfloat16 \ --max-model-len 32768 \ --host 0.0.0.0 \ --port 8000 # 上面参数显示内存不足报错改用这个,这是阿里官方基于FP8量化技术 发布的 Qwen3-VL-4B-Instruct 轻量化版本。 # 可以在https://huggingface.co/Qwen 查询相关模型 vllm serve "Qwen/Qwen3-VL-4B-Instruct-FP8" \ --quantization fp8 \ --max-model-len 4096 \ --gpu-memory-utilization 0.70 \ --host 0.0.0.0 \ --port 8000 \ --dtype bfloat16 # 注意:FP8 模型仍需指定 dtype # 避免编译开销(可选) # 等待有8000端口,表示启动成功 # 参数说明: --dtype bfloat16:节省显存,RTX 40 系列支持 3060不确定就没写 --max-model-len 32768:Qwen3-VL 支持长上下文 --host 0.0.0.0:允许 Windows 主机访问 --gpu-memory-utilization 0.70 占总gpu显存的百分之80 # 启动后会下载Qwen3-VL-4B-Instruct模型,日志里有显示,再说一遍需要翻墙
在 Windows 原生 Python 环境中运行:
python
import requests
import base64
def image_to_base64(image_path):
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode()
构造多模态消息
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "这张图里有什么?"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_to_base64('test.jpg')}"}}
]
}
]
response = requests.post(
"http://localhost:8000/v1/chat/completions",
json={
"model": "Qwen3-VL-4B-Instruct-FP8",
"messages": messages,
"max_tokens": 4096
}
)
print(response.json()["choices"][0]["message"]["content"])
注意:WSL2 的 localhost:8000 在 Windows 中可直接访问!