DeepSeek-R1-Distill-Qwen-1.5B部署教程:nohup后台服务配置详解
DeepSeek-R1-Distill-Qwen-1.5B文本生成模型 二次开发构建by113小贝。
基于 DeepSeek-R1 强化学习数据蒸馏的 Qwen 1.5B 推理模型 Web 服务。
1. 项目概述
DeepSeek-R1-Distill-Qwen-1.5B 是一款经过强化学习数据蒸馏优化的小参数大语言模型,专为高效推理设计。它在保留强大逻辑能力的同时,显著降低了资源消耗,适合部署在中低端 GPU 设备上运行。
该模型基于通义千问 Qwen-1.5B 架构,通过 DeepSeek-R1 的高质量推理轨迹进行知识蒸馏,进一步增强了其在数学推导、代码生成和复杂逻辑任务上的表现力。相比原始版本,推理更连贯、响应更精准,是轻量级场景下实现智能对话与自动化内容生成的理想选择。
本教程将带你一步步完成本地部署,并重点讲解如何使用nohup实现稳定后台服务运行,确保模型服务不因终端关闭而中断。
2. 环境准备与依赖安装
2.1 系统与硬件要求
- 操作系统:Linux(推荐 Ubuntu 20.04+)
- GPU 支持:NVIDIA 显卡 + CUDA 驱动
- 显存建议:至少 6GB(用于流畅加载 1.5B 参数模型)
- Python 版本:3.11 或更高
- CUDA 版本:12.8(兼容性最佳)
2.2 安装核心依赖包
打开终端,执行以下命令安装必要的 Python 库:
pip install torch>=2.9.1 transformers>=4.57.3 gradio>=6.2.0 --index-url https://pypi.org/simple提示:若网络较慢,可考虑使用国内镜像源加速下载:
pip install torch transformers gradio -i https://pypi.tuna.tsinghua.edu.cn/simple
确保 PyTorch 正确识别到 CUDA:
import torch print(torch.cuda.is_available()) # 应输出 True print(torch.__version__)如果返回False,请检查 NVIDIA 驱动是否安装正确,或重新安装支持 CUDA 的 PyTorch 版本。
3. 模型获取与本地缓存配置
3.1 模型来源说明
本模型托管于 Hugging Face 平台,名称为:
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B如果你尚未下载模型,可通过官方 CLI 工具拉取:
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir /root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B注意路径中的
1___5B是系统对1.5B的转义写法,请保持一致。
3.2 使用本地缓存避免重复下载
为了防止每次启动都尝试联网加载模型,建议在代码中设置local_files_only=True,强制从本地读取:
from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "/root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B" tokenizer = AutoTokenizer.from_pretrained(model_path, local_files_only=True) model = AutoModelForCausalLM.from_pretrained(model_path, local_files_only=True, device_map="auto")这样即使断网也能正常加载模型,提升部署稳定性。
4. 启动Web服务并配置后台运行
4.1 快速启动测试服务
进入项目目录后,先手动运行一次以验证环境:
python3 /root/DeepSeek-R1-Distill-Qwen-1.5B/app.py默认情况下,Gradio 会启动一个 Web 服务,监听端口7860。你可以在浏览器访问:
http://<服务器IP>:7860看到交互界面即表示服务已成功启动。
4.2 使用 nohup 实现持久化后台运行
当直接运行python app.py时,一旦关闭 SSH 终端,进程就会被终止。为保证服务长期可用,必须使用nohup命令将其放入后台持续运行。
启动命令详解:
nohup python3 app.py > /tmp/deepseek_web.log 2>&1 &我们来逐段解析这条命令的作用:
nohup:忽略挂起信号(SIGHUP),防止终端关闭导致程序退出python3 app.py:执行主服务脚本> /tmp/deepseek_web.log:将标准输出重定向到日志文件2>&1:将错误输出也合并到标准输出,统一记录&:让进程在后台运行,释放当前终端
执行后你会看到类似输出:
[1] 12345 nohup: ignoring input and appending output to '/tmp/deepseek_web.log'其中12345是进程 PID,可用于后续管理。
4.3 查看日志确认运行状态
实时查看服务日志:
tail -f /tmp/deepseek_web.log正常启动后应能看到 Gradio 成功绑定端口的信息,例如:
Running on local URL: http://0.0.0.0:7860此时即可通过公网 IP 访问你的 AI 对话服务。
5. 服务管理与常用操作命令
5.1 停止后台服务
要安全停止正在运行的服务,需先找到对应的进程 ID,再执行 kill 操作。
ps aux | grep "python3 app.py" | grep -v grep | awk '{print $2}' | xargs kill解释如下:
ps aux:列出所有进程grep "python3 app.py":筛选出目标进程grep -v grep:排除 grep 自身的匹配行awk '{print $2}':提取第二列(PID)xargs kill:向这些 PID 发送终止信号
若提示“Operation not permitted”,请使用
sudo kill [PID]提权操作。
5.2 检查端口占用情况
如果启动时报错 “Address already in use”,说明 7860 端口已被占用,可用以下命令排查:
lsof -i:7860 # 或 netstat -tuln | grep 7860输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python3 12345 root 3u IPv4 12345 0t0 TCP *:7860 (LISTEN)记下 PID 后手动 kill 即可释放端口。
6. 推荐推理参数设置
为了让模型发挥最佳性能,建议根据实际应用场景调整生成参数。以下是经过实测的推荐配置:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| temperature | 0.6 | 控制输出随机性,0.5~0.7 范围内语义连贯且富有创造力 |
| max_tokens | 2048 | 最大生成长度,适合长文本推理与代码生成 |
| top_p | 0.95 | 核采样阈值,保留最可能的词汇集合,避免低概率词干扰 |
| device_map | "auto" | 自动分配 GPU/CPU 资源,充分利用显存 |
在app.py中可以这样设置:
generation_config = { "temperature": 0.6, "max_new_tokens": 2048, "top_p": 0.95, "do_sample": True }对于数学题解答或代码生成类任务,建议适当降低 temperature 至 0.5,提高准确性。
7. Docker 部署方案(可选进阶)
对于希望实现标准化部署的用户,推荐使用 Docker 封装整个运行环境。
7.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 . COPY -r /root/.cache/huggingface /root/.cache/huggingface RUN pip3 install torch transformers gradio EXPOSE 7860 CMD ["python3", "app.py"]7.2 构建并运行容器
# 构建镜像 docker build -t deepseek-r1-1.5b:latest . # 运行容器(启用 GPU) docker run -d --gpus all -p 7860:7860 \ -v /root/.cache/huggingface:/root/.cache/huggingface \ --name deepseek-web deepseek-r1-1.5b:latest注意:需提前安装 NVIDIA Container Toolkit 才能使用
--gpus all参数。
容器启动后可通过docker logs deepseek-web查看运行日志。
8. 常见问题与解决方案
8.1 GPU 内存不足(OOM)
现象:模型加载时报错CUDA out of memory
解决方法:
- 减少
max_new_tokens到 1024 或更低 - 在代码中添加
torch.cuda.empty_cache()清理缓存 - 或临时切换至 CPU 模式(修改
device_map="cpu"),但速度会明显下降
8.2 模型加载失败
可能原因:
- 缓存路径错误
- 文件不完整或损坏
- 未设置
local_files_only=True
建议做法:
- 检查
/root/.cache/huggingface/deepseek-ai/DeepSeek-R1-Distill-Qwen-1___5B目录是否存在且包含pytorch_model.bin等关键文件 - 可尝试删除后重新下载
8.3 访问页面空白或无法连接
排查步骤:
- 确认防火墙是否开放 7860 端口
- 检查云服务器安全组规则(如阿里云、腾讯云)
- 使用
curl http://localhost:7860测试本地能否访问 - 查看日志是否有报错信息
9. 总结
本文详细介绍了 DeepSeek-R1-Distill-Qwen-1.5B 模型的完整部署流程,涵盖环境搭建、模型加载、Web 服务启动以及最关键的nohup 后台运行配置。通过合理使用nohup和日志重定向,你可以轻松实现 7×24 小时不间断的 AI 服务运行。
此外,还提供了 Docker 部署方案和常见问题应对策略,帮助你在生产环境中更稳定地使用这一高性能小模型。无论是用于个人实验、教学演示还是轻量级产品集成,这套部署方案都能快速落地。
下一步你可以尝试:
- 添加身份认证保护接口
- 集成到企业内部系统
- 结合 LangChain 构建智能 Agent
- 对模型进行微调适配特定领域
只要掌握基础部署逻辑,后续扩展将变得非常简单。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。