郑纬民:做好系统设计和软件优化,持续提升自主创新AI生态系统

科技talk 2024-12-12 19:41:03

如今,人工智能正进入一个前所未有的新时代,以大模型为代表的人工智能技术,正在各行各业加速落地,各种应用场景层出不穷。但与此同时,人工智能技术的持续进化和深度应用,以及大模型的遍地开花,也激发出对智能算力的强劲要求。

今年9月发布的《中国综合算力指数报告(2024)》显示,中国算力规模位居世界第二;其中,智能算力快速增长,同比增速超过65%。从2003年到2023年,智能算力需求的增长超过百亿倍,构成了算力增长的最主要驱动力。在这一趋势下,如何设计支持大模型训练的计算系统,如何构建自主创新的软件生态,已经成为推动人工智能大模型创新发展的“必答题”。

在日前召开的华为数字中国行2024·安徽新质生产力创新峰会上,中国工程院院士、清华大学计算机科学与技术系教授郑纬民在“支持人工智能大模型的系统软件”的主题演讲中表示,算力是大模型产业的主要开销,在构建支持大模型训练的计算系统过程中,想要持续提升自主创新AI生态系统,就需要做好系统设计和相关软件优化。

中国工程院院士、清华大学计算机科学与技术系教授郑纬民

其中,设计大模型计算系统需要考虑5个问题,包括多种精度运算性能的平衡、网络平衡设计、内存平衡设计、IO子系统平衡设计、自主创新AI计算系统;而构建自主创新软件生态则需要做好10件事情,包括编程框架、并行加速、通信库、算子库、AI编译器,编程语言,以及调度器、内存分配、容错系统、存储系统等。

进入大模型时代,算力成本居高不下

纵观整个2024年的人工智能领域,“人工智能+”行动持续推进,“百模大战”仍在继续。与此同时,大模型正加速走向落地应用,不仅在垂直领域持续走深,其应用场景也逐步走向多样化。正如郑纬民所说,人工智能已进入大模型时代。

同时,郑纬民也从技术和应用层面对大模型的发展进行了分析:一方面,AI基础大模型正在从单模态向多模态发展。比如,在文本交互方面,ChatGPT实现真正像人类一样来聊天交流;在图像创作方面,Midjourney AIGC画作《太空歌剧院》获得人类艺术比赛冠军;在视频生成方面,I2VGen-XL可以在用户上传1张图后2分钟生成高清视频。

另一方面,各行各业与AI的深度融合,正在加速行业智能化升级,创造更大价值。比如,在金融行业,在过去一年里,华为与领先金融机构深入合作,共同落地了超过100个AI智能场景,正在以大模型重塑金融的应用、终端交互及业务模式;在制造行业,华为工业AI质检解决方案可全面覆盖工业领域行为规范性检测、缺陷检测、定位、测量等场景,识别准确度达到98.5%以上。

不过,大模型的快速发展和深度应用,也给算力带来了新需求和新挑战。对此,郑纬民从大模型生命周期的五个环节入手,即数据获取、数据预处理、模型训练、模型微调和模型推理,进行了具体阐述。

在数据获取阶段,在获取不同类型的原始数据并存储的过程中,海量小文件存储对文件系统提出新需求;在数据预处理阶段,在随机读取训练样本进行预处理大数据过程中,频繁、随机小样本读取会对文件系统提出挑战;在模型训练阶段,大量数据经过模型需要海量算力;在模型微调阶段,精调垂域模型需要可控算力;在模型推理阶段,实时处理用户请求需要稳定可靠算力。

郑纬民表示,算力是大模型产业的主要开销。比如,在模型训练成本中,算力约占70%,数据占20%,人力仅占10%;而在推理阶段,算力成本更是高达95%,人工智能产业算力成本居高不下。

设计大模型计算系统需要考虑5个问题

目前,由于国外对人工智能的限制,自主创新AI系统和基于超级计算机的系统仍需优化,我国要构建支持大模型训练的计算系统仍面临不小的难题。针对这一状况,华为已经基于昇腾打造出面向“端、边、云”的全场景AI基础设施方案,覆盖深度学习领域推理和训练全流程,全方位支持大模型训练。在此基础上,郑纬民表示,要持续提升自主创新AI生态系统,需要做好系统设计和相关软件优化。其中,设计大模型计算系统需要考虑以下5个问题:

第一,多种精度运算性能的平衡。根据科学计算(AI For Science)和大模型训练的发展趋势,变精度平衡设计可以更好地适应科学计算和更广泛的AI算法和应用需求;不过,在设计中不仅要考虑半精度运算性能,还要考虑双精度运算能力,双精度与半精度运算性能之比为1:50~1:100比较合适。

第二,网络平衡设计。网络设计不能针对CNN算法,还需考虑极大规模预训练模型对系统的需求;而大规模预训练模型需要高带宽低延迟网络,并支持数据并行、模型并行和专家并行模式。

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

第四,IO子系统平衡设计。过去,在高性能机器应用时,为了避免训练不被中断,通常采用增加检查点的方法。比如,如果预期系统平均三小时出现一次错误,那么就在2.5小时左右主动停止训练,并保存训练结果。此外,还有一种办法就是增加SSD,系统的本地NVMe SSD仅通过本地文件系统访问限制了其应用范围,可将每台服务器上的本地NVMe整合成应用可见的全局分布式文件系统。

第五,如果采用自主创新AI计算系统,还需要做好10件事:包括编程框架、并行加速、通信库、算子库、AI 编译器、编程语言;以及其它支撑软件,如调度器、内存分配、容错系统、存储系统等。

自主创新软件生态需要做好的10件事

在大模型计算系统中,算力性能的发挥不仅取决于硬件,更依赖于配套的软件生态。软件生态包括操作系统、编程框架、库、工具链等,它们共同构成了AI算力的“软实力”。以华为为例,通过推出异构计算架构CANN、全场景AI框架昇思MindSpore、昇腾应用使能MindX和一站式开发平台ModelArts等,华为不仅构建起日趋完善的昇腾计算软件体系,也在昇腾计算产业生态上取得了全面进展。

在此基础上,郑纬民表示,要改善自主创新软件生态,需要做好以下10件事情。

第一是编程框架,应降低编写人工智能模型的复杂度,利用基本算子快速构建人工智能模型,如PyTorch、昇思MindSpore、TensorFlow。其中,全场景AI框架昇思MindSpore全场景AI框架昇思MindSpore具备一次开发云边端全场景部署、原生支持大模型训练、支持AI+科学计算等关键特性,可加速科研创新和产业应用。

第二是并行加速,为多机多卡环境提供人工智能模型并行训练的能力,支持数据并行、模型并行、流水线并行、张量并行等,如微软的DeepSpeed、昇腾MindSpeed、英伟达Megatron-LM。其中,昇腾MindSpeed是专为昇腾设备设计的大模型加速库,旨在突破大模型训练中的显存资源瓶颈,并加速训练过程。

第三是通信库,要提供跨机跨卡的通信能力,能够支持人工智能模型训练所需各种通信模式,能根据底层网络特点充分利用网络通信带宽,如英伟达的NCCL库、昇腾HCCL库、超算普遍支持的MPI通信库。其中,昇腾HCCL库作为基于昇腾计算的高性能集合通信库,可提供单机多卡以及多机多卡间的集合通信能力,支持大模型的数据并行、模型并行、专家并行、pipeline并行、序列并行等多种加速方案。

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

第五是AI编译器,可在异构处理器上对人工智能程序生成高效的目标代码;对算子库不能提供的操作,通过AI编译器自动生成高效目标代码,如XLA、TVM、毕昇编译器。其中,毕昇编译器作为华为提供的一款高性能、高可信及易扩展的编译器工具链,可提供深度优化的编译技术、增强多核并行化、自动矢量化等,大幅提升指令和数据呑吐量。

第六是编程语言,要提供异构处理器上编写并行程序的支持;要覆盖底层硬件功能,发挥硬件性能;能够编写人工智能模型的基本算子(Operator),如英伟达的CUDA、华为的CANN Ascend C、Intel的oneAPI。其中,异构计算架构CANN可向上支持多种AI框架,向下服务AI处理器与编程;并针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。而Ascend C算子开发语言是CANN针对算子开发场景推出的编程语言,原生支持C/C++编程规范,可极大提高算子开发效率,助力AI开发者低成本完成算子开发和模型调优部署。

第七是调度器,需提供在大规模系统上高效调度人工智能任务的能力;同时设计高效调度算法,提高集群资源利用率,如Kubernetes(K8S)、华为ModelArts等。其中,ModelArts是华为云提供的一站式AI开发平台,可提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。

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

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

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

不过,自主创新软件生态的建设是一个长期而复杂的过程,需要企业、政府和开发者社区的共同努力。如今,在生态建设上,华为已经取得了长足进展,不仅包括整机硬件伙伴、IHV硬件伙伴、应用软件伙伴、一体机解决方案伙伴以及生态运营伙伴等,还包括服务类伙伴、人才联盟伙伴、投融资运营伙伴等,以及众多高校和开发者。由此,华为也将携手生态伙伴共同推动大模型计算系统的建设,进而加速AI技术的创新和应用。

未来,正如郑纬民所说:“大模型计算系统平衡设计的5点考虑做得好,别人要用1万块卡,我们用9000卡就可以了。把10件事情做好,大模型计算系统就能做得很好。”

0 阅读:12

科技talk

简介:科技领域资深新媒体,独到观点探寻技术背后的商业秘密。