在WSL中部署和调试Qwen3.5-4B模型服务

1. 为什么选择WSL部署AI模型

对于习惯Windows系统但又需要Linux环境的开发者来说,WSL提供了一个两全其美的解决方案。特别是当你需要在本地测试像Qwen3.5-4B这样的大语言模型时,WSL能让你在熟悉的Windows界面下享受Linux的开发体验。

用WSL部署模型有几个明显优势:首先,你不用折腾双系统或虚拟机,节省了大量配置时间;其次,可以直接在Windows下使用你喜欢的IDE(比如VS Code)来编写和调试代码;最重要的是,WSL2的性能已经足够运行中小规模的模型推理。

2. 准备工作与环境配置

2.1 安装和设置WSL

如果你还没有安装WSL,打开PowerShell(管理员权限)运行以下命令:

wsl --install

这个命令会自动安装WSL2和默认的Ubuntu发行版。安装完成后,你需要设置一个Linux用户名和密码。建议选择Ubuntu 20.04或更高版本,因为这些版本对CUDA支持更好。

2.2 配置GPU支持(可选)

如果你有NVIDIA显卡并想用GPU加速推理,需要额外几步:

  1. 在Windows上安装最新的NVIDIA驱动
  2. 在WSL中安装CUDA工具包:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda

安装完成后,运行nvidia-smi检查GPU是否被识别。

3. 部署Qwen3.5-4B模型服务

3.1 创建Python虚拟环境

为了避免包冲突,我们先创建一个干净的Python环境:

sudo apt update && sudo apt install python3-pip python3-venv
python3 -m venv qwen-env
source qwen-env/bin/activate

3.2 安装依赖库

激活虚拟环境后,安装必要的Python包:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers accelerate sentencepiece

如果你没有GPU或不想用CUDA,可以安装CPU版本的PyTorch:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

3.3 下载和加载模型

Qwen3.5-4B模型可以通过Hugging Face获取。我们先安装git-lfs来下载大文件:

sudo apt install git-lfs
git lfs install
git clone https://huggingface.co/Qwen/Qwen1.5-4B

下载完成后,创建一个简单的Python脚本来测试模型是否能正常运行:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "Qwen1.5-4B"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto")

inputs = tokenizer("你好,Qwen!", return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

4. 创建模型API服务

为了让Windows应用能方便地调用模型,我们创建一个简单的FastAPI服务:

4.1 安装FastAPI和uvicorn

pip install fastapi uvicorn

4.2 创建API服务脚本

新建一个api.py文件,内容如下:

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

app = FastAPI()

model_path = "Qwen1.5-4B"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto")

class Request(BaseModel):
    prompt: str
    max_tokens: int = 50

@app.post("/generate")
def generate_text(request: Request):
    inputs = tokenizer(request.prompt, return_tensors="pt").to("cuda")
    outputs = model.generate(
        **inputs,
        max_new_tokens=request.max_tokens
    )
    return {
        "response": tokenizer.decode(outputs[0], skip_special_tokens=True)
    }

4.3 启动服务

在WSL终端运行:

uvicorn api:app --host 0.0.0.0 --port 8000

现在你可以在Windows浏览器中访问http://localhost:8000/docs来测试API了。

5. 从Windows连接和调试服务

5.1 使用VS Code远程开发

  1. 在Windows上安装VS Code和"Remote - WSL"扩展
  2. 在WSL终端中进入项目目录,运行code .
  3. VS Code会自动在WSL环境中打开项目,你可以像平常一样编辑和调试代码

5.2 端口转发和网络访问

WSL2会自动设置端口转发,所以你可以在Windows中直接访问localhost:8000来调用API。如果你想从局域网其他设备访问,需要在Windows防火墙中允许该端口。

5.3 常见问题解决

如果遇到端口无法访问的问题,尝试:

  1. 检查WSL的IP地址:在WSL中运行ip addr,查找eth0的inet地址
  2. 在Windows中尝试用这个IP地址代替localhost
  3. 确保没有其他程序占用了8000端口

6. 总结

通过WSL部署Qwen3.5-4B模型服务,我们实现了在Windows环境下进行Linux开发的理想工作流。整个过程下来,最明显的感受是部署确实比预想的要简单,特别是WSL2的网络和文件系统集成做得很好,让跨平台开发变得无缝衔接。

对于刚开始接触大模型本地部署的开发者,建议先从CPU版本开始尝试,熟悉流程后再考虑GPU加速。另外,记得定期检查Hugging Face上的模型更新,Qwen团队会不时发布改进版本。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐