DeepSeek-R1-Distill-Qwen-1.5B在Ubuntu系统上的部署全攻略
1. 引言
想在自己的Ubuntu机器上跑一个智能对话助手吗?DeepSeek-R1-Distill-Qwen-1.5B是个不错的选择。这个模型虽然只有15亿参数,但效果相当不错,而且对硬件要求相对友好,普通的高性能显卡就能跑起来。
我之前在本地部署这个模型时,发现网上教程要么太复杂,要么缺东少西。所以特意整理了这份完整的部署指南,从驱动安装到模型运行,一步步带你走通整个流程。即使你是Linux新手,跟着做也能顺利完成部署。
2. 环境准备
2.1 硬件要求
在开始之前,先确认你的机器满足以下要求:
- GPU:至少24GB显存(RTX 3090/4090或同等级别)
- 内存:建议32GB以上
- 存储:系统盘至少50GB空闲空间
- 系统:Ubuntu 22.04 LTS
2.2 安装NVIDIA驱动
首先确保你的NVIDIA显卡驱动是最新版本。打开终端,执行以下命令:
# 添加官方PPA源 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update # 安装推荐版本的驱动 sudo ubuntu-drivers autoinstall # 重启系统使驱动生效 sudo reboot重启后验证驱动是否安装成功:
nvidia-smi如果看到显卡信息输出,说明驱动安装成功。
2.3 安装Docker和NVIDIA容器工具包
接下来安装Docker和NVIDIA容器运行时:
# 安装Docker sudo apt update sudo apt install docker.io # 启动Docker服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 添加当前用户到docker组(避免每次都要sudo) sudo usermod -aG docker $USER newgrp docker # 安装NVIDIA容器工具包 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt update sudo apt install -y nvidia-container-toolkit sudo systemctl restart docker3. 模型部署
3.1 拉取推理镜像
使用阿里云提供的优化镜像,这个镜像已经预装了所有必要的依赖:
sudo docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.043.2 下载模型文件
创建一个目录用于存放模型,然后开始下载:
# 创建模型存储目录 MODEL_DIR="/home/$(whoami)/deepseek-model" mkdir -p $MODEL_DIR sudo chmod -R 777 $MODEL_DIR # 下载模型(这步需要较长时间,耐心等待) sudo docker run -d -t --network=host --rm --name model-download \ -v $MODEL_DIR:/data \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 \ /bin/bash -c "git lfs clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git /data"查看下载进度:
sudo docker logs -f model-download当看到下载完成的提示时,按Ctrl+C退出日志查看。
3.3 启动模型服务
模型下载完成后,启动推理服务:
sudo docker run -d -t --network=host --gpus all \ --name deepseek-1.5b \ -v $MODEL_DIR:/data \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 \ /bin/bash -c "vllm serve /data \ --port 30000 \ --served-model-name DeepSeek-R1-Distill-Qwen-1.5B \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --dtype half"检查服务是否正常启动:
sudo docker logs deepseek-1.5b看到"Uvicorn running on http://0.0.0.0:30000"就说明服务启动成功了。
4. 测试模型
4.1 简单的API测试
用curl命令测试模型是否正常工作:
curl http://localhost:30000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "DeepSeek-R1-Distill-Qwen-1.5B", "prompt": "请介绍一下你自己", "max_tokens": 100, "temperature": 0.7 }'如果看到返回的JSON中包含生成的文本,说明模型运行正常。
4.2 Python客户端测试
创建一个简单的Python脚本来测试模型:
import requests import json def test_deepseek(): url = "http://localhost:30000/v1/completions" headers = {"Content-Type": "application/json"} data = { "model": "DeepSeek-R1-Distill-Qwen-1.5B", "prompt": "请用简单的话解释人工智能是什么", "max_tokens": 150, "temperature": 0.7 } response = requests.post(url, headers=headers, data=json.dumps(data)) result = response.json() print("生成的回复:") print(result['choices'][0]['text']) if __name__ == "__main__": test_deepseek()保存为test_model.py并运行:
python3 test_model.py5. 常见问题解决
5.1 显存不足问题
如果遇到显存不足的错误,可以尝试以下解决方案:
# 减少并行度并启用内存优化 sudo docker stop deepseek-1.5b sudo docker rm deepseek-1.5b sudo docker run -d -t --network=host --gpus all \ --name deepseek-1.5b \ -v $MODEL_DIR:/data \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 \ /bin/bash -c "vllm serve /data \ --port 30000 \ --served-model-name DeepSeek-R1-Distill-Qwen-1.5B \ --tensor-parallel-size 1 \ --max-model-len 2048 \ --dtype half \ --gpu-memory-utilization 0.8"5.2 端口冲突问题
如果30000端口被占用,可以更换端口:
# 停止现有容器 sudo docker stop deepseek-1.5b sudo docker rm deepseek-1.5b # 使用新端口启动 sudo docker run -d -t --network=host --gpus all \ --name deepseek-1.5b \ -v $MODEL_DIR:/data \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 \ /bin/bash -c "vllm serve /data \ --port 30001 \ --served-model-name DeepSeek-R1-Distill-Qwen-1.5B \ --tensor-parallel-size 1 \ --max-model-len 4096 \ --dtype half"5.3 模型下载中断
如果模型下载过程中断,可以重新启动下载:
# 删除未完成的下载 sudo rm -rf $MODEL_DIR/* # 重新下载 sudo docker run -d -t --network=host --rm --name model-download \ -v $MODEL_DIR:/data \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04 \ /bin/bash -c "cd /data && git lfs pull"6. 总结
整个过程走下来,其实部署DeepSeek-R1-Distill-Qwen-1.5B并没有想象中那么复杂。关键是要确保环境准备阶段的各种依赖都安装正确,特别是NVIDIA驱动和Docker环境。模型下载可能需要一些时间,毕竟有6GB多的大小,耐心等待就好。
实际使用下来,这个1.5B的模型效果还是挺让人惊喜的,响应速度快,生成质量也足够日常使用。如果你只是想本地跑个智能对话助手,或者做一些简单的文本生成任务,这个模型完全够用。
记得部署完成后,可以通过不同的温度参数来调整生成文本的创造性,温度低一些会更保守准确,高一些会更富有创意。多试试不同的参数设置,找到最适合你使用场景的配置。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。