中国工程院院士郑纬民:做好十个软件,改善基于国产AI芯片的系统生态

每经记者 杨卉    每经编辑 杨夏    

4月28日,中国做好中国移动2024算力网络大会在苏州开幕。工程个软《每日经济新闻》记者在现场注意到,院院于国会上,士郑善基生态中国工程院院士郑纬民提到,纬民目前有三类系统可支持大模型训练。芯系统

其中,中国做好基于英伟达GPU的工程个软系统一卡难求;基于国产AI芯片的系统仍面临国产卡应用不足、生态系统有待改善的院院于国问题,可通过十个软件来进行改善;基于超级计算机的士郑善基生态系统,可在做好软硬件协同设计的纬民情况下实现大模型训练,但需在超算机器尚未饱和的芯系统前提下操作。整体来看,中国做好尽管打造国产A1卡的工程个软万卡大模型训练平台难度不小,但十分必要。院院于国

图片来源:每经记者 杨卉 摄

国产卡应用不足,生态系统有待改善

郑纬民提出,近两年来人工智能的发展导致算力需求呈爆发性增长,其中模型研发需要配套算力;模型训练需要海量算力,如训练GPT-4需要一万块英伟达A100芯片跑上11个月;模型精调需要可控算力;模型推理需要可靠算力,算力存在于大模型生命周期的每一环。

然而,海量算力背后有一个很现实的问题:贵。根据郑纬民计算,在大模型训练的过程中,70%的开销要花在算力上;推理过程中95%的花费也是在算力上,人工智能产业算力成本居高不下。

郑纬民进一步指出,要构建基于国产AI卡的万卡大模型训练平台,需要考虑到几个问题。首先是半精度运算性能与双精度运算性能的平衡问题。郑纬民强调,在设计过程中,不仅要考虑半精度运算性能,还要考虑双精度运算能力,双精度与半精度运算性能之比为1∶50—1∶100为宜。“不论是自己做还是买,第一件事情就是问比例是多少。”

第二点是网络平衡设计。

郑纬民解释称,万卡系统中的万块卡不能分散在各地,将其连接起来就是所谓的网络。但连接也很有“讲究”,每块卡之间能实现直连是最好的状态。但如此一来,每块AI卡都需插上9999块连接卡,一万块AI芯片均要实现直连,所需的连接卡数量太过庞大,成本甚至还要高过万块卡本身。此外,即便资金充足,卡槽数量也无法满足需求。因此,网络设计不能只针对CNN算法,还需考虑极大规模预训练模型对系统的需求。大规模预训练模型需要高带宽低延迟网络,支持数据并行,模型并行和专家平行模式。

第三点是体系结构感知的内存平衡设计。郑纬民强调,一方面访问内存的请求使网络拥塞,降低吞吐量,反映到应用程序上表现为访存性能显著下降;另一方面,多个访问内存的请求可能访问同一存控对应的内存空间,负载不均,存控需要顺序处理访存请求。

第四点是IO子系统平衡设计。郑纬民进一步解释称,万卡系统中负载的芯片数量太大,即便是英伟达芯片,也基本会在三小时左右出现一次错误。过去,为保证训练不被中断,大模型训练厂商通常采用间隔一段时间,如2.5小时对数据进行一次保存或转移,一旦出现错误可以不必从0开始,可在保存位置继续执行。

然而,大模型训练数量过大,很难沿用上述操作模式。因此,万卡系统除了支持检查点操作,还需增加SSD(固态硬盘)。另外,系统的本地NVMe SSD仅通过本地文件系统访问,限制了其应用范围,需将每台服务器上的快速本地NVMe整合为应用可见的全局分布式文件系统。

郑纬民分析指出,目前来看,支持大模型训练有三类系统,分别为基于英伟达GPU的系统、基于国产AI芯片的系统和基于超级计算机的系统。其中,基于英伟达公司GPU的系统硬件性能和编程生态好,但受到禁售影响,加之价格暴涨,一卡难求。而基于国产AI芯片的系统,尽管近年来国内二十余家芯片公司取得了很大的进步,但仍面临国产卡应用不足、生态系统有待改善的问题。

十大软件改善基于国产AI芯片的系统生态

郑纬民直言,要改善基于国产AI芯片的系统生态,这一问题其实并不“抽象”,需要做好十个软件。

第一是编程框架应进一步降低编写人工智能模型的复杂度;利用基本算子快速构建人工智能模型,如PyTorch、TensorFlow。

第二是并行加速,为多机多卡环境提供人工智能模型并行训练的能力;支持数据并行、模型并行、流水线并行、张量并行等,如微软的DeepSpeed、英伟达Megatron-LM。

第三是通信库要提供跨机跨卡的通信能力;可支持人工智能模型训练所需各种通信模式;可根据底层网络特点充分利用网络通信带宽,如英伟达的NCCL库、超算普遍支持的MPI通信库。

第四是算子库,需提供人工智能模型所需基本操作的高性能实现;能够尽可能覆盖典型人工智能模型所需的操作;算子库能充分发挥底层硬件的性能,如英伟达cuDNN,cnBLAS。

第五是AI编译器,要可在异构处理器上对人工智能程序生成高效的目标代码;对算子库不能提供的操作通过AI编译器自动生成高效目标代码,如XLA、TVM。不过,郑纬民也谈到,目前国内掌握AI编译器的人才较少,实现难度较大。

第六是编程语言,要提供异构处理器上编写并行程序的支持;覆盖底层硬件功能,发挥硬件性能;能够编写人工智能模型的基本算子(Operator),如英伟达的CUDA,Intel的oneAPI。

第七是调度器,需具备在大规模系统上高效调度人工智能任务的能力;同时设计高效调度算法,提高集群资源利用率,如Kubernetes(K8S)、华为ModelArts。

第八是内存分配系统,可针对人工智能应用特点提供高效的内存分配策略。

第九是容错系统,用来提供在硬件发生故障后快速恢复模型训练的能力。

第十是存储系统,需支持训练过程中高效的数据读写(检查点训练数据等)。

郑纬民直言,当前国内已经有了上述软件,但做得不够全,不够好。当务之急是先将上述软件做好,从而提高用户的使用意愿。郑纬民强调,国产AI芯片与业界领先水平存在一定差距,但若将生态做好,只要性能可以达到业界领先水平的一半或60%,客户也会愿意使用,大多数任务不会因芯片性能的微小差异而有明显感知。

至于第三种渠道,基于超级计算机的系统,根据郑纬民透露,当前国内约有14个国家级超算中心,性能很快且机器使用情况尚未达到饱和。若软硬件协同的设计做好,在超算机器上做大模型训练也是可能实现的。

郑纬民提供的视频演示显示,在某国产超算上进行大模型训练与推理时,使用超算调度系统申请512个节点来进行7B模型预训练,半精度和全精度训练效果可与英伟达平台完全对齐;与租用英伟达GPU相比,使用国产超算可节省6倍左右的成本。加载开源的百川2—7B模型进行推理,推理精度也与英伟达一致。更为关键的是,从成本角度考虑,在上述超算平台上训练大模型,只需花费英伟达系统六分之一的成本。

谈及当前智能算力行业面临的痛点,郑纬民直言,构建国产万卡系统很难,但很有必要,未来还是要繁荣国产卡的生态系统,做好软硬件的协同设计,同时解决大模型基础设施的几大问题。“虽然很难,但只要我们努力,与芯片公司合作,一定能将万卡系统做好。”郑纬民称。