当前位置: 首页 > 科技观察

性能提升高达6.9倍,字节跳动开源大模型训练框架veGiantModel

时间:2023-03-15 22:40:13 科技观察

背景近年来,NLP应用取得突破。模型越大,算法性能越好,于是他们开始快速向大模型方向发展,模型体积呈爆炸式增长。大模型训练给现有训练系统带来的挑战主要是内存压力、计算压力和通信压力。语言模型规模呈指数级增长(来源:https://huggingface.co/blog/large-language-models)VolcanoEngine大型模型训练框架veGiantModel针对这一需求,字节跳动AML团队内部研发了VolcanoEngine大型模型训练框架veGiantModel。veGiantModel基于PyTorch框架,是一个基于Megatron和DeepSpeed的高性能大型模型训练框架。其特点包括:同时支持数据并行、算子分段、流水线并行三种分布式并行策略,以及自动和定制的并行策略;基于ByteCCL高性能异步通信库,训练任务吞吐量比其他开源框架1.2x-3.5x提升;提供更友好、更灵活的流水线支持,减少模型开发迭代所需的人力;可以在GPU上高效支持数十亿到数千亿参数的大型模型;带宽要求低,私有化部署对RDMA不强依赖。其中,ByteCCL是字节跳动自研的BytePS的升级版。针对A100/V100等多款车型的拓扑优化分层协议,支持allgather、alltoall等更全面的通信原语。veGiantModel性能硬件配置为了演示VeGiantModel的性能,veGiantModel团队使用自建机房的物理机分别在A100和V100机型上进行了测试。实验配置如下:V100测试:每台机器8个TeslaV10032G模型GPU,网络带宽100GA100测试:每台机器8个AmpereA10040G模型GPU,网络带宽800G模型和对照组选择veGiantModelGPT-13B模型进行评估,seq长度为256,globalbatchsize为1536。GPT是目前市场上最流行的基于transformer的语言模型。性能控制组选择了开源社区中最受欢迎的Megatron和DeepSpeed。测试结果V100/TCP:100Gb/sTCP网络带宽,4台机器,8台TeslaV10032GGPUV100/RDMA:100Gb/sRDMA网络带宽,4台机器,8台TeslaV10032GGPUA100/TCP:800Gb/sTCP网络带宽,4台机器,每台机器8个TeslaA10040GGPUA100/RDMA:800Gb/sRDMA网络带宽,4台机器,每台机器8个TeslaA10040GGPU型号:GPT-13BMegatron:v2.4,tensor-model-parallel-size设置为4、pipeline-model-parallel-size设置为4DeepSpeed:v0.4.2,使用DeepSpeedExamples开源社区默认配置zero3运行环境统计:Throughtput(samples/s)从以上数据可以看出:veGiantModel性能更优:无论在高带宽还是低带宽领域,veGiantModel在V100和A100上均优于Megatron和DeepSpeed,提升高达6.9倍。veGiantModel对网络带宽要求低:veGiantModel对带宽变化对吞吐量的影响相对最小(<10%),而DeepSpeed(ZeRO)对带宽要求最高,差距高达近5倍。为什么veGiantModel比Megatron和DeepSpeed更快?原因如下:ByteCCL(BytePS)高性能异步通信库。支持自定义并行策略,将性能优化推向极致。在支持数据并行、算子分段、流水线并行三种分布式并行策略时,veGiantModel会综合考虑跨机带宽自动调整拓扑的放置。传送门veGiantModel现已在GitHub上开源,地址如下:https://github.com/volcengine/veGiantModelGitHub详细介绍了如何使用veGiantModel以及如何使用veGiantModel快速跑GPT预训练。VolcanoEngine机器学习平台原生支持veGiantModel,目前平台处于公测阶段。欢迎您试用:https://www.volcengine.com/product/ml-platform