前沿AI模型越来越大,无论是对于企业还是个人,AI模型的训练成本都越来越高。即使花巨资使用超级计算机集群,聘请专家,也难以实现AI模型的高效训练。
针对这一行业痛点,创新工场投资的潞晨科技发布了大规模并行AI训练系统——“夸父”(Colossal-AI) ,通过多维并行、大规模优化器、自适应任务调度、消除冗余内存、降低能量损耗等方式,旨在打造一个高效的分布式人工智能训练系统,作为深度学习框架的内核,帮助用户在最大化提升人工智能训练效率的同时最小化训练成本。
潞晨科技首创了“6维并行技术”,并且提出了将“系统优化”与“上层框架”和“下层硬件”解耦出来,形成一个独立的层,实现用户零成本的性能最大化方案。“夸父”是世界上并行维度最多的AI训练系统,相对于目前业界主流的英伟达Megatron,训练过程的批大小提高了13.7倍,序列长度提升3倍,内存利用率提升1.76倍,加速比提高2.32倍。目前,夸父AI为抢先体验beta版,正式版将在近期发布。
创新工场执行董事兼前沿科技基金总经理任博冰表示,在模型复杂度和算力需求快速上升的时代,潞晨科技开源的大规模并行AI训练系统“夸父”具有很高的价值,在性能上远好于现有模型,刚刚上线就在GitHub Trending Python排名世界第一。创新工场前沿科技基金专注于与科学家一起创业,通过技术和服务赋能创业者,帮助他们做出世界级的科技公司。我们相信在尤洋团队的带领下,潞晨科技会持续迈向AI训练优化的高峰,把技术转化为成果,进一步落地到场景,成为产学研紧密结合的卓越典范。
开源地址:
https://github.com/hpcaitech/ColossalAI
飞涨的模型参数和训练成本
近年来,随着AI模型从AlexNet, ResNet, AlphaGo发展到BERT、GPT、MoE …,AI能力不断提升的一个显著特征是模型参数的爆发式增长,这使得训练模型的成本也急剧上升。目前最大的AI模型智源悟道2.0参数量达到1.75万亿,而仅仅是训练1750亿参数的GPT-3,已经需要一个英伟达V100 GPU计算约335年。
模型参数的爆发式增长
由于单台机器的能力已远远无法满足日益增长的AI训练需求,科技巨头们纷纷部署了自己的超级计算机集群,如谷歌的TPU Pod、英伟达的SuperPOD等,希望通过将训练过程扩展到上千台机器,使用分布式计算提高模型的训练效率。但即便是超级计算机,也面临着当硬件堆砌到达一定数量后,效率无法进一步提升的瓶颈,浪费了大量计算资源。而分布式并行也与单机情况差异巨大,通常需要计算机系统和体系结构相关的专业人员,这进一步推高了训练成本。
超级计算机集群
夸父AI系统最终结构
夸父AI系统将作为深度学习框架的内核,构建起AI应用与硬件系统之间的桥梁,通过多维并行、大规模优化器、消除冗余内存、优化任务调度、降低能量损耗等方式,提升并行训练效率,并解耦了系统优化与上层应用框架、下层硬件和编译器,易于扩展和使用。
多维并行
目前主流的AI并行方案,如微软的DeepSpeed、英伟达的Megatron都使用3维并行,即数据并行、流水并行、一维模型并行。夸父在兼容数据并行、流水并行的基础上,进一步使用自行研发的2维模型并行,3维模型并行和2.5维模型并行。此外,针对大图片、视频、长文本、长时间医疗监控等数据,潞晨团队自研的序列并行,能突破原有机器能力限制,直接处理长序列数据。因此,夸父可以将计算并行度从原有的最高3维提升到5维甚至6维,极大提高了AI模型并行计算效率。
多维模型并行
大规模优化器
数据并行可以提升训练AI模型的批量,进而加速训练过程,但这通常会导致严重的优化问题,AI模型难以保持精度。潞晨团队自研的LAMB、LARS等大规模优化器,首次将批大小由512扩展到了65536,在极大缩短模型训练时间的同时保持精度。潞晨团队将会基于该方向的深厚积累,进一步探索推出新的大规模优化器。
LAMB优化器
优化任务调度
现有的任务调度器主要通过GPU个数判断任务规模,缺乏足够的弹性,AI任务扩展效率差。潞晨团队自研的自适应可扩展调度器,能根据批大小等因素自适应弹性扩展,并通过NCCL网络通信实现高效任务迁移。
自适应可扩展调度器
消除冗余内存
尽管英伟达最新发布的A100 GPU显存容量已高达80GB,但相比于前沿AI模型千亿、万亿的参数量,仍然远远不够。在训练过程中,除了模型参数本身,梯度、优化器状态等还会进一步严重消耗显存,不能充分利用GPU计算能力。对此,夸父使用zero redundancy optimizer技术,通过切分优化器状态,梯度,模型参数,使GPU仅保存当前计算所需要的部分,从而减少训练过程中的GPU显存消耗,提高GPU利用率。尤其是在部署模型推理时,可通过zero offload,将模型卸载到CPU内存或硬盘,仅使用少量GPU资源,即可实现低成本部署前沿AI大模型。
降低能量损耗
在分布式训练中,能耗的重要来源是数据移动,尤其是不同服务器之间的通信。夸父允许使用特大批量进行训练,能够通过减少迭代次数来减少通信次数。而多维模型并行也极大减少了通信次数。例如在1000个处理器并行时,若现有的一维模型并行,每处理器需要与其他999个处理器通信,而在夸父的3维模型并行中,每个处理器仅需与其他9个处理器通信。
数据移动是能耗的重要来源
除了节省能耗费用,由于夸父在整体上提高了处理器利用率和通信效率,能在更短时间内完成AI模型的训练,消耗更少的算力资源,因此能够极大降低用户的训练成本,节省训练时间。
易于使用
夸父不仅性能卓越,也力求易用性,无需用户学习繁杂的分布式系统知识,也避免了复杂的代码修改。仅需要极少量的改动,便可以使用夸父将已有的单机PyTorch代码快速扩展到并行计算机集群上,无需关心并行编程细节。同时,夸父也兼容单机运行,方便低成本调试和推理部署。夸父还提供了详尽的说明文档和常见模型实例,方便用户使用。
快速开始分布式并行训练
更多特性
本次发布的夸父AI系统为beta版,近期会根据用户反馈与既定计划,进行密集的迭代更新,尽早为用户提供正式版。潞晨科技会还会在未来1年内发布若干子系统,并陆续开源,最终形成面向高性能人工智能平台的丰富解决方案,充分满足用户的不同需求。
论文地址:
https://arxiv.org/abs/2110.14883
项目地址:
https://github.com/hpcaitech/ColossalAI
文档地址:
https://www.colossalai.org/
参考链接:
https://www.deepspeed.ai/
https://github.com/NVIDIA/Megatron-LM
https://huggingface.co/blog/large-language-models
https://en.wikipedia.org/wiki/Summit_(supercomputer)