DeepSeek-R1-Distill-Qwen-1.5B部署教程:Windows WSL环境配置
DeepSeek-R1-Distill-Qwen-1.5B 是一款由 113小贝 二次开发构建的轻量级文本生成模型,基于 Qwen-1.5B 架构,并通过 DeepSeek-R1 的强化学习数据进行知识蒸馏优化。该模型在保持较小参数规模的同时,显著提升了数学推理、代码生成和逻辑推导能力,适合在本地 GPU 环境中部署用于快速原型开发或轻量级 AI 应用服务。
本教程将带你从零开始,在Windows 子系统 Linux(WSL)环境下完成 DeepSeek-R1-Distill-Qwen-1.5B 模型的完整部署流程,涵盖环境搭建、依赖安装、服务启动与后台运行等关键步骤,确保你能在本地高效运行这一高性能推理模型。
1. 项目概述
1.1 模型简介
DeepSeek-R1-Distill-Qwen-1.5B 是基于阿里云 Qwen-1.5B 小型语言模型,结合 DeepSeek 团队发布的DeepSeek-R1强化学习训练数据,通过知识蒸馏技术微调得到的推理优化版本。其核心优势在于:
- 数学推理能力强:能处理代数、微积分、概率统计等复杂问题
- 代码生成准确:支持 Python、JavaScript、C++ 等主流语言的函数级生成
- 逻辑链条清晰:在多步推理任务中表现稳定,输出连贯且合理
- 资源占用低:仅 1.5B 参数,可在消费级显卡上流畅运行(如 RTX 3060/4060)
该模型以 Web 接口形式提供服务,前端使用 Gradio 构建交互界面,后端基于 Hugging Face Transformers + PyTorch 实现推理逻辑,适用于本地测试、教学演示或小型自动化工具集成。
1.2 部署目标
本文档旨在指导用户在以下环境中成功部署模型服务:
- 操作系统:Windows 10/11 + WSL2(Ubuntu 22.04)
- 显卡支持:NVIDIA GPU(CUDA 兼容)
- 运行模式:本地 Web 服务(默认端口 7860)
- 部署方式:原生 Python 或 Docker 容器化
2. 环境准备
2.1 启用 WSL 并安装 Ubuntu
首先确保你的 Windows 系统已启用 WSL 功能:
# 在 PowerShell(管理员权限)中执行 wsl --install此命令会自动安装默认的 Linux 发行版(通常是 Ubuntu)。若需指定版本:
wsl --install -d Ubuntu-22.04安装完成后重启电脑,启动 Ubuntu 终端并设置用户名和密码。
2.2 更新系统并安装基础工具
进入 WSL 终端后,更新软件包列表并安装必要工具:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential curl wget git vim htop2.3 安装 NVIDIA 驱动与 CUDA 支持
WSL 中的 GPU 加速依赖于主机 Windows 上的 NVIDIA 驱动和 WSL-CUDA 支持。
步骤一:检查 Windows 驱动
前往 NVIDIA 驱动下载页,确认你的显卡驱动版本 ≥ 535,并支持 WSL。
步骤二:在 WSL 内验证 GPU 可见性
nvidia-smi如果看到类似如下输出,说明 GPU 已正确识别:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M.| |===============================================| | 0 NVIDIA RTX 3060 45C P8 10W / 170W | 1200MiB / 12288MiB | 5% Default | +-----------------------------------------------------------------------------+若提示
command not found,请先在 Windows 安装 CUDA on WSL。
3. Python 环境与依赖安装
3.1 安装 Python 3.11
Ubuntu 22.04 默认可能未包含 Python 3.11,手动添加源并安装:
sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update sudo apt install -y python3.11 python3.11-venv python3-pip验证安装:
python3.11 --version # 输出应为:Python 3.11.x3.2 创建虚拟环境
推荐使用虚拟环境隔离依赖:
mkdir ~/deepseek-deploy && cd ~/deepseek-deploy python3.11 -m venv venv source venv/bin/activate激活后终端前缀应出现(venv)标识。
3.3 安装核心依赖库
根据官方要求,安装指定版本的 PyTorch 和 Transformers:
pip install torch==2.9.1+cu121 torchvision==0.14.1+cu121 --extra-index-url https://download.pytorch.org/whl/cu121 pip install transformers==4.57.3 gradio==6.2.0注意:这里使用的是CUDA 12.1 版本的 PyTorch,与 WSL-CUDA 兼容性最佳。虽然文档提到 CUDA 12.8,但目前 PyTorch 官方尚未发布对应版本,建议降级适配。
4. 模型获取与缓存配置
4.1 下载模型文件
模型托管于 Hugging Face Hub,需使用 CLI 工具下载:
# 安装 Hugging Face CLI pip install huggingface_hub # 登录(可选,若模型公开则无需登录) huggingface-cli login下载模型到本地缓存目录:
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B --local-dir ~/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B提示:路径中的
1___5B是因文件系统限制对1.5B的转义写法,请保持一致。
4.2 验证模型加载
创建一个测试脚本test_load.py:
from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "/root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", # 自动分配至 GPU torch_dtype="auto" ) print(" 模型加载成功!") print(f"设备映射: {model.hf_device_map}")运行测试:
python3 test_load.py预期输出包含"cuda"设备信息,表示模型已成功加载至 GPU。
5. 启动 Web 服务
5.1 获取应用主程序
假设app.py文件已准备好(通常由开发者提供),内容大致如下:
# app.py import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM MODEL_PATH = "/root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B" tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH) model = AutoModelForCausalLM.from_pretrained( MODEL_PATH, device_map="auto", torch_dtype="auto" ) def generate_text(prompt, max_tokens=2048, temperature=0.6, top_p=0.95): inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate( **inputs, max_new_tokens=max_tokens, temperature=temperature, top_p=top_p, do_sample=True ) return tokenizer.decode(outputs[0], skip_special_tokens=True) demo = gr.Interface( fn=generate_text, inputs=[ gr.Textbox(label="输入提示"), gr.Slider(1, 2048, value=2048, label="最大 Token 数"), gr.Slider(0.1, 1.0, value=0.6, label="温度 Temperature"), gr.Slider(0.5, 1.0, value=0.95, label="Top-P") ], outputs="text", title="DeepSeek-R1-Distill-Qwen-1.5B 推理服务" ) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)将此文件保存至项目根目录:
nano app.py # 粘贴上述代码并保存5.2 启动服务
python3 app.py启动成功后,终端会显示:
Running on local URL: http://0.0.0.0:78606. 访问与使用服务
6.1 本地访问
打开 Windows 浏览器,访问:
http://localhost:7860你应该能看到 Gradio 界面,包含输入框和参数调节滑块。
6.2 示例测试
尝试输入以下提示:
请解方程:x^2 - 5x + 6 = 0模型应返回类似:
这是一个一元二次方程,可以分解为: (x - 2)(x - 3) = 0 因此,解为 x = 2 或 x = 3。这表明数学推理能力正常工作。
7. 后台运行与日志管理
7.1 启动后台服务
关闭当前服务(Ctrl+C),改用nohup后台运行:
nohup python3 app.py > /tmp/deepseek_web.log 2>&1 &7.2 查看运行状态
# 查看日志 tail -f /tmp/deepseek_web.log # 检查进程是否存在 ps aux | grep "python3 app.py"7.3 停止服务
ps aux | grep "python3 app.py" | grep -v grep | awk '{print $2}' | xargs kill8. Docker 部署方案(可选)
8.1 编写 Dockerfile
创建Dockerfile:
FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 RUN apt-get update && apt-get install -y \ python3.11 \ python3-pip \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY app.py . # 复制已缓存的模型(需提前挂载) ENV HF_HOME=/root/.cache/huggingface RUN mkdir -p $HF_HOME/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B RUN pip3 install torch==2.9.1+cu121 \ torchvision==0.14.1+cu121 \ --extra-index-url https://download.pytorch.org/whl/cu121 \ && pip3 install transformers==4.57.3 gradio==6.2.0 EXPOSE 7860 CMD ["python3", "app.py"]8.2 构建并运行容器
# 构建镜像 docker build -t deepseek-r1-1.5b:latest . # 运行容器(挂载模型缓存) docker run -d --gpus all -p 7860:7860 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --name deepseek-web deepseek-r1-1.5b:latest9. 故障排查指南
9.1 端口被占用
lsof -i:7860 # 或 netstat -tuln | grep 7860解决方法:终止占用进程或更换端口。
9.2 GPU 内存不足
现象:CUDA out of memory
解决方案:
- 降低
max_new_tokens至 1024 或更低 - 修改
app.py中的torch_dtype=torch.float16减少显存占用 - 或强制使用 CPU(不推荐):
model = AutoModelForCausalLM.from_pretrained(MODEL_PATH, device_map="cpu")9.3 模型加载失败
常见原因:
- 路径错误:确认缓存路径为
/root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B - 权限问题:确保 WSL 用户有读取权限
- 网络中断导致下载不完整:删除目录后重新下载
10. 总结
10.1 成功部署的关键点回顾
- WSL2 + NVIDIA 驱动正确配置,
nvidia-smi可见 GPU - 使用 Python 3.11 虚拟环境,避免版本冲突
- 安装 CUDA 12.1 版本的 PyTorch,兼容 WSL
- 模型缓存路径与代码中引用路径完全一致
- 使用
device_map="auto"实现 GPU 自动分配 - Gradio 服务绑定
0.0.0.0并开放端口
10.2 后续优化建议
- 将
app.py封装为 systemd 服务,实现开机自启 - 添加 HTTPS 和身份验证(如
auth=("user", "pass"))提升安全性 - 结合 FastAPI 替代 Gradio,构建更专业的 API 接口
- 利用量化技术(如 GPTQ 或 GGUF)进一步降低显存需求
现在你已经拥有了一个稳定运行的 DeepSeek-R1-Distill-Qwen-1.5B 推理服务,无论是做个人助手、编程辅助还是教育演示,都能轻松应对。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。