智算基石全栈加速,百度百舸 4.0 的技术探索和创新
点击蓝字,关注我们
01
硬件资源层,以高性能网络架构为核心,包括高密 AI 服务器,以及全液冷的数据中心; 集群组件层,包括百度集合通信库 BCCL,除了基础的通信能力,更重要的能支持集群的性能调优以及故障定位;以及 AI 编排和调度的组件,能实现任务混布,资源的充分利用,以及多维度的可观测能力; 训推加速层,针对大模型提供的算子库、并行策略、推理架构等,对长文本、MoE、多模态等实现全面加速; 最上面是平台工具层,实现训练任务的管理、自动容错;推理任务的不同 SLA、不同芯片的部署;以及各类应用的快速部署;为用户提供易用的使用界面。
02
规模上支持到了 10 万卡。基于 51.2T 交换芯片,采用多平面架构,单集群最大可支持 10 万卡。同时,这一代 HPN 对物理空间也实现大幅拓展,可支持 30km 内的跨地域组网; 通信上实现了完全无阻塞。网络拥塞和多路径负载不均是 RDMA 的痛点问题,通过自适应路由技术,实现了通信带宽有效率超过 95%,通信性能提升 20%; 运维上实现了毫秒级的监控。通过 10ms 级别的高精度监控,以及主动 pingmesh 探测能力,对各类网络问题,实现了秒级定位和分钟级止损的能力。
03
能把异地、异网、异构的算力聚合起来,有算力就能用; 推理的波峰波谷明显,要提升利用率,需要多种负载的混部; 推理任务和训练任务的特点,推理需要单机多模型,训练需要任务弹性。
对于异地、异网、异构的算力形态。百度百舸能构建统一的资源池,根据任务的需求和集群中的剩余资源,自动选择最具性价比的算力; 针对训推一体化的多种负载。提供了弹性队列机制,支持队列间实时的超发、抢占、隔离保障,没有任何负担的实现复杂混部策略; 面向训推任务的特点。推理引擎支持单机冷热模型部署,训练任务支持资源量伸缩;
在性能优化方面,提升高性能计算效率的方式就是通信与计算 overlap。然而,通信和计算同时进行会有资源争抢,各自的性能都有大幅下降,BCCL 通过支持多优先级队列和 channel tuning,提高了 overlap 的有效性。在 400G 大带宽网络下,进一步通过 chunk tuning 技术优化性能。最终整体实现了 5% 的性能提升。此外,对于 MoE 模型中的 alltoall 通信场景,BCCL 采用自定义的 alltoall 算子,实现了约 10% 的通信性能提升。 在稳定性和容错性方面,面对最难的 hang 以及慢节点发现,BCCL 实现了秒级的异常状态感知和故障节点锁定。这意味着在训练过程中,如果出现异常,BCCL 能够快速检测并定位问题节点。此外,网络的抖动也是不可避免的问题。BCCL 提供了秒级网络容错机制,确保在网络出现短暂故障时,训练任务能够保持持续稳定的运行,避免频繁中断。
04
首先是,一个卡出错,整个集群就得停下; 然后出错了不怕,怕的是找不到故障卡。GPU 经常会出现 hang、精度异常等静默故障频发; 完成定位后,万卡任务恢复过程中也会因为启动耗时、 checkpoint 重算带来小时级别的损失。
首先在故障感知层面,我们通过硬件全链路监控,硬件故障召回率达 95% 以上。除了硬件故障,对软件类的进程状态异常、I/O 异常、速度异常、流量异常都有全面监控,实现了任务异常秒级感知; 其次在故障定位阶段,面对最难的 hang 场景,通过 BCCL 实现了精准定位;面对最复杂的精度异常问题,通过精度异常检测定位故障卡; 最后在故障恢复阶段,有一个问题大家提到比较少,就是任务的重启时间,通过任务镜像加速分发和数据缓存加速,实现任务的快速启动恢复;还有 checkpoint 时间,通过触发式 checkpoint 技术,将故障重算损失几乎降低到 0。
万亿级模型转向 MoE 架构(mixtral、deepseek) 训练上下文窗口也从过去常见的 4K 开始增大到 128K、1M 长度等; 多模态模型也在成为主流。
首先是分布式并行策略,除了常规 3D 并行,我们还引入专家并行来支持 MoE 训练,混合序列并行来支持超长上下文。但是,他们带来的问题,都是通信量会显著提升,尤其是 MoE 的 alltoall 通信。在这些策略的实现中,我们做了极致的计算与通信并行优化,减少通信的影响; 然后是显存优化策略,长上下文带来了更多的显存开销;为了节省显存,就需要有更多的重计算或 offload ,但是他们又会带来很大的开销。为此,百度百舸针对流水线显存不均衡、重计算冗余开销、offload 卸载效率等问题分别进行了策略优化,大幅降低了显存的需求;
打通集群内的网络墙,实现异构芯片互联互通。百度百舸的 BCCL 可以实现不同芯片间零开销的数据收发;通过 CPU 转发的情况下,性能损失也在 5% 以内; 使能异构芯片充分发挥性能。通过 accelerator 抽象层,把各芯算子统一接入 AIAK 加速框架,充分发挥算力; 解决异构混训引入的负载不均问题。由于不同芯片的算力、显存和通信能力各异,我们支持 PP 异构和 DP 异构两种模式,并采用自适应并行工具,10 分钟内即可找到最优的切分策略,确保多芯混合训练的效率最大化。
05
推理的输入部分是一次全部处理,是计算密集型的;但是输出部分是自回归的,一次出一个词,是访存密集型的,对芯片的要求不一样; 作为线上系统对 SLA 有比较严格的要求:首 token 出字时间,每秒出的字数等;但是各个请求的输入、输出长度又有很大的区别; 超长文本的支持,需要大量的 KV Cache,超出了一般芯片的显存的能力。
支持多芯。AIAK 上实现了多芯的统一接入,可以更好的发挥不同芯片的特点,实现一个整体 TCO 更优的系统; 对前缀缓存的混合处理。对短上下文采用 Cache 速度快,长上下文用字典树,实现了高效的前缀管理; 请求级别的 SLA 定义。通过定义每个请求的 SLA 要求:首字时间和出字时间,自动选择系统的处理方式。
END
推荐阅读
HelixFold 3 全球首个完整复现 AlphaFold 3,百度智能云 CHPC 为人类生命探索提供算力平台支撑