正文
在今年 2 月的 DeepSeek 开源周中,大模型推理过程中并行策略和通信效率的深度优化成为重点之一。
近日,
华为数学家出手,祭出 FlashComm,三箭齐发,解决大模型推理通算难题
:
-
FlashComm1: 大模型推理中的 AllReduce 通信优化技术
。将 AllReduce 基于通信原理进行拆解,并结合后续计算模块进行协同优化,推理性能提升 26%。
-
FlashComm2:大模型推理中以存换传的通信优化技术
。在保持计算语义等价的前提下,实现 ReduceScatter 和 MatMul 算子的计算流程重构,整体推理速度提升 33%。
-
FlashComm3: 大模型推理中的多流并行技术
。充分挖掘昇腾硬件的多流并发能力,实现 MoE 模块的高效并行推理,大模型吞吐激增 30%。
随着大语言模型(Large Language Models, LLMs)规模的指数级扩张,其部署形态也随之变化,显卡配置朝着规模化、集约化演进。从神经网络时代的单卡部署,到稠密模型时代的多卡 / 单节点部署,再到以最近发布的 DeepSeek V3/R1 模型为代表的混合专家(Mixture of Experts, MoE)模型,大语言模型甚至会采用数百卡组成的集群和超节点来部署。
可以说,模型推理早已不是「单兵作战」,而是一场高协同的「群体作战」。而在这基于集群的大模型推理中,
集合通信操作就像是一群工人协作盖房子时传递材料和信息的方式,能让多个计算节点高效配合完成任务
。
有一些常用集合通信操作,比如
全量规约(AllReduce)
可以想象成一群工人各自收集了不同区域的建筑材料数据,全量规约就是把所有工人手里的数据汇总到一个地方,进行求和、求平均值等计算。在大模型里,多个计算节点可能各自计算了一部分参数梯度,AllReduce 操作能把这些梯度汇总起来,计算出最终的梯度,用于更新模型参数。
再比如
全量收集(All-Gather)
则类似于所有工人把自己手头的材料清单共享给彼此,这样每个人都知道所有材料的情况。在大模型里,All-Gather 操作能让每个计算节点都获取到其他节点计算出的部分结果,将分散在各节点的数据聚合到所有节点。还有像
规约散射(Reduce-Scatter)
操作则相当于先把所有建筑材料按类别汇总,再重新分配给不同工人。在大模型中,Reduce-Scatter 先对数据进行规约计算,再将计算结果分散到各个节点,常用于在多个节点间分摊计算压力。也还有像
All-To-All
这样允许所有节点之间相互交换数据,让每个节点都能获取到其他节点的相关数据的操作。
这些形形色色的集合通信操作,大多用来支持在集群上运行大模型推理时的并行策略,比如常见的