职贝云数AI新零售门户
标题:
DeepSeek与腾讯携手:让AI训练提速的通讯优化幕后故事
[打印本页]
作者:
OZQ
时间:
昨天 20:44
标题:
DeepSeek与腾讯携手:让AI训练提速的通讯优化幕后故事
大家有没有想过,我们如今用得越来越随手的AI大模型,比如能写代码、画图、跟你流利聊天的那些“智能体”,它们是怎样被训练出来、又怎样能飞快地给出呼应的?
这些模型真实是太太太庞大了!它们的参数量动辄几千亿、上万亿,假如只用一台电脑(哪怕是装备了最强GPU的电脑),根本不能够装下整个模型,更别提在合理的工夫内完成训练或推理计算了。这就像要建造一座宏伟的城市,或者管理一个国家,一个人单打独斗是相对不行的,必需要有成千上万的人分工协作。
为什么AI大模型需求“团队合作”(并行计算)?
缘由很简单,次要有两点:
1. 内存装不下! 模型的参数、训练过程中产生的中间数据(比如激活值、梯度),加起来能够远超单个GPU的显存容量。就像你的电脑硬盘不够大,装不下一切高清电影一样,单个GPU装不下整个大模型。2. 算得太慢了! 即便勉强能装下,让一个GPU一步一步计算残缺个模型的一切层级,能够需求难以接受的工夫。就像让一个人搬空整个仓库的货,效率太低。
所以,我们必须把模型“拆开”,让多个GPU一同分担计算义务,这就是并行计算(Parallel Computing)的核心思想。为了让这些GPU高效地停止团队合作,AI迷信家们和工程师们发明了几种不同的“拆模型”方法。明天我们重点聊聊最次要的两种:张量并行和流水线并行,以及一个至关重要的幕后英雄——衔接GPU的“高速公路”。
方法一:张量并行(Tensor Parallelism - TP)
打个比方: 想象你和你的同事们要一同完成一个超大的数学计算(比如矩阵乘法),这个计算太大了,一个人的草稿纸不够写,或者算起来太慢。
怎样办? 张量并行就是把这个单次宏大的计算义务(一个模型层外部的计算)“切”成几块,分给不同的GPU同时计算。每个GPU只担任计算这个大义务的一部分。最后,大家把各自计算的结果“拼”起来,得到最终的残缺结果。
• 特点: 这种方法是在模型单层外部停止计算和数据拆分。每个GPU只处理一层模型中的一部分权重和数据。• 优点: 专门用来处理单层模型太大,单个GPU无法包容或计算的成绩。• 缺陷: 计算过程中,GPU之间需求频繁地交换中间结果(比如一切GPU计算完一部分后,要把结果汇总起来才能停止下一步),这种层内频繁通讯是它的次要开支。
用图来表示张量并行的概念:
上图表示:张量并即将一个大的层内计算义务切分给多个GPU,GPU计算部分结果后需求汇集同步得到最终结果。
方法二:流水线并行(Pipeline Parallelism - PP)
打个比方: 这就像工厂里的流水线。整个大模型看作是一个复杂的消费流程,包含很多道工序(模型的不同层或模块)。
怎样办? 流水线并行就是把模型的不同层(或几层组成的模块)分配给不同的GPU,构成一个处理链条。GPU 1 计算完模型的第1层,立刻把输入结果传递给 GPU 2 计算第2层,GPU 2 算完传给 GPU 3 计算第3层……数据就像产品一样,沿着流水线依次经过不同的GPU处理。
• 特点: 这种方法是把模型按层/模块停止拆分,每个GPU担任模型不同部分的计算。• 优点: 相比张量并行,GPU之间的通讯形式相对简单:通常只需求把本人这阶段的输入传给下游的GPU。在训练时,最妙的地方在于,可以像真正的流水线一样,让不同的GPU同时处理不同批次的数据,大幅提高全体吞吐量和GPU应用率。同时,这种方式能有效应用集群中一切GPU的总显存容量。• 缺陷: 假如流水线上某个GPU算得慢,或者数据传递不及时,下一个GPU就得“等米下锅”,形成闲暇,构成所谓的**“流水线气泡”(Pipeline Bubbles)**,影响全体效率。
用图来表示流水线并行在训练时的概念(展现并行处理不同数据批次):
(, 下载次数: 0)
上传
点击文件名下载附件
上图表示:流水线并行让不同GPU同时处理不同数据批次的模型层。留意其中一些“等待”的空隙,这就是“气泡”。
虽然下面的图更简约地展现了流程,但为了更清楚地阐明并行带来的效率提升(特别是训练时如何应用流水线同时处理多个数据批次),我们再看一个更概念性的图,想象多个数据包如何在流水线中穿越:
(, 下载次数: 0)
上传
点击文件名下载附件
实际中:它们常常被“打包”运用
对于当下最大最复杂的模型,通常会结合运用这两种技术:先用张量并行处理单层过大的成绩(把一层拆到一组GPU上),再用流水线并行把这些(能够曾经过张量并行处理的)层分派到更多的GPU集群上。此外,对于像MoE(混合专家模型)这样的特殊架构,还需求用到专家并行等更复杂的并行方式,这些都对GPU之间的通讯提出了极高的要求。
为什么衔接GPU的“高速公路”如此重要?
如今我们了解了并行计算的基本原理。不管是张量并行中层内的频繁数据交换,还是流水线并行中阶段间的数据传递,亦或是专家并行中需求在不同GPU之间路由数据,一切并行方式的效率,都高度依赖于GPU之间的数据通讯。
想象一下,你担任工厂流水线上的一个环节,加工好了零件得赶紧送给下一环节的同事。假如送货的路又窄又堵(网络互连慢),或者送货的“卡车”半天发不出一趟(网卡效率低),零件就会积压在你这里,或者下一位同事干等着,整条流水线就慢上去了。即便你加工得再快(单个GPU计算才能再强),也杯水车薪。
衔接GPU的“网络互连”技术,就是决议这些并行计算效率的“高速公路”! 它决议了数据能否疾速、顺畅地在GPU之间活动。假如这条“高速公路”延迟高、带宽低、通行不波动,就会带来严重的效率成绩:
• “气泡”众多: GPU算完了,数据发不出去或收不到,就只能闲等,构成大量闲暇工夫(“气泡”),宝贵的GPU算力被糜费。• 先进优化失效: 很多高级的并行技术会尝试让计算和通讯“堆叠”,互相掩盖延迟。但假如网络太慢,再巧妙的“堆叠”也无法隐藏宏大的通讯耗时。• 资源被迫堆叠: 为了补偿低效率的网络,你能够被迫投入更多的GPU,但它们大部分工夫都在“等数据”,而不是真正在计算,形成宏大的资源糜费。
用图来表示网络通讯对效率的影响:
(, 下载次数: 0)
上传
点击文件名下载附件
上图表示:GPU间的网络传输速度直接影响下游GPU的等待工夫,进而影响其应用率和全体效率。
DeepSeek 为什么特别感激腾讯的“超高速公路”改进?
这就是为什么开源AI公司 DeepSeek 会公开感激腾讯——而且这种感激并非客套,而是源于腾讯在幕后对AI计算“高速公路”停止的硬核优化!
详细来说,DeepSeek 有一个专门用于 MoE 等模型架构的开源通讯框架,叫做 DeepEP。这个框架需求处理的是高吞吐量、低延迟的数据传输义务,是完成模型高效训练的关键。
腾讯的 Starlink Networking 团队(星脉网络团队)深化分析了 DeepEP 框架在实践高功能网络环境下的表现,就像给“高速公路”做体检。他们精准地找到了两个次要的“堵点”:
1. 网卡才能没榨干: 衔接GPU到网络的“网卡”(Network Interface Card)通常有两个物理端口,就像高速公路的入口有双车道。但他们发现,在当时的实际中,由于底层软件或配置的成绩,这两个端口的带宽才能并没有被充分应用起来,就像双车道只开了一条,或者即便开了两条,车辆调度不畅,总流量上不去。2. CPU协调不够快: 担任指挥数据如何在网络上传输的 CPU 引入了额外的延迟,就像交通指挥员的调度不够及时,导致车流迟滞。
针对这些详细的成绩,腾讯团队停止了细致且深化的优化:
• 打通双车道,添加收费口: 他们修正了底层的通讯库(NVSHMEM),让系统可以透明地(这意味着 DeepEP 下层运用几乎不用改动)同时启用网卡的全部双端口,并且建立了多个并发的数据传输通道(Multi-Queue Pair)。这就像把高速公路的双车道完全打开,并且添加了多个收费口,让海量数据可以并行涌入网络,极大地提升了传输的并发度和带宽应用率。用图来表示双网口优化的概念。
(, 下载次数: 0)
上传
点击文件名下载附件
• 处理底层库的“隐形圈套”: 他们在测试中还不测发现了一个更底层的成绩——常用的多GPU通讯库 NCCL 在晋级到某个特定版本(比如 2.22 及当前)后,DeepEP 的网络通讯功能居然会急剧下降!他们经过深化研讨,揣测是新版本中某个**“延迟衔接”**机制导致了这个成绩,并找到了经过调整环境变量等方式来绕开这个圈套、恢复高功能的有效方法。用图来表示NCCL版本带来的成绩:
异样是DeepEP框架,底层运用的NCCL库版本不同,网络传输速度能够差异宏大。
这些优化带来了什么?用数听说话:
这些看似“底层”的技术改进,却带来了惊人的实测效果:
• 首先,他们成功地**“激活”了高功能网卡上的双网口**。在此之前,即便物理上有两个接口,受限于底层软件和驱动,实践能跑出的带宽能够和单网口差不多,甚至不如一些传统的高功能网络(比如 InfiniBand)。但经过优化后,他们的处理方案可以透明地、充分地应用这两个端口,让总带严惩幅提升,并且做到了双网口环境下的功能与单网口完全持平——这意味着糜费的潜力被完全发掘出来了!经过他们的测试,在 RoCE 这种基于以太网的网络环境下,网络带宽可以波动跑到每秒 50-60GB 的超高程度,这曾经是接近实际峰值的表现了。• 更令人震惊的是,他们揭示并处理了底层通讯库带来的“圈套”。他们测试发现,运用 NCCL 2.21 版本 DeepEP 带宽能达到每秒 50-60GB 的高程度,但晋级到 NCCL 2.22 后,带宽居然断崖式下跌到每秒 30-40GB!这接近一半的功能损失,几乎就像一条本来顺畅的高速公路忽然缩窄成单车道!而腾讯团队正是发现了这个“隐形圈套”,并提供了处理方案,让即便运用新版 NCCL 也能恢复高带宽。
最终,这些优化汇总起来,带来了全体功能的分明提升。正如报道所述,在 RoCE 网络环境下,功能提升了 100%(直接翻倍);在 InfiniBand 环境下,功能也提升了 30%。详细的github Pull Request被记录在原文链接里。点击“阅读原文”可跳转。
为什么这对 DeepSeek 和整个行业重要?
• 训练速度飙升: 网络传输不再是瓶颈,GPU之间的协作更顺畅,分明加快了大模型的训练周期。• 资源应用率最大化: 流水线并行的“气泡”更小了,GPU的等待工夫减少,用有限的GPU资源可以完成更多计算义务。• 成本和效率优势: 训练得更快、GPU用得更充分,意味着可以用更少的硬件成本和更短的工夫达到目的,提供了宏大的竞争优势。一些报道提到,腾讯因此能在现有GPU上完成更高的训练效率,甚至能够减缓了新增GPU的部署速度。• 推进开源生态: 腾讯将这些经过优化的 DeepEP 框架及相关底层修正完全开源,并已成功运用在自家混元大模型的训练中。这不只验证了优化的有效性,也将其成果贡献给了整个AI社区,协助更多开发者和研讨者提升大模型训练效率。
总结一下:
AI大模型需求多个GPU并行计算。张量并行、流水线并行、专家并行等技术都需求GPU之间停止大量、高效的数据通讯。衔接GPU的网络,就是决议这些并行效率的关键“高速公路”。腾讯的 Starlink Networking 团队经过对 DeepSeek 开源 DeepEP 框架停止的底层、硬核优化,成功打通了双网口瓶颈、处理了底层通讯库的“隐形圈套”,分明提升了GPU间的通讯带宽(如 RoCE 下达到 50-60GB/s),带来了实测高达 100% 和 30% 的功能提升。这些技术打破,不只让 DeepSeek 的模型训练完成“宏大提速”,也经过开源贡献,为整个AI大模型生态的高效发展注入了弱小的动力。在AI算力日益宝贵的明天,这些提升GPU“协作效率”的幕后英雄,正扮演着越来越关键的角色!
欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/)
Powered by Discuz! X3.5