当前位置: 首页 > news >正文

基于Docker容器部署DeepSeek-R1-Distill-Qwen-7B

首先打开魔搭社区,然后搜索DeepSeek-R1-Distill-Qwen-7B,进入详情页

官方推荐使用vllm来启动,但是手动搭建vllm环境容易出各种问题,我们这里直接找一个vllm的Docker镜像

一、拉取镜像

docker pull vllm/vllm-openai

如果拉取不下来,则使用代理镜像

docker pull registry.dockermirror.com/vllm/vllm-openai
# 或者
docker pull dockerhub.icu/vllm/vllm-openai

二、下载模型

下载模型官方提供了多种下载方式,我这里喜欢使用SDK下载或者Git下载:

1、SDK下载

创建一个download_modelscope.py文件,然后内容如下:

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B')

执行这个文件:

python3 download_modelscope.py

默认下载到了该目录下:

:~$ ls ~/.cache/modelscope/hub/deepseek-ai/
DeepSeek-R1-Distill-Qwen-7B

 2、Git下载
git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git

使用Git下载的前提是安装了lfs,验证是否安装lfs

git lfs install

三、创建docker容器

docker run -it --gpus all --ipc host --name deepseek-r1-7b \
  -v /home/defang/faiss/data/kmys_model/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B:/app/DeepSeek-R1-Distill-Qwen-7B \
  -v /etc/localtime:/etc/localtime:ro \
  -p 38805:38805 \
  --entrypoint /bin/bash \
  vllm/vllm-openai \
  -c "CUDA_VISIBLE_DEVICES=0,1 python3 -m vllm.entrypoints.openai.api_server --model /app/DeepSeek-R1-Distill-Qwen-7B -tp 2 --host 0.0.0.0 --max-model-len 32768 --dtype half --port 38805 --gpu-memory-utilization 0.8"




1、容器配置参数
参数说明关键点
-it交互式终端模式允许用户与容器交互(如查看日志或调试)
--gpus all启用所有GPU必须安装NVIDIA Container Toolkit
--ipc host共享宿主机IPC命名空间提升多GPU张量并行性能(避免共享内存限制)
--name deepseek-r1-7b容器命名便于后续通过 docker logs 或 docker exec 操作
-v /home/defang/...挂载模型目录宿主机模型路径必须存在,且需验证读写权限
-v /etc/localtime:ro同步宿主机时区避免容器日志时间戳混乱
-p 38805:38805端口映射确保宿主机防火墙开放该端口
--entrypoint /bin/bash覆盖默认入口点调试时常用,正式运行可移除以直接启动服务
vllm/vllm-openai镜像名称需提前通过 docker pull 获取最新版本
2、vLLM服务参数
参数说明性能影响推荐值
CUDA_VISIBLE_DEVICES=0,1指定可用GPU必须与 -tp 参数数量匹配(此处使用2卡)按实际卡号设置
--model /app/DeepSeek...模型路径需验证模型格式是否为vLLM支持的HuggingFace格式绝对路径
-tp 2张量并行度2卡并行提升吞吐量,但会增加通信开销与GPU数量一致
--host 0.0.0.0监听地址允许外部访问API服务生产环境必选
--max-model-len 32768上下文窗口影响长文本处理能力(如法律合同分析)根据模型训练长度设置
--dtype half半精度推理显存占用减少50%,速度提升20%需模型支持FP16
--gpu-memory-utilization 0.8显存使用率上限防止OOM错误,留出显存余量0.8-0.9

 四、请求验证

curl http://localhost:38805/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "/app/DeepSeek-R1-Distill-Qwen-7B",
    "prompt": "Once upon a time",
    "max_tokens": 50
  }'

http://www.dtcms.com/a/109770.html

相关文章:

  • CExercise04_2数组_1 利率在投资年份内每年的资产总价值
  • 虚拟电商-话费充值业务(五)充值成功逻辑和网络异常重试逻辑
  • Spring Boot 集成Redis 的Lua脚本详解
  • HCIP-12 中间系统到中间系统基础
  • 深度学习与神经网络 | 邱锡鹏 | 第三章学习笔记
  • 根据源码分析vue中nextTick的实现原理
  • makefile , CFALGS 与 EXTRA CFLAGS
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(九)
  • 奇数和偶数的求法c++
  • MINIQMT学习课程Day2
  • 驱动开发硬核特训 · Day 1
  • 【4】搭建k8s集群系列(二进制部署)之安装master节点服务(kube-apiserver)
  • 使用 JavaScript 动态设置 CSS 样式
  • 09_TPL
  • 优质SD-WAN设备厂商推荐:Ogcloud
  • 选择网上购物系统要看几方面?
  • 7-4 BCD解密
  • 零基础玩转树莓派5!从系统安装到使用VNC远程控制树莓派桌面实战
  • [机器学习]随手记
  • NVM 多版本Node.js 管理全指南(Windows系统)
  • TP-Link TL-WR720N v3改造成无线打印伺服器
  • 【力扣hot100题】(048)二叉树的最近公共祖先
  • 硬件负载均衡:让服务像“牛顿钟”一样稳!
  • 如何重构前端项目
  • 深入解析Java哈希表:从理论到实践
  • Qt进阶开发:QDirModel的使用
  • 基于S函数的simulink仿真
  • 4.2-3 fiddler抓取手机接口
  • 【C语言入门】由浅入深学习指针 【第二期】
  • Sora结构猜测