支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


DeepSeek与腾讯携手:让AI训练提速的通信优化幕后故事

发布日期:2025-05-09 19:41:05 浏览次数: 1556 作者:译数据
推荐语

AI大模型训练的幕后功臣:通信优化技术揭秘。

核心内容:
1. AI大模型训练面临的内存和计算速度挑战
2. 张量并行和流水线并行两种并行计算方法
3. 连接GPU的“高速公路”在并行计算中的关键作用

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

 

大家有没有想过,我们现在用得越来越顺手的AI大模型,比如能写代码、画图、跟你流畅聊天的那些“智能体”,它们是怎么被训练出来、又怎么能飞快地给出响应的?

这些模型实在是太太太庞大了!它们的参数量动辄几千亿、上万亿,如果只用一台电脑(哪怕是配备了最强GPU的电脑),根本不可能装下整个模型,更别提在合理的时间内完成训练或推理计算了。这就像要建造一座宏伟的城市,或者管理一个国家,一个人单打独斗是绝对不行的,必须要有成千上万的人分工协作。

为什么AI大模型需要“团队合作”(并行计算)?

原因很简单,主要有两点:

  1. 1. 内存装不下! 模型的参数、训练过程中产生的中间数据(比如激活值、梯度),加起来可能远超单个GPU的显存容量。就像你的电脑硬盘不够大,装不下所有高清电影一样,单个GPU装不下整个大模型。
  2. 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)**,影响整体效率。

用图来示意流水线并行在训练时的概念(展示并行处理不同数据批次):

上图示意:流水线并行让不同GPU同时处理不同数据批次的模型层。注意其中一些“等待”的空隙,这就是“气泡”。

虽然上面的图更简洁地展示了流程,但为了更清楚地说明并行带来的效率提升(特别是训练时如何利用流水线同时处理多个数据批次),我们再看一个更概念性的图,想象多个数据包如何在流水线中穿梭:


实践中:它们经常被“打包”使用

对于当下最大最复杂的模型,通常会结合使用这两种技术:先用张量并行解决单层过大的问题(把一层拆到一组GPU上),再用流水线并行把这些(可能已经过张量并行处理的)层分派到更多的GPU集群上。此外,对于像MoE(混合专家模型)这样的特殊架构,还需要用到专家并行等更复杂的并行方式,这些都对GPU之间的通信提出了极高的要求。

为什么连接GPU的“高速公路”如此重要?

现在我们理解了并行计算的基本原理。不管是张量并行中层内的频繁数据交换,还是流水线并行中阶段间的数据传递,亦或是专家并行中需要在不同GPU之间路由数据,所有并行方式的效率,都高度依赖于GPU之间的数据通信

想象一下,你负责工厂流水线上的一个环节,加工好了零件得赶紧送给下一环节的同事。如果送货的路又窄又堵(网络互连慢),或者送货的“卡车”半天发不出一趟(网卡效率低),零件就会积压在你这里,或者下一位同事干等着,整条流水线就慢下来了。即使你加工得再快(单个GPU计算能力再强),也无济于事。

连接GPU的“网络互连”技术,就是决定这些并行计算效率的“高速公路”! 它决定了数据能否快速、顺畅地在GPU之间流动。如果这条“高速公路”延迟高、带宽低、通行不稳定,就会带来严重的效率问题:

  •  “气泡”泛滥: GPU算完了,数据发不出去或收不到,就只能闲等,形成大量空闲时间(“气泡”),宝贵的GPU算力被浪费。
  •  先进优化失效: 很多高级的并行技术会尝试让计算和通信“重叠”,互相掩盖延迟。但如果网络太慢,再巧妙的“重叠”也无法隐藏巨大的通信耗时。
  •  资源被迫堆叠: 为了弥补低效率的网络,你可能被迫投入更多的GPU,但它们大部分时间都在“等数据”,而不是真正在计算,造成巨大的资源浪费。

用图来示意网络通信对效率的影响:

上图示意:GPU间的网络传输速度直接影响下游GPU的等待时间,进而影响其利用率和整体效率。

DeepSeek 为什么特别感谢腾讯的“超高速公路”改进?

这就是为什么开源AI公司 DeepSeek 会公开感谢腾讯——而且这种感谢并非客套,而是源于腾讯在幕后对AI计算“高速公路”进行的硬核优化

具体来说,DeepSeek 有一个专门用于 MoE 等模型架构的开源通信框架,叫做 DeepEP。这个框架需要处理的是高吞吐量、低延迟的数据传输任务,是实现模型高效训练的关键。

腾讯的 Starlink Networking 团队(星脉网络团队)深入分析了 DeepEP 框架在实际高性能网络环境下的表现,就像给“高速公路”做体检。他们精准地找到了两个主要的“堵点”:

  1. 1. 网卡能力没榨干: 连接GPU到网络的“网卡”(Network Interface Card)通常有两个物理端口,就像高速公路的入口有双车道。但他们发现,在当时的实践中,由于底层软件或配置的问题,这两个端口的带宽能力并没有被充分利用起来,就像双车道只开了一条,或者即使开了两条,车辆调度不畅,总流量上不去。
  2. 2. CPU协调不够快: 负责指挥数据如何在网络上传输的 CPU 引入了额外的延迟,就像交通指挥员的调度不够及时,导致车流迟滞。

针对这些具体的问题,腾讯团队进行了细致且深入的优化:

  •  打通双车道,增加收费口: 他们修改了底层的通信库(NVSHMEM),让系统能够透明地(这意味着 DeepEP 上层应用几乎不用改动)同时启用网卡的全部双端口,并且建立了多个并发的数据传输通道(Multi-Queue Pair)。这就像把高速公路的双车道完全打开,并且增加了多个收费口,让海量数据可以并行涌入网络,极大地提升了传输的并发度和带宽利用率。用图来示意双网口优化的概念。

  •  解决底层库的“隐形陷阱”: 他们在测试中还意外发现了一个更底层的问题——常用的多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“协作效率”的幕后英雄,正扮演着越来越关键的角色!

 



53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询