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

基于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}'

相关文章:

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

首先打开魔搭社区,然后搜索DeepSeek-R1-Distill-Qwen-7B,进入详情页 官方推荐使用vllm来启动,但是手动搭建vllm环境容易出各种问题,我们这里直接找一个vllm的Docker镜像 一、拉取镜像 docker pull vllm/vllm-openai 如果拉取不…...

UART双向通信实现(序列机)

前言 UART(通用异步收发传输器)是一种串行通信协议,用于在电子设备之间进行数据传输。RS232是UART协议的一种常见实现标准,广泛应用于计算机和外围设备之间的通信。它定义了串行数据的传输格式和电气特性,以确…...

CentOS 7 全流程部署Magic-PDF数据清洗工具(附GPU加速方案)

CentOS 7 全流程部署Magic-PDF数据清洗工具(附GPU加速方案) 一、环境准备与方案选型 1.1 硬件要求 配置项最低要求推荐配置CPU4核8核内存8GB16GB存储50GBSSD/NVMeGPU可选NVIDIA T4 1.2 系统环境检查 # 查看系统版本 cat /etc/redhat-release# 检查G…...

2.1 路径问题专题:LeetCode 62. 不同路径

动态规划解决LeetCode 62题:不同路径问题 1. 题目链接 LeetCode 62. 不同路径 2. 题目描述 一个机器人位于一个 m x n 网格的左上角(起点标记为“Start”)。机器人每次只能向右或向下移动一步。机器人试图达到网格的右下角(标…...

“*(单星号)”和“**(双星号)”在Python中的灵活运用

在Python中,*和**是两个重要的运算符,它们具有不同的用途。 一、*(单星号) 1、*(单星号)作为乘法运算符 2、*(单星号) 用于解包序列或可迭代对象 ‌ 用于解包序列或可迭代对象&…...

LabVIEW多线程

在 LabVIEW 中,多线程编程是提升程序执行效率的关键手段,尤其是在需要并行处理数据采集、控制执行和用户界面交互的场景下。LabVIEW 本身是基于数据流(Dataflow)的编程语言,天然支持多线程,但要高效利用多线…...

ctfshow _萌新 萌新_密码篇

萌新_密码1 先对密文进行 Hex 解码,得到了 S1lkZjBhM2ViZDVjNGRjMTYwLUV7ZmI2M2VlMDI5OGI4ZjRkOH0 再进行 base64 解码,得到了 KYdf0a3ebd5c4dc160-E{fb63ee0298b8f4d8} 再进行栅栏解码,得到了 flag KEY{dffb06a33eeeb0d259c84bd8cf146d08…...

Transformer架构详解:从Encoder到Decoder的完整旅程

引言:从Self-Attention到完整架构 在上一篇文章中,我们深入剖析了Self-Attention机制的核心原理。然而,Transformer的魅力远不止于此——其Encoder-Decoder架构通过巧妙的模块化设计,实现了从机器翻译到文本生成的广泛能力。本文…...

蓝桥杯2024省赛PythonB组——日期问题

题目链接: https://www.lanqiao.cn/problems/103/learning/?page1&first_category_id1&name%E6%97%A5%E6%9C%9F%E9%97%AE%E9%A2%98 题目内容: 解题思路 import os import sys# 请在此输入您的代码 from datetime import datetime date_str input().str…...

带头结点 的单链表插入方法(头插法与尾插法)

带头结点的单链表插入方法(头插法与尾插法) 在单链表的操作中,插入是最常见的操作之一,本文介绍 带头结点的单链表 如何实现 后插法 和 前插法(包括 插入法 和 后插数据交换法),并提供完整的 C …...

Opencv之dilib库:表情识别

一、简介 在计算机视觉领域,表情识别是一个既有趣又具有挑战性的任务。它在人机交互、情感分析、安防监控等众多领域都有着广泛的应用前景。本文将详细介绍如何使用 Python 中的 OpenCV 库和 Dlib 库来实现一个简单的实时表情识别系统。 二、实现原理 表情识别系统…...

基于web的生产过程执行管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展,推动了很多行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的线上管理系统。当前的生产过程执行管理存在管理效率…...

C++:继承+菱形虚拟继承的一箭双雕

目录 一、继承概念与定义 1.1、什么是继承? 1.2、继承定义 二、继承关系与访问限定符 2.1、继承方式 三、基类与派生类对象的赋值转换 3.1、向上转型 3.2、对象切片 四、继承中的作用域 4.1、隐藏 五、派生类中的成员函数 5.1、构造与析构 六、继承与友…...

网络:华为数通HCIA学习:静态路由基础

文章目录 前言静态路由基础静态路由应用场景 静态路由配置静态路由在串行网络的配置静态路由在以太网中的配置 负载分担配置验证 路由备份(浮动静态路由)配置验证 缺省路由配置验证 总结 华为HCIA 基础实验-静态路由 & eNSP静态路由 基础…...

CFResNet鸟类识别:原网络基础上改进算法

​本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊​ 先放一张ResNet50模型的鸟类识别结果图 一 ResNetSE-NetBN import matplotlib.pyplot as plt import tensorflow as tf import warnings as w w.filterwarnings(ignore) # 支持中文 plt.rcP…...

C++ | 文件读写(ofstream/ifstream/fstream)

一、C文件操作核心类 C标准库通过<fstream>提供了强大的文件操作支持&#xff0c;主要包含三个关键类&#xff1a; 类名描述典型用途ofstream输出文件流&#xff08;Output File Stream&#xff09;文件写入操作ifstream输入文件流&#xff08;Input File Stream&#…...

11_常用函数

文章目录 一、概述二、字符函数2.1、获取字符串所占字节数2.2、获取字符个数2.3、拼接字符串2.4、大小写转换2.5、获取子串2.6、获取子串第一次出现的索引2.7、去除字符串前后子字符串2.7.1、去掉左侧空格2.7.2、去掉右侧空格 2.8、左右填充2.9、字符串替换 三、数学函数3.1、四…...

Android穿山甲banner广告穿插到项目的banner中

Android穿山甲banner广告穿插到项目的banner中 项目中的banner需要用第三库的banner&#xff0c;目前是在下面的banner库测试可以 implementation io.github.youth5201314:banner:2.2.2用自己写的banner会显示不了穿山甲banner的&#xff0c;我也不知道为什么。 给下banner加…...

Ubuntu 20.04 出现问号图标且无法联网 修复

在 Ubuntu 中遇到网络连接问题&#xff08;如出现问号图标且无法联网&#xff09;&#xff0c;可以通过以下命令尝试重启网络服务&#xff1a; 1. 推荐先修改DNS 编辑 -> 虚拟机网络编辑器-> VMnet8 ->NAT 设置 -> DNS 设置 -> 设置DNS 服务器 DNS填什么 取决…...

基于Contiue来阅读open-r1中的GRPO训练代码

原创 快乐王子HP 快乐王子AI说 2025年04月03日 23:54 广东 前面安装了vscode[1]同时也安装了Coninue的相关插件[2]&#xff0c;现在想用它们来阅读一下open-r1项目的代码[3]。 首先&#xff0c;从启动训练开始(以GRPO为例子&#xff09; 第一步&#xff0c;使用TRL的vLLM后端…...

51c嵌入式~单片机~合集7~※

我自己的原文哦~ https://blog.51cto.com/whaosoft/13692314 一、芯片工作的心脏--晶振 在振荡器中采用一个特殊的元件——石英晶体&#xff0c;它可以产生频率高度稳定的交流信号&#xff0c;这种采用石英晶体的振荡器称为晶体振荡器&#xff0c;简称晶振。 制作方法 …...

GRPO训练下的参考模型选择

一、普通全量微调模型 核心机制&#xff1a;模型克隆 深拷贝创建 通过create_reference_model(model)对当前模型进行完全复制&#xff08;包括所有层和参数&#xff09;。示例代码&#xff1a;import copy def create_reference_model(model):ref_model copy.deepcopy(model)…...

英菲克(INPHIC)A9无线蓝牙鼠标 链接电脑的方式

英菲克&#xff08;INPHIC&#xff09;A9鼠标链接至电脑时&#xff0c;要长按住“模式切换MODE”按钮5秒左右的时间&#xff0c;此时模式指示灯变成蓝色&#xff0c;并且闪烁。 这时使用电脑的蓝牙设置中&#xff0c;“添加设备”&#xff0c;会出现BT4.0 Mouse提示&#xff0…...

lua表table和JSON字符串互转

--print("local ssxc{\n"..string.gsub(str,":","").."\n}") Utils {} ---------------------------------------------------------------------------------- -- Lua-Table 与 string 转换 local function value2string(value, isA…...

linux命令-find指令

1.文件名和路径 参数 说明 示例 -name pattern 按文件名匹配&#xff08;区分大小写&#xff09; -iname pattern 按文件名匹配&#xff08;忽略大小写&#xff09; -path pattern 按路径匹配 -ipath pattern 按路径匹配&#xff08;忽略大小写&#xff09; find . -name &…...

【每日一个知识点】分布式数据湖与实时计算

在现代数据架构中&#xff0c;分布式数据湖&#xff08;Distributed Data Lake&#xff09; 结合 实时计算&#xff08;Real-time Computing&#xff09; 已成为大数据处理的核心模式。数据湖用于存储海量的结构化和非结构化数据&#xff0c;而实时计算则确保数据能够被迅速处理…...

【3.软件工程】3.5 V开发模型

V模型深度解析&#xff1a;测试驱动的软件开发框架 ⚙️ 一、V模型全景流程图 #mermaid-svg-IoovYFLLXyzJAePg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IoovYFLLXyzJAePg .error-icon{fill:#552222;}#mermai…...

生成对抗网络(GAN)详解(代码实现)

GANs 的基本概念 This framework can yield specific training algorithms for many kinds of model and optimization algorithm. In this article, we explore the special case when the generative model generates samples by passing random noise through a multilayer …...

leecode第18天

3274.检查棋盘方格颜色是否相同 # 给你两个字符串 coordinate1 和 coordinate2&#xff0c;代表 8 x 8 国际象棋棋盘上的两个方格的坐标。# 以下是棋盘的参考图。 class Solution:"""该类用于检查两个棋盘格子的颜色是否相同"""def checkTwoChe…...

c语言数据结构--------拓扑排序和逆拓扑排序(Kahn算法和DFS算法实现)

#include <stdio.h> #include <string.h> #include <stdbool.h> #include <stdlib.h>//使用卡恩算法(Kahn)和深度优先算法(DFS)实现//拓扑排序和逆拓扑排序//拓扑排序和逆拓扑排序顶点顺序相反//图&#xff0c;邻接矩阵存储 #define MaxVertexNum 100 …...