【部署满血Deepseek-R1/V3】大型语言模型部署实战:多机多卡DeepSeek-R1配置指南

大家好!这里是迪小莫学AI,今天的文章是“”大型语言模型部署实战:多机多卡DeepSeek-R1配置指南“”

前言

随着大型语言模型的快速发展,如何高效部署这些模型成为技术团队面临的重要挑战。本文将分享基于DeepSeek-R1模型的多机多卡部署实践经验,帮助读者了解如何优化GPU资源利用,提高模型推理性能。

模型部署架构

硬件资源配置

为了达到最佳性能,我们采用了"每两台机器部署一个模型"的方案。实际测试表明,使用2台配备8张H100的机器,或2台配备8张H800的机器,性能表现相似,都能达到约20 token/s的总体吞吐量。

性能数据参考

单组模型(2台机器)在不同输入长度下的性能表现:

提示长度最大令牌数首令牌时间(秒)每秒令牌数总时间(秒)总令牌数
781920.3725.4091.462323
8007819211.1419.9894.241883
1180078192159.585.35664.183551

并发性能表现:

并发请求提示长度最大令牌数首令牌时间(秒)每秒令牌数总时间(秒)总令牌数
1781920.3624.3473.711794
8781920.9718.7179.8611979
16781922.7615.69117.1729496
32781922.387.97211.1554220

模型信息

DeepSeek-R1相比于DeepSeek-V3,体量相同但数据经过优化,效果有明显提升。这些模型的开源仓库可通过搜索"deepseek-ai/deepseek-v3"找到。
例如魔搭社区和抱脸社区
https://modelscope.cn/models/deepseek-ai/DeepSeek-R1/files

SG-Lang多机多卡部署

设备支持与性能优化

  • 硬件兼容性:H系列显卡支持FP8,而A100不支持。使用A100需要将FP8转换为BF16,模型大小会从642GB增加到超过1.3TB,因此需要至少4个A100节点。

  • 关键优化参数

    • --enable-dp-attention:优化重复的KV缓存和内存使用,适合高并发场景
    • --enable-torch-compile:延迟优化,提升3-4 token/s的速度
    • --grammar-backend xgrammar:实现快速结构化输出
    • --allow-auto-truncate:允许超长内容自动截断
  • 内存管理
    在显存紧张时,可使用--mem-fraction-static 0.75参数降低静态内存分配比例

Docker部署指令模板

以下是多节点部署的Docker命令模板:

# 第一个节点
docker run -itd \--name llm_node1 \--gpus all \--shm-size 32g \--network=host \-v /本地模型路径:/容器模型路径 \--ipc=host \sglang容器镜像 \python3 -m sglang.launch_server \--model-path /容器模型路径/DeepSeek-R1 \--tp 16 \--dist-init-addr 主节点IP:端口 \--nnodes 2 \--node-rank 0 \--trust-remote-code \--host 0.0.0.0 \--port 服务端口 \--allow-auto-truncate# 第二个节点
docker run -itd \--name llm_node2 \--gpus all \--shm-size 32g \--network=host \-v /本地模型路径:/容器模型路径 \--ipc=host \sglang容器镜像 \python3 -m sglang.launch_server \--model-path /容器模型路径/DeepSeek-R1 \--tp 16 \--dist-init-addr 主节点IP:端口 \--nnodes 2 \--node-rank 1 \--trust-remote-code \--host 0.0.0.0 \--port 服务端口 \--allow-auto-truncate

高级优化配置

针对性能要求更高的场景,可以添加以下优化参数:

python3 -m sglang.launch_server --model-path /path/to/DeepSeek-R1 --tp 16 \--dist-init-addr 主节点IP:端口 \--nnodes 2 --node-rank 0 \--trust-remote-code \--host 0.0.0.0 --port 服务端口 \--max-running-requests 1024 \--enable-torch-compile \--enable-flashinfer-mla \--schedule-conservativeness 0.01

推测解码优化

使用Next-N推测解码可大幅提升性能:

--speculative-algorithm NEXTN \
--speculative-draft /path/to/DeepSeek-R1-NextN \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4

实测性能对比:

优化方式并发请求首令牌时间(秒)每秒令牌数
基础配置12.1318.28
基础配置84.2111.86
推测解码10.3830.44
推测解码80.6513.69

网络优化

对于使用InfiniBand网络的集群,可添加以下环境变量优化NCCL通信:

-e NCCL_DEBUG="INFO" \
-e "NCCL_SOCKET_IFNAME=网卡名称" \
-e NCCL_IB_HCA=mlx5_0,mlx5_1,mlx5_2,mlx5_3 \
-e NCCL_P2P_LEVEL=NVL \
-e NCCL_IB_GID_INDEX=0 \
-e NCCL_IB_CUDA_SUPPORT=1 \
-e NCCL_NET_GDR_LEVEL=2

其他推理架构对比

vLLM

vLLM是另一个常用的推理框架,支持多机部署。详细信息可搜索"vLLM Distributed Serving"。

ktransformers

支持在24G显存的设备上运行DeepSeek-R1/V3模型。预处理速度最高可达286 tokens/s,推理生成速度最高能达到14 tokens/s。

优点:

  • 性能较高,追求CPU性能极限
  • 适合单用户场景

缺点:

  • 拓展性弱
  • 无法支持高并发
  • 需要新一代CPU

Unsloth

支持纯CPU、CPU+GPU混合或纯GPU模式,支持企业级并发,双卡A100可实现百人并发,每人14tokens/s,可与ollama和vllm集成。

常见问题与解决方案

进程终止问题

在某些部署环境中,可能遇到进程无法正常终止的问题。可通过修改sglang的utils.py文件中的kill_process_tree函数解决:

def kill_process_tree(parent_pid, include_parent: bool = True, skip_pid: int = None):"""Kill the process and all its child processes."""if parent_pid is None:parent_pid = os.getpid()include_parent = Falsetry:itself = psutil.Process(parent_pid)except psutil.NoSuchProcess:returnchildren = itself.children(recursive=True)for child in children:if child.pid == skip_pid:continuetry:child.kill()except psutil.NoSuchProcess:passif include_parent:if parent_pid == os.getpid():sys.exit(0)else:try:itself.kill()itself.send_signal(signal.SIGQUIT)except psutil.NoSuchProcess:pass

添加看门狗超时

为防止进程卡死,可添加watchdog参数:

--watchdog-timeout 3600  # 单位为秒,表示1小时

镜像与模型管理

镜像迁移

在无网络环境下迁移Docker镜像:

# 导出镜像
docker save -o llm_image.tar 镜像名称:标签# 导入镜像
docker load < llm_image.tar

模型迁移

使用rsync高效传输模型:

rsync -avP 源路径/DeepSeek-R1/ 目标路径/DeepSeek-R1/

总结

大型语言模型的部署是一项复杂的系统工程,需要考虑硬件资源、网络环境、软件栈等多方面因素。通过本文介绍的方法,可以在多机多卡环境中高效部署DeepSeek-R1等大模型,实现较高的推理性能和并发处理能力。

随着硬件和软件技术的不断进步,大模型部署方案也将持续演进。建议读者保持关注社区最新动态,不断优化自己的部署策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/904918.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/904918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPM IMI111T-026H 高效风扇控制板

概述&#xff1a; REF-MHA50WIMI111T 是一款专为风扇驱动设计的参考开发板&#xff0c;搭载了英飞凌的IMI111T-026H iMOTION™智能功率模块(IPM)。这个模块集成了运动控制引擎(MCE)、三相栅极驱动器和基于IGBT的功率级&#xff0c;全部封装在一个紧凑的DSO22封装中。REF-MHA50…

Linux 阻塞和非阻塞 I/O 简明指南

目录 声明 1. 阻塞和非阻塞简介 2. 等待队列 2.1 等待队列头 2.2 等待队列项 2.3 将队列项添加/移除等待队列头 2.4 等待唤醒 2.5 等待事件 3. 轮询 3.1 select函数 3.2 poll函数 3.3 epoll函数 4. Linux 驱动下的 poll 操作函数 声明 本博客所记录的关于正点原子…

互联网SQL面试题:用户会话时长分析

这是一个基于用户点击信息进行会话时长分析的案例&#xff0c;常见于互联网 App 使用分析。 问题描述 用户的访问记录存储在 user_access 表中&#xff0c;包含用户编号&#xff08;user_id&#xff09;以及访问时间&#xff08;access_time&#xff09;等信息。以下是一个示…

前端取经路——现代API探索:沙僧的通灵法术

大家好,我是老十三,一名前端开发工程师。在现代Web开发中,各种强大的API就像沙僧的通灵法术,让我们的应用具备了超乎想象的能力。本文将带你探索从离线应用到实时通信,从多线程处理到3D渲染的九大现代Web API,让你的应用获得"通灵"般的超能力。 在前端取经的第…

window 显示驱动开发-AGP 类型伸缩空间段

AGP 类型的伸缩空间段类似于线性光圈空间段。 但是&#xff0c;内核模式显示微型端口驱动程序&#xff08;KMD&#xff09;不会通过 AGP 类型的伸缩空间段公开 dxgkDdiBuildPagingBuffer 回调函数的DXGK_OPERATION_MAP_APERTURE_SEGMENT和DXGK_OPERATION_UNMAP_APERTURE_SEGMEN…

从零开始学习three.js(15):一文详解three.js中的纹理映射UV

1. UV 映射基础概念 1.1 什么是 UV 坐标&#xff1f; 在三维计算机图形学中&#xff0c;UV 坐标是将二维纹理映射到三维模型表面的坐标系统。UV 中的 U 和 V 分别代表2D纹理空间的水平&#xff08;X&#xff09;和垂直&#xff08;Y&#xff09;坐标轴&#xff0c;与三维空间…

代码复用与分层

1. 代码复用与分层 函数&#xff1a;将常用的代码块封装成函数&#xff0c;提供自己或者团队使用。 库&#xff1a;将代码打包成静态或者动态库&#xff0c;提供出来一个头文件供自己或者团队使用。比如stm32中的HAL库。 框架&#xff1a;通常实现一个完整的系统性的代码&am…

人脸真假检测:SVM 与 ResNet18 的实战对比

在人工智能蓬勃发展的当下&#xff0c;人脸相关技术广泛应用于安防、金融、娱乐等诸多领域。然而&#xff0c;随着人脸合成技术的日益成熟&#xff0c;人脸真假检测成为保障这些应用安全的关键环节。本文将深入探讨基于支持向量机&#xff08;SVM&#xff09;结合局部二值模式&…

类加载器, JVM类加载机制

1.类加载器 Java里有如下几种类加载器 1.引导类加载器 负责加载支撑JVM运行的位于JRE的lib目录下的核心类库&#xff0c;比如rt.jar、charsets.jar等 2.扩展类加载器 负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包 3.应用程序类加载器 负责加载Class…

Hadoop 2.x设计理念解析

目录 一、背景 二、整体架构 三、组件详解 3.1 yarn 3.2 hdfs 四、计算流程 4.1 上传资源到 HDFS 4.2 向 RM 提交作业请求 4.3 RM 调度资源启动 AM 4.4 AM运行用户代码 4.5 NodeManager运行用户代码 4.6 资源释放 五、设计不足 一、背景 有人可能会好奇&#xf…

串口屏调试 1.0

http://wiki.tjc1688.com 先把商家的链接贴过来 淘晶驰T1系列3.2寸串口屏tft液晶屏显示屏HMI触摸屏超12864液晶屏 这是主包的型号 打开这个玩意 有十个基本的功能区 新建工程 在界面的右边&#xff0c;指令一定要写在page前面&#xff0c;这里的波特率等等什么的都可以…

《设计数据密集型应用》——阅读小记

设计数据密集型应用 这本书非常推荐看英语版&#xff0c;如果考过了CET-6就可以很轻松的阅读这本书。 当前计算机软件已经不是单体的时代了&#xff0c;分布式系统&#xff0c;微服务现在是服务端开发的主流&#xff0c;如果没有读过这本书&#xff0c;则强力建议读这本书。 …

【SpringMVC】详解cookie,session及实战

目录 1.前言 2.正文 2.1cookie与session概念 2.2返回cookie参数 2.3设置session 3.小结 1.前言 哈喽大家好吖&#xff0c;今天继续来给大家来分享SpringMVC的学习&#xff0c;今天主要带来的是cookie与session的讲解以及通过postman和fiddler来实战&#xff0c;废话不多…

令狐冲的互联网大厂Java面试之旅

场景描绘&#xff1a;互联网大厂Java面试 在某个阳光明媚的上午&#xff0c;令狐冲来到了风清扬所在的互联网大厂&#xff0c;准备迎接他的Java开发工程师面试。风清扬是一位以严谨和深厚技术功底著称的面试官&#xff0c;令狐冲稍显紧张&#xff0c;但他相信自己的准备。 第…

照片to谷歌地球/奥维地图使用指南

软件介绍 照片to谷歌地球/奥维地图是一款由WTSolutions开发的跨平台图片处理工具&#xff0c;能够将带有GPS信息的照片导入Google Earth&#xff08;谷歌地球&#xff09;或奥维地图。该软件支持Windows、Mac、iOS、Linux和Android系统&#xff0c;无需下载安装&#xff0c;直…

客户端建立一个连接需要占用客户端的端口吗

客户端建立TCP连接时需占用本地端口&#xff0c;具体机制如下&#xff1a; 一、端口占用的必要性 四元组唯一性‌ TCP连接通过‌源IP、源端口、目标IP、目标端口‌四元组唯一标识。客户端发起连接时&#xff0c;必须绑定本地端口以完成通信标识。 动态端口分配‌ 客户端操作…

【生存技能】ubuntu 24.04 如何pip install

目录 原因解决方案说明 在接手一个新项目需要安装python库时弹出了以下提示: 原因 这个报错是因为在ubuntu中尝试直接使用 pip 安装 Python 包到系统环境中&#xff0c;ubuntu 系统 出于稳定性考虑禁止了这种操作 这里的kali是因为这台机器的用户起名叫kali,我也不知道为什么…

智能时代下,水利安全员证如何引领行业变革?

当 5G、AI、物联网等技术深度融入水利工程&#xff0c;传统安全管理模式正经历颠覆性变革。在这场智能化浪潮中&#xff0c;水利安全员证扮演着怎样的角色&#xff1f;又将如何重塑行业人才需求格局&#xff1f; 水利工程智能化转型对安全管理提出新挑战。无人机巡检、智能监测…

TDengine 在智能制造中的核心价值

简介 智能制造与数据库技术的深度融合&#xff0c;已成为现代工业技术进步的一个重要里程碑。随着信息技术的飞速发展&#xff0c;智能制造已经成为推动工业转型升级的关键动力。在这一进程中&#xff0c;数据库技术扮演着不可或缺的角色&#xff0c;它不仅承载着海量的生产数…

微调ModernBERT为大型语言模型打造高效“过滤器”

ModernBERT&#xff08;2024 年 12 月&#xff09;是最近发布的小型语言模型&#xff0c;由 Answer.AI、LightOn 和 HuggingFace 共同开发。它利用了现代优化技术&#xff0c;如用于 8,192 token 上下文窗口的 RoPE 和 GeGLU layers&#xff0c;在保持效率的同时提升性能。jina…