中国移动2024算力网络大会在苏州,中国工程院院士郑纬民提到,目前有三类系统可支持大模型训练。由于基于英伟达GPU的系统一卡难求,基于国产AI芯片的系统仍面临国产卡应用不足、生态系统有待改善的问题,可通过十个软件来进行改善;因为基于超级计算机的系统,可在做好软硬件协同设计的情况下实现大模型训练,但需在超算机器尚未饱和的前提下操作。整体来看,尽管打造国产A1卡的万卡大模型训练平台难度不小。
近两年来人工智能的发展导致算力需求呈爆发性增长,其中模型研发需要配套算力;模型训练需要海量算力,如训练GPT-4需要一万块英伟达A100芯片跑上11个月;
模型精调需要可控算力;
模型推理需要可靠算力;
然而海量算力很贵。在大模型训练的过程中,70%的开销要花在算力上;推理过程中95%的花费也是在算力上。
一是半精度运算性能与双精度运算性能的平衡问题。在设计过程中,不仅要考虑半精度运算性能,还要考虑双精度运算能力,双精度与半精度运算性能之比为1∶50—1∶100为宜。“不论是自己做还是买,第一件事情就是问比例是多少。”
二是网络平衡设计:万卡系统中的万块卡不能分散在各地,将其连接起来就是所谓的网络。但连接也很有“讲究”,每块卡之间能实现直连是最好的状态。但如此一来,每块AI卡都需插上9999块连接卡,一万块AI芯片均要实现直连,所需的连接卡数量太过庞大,成本甚至还要高过万块卡本身。此外,即便资金充足,卡槽数量也无法满足需求。因此,网络设计不能只针对CNN算法,还需考虑极大规模预训练模型对系统的需求。大规模预训练模型需要高带宽低延迟网络,支持数据并行,模型并行和专家平行模式。
三是体系结构感知的内存平衡设计:一方面访问内存的请求使网络拥塞,降低吞吐量,反映到应用程序上表现为访存性能显著下降;另一方面,多个访问内存的请求可能访问同一存控对应的内存空间,负载不均,存控需要顺序处理访存请求。
四是IO子系统平衡设计:万卡系统中负载的芯片数量太大,即便是英伟达芯片,也基本会在三小时左右出现一次错误。过去,为保证训练不被中断,大模型训练厂商通常采用间隔一段时间,如2.5小时对数据进行一次保存或转移,一旦出现错误可以不必从0开始,可在保存位置继续执行。然而大模型训练数量过大,很难沿用上述操作模式。因此,万卡系统除了支持检查点操作,还需增加SSD(固态硬盘)。系统的本地NVMe SSD仅通过本地文件系统访问,限制了其应用范围,需将每台服务器上的快速本地NVMe整合为应用可见的全局分布式文件系统。
目前来看,支持大模型训练有三类系统:
一是基于英伟达GPU的系统,但这种系统硬件性能和编程生态好,但受到禁售影响,加之价格暴涨,一卡难求;
二是基于国产AI芯片的系统,尽管近年来国内二十余家芯片公司取得了很大的进步,但仍面临国产卡应用不足、生态系统有待改善的问题,构建国产万卡系统很难,但很有必要;
三是基于超级计算机的系统,当前国内约有14个国家级超算中心,性能很快且机器使用情况尚未达到饱和。若软硬件协同的设计做好,在超算机器上做大模型训练也是可能实现的。
要改善基于国产AI芯片的系统生态,这一问题其实并不“抽象”,需要做好十个软件:
1.编程框架应进一步降低编写人工智能模型的复杂度;利用基本算子快速构建人工智能模型,如PyTorch、TensorFlow。
2.并行加速,为多机多卡环境提供人工智能模型并行训练的能力;支持数据并行、模型并行、流水线并行、张量并行等,如微软的DeepSpeed、英伟达Megatron-LM。
3.通信库要提供跨机跨卡的通信能力;可支持人工智能模型训练所需各种通信模式;可根据底层网络特点充分利用网络通信带宽,如英伟达的NCCL库、超算普遍支持的MPI通信库。
4.算子库,需提供人工智能模型所需基本操作的高性能实现;能够尽可能覆盖典型人工智能模型所需的操作;算子库能充分发挥底层硬件的性能,如英伟达cuDNN,cnBLAS。
5.AI编译器,要可在异构处理器上对人工智能程序生成高效的目标代码;对算子库不能提供的操作通过AI编译器自动生成高效目标代码,如XLA、TVM。不过,郑纬民也谈到,目前国内掌握AI编译器的人才较少,实现难度较大。
6.编程语言,要提供异构处理器上编写并行程序的支持;覆盖底层硬件功能,发挥硬件性能;能够编写人工智能模型的基本算子(Operator),如英伟达的CUDA,Intel的oneAPI。
7.调度器,需具备在大规模系统上高效调度人工智能任务的能力;同时设计高效调度算法,提高集群资源利用率,如Kubernetes(K8S)、华为ModelArts。
8.内存分配系统,可针对人工智能应用特点提供高效的内存分配策略。
9.容错系统,用来提供在硬件发生故障后快速恢复模型训练的能力。
10.存储系统,需支持训练过程中高效的数据读写(检查点训练数据等)。
当前国内已经有了上述软件,但做得不够全,不够好。当务之急是先将上述软件做好,从而提高用户的使用意愿。国产AI芯片与业界领先水平存在一定差距,但若将生态做好,只要性能可以达到业界领先水平的一半或60%,客户也会愿意使用,大多数任务不会因芯片性能的微小差异而有明显感知。
视频演示显示,在某国产超算上进行大模型训练与推理时,使用超算调度系统申请512个节点来进行7B模型预训练,半精度和全精度训练效果可与英伟达平台完全对齐;与租用英伟达GPU相比,使用国产超算可节省6倍左右的成本。加载开源的百川2—7B模型进行推理,推理精度也与英伟达一致。更为关键的是,从成本角度考虑,在上述超算平台上训练大模型,只需花费英伟达系统六分之一的成本。
转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/379139.html