大模型分离架构学习记录

news2024/11/24 15:37:16
  • GPU Direct
GPU 网络的情况已经发生了很大变化。每个 GPU 都有自己的内部互联,例如 NVIDIA 的 A100 或 H800,它们内部的 NVLink 互联可以达到 600GB 甚至 900GB。这种内部互联与外部以太网网络集群设计之间存在耦合关系。GPU 是单机多网卡的,单机内的多张网卡之间有高速互联,单个服务器的带宽可以达到 3.2T,与通用 CPU 计算带宽相比至少有 6 到 8 倍的关系。GPU 需要使用 GPU Direct RDMA 来实现显存之间的数据迁移,并且需要超短的 RTT(往返时延)。
  • redis实践
redis-banchmarh 测试中,SET 方法在使用 TCP 协议下,无论线程数或数据包大小场景下均比较稳定,在使用 SMC 协议下,提升幅度较大,达到 40% 以上,在线程数 8、数据包大小 64 情况下提升 60%。GET 方法测试结果与 SET 方法相近,性能提升趋势也基本一致。

  • DistServe实验数据

(分离式架构可以在同等TTFT和TPOT下提升吞吐)

参考文章:https://aijishu.com/a/1060000000472929

decode场景可以提高batch size (input token数)(右); 但是prefill阶段batch size很容易打到上限(左)

  • batch执行方式分析 参考

RDMA优势:吞吐+耗时均可提升

Point

  • redis使用后性能提升
  • 充分利用GPU机器上的CPU、DRAM、SSD资源实现KVCache
  • 分离后更有利于prefill和decode的独立优化
    • batch size (prefill和decode的上限不同,后者更高)
    • 并行策略优化(DP,TP,PP)
      • prefill阶段:在qps较小时,更适合用tp;在qps较大时,更适合用pp
      • decode阶段:对于decode阶段,随着gpu数量的增加,如果采用pp的方式,能产生更高的吞吐量;如果用tp,则能产生更低的延迟
  • 长prompt效果更加明显
  • 优化理论依据(什么场景下,既能省耗时又能提高吞吐)
    • 对于每 X byte 的 KVCache,其生成所需的算力正比于 X*hd 再乘以一个较大的常数,这里 hd 对应模型的 hidden dimension。因此只要每卡算力比如 A100 的 220TFLOPS 和每卡通讯带宽比如 CX7 的 100Gbps 的比值小于 hd 乘以这个常数,那么从远端传输 KVCache 相比原地重算不仅仅减少了计算量还减少了 TTFT。 参考
    • 分为算力和耗时两个层面
      • 算力指生成KVCache的算力一定小于直接从缓存读取KVCache的算力
      • 耗时指生成KVCache的耗时 需要大于 直接从缓存读取KVCache的耗时

SMC (共享内存通信)和RDMA的关系? 答:RDMA就是一种远程SMC

  • 借助 SMC + ERDMA 可以实现硬件卸载 RDMA 、大规模部署,二者相辅相成。
  • 开源:https://gitee.com/anolis/hpn-cloud-kernel 龙蜥社区
  • 系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术
  • 性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈

名词

  • TOE(TCP Offload Engine)是指TCP卸载引擎。它是一种网络技术,通过将TCP/IP协议栈的一部分处理任务从主机的CPU卸载到网卡; 也就是RDMA
  • NVLink :在单台服务器内 8 块 GPU 卡通过 NVLink 连接。不同服务器之间的 GPU 卡通过 RDMA 网络连接。
  • SLO(Service Level Objective) 服务水平目标
  • TTFT(Time To First Token) prefill首token耗时
  • TPOT(Time Per Output Token) decode 每token耗时
  • TBT (Time Between Tokens) 两个 token 生成间的延迟
  • DP 数据并行
  • TP 张量并行
  • PP 流水线并行
  • MFU(Model FLOPs Utilization):即模型算力利用率
  • VRAM (video Ram) : 显存

模型推理提效的其他方式 参考

  • vLLM 提出了 Paged Attention 算法,将 attention 算法产生的连续的 key value 向量按照 block 进行组织和管理,以减少显存碎片。vLLM 还借鉴操作系统当中的虚拟内存和分页思想优化 Transformer 模型推理中产生的 KeyValue Cache,大大提高了显存当中 KV Cache 的利用效率。但 vLLM 是基于单机层面上设计,只能将 GPU 中的 block swap 到单机的内存当中。
  • SplitWise(微软)、DistServe 和 TetriInfer 将 prefill 和 decode 分离到不同的 GPU 组中以避免干扰,但它们的静态并行性和分区策略并不灵活,无法处理动态工作负载。
  • Infinite-LLM 针对 long context 场景提出分布式 DistAttention,将 KV Cache 分割成 rblock,一个 node 可以借用别的 node 上的空闲显存。但它没有做 prefill/decode 分离,并且仍然需要周期性的 KV Cache 迁移来维持局部性,并且没有考虑不同请求之间或不同阶段之间的弹性资源需求。

文章参考

  • 大模型合并及分离架构对比 https://juejin.cn/post/7408775736796872738
  • cpu_bound memory_bound及gpu计算方式讲解 https://mp.weixin.qq.com/s?__biz=Mzg2NjcwNjcxNQ==&mid=2247485453&idx=1&sn=beb642f06f3501bd235a8f42973e39fb&chksm=ce47fc79f930756f991d93f69cad36409e3dcb58e517f41f583d29609b360e9b46f6777a42b4&scene=21&poc_token=HNlC4GajIEkUH4b-GWWVXmEgS4TiLmElCs4-jRUa
  • 大模型优化方式讲解:DP、TP、PPhttps://zhuanlan.zhihu.com/p/618865052

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

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

相关文章

Mini打印机复刻过程(外设绘制)

充电管理 充电管理模块采用ME4054BM5G-N 典型应用电路 ME4054B-N的典型应用电路中,输入为4.5V-6.5V,用于给4.2V的锂电池充电。关键元件包括: LED指示灯:通过1kΩ电阻限流,显示充电状态。2kΩ电阻(PROG引脚…

视频孪生市场有望达千亿级

近日,中国互联网协会数字孪生技术工委会副主任委员、智汇云舟创始人兼总裁周舟对数字孪生技术的市场潜力与发展前景进行了深度剖析。她表示,在国家政策与全球数字化转型的双重推动下,数字孪生技术发展迅速,市场潜力巨大&#xff0…

如何将任何文本语料转换为知识图谱?

转自:吴建明利驰软件 几个月前,基于知识的问答系统(Knowledge Base Question Answering,KBQA)还是个新概念。 现在,随着大型语言模型(LLMs)的发展,带有检索增强生成&am…

实用类工具!目前5款很火的AI写论文网站测评

在当今科技飞速发展的时代,人工智能(AI)技术已经深入到各个领域,包括学术研究和论文写作。AI论文写作工具的出现极大地提高了写作效率,帮助学者们快速生成高质量的论文内容。以下是五款非常受欢迎且功能强大的AI论文写…

MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一性、主键、外键、检查约束),基础+实战

教程来源:B站视频BV1Vy4y1z7EX 001-数据库概述_哔哩哔哩_bilibili 我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享 本文内容为完整笔记的第八篇的第一部分 目录 1、表怎么进行连接的 2、insert语句可以一次插入多条记…

深入探索 Ubuntu:从基础到高级应用

本文深入探讨了 Ubuntu 操作系统,涵盖了其起源与发展、安装与配置、软件管理、系统优化、网络配置、安全防护以及在不同领域的应用等多个方面。 在起源与发展部分,介绍了 Ubuntu 于 2004 年创立的背景以及其版本的演进。安装与配置环节详细阐述了系统安…

SprinBoot+Vue药房管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…

R语言论文插图模板第10期—正负柱状图

在之前的文章中,分享了R语言各式柱状图的绘制模板: 进一步,再来分享一种特殊的柱状图:正负柱状图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。…

改进三极管搭建的简易电流源特性

目录 一、用三极管搭建简易电流源的缺点二、改进电流源特性 一、用三极管搭建简易电流源的缺点 此前文章《用三极管搭建电流源》的电路是存在缺陷的,温度变化和Early效应会影响电路的性能和稳定性。主要表现如下: 基极-发射极之间的压降会随着温度的变化…

AI性能评估工具 | 安兔兔AI大模型评测 v1.0.0.1095

安兔兔AI大模型评测是一款性能评估软件,专注于对设备在CPU、GPU及专属AI加速器上的AI处理能力进行全方位测试与评估。该软件精确评估设备的AI计算能力,助力用户深入理解设备在执行AI任务时的表现。 借助评测数据,用户能够清晰地掌握设备的AI…

【机器学习导引】ch2-模型评估与选择

文章目录 经验误差与过拟合 (Empirical error &overfitting)1. **均方误差(Mean Squared Error, MSE)**2. **均方根误差(Root Mean Squared Error, RMSE)**3. **平均绝对误差(Mean Absolute…

虚拟存储器“大观”,讲解核心逻辑知识和408大题方法

虚拟存储器 写在前面:虚拟存储器(Virtual Memory)是计算机系统中用于管理内存的一种技术,它通过虚拟地址空间为进程提供比物理内存更大的地址空间,同时实现内存保护和进程隔离。 在408整个体系中计组和操作系统都有涉…

飞书项目管理使用攻略

文章目录 项目管理项目管理的方法和工具项目管理方法:项目管理工具 飞书项目管理平台 创建空间需求管理缺陷管理人员排期飞书也可以创建敏捷开发管理. 项目管理 项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件…

自动化立体仓库定义及使用范围

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 这份文件是关于自动化立体仓库的定义、发展、组成、技术性能、应用领域、供货方式以及设计步骤的详细介绍。以下是核心内容的概要&#…

基于Qt的自定制WPS

前言 正文 项目实现:项目实现了文件的新建,打开,保存,另存为,以及字体的设置,字体加粗,字体倾斜,字体颜色,还有对齐方式等功能 项目效果: ​ 项目地址&…

企业微信应用消息收发实施记录

一、前置配置 1.1 进入我的企业页面,记录下企业ID。 1.2 创建企微应用,记录下应用的 AgentId 和 Secret。 1.3 设置应用的企业可信IP,将服务器公网 IP 填入即可。 1.4 设置应用接收消息API 填入服务器 API 地址,并记录下随机获取…

PAT甲级-1012 The Best Rank

题目 题目大意 学生有C、M、E三个成绩,A是这三个成绩的平均值。要求对每个学生的C、M、E、A分别排名,取这4项的最高排名为最优排名。如果一个学生有多项排名一样,按照A > C > M > E的优先级输出最优排名。 输入给出学生人数和查询…

派遣函数-编写一个更通用的派遣函数

前面介绍的派遣函数处理过于简单,下面带领读者对派遣函数一步步进行扩充。首先介绍一个重要数据结构--IO_STACK LOCATION,即I/O堆栈,这个数据结构和IRP紧密相连。 在前面,曾经介绍过驱动程序的层次结构。驱动对象会创建一个个的设备对象, 并将…

前端单独实现 vue 动态路由

前端单独实现 vue 动态路由 Vue 动态路由权限是指在 Vue 应用程序中,根据用户的权限动态生成和控制路由的行为。这意味着不是所有的路由都在应用启动时就被硬编码到路由配置中,而是根据用户的权限信息,在运行时动态地决定哪些路由应该被加载…