阿里云李鹏:进一步压榨云上GPU资源,将大模型训推效率最大化丨GenAICon 2024科技2024-05-03 05:05阿里云用创新调优方法节省通信开销。2024中国生成式AI大会于4月18-19日在北京举行,在大会第二天的主会场AI Infra专场上,阿里云高级技术专家、阿里云异构计算AI推理团队负责人李鹏以《AI基础设施的演进与挑战》为题发表演讲。李鹏谈道,大模型的发展给计算体系结构带来了功耗墙、内存墙和通讯墙等多重挑战。其中,大模型训练层面,用户在模型装载、模型并行、通信等环节面临各种现实问题;在大模型推理层面,用户在显存、带宽、量化上面临性能瓶颈。对于如何进一步释放云上性能?阿里云弹性计算为云上客户提供了ECS GPU DeepGPU增强工具包,帮助用户在云上高效地构建AI训练和AI推理基础设施,从而提高算力利用效率。目前,阿里云ECS DeepGPU已经帮助众多客户实现性能的大幅提升。其中,LLM微调训练场景下性能最高可提升80%,Stable Difussion推理场景下性能最高可提升60%。以下为李鹏的演讲实录:今天我分享的是关于AI基础设施的演进和挑战。我讲的内容分三个部分:第一部分是关于生成式AI对云基础设施的挑战;第二部分是如何进一步压榨云上GPU资源的性能,保证训练和推理的效率达到最大化;第三部分是生成式AI场景下训练和推理的客户案例和最佳实践。01.算力需求规模10倍递增,带来三大计算结构挑战关于生成式AI最近的发展和行业趋势,我们看到的情况是,2023年生成式AI爆发,文生视频、文生图、文生文等场景下有很多垂类大模型或通用大模型出来。我和公司的产品团队、架构师团队与客户进行了很多技术分享和交流。我的感受是,现在很多云上客户逐渐在拥抱生成式AI场景,开始使用大模型,比较典型的行业是电子商务、影视、内容咨询、办公软件这几大部分。大模型发展对AI算力的需求方面,左边这张图是前几天GTC大会上黄仁勋展示的关于模型发展对算力的需求曲线图。2018年开始,从Transformer模型到现在的GPT-MoE-1.8T,其对算力的需求呈现出10倍逐渐递增的规模性增长,可以看出训练的需求非常大。另外,我们也做了一些估算,比如训练1750亿参数的GPT-3模型,训练的计算量大概在3640PFLOP * 天,相当于需要大概1024张A100跑1个月,达到了千卡规模。换算到成本上就是一笔巨大的计算开销。总体来看,因为当前的GPU算力价格还比较昂贵,所以推理或微调本身的成本,以及计算需求和推理部署成本也会比较高。大模型发展给计算体系结构带来挑战。首先就是功耗墙的问题。以NVIDIA的GPU举例,V100的功耗大概只有250W,A100功耗增加到400W,H100功耗达到750W,最新的B200功耗大概为1000W。可以看到,算力8年间增长1000倍,其计算功耗也会相应增加。最近有相关的讨论提到,AI的尽头是能源,计算需求的增大会带来更大的能源需求。第二个体系结构挑战就是内存墙。所谓内存墙,就是数据在CPU和GPU之间做搬移或者交换,现在PCIe的体系结构已经成为数据交换和传输的瓶颈。目前,NVIDIA已经在Grace Hoper架构上推出了NVLink-C2C的方案,能够大幅提升整个数据传输的速率。第三个是通讯墙。分布式训练的规模非常大,已经从去年的千卡规模达到了现在的万卡甚至十万卡的规模。分布式训练场景下如何增强机器之间的互连带宽有很大的挑战。从国内外厂商的进展来看,他们会在A100上采用800Gbps互连的带宽,在H100上采用3.2Tbps带宽。总结下来,现在的趋势就是硬件堆砌,会有更大的显存、更高的显存带宽、更高的CPU和GPU之间的互连带宽,同时PCIe本身也会向下迭代。以NVIDIA的GPU为例,可以看到从Ampere这一代架构到Blackwell架构的变化。算力计算规模会越来越高,从不到1P增长到1P以上;显存规格越来越高,从80GB增加到100多GB规模;显存带宽不断增加。这反映了未来AI计算上硬件规格的变化趋势。02.大模型训练的现实难题:模型装载、并行、互连第二部分是大模型训练对于云上技术的挑战。大模型训练技术栈包含Transformer模型结构、海量数据级、梯度寻优算法,这三块构成了AI训练的软件和算法。硬件就是GPU计算卡,从单卡扩展到单机8卡的服务器,再扩展到千卡、万卡互连规模的更大服务器集群,构成整个大模型训练硬件的计算资源。大模型训练中遇到的典型现实问题是模型的加载和模型的并行。以175B参数的GPT-3模型为例,其训练需要的显存规模大概为2800GB。我们可以根据A100 80GB来计算所需卡的数量。但是要解决的问题,一是我们需要多少张卡装载模型?二是装载这个模型之后如何提升训练效率?解决这个问题就需要用到模型并行技术,现在已经有各种各样的模型并行技术去解决这样的问题。三是互连的问题,有NVLink单机内部互连、机器跟机器之间的互连网络。对于分布式训练来说,这都是非常重要的问题,因为会在通信上产生瓶颈。大模型训练中的模型装载过程中,175B模型以FP16精度计算,大概需要350GB显存规模,模型梯度也需要350GB,优化器需要的显存规模大概为2100GB,合并起来大概是2800GB规模。分布式训练框架目前已经有比较成熟的方案,比如NVIDIA的Megatron-LM框架、微软开发DeepSpeed ZeRO3的算法,都可以用来解决模型装载和并行的问题。在大模型训练方式上也有比较多的并行技术,包括张量并行、流水线并行、数据并行等。在模型分布式训练过程中,我们还看到一些比较关键的问题,如集合通信性能问题。比如在TP切分中会产生一些All-Reduce(全局归约操作),这些操作夹杂在计算流当中,会产生计算中断影响计算效率,因此会有相应的集合通信算法、优化软件被开发出来,去解决集合通信性能的问题。03.显存、带宽、量化,成大模型推理瓶颈大模型推理时我们需要关注三个点:一是显存,模型参数量大小决定了需要多少显存;二是带宽,大模型推理时是访存密集型计算方式,在计算当中需要频繁访问显存,所以这种情况下带宽的规格会影响推理速度;三是量化,现在很多模型发布时除了提供基础的FP16精度的模型,还会提供量化后的模型,因为低精度量化可以省下更多显存,也可以提高带宽访问速度,这也是模型推理中业界经常会采用的一种技术。总结下来就是,大模型推理有显存瓶颈;在推理方面可以走多卡推理,训练卡也可以用在推理业务,而且会产生不错的效果。我们在做模型微观性能分析时发现,典型的Transformer-Decoder,很多大模型都是Decoder Only结构,里面包含注意力结构和MLP层。在这些算子中,我们通过微观性能分析会看到,大部分的计算都是矩阵乘操作,实际85%的耗时都是访存,进行显存读取。由于大模型推理是自回归的生成方式,上一个生成出来的Token会被用于下一个Token的计算。这种访存方式就是我刚刚提到的访存密集型计算。基于这种行为,我们会把这些注意力结构和MLP层分别进行融合,形成更大的算子后执行推理,就会显著提高计算的效率。在大模型推理的带宽需求方面,下图展示了Llama 7B在A10、A100上推理性能的对比。在不同的Batch Size下,A100和AI的比例关系基本是一条比较水平的线(图中红线)。这也可以反映A100的显存带宽和A10的显存带宽之间的比例关系,从侧面印证了大模型推理基本是访存密集型的操作,它的上限由GPU的HBM显存带宽决定。除此之外,我们还分析了大模型推理时的通信性能。这里主要说的通信性能是指单机内部的多卡推理,因为如果跑Llama 70B的模型,仅靠A10一张卡没办法装载,至少需要8张卡的规格进行装载。因为计算时做了TP切分,实际计算是每张卡算一部分,算完之后进行All-Reduce通信操作,所以我们针对这种通信开销做了性能分析。最明显的是在推理卡A10上,通信开销占比较高,达到端到端性能开销的31%。我们如何优化通信性能的开销?通常来说比较直观的方法是,如果有卡和卡之间的NVLink互连,性能自然会得到提升,因为NVLink互连带宽本身就比较高;另一个方法是,如果卡上没有NVLink,你就需要一些PCIe的P2P通信,这也能帮助提高通信开销占比。基于在阿里云上的亲和性分配调优,我们摸索出了一套调优方法,能够在4卡、8卡场景下进一步优化通信开销占比。对于视频模型,今年年初OpenAI发布Sora,虽然没有公开太多技术细节,但国外机构已经给出了其关于算力需求的分析。因为Sora的模型结构与文生图模型结构不同,其中比较显著的区别就是,从原来的UNet结构变成Diffusion Transformer结构,通过结构上的变化和算力的估算,我们看到的结果就是Sora在训练和推理上都会对算力有比较大的要求。下图是国外研究机构估计的算力需求,他们估算训练Sora这样的模型,需要大概4000到10000多张A100训练1个月。在推理需求上,如果要像Sora这样生成5分钟长视频,大概需要1张H100算1个小时。04.软硬协同优化方案,可将大模型微调效率提升80%阿里云弹性计算为云上客户在AI场景提供了关于基础产品的增强工具包DeepGPU。DeepGPU是阿里云针对生成式AI场景为用户提供的软件工具和性能优化加速方案。用户在云上构建训练或者推理的AI基础设施时,该产品就能提高其使用GPU训练和推理的效率。这非常重要,因为AI算力现阶段比较贵,我们需要通过工具包的方式帮助用户优化使用GPU的效率。我们也会提供文生图、文生文等的解决方案,并且帮助众多云上客户实现了性能的大幅提升。接下来是阿里云帮助客户进行训练微调和推理案例。第一个案例是文生图场景下的微调训练。我们将DPU和阿里云GPU结合,在客户的业务场景下帮助客户提升端到端微调的性能,大概会实现15%-40%提升。第二个案例是关于大语言模型场景的微调。很多客户想做垂直领域或者垂直场景下的大模型,会有模型微调的需求。针对这种需求,我们会做相应的定制性解决方案或优化方案,在这个场景下,客户可以通过软硬结合的优化方法,提升大概10%-80%的性能。第三个案例是关于大语言模型的推理,这个客户需要在细分场景做智能业务问答、咨询等,我们在这个场景下为客户提供了端到端的场景优化方案,从容器、环境、AI套件、DeepGPU到下层云服务器,帮助客户优化端到端推理性能,这会帮助客户提升接近5倍的端到端请求处理或推理的效率。以上是李鹏演讲内容的完整整理。(本文系网易新闻•网易号特色内容激励计划签约账号【智东西】原创内容,未经账号授权,禁止随意转载。)微信扫码关注该文公众号作者戳这里提交新闻线索和高质量文章给我们。来源: qq点击查看作者最近其他文章