端到端自适应大规模分布式训练技术
端到端自适应大规模分布式训练技术
随着 2020 年 GPT-3 1750 亿超大语言预训练模型的提出,语言、视觉、多模态等领域也随即发布多种超大规模预训练模型,不仅模型参数量越来越大,训练数据量和计算量也相应变大。针对大规模稠密参数模型高效训练问题,飞桨于 2021 年初在业内首发 4D 混合并行训练策略,即将数据并行、张量模型并行、流水线并行、分组参数切片并行等策略组合使用,取长补短,发挥各自的优势。简而言之,首先在单机内使用张量模型并行和分组参数切片组合的 2D 策略,原因是这两个策略通信量较大,适合使用机器内的卡间通信;然后为了承载千亿规模模型,再叠加流水线并行策略,使用多台机器共同分担;最后为了做到高效,在外层又叠加了数据并行来增加并发数量,提升整体训练速度。
图 15 4D 混合并行策略示意图
在 4D 混合并行训练策略的基础上,为了进一步降低用户使用门槛,同时也是为了应对模型多样性和训练硬件资源异构性,飞桨从硬件特点和算法特性的角度出发,遵循软硬结合的设计思路,提出了端到端自适应分布式训练架构。该架构可以针对不同的深度学习算法抽象成统一的计算视图,自动感知硬件环境并抽象成统一的异构资源视图;还采用了代价模型对两者进行联合建模;最后将模型参数、梯度、优化器状态按照最优策略分配到不同设备上,构建流水线进行异步高效执行。该架构可以在同地域或跨地域多种异构硬件下,达到节省存储、负载均衡、提升训练性能的目的。以鹏城 - 百度 · 文心为例,使用该架构不仅支持了多种硬件下的高效训练,还将训练性能提升到了传统分布式训练方法的 2.1 倍。
此外,针对大模型训练资源不稳定的问题,还设计了弹性资源调度管理机制。当资源发生变化时,该架构能够自动的感知硬件环境并修正资源视图,重新触发模型切分放置策略选择及异步流水线执行,使得硬件故障下任务恢复可从小时级降至秒级。
图 16 端到端自适应分布式训练架构
3.2 异构多云,实现算力和模型共享
针对多算力中心数据、算力共享面临的安全、效率挑战,飞桨推出了业内首个异构多云自适应分布式训练架构,支持云际环境下的异构硬件联合训练,实现算力共享(多个算力中心互联训练)或知识共享(云化方式利用各自的大模型)。该架构融合了混合并行训练、通信压缩、异构通信、安全加密等技术,并已在“鹏城云脑 II+百度百舸”下完成多个模型的验证。 通过算力共享方式成功训练了多语言知识融合的 ERNIE 模型,可以做到精度无损和性能基本无损。在该场景下,各算力中心会收到全量训练数据和自适应切分的不同模型网络层,并采用集合通信、模型并行等技术训练各网络层,参数服务器架构将中间层输出与梯度信息进行通信压缩和安全加密后,传递至其它算力中心,完成联合训练。多算力中心算力联合训练,将是一种更灵活的大模型训练方式。
鹏城云脑 II 和百度百舸以这种知识共享方式成功训练了英语-西班牙语翻译模型。预训练大模型也可用于其它模型高质量生产。
图 17 异构多云分布式训练示意图
3.3 高扩展性通用异构参数服务器
参数服务器架构在搜索推荐系统应用非常广泛。飞桨框架 2.0 版本推出业内首个“通用异构参数服务器”技术,可使训练任务对硬件型号不敏感,即可以同时使用不同的硬件混合异构训练。通过异构参数服务器模式,用户可以在异构硬件集群中部署分布式训练任务,目的是对不同算力的芯片高效利用,获得更高吞吐,更低资源消耗的训练能力。异构参数服务器拥有非常高的性价比,如下图所示,仅用两个 CPU 机器加两个 GPU 机器就可以达到与 4 个 GPU 机器相仿的训练速度,而成本至少可以节约 35%。
图 18 异构参数服务器与传统参数服务器性能对比
同时,飞桨在 2.3 版本中进一步提升其扩展性,主要是将其中的基础模块通用化,提升二次开发体验,高效支持产业应用中广泛的定制开发需求。以新增支持昆仑芯 XPU 的参数服务器为例,在复用通用模块的基础上,只需增加三个硬件相关的定制模块,使得开发量从原来的万行减少至千行。再比如,扩展业务场景至 GPU 图神经网络训练,仅需要在存储模块中添加图采样策略即可开发完成 GPU 三级存储图检索引擎,支持 GPU 图分布式训练。
图 19 可高效扩展的参数服务器架构
3.4 超大规模图模型训练架构
图神经网络基于顶点和边的关系进行模型训练,对图数据具有强大的表征刻画能力,广泛用于广告、推荐召回等模型场景。飞桨针对图表示学习模型训练,推出了基于 GPU 的超大规模图模型训练引擎 PGLBox 2.0,实现业内首个 SSD-MEM-HBM 3 级存储的图模型训练架构,单机可支持百亿节点、数百亿边模型规模,相比 1.0 版本速度再提升 1.6 倍,相比 MPI 训练的加速比提升 27 倍。
PGLBox 在业内率先实现了可同时支持复杂算法、超大图、超大离散模型的一体化图学习方案,基于 PGLBox 的 R-UniMP 模型提速近 10 倍,获得 NeurIPS 2022 大规模 GNN 挑战赛冠军。
图 20 图神经网络训练架构