大模型训练存在“资源墙”,异构智算资源集群难以聚合成池
大模型训练对算力有着极高需求,目前大模型参数量已达数千亿、上万亿规模,且数据量、参数量上升趋势仍未停止,因此在数据中心构建一个大规模资源池显得愈发重要。
当前针对特定模型训练任务构建单一类型芯片万卡集群已有相关探索,但面对日益增强的模型训练需求仍存在以下问题:一是投入-产出不均衡问题,面向特定业务构建大规模单一类型智算芯片集群需要大量人力、物力、资本等资源投入,集群建设周期长,而实际大模型业务收益相比较而言较少,大模型投入-产出-收益存在不均衡的现象。二是应用泛化性较差问题,当前建设大规模单类型芯片集群具有应用局限性,该类型集群无法根据业务需要迅速、灵活地迁移到其他模型训练场景,具有较差的泛化性。三是单类型算力集群技术栈封闭问题,当前模型训练正推进从单模态向多模态转变、序列由短序列向长序列发展、模型参数从万亿向十万亿增长、训练方式从人工反馈向自我对弈演进,由此带动算力需求成倍增长,构建万卡以上甚至超十万卡集群成为大模型技术发展必经路线,当前单厂商绑定现状存在技术栈封闭和供应链风险,对多样性算力大规模集群构建及使用提出要求。综上,研究如何充分利用数据中心已有各厂家、各代际的芯片,整合形成模型训练混合资源池成为提高数据中心各类智算芯片利用率、解决单厂商技术封闭及供应链风险的关键问题。
当前不同类型的芯片之间存在“资源墙”问题,即由于各类芯片之间存在架构设计、计算能力、数据支持类型、通信机制等差异,难以将不同类型计算资源组成一个大的混合算力资源池共同支撑大模型的训练任务,技术实现存在非均匀分布式并行设计、最优并行策略性能预测、异构算力数据高速通信等挑战。为突破“资源墙”限制,使不同智算芯片之间形成“合力”支撑更大规模模型训练,需要从异构资源合理负载均衡角度出发,从分布式并行方式、训练数据协同方式等多个方面进行详细研究。
异构智算资源软硬件差异大,混合训练面临多重挑战
传统基于同构的大模型分布式训练通常会使用多种不同的并行策略,常见有数据并行、张量并行、流水线并行、优化器并行等,实际场景中,往往会在Megatron、Deepspeed等框架中组合使用上述并行策略,从而达到最佳的并行训练效果。
此外,在通信机制方面,传统面向同构的分布式训练已有一套相对成熟的集合通信机制,包括拓扑感知、通信管理以及多种集合通信算法等。如NCCL是对Nvidia芯片适用的集合通信库,并在底层面向Nvidia硬件架构做了大量针对性优化。
然而,这些并行策略和通信机制设计局限于同架构算力资源,未考虑异构混合训练场景,要实现单一训练任务在异构资源上分布式执行,面临来自诸多方面的挑战:
一是异构混合算力集群非均匀计算任务拆解挑战。传统的分布式并行训练技术均面向单一类型智算集群,因此其对于计算任务的拆解也较为简单,只需根据集群和芯片数量对计算任务进行均匀统一拆解配置。然而对于异构混合训练场景,可能存在不同芯片之间浮点运算速度不同、支持数据类型不同等问题,因此如何对计算任务进行非均匀的拆解十分关键。
二是面向异构混合训练场景自动推荐最优并行组合策略挑战。传统分布式并行训练中,数据并行、张量并行、流水线并行等并行策略参数往往依赖于有经验的模型训练专家人为设定,其主要因为同构集群场景下,芯片数量、设备数量、芯片显存大小等影响策略参数的变量相对可控,有经验的专家可以很快估算出若干可选最优策略,并进行较少的单步训练即可判断最优配置信息。当场景变为异构算力混合时,由于变量激增、场景复杂,通过人工方式评估最优策略变得几乎难以实现,需通过预测算法求解这一NP难问题。如何通过性能预测的方式自动化得出最优的组合并行策略显得格外重要。
三是不同类型智算芯片数据高速通信协同挑战。不同厂家的芯片之间存在计算架构、互联方式等多重维度差异,而在分布式并行训练过程中,芯片之间需要进行参数同步等数据通信行为,由于异构混训场景下不同类型芯片无法互联互通,当前技术无法实现异构混训数据传输协同。因此需要综合考虑异构混训并行计算策略,设计一套面向多厂商的数据传输协同机制,实现异构混合分布式并行训练参数实时协同更新。
为解决上述诸多挑战,中国移动创新性设计并提出了一套通用的智算异构混合并行训练技术。
审稿:张昊 | 网络与IT技术研究所
本文作者