摘要
人工智能(ai)方法在科学应用中变得至关重要,有助于加速科学发现。大语言模型(llm)由于其跨领域的卓越泛化能力,被认为是解决一些具有挑战性的问题的很有前景的方法。模型的有效性和应用程序的准确性取决于它们在底层硬件设备上的有效执行。专门的人工智能加速器硬件系统可用于加速人工智能相关应用。然而,这些人工智能加速器在大语言模型上的性能比较此前尚未被研究过。在本文中,我们系统地研究了多个人工智能加速器和gpu上的llm,并评估了它们在这些模型中的性能特征。我们用(i)使用transformer block的微基准、(ii)gpt-2模型和(iii)llm驱动的科学用例genslm来评估这些系统。文章展示了我们对模型性能的发现和分析,以更好地理解人工智能加速器的内在能力。此外,我们的分析也考虑了关键因素,如序列长度、缩放行为、稀疏性和对梯度累积步骤的敏感性。
i.介绍
将人工智能(ai)用于科学已经引起了科研机构和超级计算设备越来越多的兴趣,目的是通过涉及ai的新方法加速科学发现。这种协同作用增加了人们对采用新型人工智能驱动技术的兴趣,以帮助开发复杂科学问题的解决方案,如蛋白质结构预测、宇宙学参数预测、中微子粒子检测、医学药物设计、基因组模型和天气预报模型等。最常用的人工智能技术包括进化神经网络、递归神经网络、图神经网络和大语言模型(llm),这些技术以其独特的结构特征,能够有效帮助科学家进行研究。近年来,人工智能中的自然语言处理领域经历了巨大的增长,这极大促进了llm的发展,使其能够用于各种任务,如问答、文本摘要和语言翻译。这些模型在科学的ai应用中将变得越来越重要。
llm,如generative pre-trained transformers(gpt)gpt-3、llama、llama 2和bloom,其复杂性以及模型输出结果质量都有了巨大的提高。这种增长的部分原因是基于transformer的模型的迅速发展,它既是传统应用程序的事实架构,也是科学用例的有力工具。从加速药物发现到理解基因序列,基于transformer的架构已经部署在许多应用上。例如,genslm提供了一个基于llm的基础模型来预测sars-cov2变异毒株。它的优势在于它能够为设计有效的抗病毒药物提供信息。genslm模型是在超过1.1亿个原始核苷酸序列的广泛数据集上训练的,模型规模在2500万至250亿个可训练参数之间。然而,训练具有大模型参数和较长序列长度的gpt变体llm需要专门的计算资源和软件堆栈,从中实现技术创新和优化。
为了满足这些需求,出现了基于非传统架构(如数据流)设计的人工智能加速器。这些加速器是定制的,以其强大的硬件计算引擎和新颖的软件优化有效支持人工智能工作负载。它们被证明可以有效地训练多种人工智能模型,其中特别关注llm的训练。凭借其独特的系统特性,这些人工智能加速器能够应对llm带来的挑战。这些加速器除了提供一套预先训练的gpt模型外,还能够运行一些最大规模的gpt模型。这些模型展示了人工智能加速器的多功能性和可扩展性。随着llm的规模和复杂性的增加,创新的训练技术变得至关重要,以进一步增强具有数十亿参数的llm的训练。
在不同的硬件平台上评估llm对于理解传统和非传统体系结构的能力和局限性至关重要。先前的工作已经在超级计算机上研究了llm,并使用传统的深度学习基准来提供对其能力的详细评估与分析。然而,之前的研究尚未对各种人工智能加速器进行全面评估,尤其是llm。本文旨在通过对多个人工智能加速器上的大语言模型进行详细的性能评估来解决这一差距,这是我们所知的第一个此类基准研究。本文的主要贡献是:
对最先进的人工智能加速器上的llm进行了系统评估。
专注于transformer block微基准,它是基于gpt的模型中的核心组件。
对gpt-2 xl 1.5b参数模型进行全面评估,以深入了解所有系统的模型性能。
科学应用的移植和评估:genslm,基因测序的基础模型。
研究序列长度、稀疏性和梯度累积步骤对模型吞吐量的影响。
我们在第二节中概述了llm和各种人工智能加速器,然后在第三节中介绍了评估模型的细节,即transformer block微基准、gpt-2xl和genslm应用。我们在第四节中描述了llm在不同人工智能加速器上的实现。我们在第五节中展示了实验结果,然后在第六节中给出了结论。
ii.大语言模型和人工智能加速器综述
大语言模型是一种使用深度学习算法处理和生成自然语言文本的人工智能系统。近年来,由于这些模型能够执行广泛的语言相关任务,如机器翻译、文本摘要和问答,因此它们越来越受欢迎。深度学习技术的进步推动了大语言模型的发展,特别是在transformer模型领域。这些模型使用自注意力机制来处理文本输入,使它们能够捕捉语言数据中的复杂模式和关系。他们还使用无监督学习技术在大型数据集上进行预训练,如掩蔽语言建模和上下文预测,这有助于他们学习广泛的语言特征和结构。对特定任务进行微调可以进一步提高它们的性能和适应性。
最著名的llm之一是gpt(generative pretrained transformer)系列,它由openai开发,用于回答问题、翻译语言和生成文本。这些任务是通过在未标记文本的不同数据语料库上生成语言模型的预训练来实现的,然后对特定任务进行有区别的微调。微调过程中的任务感知输入转换有助于在对模型架构进行最小更改的情况下实现有效转移。由于神经元结构的差异,gpt模型可以大致分为gpt、gpt-2、gpt-3和最近的gpt-4。
由基于gpu的系统和新型非传统人工智能硬件(如数据流架构)组成的人工智能加速器已被证明可以提高各种人工智能模型的效率。下面我们将介绍本研究中使用的加速器,配置列于表i中。
表一:评估的人工智能加速器的特性
nvidia a100:a100 gpu由6912个cuda内核和432个tensor内核组成,用于加速并行工作负载。在单个dgx节点上,有4个a100 gpu,与nvlink互连。我们使用微软megatron-depspeed框架的分叉实现进行评估。在这样做的过程中,我们可以充分利用deepspeed的各种优化和方便的功能,如zero卸载和自动度量跟踪(带有通信+flop分析)。所有实验都是在argonne leadership computing facility(alcf)的polaris超级计算机上进行的,每个节点有4个a100 gpu和40 gb内存。
cerebras cs-2:cerebras cs 2是一款晶圆级深度学习加速器,包括85万个处理内核,每个内核提供48kb的专用sram内存,芯片总容量为40gb,并相互连接以优化带宽和延迟。该系统已扩展到通过swarmx结构和memoryx存储子系统互连的两个cs-2 waferscale引擎节点,以启用大型模型。晶圆级集群支持重量流执行模式,其中每个模型层逐个加载。该功能允许用户运行大语言模型,其中每一层的权重都适合内存,但不适合整个模型。该软件平台集成了流行的机器学习框架,如pytorch。对于单个cerebras cs-2,支持的最大模型是gpt-3(175b参数模型),cs-2可以支持高达58k的序列长度。
sambanova sn30:sambanova datascale系统使用第二代可重构数据流单元(rdu)处理器来实现最佳的数据流处理和加速。每个rdu具有1280个模式计算单元(pcu)和1tb的片外存储器。该系统由八个节点组成,每个节点有八个互连的rdu,以实现模型和数据的并行性。sambaflow,其软件堆栈,从pytorch机器学习框架中提取、优化数据流图并将其映射到rdu。sn30可以在4个rdu上训练多达176b参数的模型。
graphcore bow pod64:graphcore22 pb级的bow pod 64系统是graphcore的最新一代加速器。它是一个单机架系统,由64个带有自定义互连的bow级ipu组成。graphcore软件堆栈包括poplar sdk,并支持tensorflow和pytorch。bow系统目前支持具有256个ipu的gpt-3 175b参数模型。
habana gaudi2:habana godi2处理器具有两个矩阵乘法引擎(mme)、24个完全可编程的vliw simd张量处理器内核,将24个100 gbe端口的聚合以太网rdma(roce)集成到每个处理器芯片中,以有效扩展训练。gaudi系统由一个hls-2服务器和八个gaudi hl-225h卡组成。软件堆栈包括synapseai堆栈,并支持tensorflow和pytorch。它支持现有的深度学习优化库deepspeed和定制库optimum habana,后者是transformer库和habana的gaudi处理器(hpu)之间的接口。在gaudi系统上,目前验证的最大模型是在384张gaudi 2卡上运行的gpt-3(175b参数模型)。
amd mi250:amd mi250 gpu基于cdna2架构,由分布在208个计算单元上的13312个流处理器组成,并配有128 gb专用hbm2e内存,内存带宽为3.276 tb/s。它能够实现fp16的362.1 tflops和fp32的45.3 tflops的峰值性能。每个gpu使用pcie gen4连接到主机,并使用infiniband进行节点间通信。amd rocm开放软件平台支持常见的dl堆栈,包括tensorflow和pytorch,以及rocblas、rocsparse、rocfft和rccl(rocm集体通信库)等库。
iii. 评估
在这项工作中,我们主要关注评估(i)transformer基准,(ii)gpt 2-xl模型,以及(iii)科学应用genslm(这是一种基因组测序的基础模型)。
(1) transformer微基准:要评估ai加速器上transformer基准的性能,必须考虑几个关键因素。首先,重要的是选择适当的微型基准,以反映所使用的transformer模型的工作量。一旦选择了合适的微基准,就有必要收集性能指标,例如吞吐量,这可以通过测量每秒处理以完成一定数量迭代的输入数量来完成。此外,监控硬件资源(如内存和计算单元)的利用率也很重要。最后,建议将传统nvidia gpu的性能与其他ai加速器进行比较,以更全面地了解它们的优缺点。通过仔细评估这些因素,可以有效预测ai加速器上transformer模型的性能。
transformer block(图1)是基于transformer模型的一个广泛认可和建立的微观基准。由于几个原因,transformer block是微型基准的理想选择。首先,它是自然语言处理任务(如语言建模和文本生成)中广泛使用的构建块,使其成为许多llm应用程序的相关基准。其次,与较大的transformer模型相比,transformer block相对简单且尺寸较小,这使得运行和评估更容易。这也允许在评估新硬件架构时进行更快的实验。最后,transformer block包括transformer模型的许多关键组件,包括自注意层和前馈层,使其成为transformer模型的合适代表。总的来说,transformer block是一个公认且广泛接受的微型基准,是评估llm模型性能的绝佳选择。
图1:gpt transformer block
transformer block由一个多头自注意层和一个前馈神经网络层组成。transformer block的输入是一个令牌序列。在这项工作中,我们评估的输入序列的长度为1024。为了计算transformer block的flop,我们需要考虑每层所需的操作次数。自注意层需要o(n2d)flop,其中n是序列长度,d是隐藏维度。前馈神经网络层需要o(ndk)flop,其中k是隐藏层的大小。因此,transformer block的flop的总数为o(n2d+ndk)。
(2) gpt-2xl:在这项研究中,我们使用gpt-2xl 1.5b参数模型进行预训练实验,以分析加速器在运行大语言模型时的性能。尽管如第二节所述,被评估的系统可以单独支持更大的模型和不同的配置,但我们选择gpt-2 xl是因为它可以及时在每个系统上轻松实现,以便进行公平的比较。此外,gpt-2大小的模型的内存和计算需求与每个系统上的最小计算单元节点非常匹配;因此,这里获得的测试结论可以扩展,以帮助推动选择加速器的决策,这些加速器可以为任何给定的基于transformer的大模型架构产生最佳性能。本次评估中使用的数据集是开放式web文本(owt),它是webtext语料库的开源版本。它由8013769个文档中的38 gb文本数据组成,这些文本数据是从reddit上共享的url中提取的内容,至少有三次投票支持。对于这个模型,我们测量了每个系统上器件规模的模型吞吐量。此外,我们还评估了序列长度、梯度累积(gas)和稀疏性对模型性能的影响。
(3) genslm(科学用例):除了上面描述的基准之外,我们还对评估这些模型在现实世界用例中的表现。genslm是一个基因组的基础模型,可以推广到其他模型。该模型的目标是识别和分类不同的病毒变异毒株,然后可以将其扩展到基因或蛋白质合成。它采用基于gpt的具有不同参数的大语言模型(25m-25b)和1.2b的原始核苷酸数据集,旨在获得更大的序列长度,以帮助更好地捕捉上下文,并可推广用于学习进化。图2显示了genslm模型的概述,该模型以sars-cov-2基因组(在密码子水平编码的核苷酸序列,其中每三个核苷酸代表一个密码子)为输入,将其输入到一系列转换层。中间层学习单个密码子的语义嵌入,可以将其映射到29个单独的病毒编码的蛋白质序列。在本研究中,我们重点评估了nvidia a100、sambanova sn30上具有13b参数的genslm gpt模型和cerebras cs-2上的25b gpt3-xl模型。
图2:用于严重急性呼吸系统综合征冠状病毒2型进化预测建模的genslm模型概述
度量:评估大语言模型的性能超出了传统的度量,包括计算效率和硬件利用率的考虑。随着这些模型的规模和复杂性的增长,评估它们有效处理和生成文本的能力至关重要,尤其是考虑到训练和推理所需的计算资源。吞吐量是衡量大型语言模型处理给定数量输入数据的速率的关键性能指标。它通常以每秒处理的令牌或语句来量化。更高的吞吐量值表示更好的效率和有效处理大规模语言处理任务的能力。在这项工作中,我们以每秒令牌数的形式展示了评估系统的吞吐量。
硬件利用率是评估大语言模型的另一个重要指标,因为它评估了在模型训练和推理过程中计算资源的有效利用率。它涉及多种设计选择,如模型并行性、内存管理和高效的数据处理技术。分析模型以提取评估系统的硬件利用率的工作正在进行中,并将包含在报告的最终版本中。
iv. ai加速器的实现
由于不同的软件堆栈和规模,评估模型在每个系统上的实现方式各不相同。在这里,我们描述了三种情况下每个系统的实现细节:transformer微基准测试、gpt-2xl预训练和genslm科学应用。
a. transformer微基准
transformer微基准的评估涉及一个细致的实施过程,旨在评估该内核在不同ai加速器上的计算效率和性能特征。transformer微基准是为了模拟transformer模型中的内核操作而设计的,广泛用于各种自然语言处理任务。transformer微基准使用标准化gpt-2xl模型中的一层,输入序列为1024,确保不同平台之间的结果一致且可比较。实现是使用相同的深度学习框架pytorch进行的,pytorch针对每个平台的独特功能进行定制。工作负载用于利用并行性和特定于硬件的优化,并实现最佳吞吐量和计算速度。我们会仔细注意批量大小等因素,以避免瓶颈并充分利用可用的硬件资源。
对于不同的配置,我们使用8、16、32和64的批量大小。收集性能指标,如tflops,以量化每个硬件平台在处理transformer模型所需的苛刻计算方面的能力。该评估为处理基于transformer的工作负载时不同硬件的优势和劣势提供了有价值的见解。
b. gpt-2 xla预训练
作为gpt-2 xl研究的一部分,我们在owt数据集上预训练模型,其中对给定序列长度的原始数据进行预处理和标记。下面描述每个系统的标记化和模型实现的细节。
nvidia a100:我们在不同的节点计数上运行了具有不同微块大小、序列长度和张量平行度的模型,最多可达64个a100 gpu。这些都是用megatron-deepspeed实现的,使用的是fp16精度的zero stage 1。在这些实验中,启用了flash-attn,这可以缓解内存压力,通常可以提高吞吐量。实验使用了2k的序列长度。使用nvidia的nemo生成人工智能框架进行的实验是未来计划工作的一部分。
cerebras cs-2:在cerebra cs-2系统上,我们在单个cs-2引擎上运行在pytorch框架中实现的gpt-2 xl模型,序列长度为1024和2048,批量大小为112。该实现使用了一个基于字节对编码(bpe)的自定义gpt-2标记器,vocab大小为50257。使用1(默认值)和2的混合精度和精度选择级别来训练模型。它使用了一个adamw优化器,其权重衰减率为0.011。该模型使用密集和稀疏配置进行训练。在稀疏性方法中,基于所提供的程度来稀疏密集层的所有权重。我们运行了具有各种稀疏性值的gpt-3 6.7b和gpt-3 30b模型。这里,稀疏度值为0.3意味着修剪了30%的权重。第v节将讨论稀疏性对模型吞吐量和损失的影响。
sambanova sn30:我们评估了sambanovas下一代sn30上owt数据集的预训练性能,它的每个节点有8个rdu,每个rdu有8个tile。我们使用了适用于4个tile或半个rdu的gpt-1.5b模型的sn参考实现。该实现基于pytorch的sambaflow框架,使用混合精度(16位乘法器和32位累加器)。它使用基于bpe的gpt-2标记器,vocab大小为50260。我们使用数据并行性来跨多个tile和节点进行扩展。我们最多可扩展8个节点(对应于128个数据并行运行实例),每个实例的微批大小为16。
graphcore bow pod64:在bow pod 64上,我们利用64个ipu来训练评估的模型。在pytorch框架中实现的gpt-2 xl 1.5b模型可以跨4个ipu进行模型划分。作为数据预处理的一部分,该实现使用nvidia的megatron库来生成具有bpe标记器和50272的vocb大小的训练样本。poplar sdk使用多指令多数据(mimd)方式的映射来利用ipu并行进行计算和通信。我们在fp16中使用了1的局部批量大小,并结合了128和1024的大梯度累积步长值。这样大的值有助于最小化通信开销,因为它模拟了更大的全局批量大小。特别是对于较小的gas值,我们使用了1、2、4和16的复制因子来实现更好的扩展。
habana gaudi2:我们在pytorch中运行了gpt-2 xl模型,每个hpu设备的序列长度为1024,本地批量大小为32。在habana gaudi2上对gpt-2 xl模型进行的训练代表了软件和硬件功能的强大组合。训练中使用的数据格式为bf16。训练样本是使用bpe标记器生成的。
amd mi250:在amd mi250系统上,我们评估了gpt-2的性能,其中在多达8个gpu的owt数据集上训练的绝对位置中,使用因果语言建模(clm)目标进行嵌入。我们使用了基于字节对编码的gpt-2标记器,并使用了hugging face中的pytorch 2.0参考设计来实现这一点。针对1024的序列长度、每个gpu 16和32的批处理大小以及1和4的gas值来评估性能。
c. genslm
我们在nvidia a100、sambanova sn30和cerebras cs-2上实现了genslm科学应用程序。在三个系统上,均使用pytorch框架实现该模型。它使用基因组序列数据集,并使用密码子级标记器将其标记化,该标记器将基因组拆分为3个核酸块。由于genslm应用程序包含多种模型,它们的模型参数数量从25m到25b不等,因此我们在本实验中使用了两种不同的模型参数大小。
genslm的sn30实现基于gpt-2 13b参数模型,该模型使用1024的上下文长度、44层、64个注意力头、4992的嵌入大小和71的词汇表大小。该批量大小为32的gpt-2 13b参数模型可以映射在4个tile内或相当于半个rdu内。cerebras上使用的模型是gpt-3 xl,这是一个1.5b参数的模型,有24个隐藏层和16个注意力头。该模型使用70的词汇大小和2048的嵌入大小。该模型针对序列长度为10240且局部大小为27的基因组序列进行训练。其他模型参数类似于上面列出的gpt-2xl实现细节。gpt3-xl模型在两个cs-2上进行了缩放,以提供54的全局批量大小。在nvidia a100上,我们使用了一个相同的gpt-2 13b模型,该模型由40层隐藏维度和40个注意力头组成。
v. 结论
在本节中,我们介绍了三个评估案例的实验结果。我们从第v-a节中以三个精度评估的transformer微基准开始。接下来,我们介绍了gpt-2 xl 1.5b参数模型的结果,重点是第v-b1节中的可扩展性、第v-b3节中的gas研究、第v-b2节中的序列长度分析和第v-b4节中的稀疏性研究。最后,我们详细介绍了genslm模型在三个系统上的实验结果,这些系统具有三种尺寸的模型:sectionv-c中的1.5b、13b和25b个参数。
a.transformer微基准
在单个nvidia a100 gpu、sambanova sn30 rdu、graphcore bow ipu、habana gaudi2和amd mi250上的transformer微基准评估结果如图3和图4所示,显示了fp32、fp16和bf16三种精度的前向和后向通道的吞吐量。与a100的2039 gb/s相比,mi250具有更高的内存带宽(3276.8 gb/s),更高的带宽能够用于提高单精度的性能。但是mi250的总效率低于a100。
图3:transformer微基准在不同精度的正向通道中的吞吐量评估
图4:transformer微基准在不同精度的后向通道中的吞吐量评估
据观察,nvidia a100 gpu得益于其先进的张量内核和并行处理能力,展示了基线吞吐量。fp16和bf16精度的吞吐量比fp32高约4倍。a100的单精度理论性能是半精度理论性能的两倍。由于使用半精度减少了内存访问,可能会带来额外的性能改进。sambanova sn30具有可重新配置的数据流架构,在bf16精度方面表现出令人印象深刻的性能,展示了其使用半精度格式处理复杂transformer工作负载的潜力。由于rdu上的管道化/融合执行,与任何管道一样,自然会有一个预热和冷却阶段。一批中的更多样本会具有更长的稳态行为和更高的有效吞吐量。由ipu提供动力的graphcore bow ipu在fp32和fp16精度方面表现出色,突出了其适用于nlp任务。同时,habana gaudi2在所有三种格式中都表现出强大的性能,强调了其在高效执行各种transformer计算方面的能力。在后向通道中,我们认为这是由于硬件利用率更高,从而带来更高的吞吐量。amd mi250利用其专用张量处理内核阵列,在后向传输中表现出显著的加速和一致的吞吐量。
b.gpt-2 xl
对于该模型,我们将设备数量的不同配置的预训练吞吐量作为缩放研究。稍后我们将讨论序列长度和梯度累积步骤对模型吞吐量的敏感性。
1) 缩放研究:这部分,我们展示了在不同系统上缩放gpt-2xl模型的发现。由于资源的可用性,缩放研究中使用的设备数量因系统而异。我们使用了64个nvidia a100 gpu、2个cs-2引擎、64个sambanova sn30 rdu、64个graphcore bow ipu、4个amd mi250 gpu和64个habana gaudi2 hpu。图5显示了设备数量的增加,对模型吞吐量(以log为单位)的影响。需要注意的是,每个系统上使用的精度是不同的,并且每个系统上的批量大小都针对该配置进行了调整。
图5:gpt2-xl缩放研究显示,序列长度为1k的加速器数量增加对吞吐量(以log为单位)的影响。
表ii列出了每个评估系统上设备数量对加速以及缩放效率的影响。这项研究的一个引人注目的观察结果表明,在16个sn30 rdu、2个cs-2和16个ipu上训练的模型优于在64个a100上的运行。此外,gaudi 2具有104%的最高缩放效率,这是由于synapse软件堆栈的优化,这些优化有助于最大限度地减少跨多个hpu划分模型和数据的开销。紧随其后的是bow pod64,其缩放效率达到100%。超线性缩放是通过使用复制张量分片来实现的——随着缩放的增加,dram i/o上的重量加载压力降低,ipu链接被用来交换重量张量的分片。此外,bow ipu有900 mb的sram,目前它不使用dram来运行,因此,由于sram大小的限制,我们无法将其安装到单个ipu中。我们使用4个ipu,并行运行管道,模型层分布在ipu上。cerebras cs-2的缩放效率为95.7%,这证明了具有专用节点的权重流技术的效率,memoryx用于保存所有模型权重,swarmx用于将这些权重流式传输到计算引擎。值得注意的是,sn30和mi250的缩放效率约为80%,高于75.8%的a100。
表ii:gpt-2 xl模型的缩放行为研究
结果表明,随着模型在越来越多的设备上运行,所有评估的加速器都表现出了更高的吞吐量。尽管计算成本很高,但使用更多的设备可以更好地训练具有大量参数的模型。随着模型大小按万亿参数的顺序扩大,在不断增加的设备数量上运行它们可能是不可行的,从而强调了实施新方法的必要性,以在给定计算预算的情况下优化训练模型的时间。
2) 序列长度的影响:近期的研究强调了在大语言模型任务中缩放序列长度(缩放到1b以上的令牌)的必要性。在genslm科学应用中,大的上下文长度在合成基因组数据方面极其重要。因此,我们研究了gpt-2模型的序列长度缩放的影响,并在nvidia a100、sambanova sn30和cerebras cs-2上给出了结果,并由于支持有限或正在进行的工作而排除了其他结果。在本研究中,我们在a100和cerebras系统上使用了gpt-2xl 1.5b参数模型,cerebras cs-2和sambanova sn30都使用了gpt2-13b参数模型。正如我们从表iii中看到的,nvidia a100至少需要4个设备来适应较小序列长度的数据集。另一方面,sambanova sn30和cerebras cs-2由于其大的本地内存和计算架构,可以在单个计算设备上适应具有较长序列长度的模型。sambanova sn30可以适应13b参数模型,序列长度从1k到64k不等,所有这些都在一个rdu上。我们在数据并行模式下在一个节点上运行该模型的8个实例,并给出了结果。我们可以预见,随着序列长度的增加,吞吐量会下降。此外,从32k的序列长度来看,该实现使用分段softmax实现。对于gpt-2xl模型的cs-2系统,当序列长度从1k增加到8k时,我们可以看到序列长度影响吞吐量的趋势。
表iii:序列长度对模型吞吐量的影响
3) 梯度积累积的影响:大语言模型,尤其是那些具有数十亿参数的模型,在训练过程中会消耗大量内存。梯度累积允许在更新模型的权重之前在多个小批量上累积梯度。与处理每个单独的小批量后更新模型相比,这减少了内存需求。当使用内存容量有限的硬件时,这一点尤为重要。在本研究中,我们研究了增加gas值对模型性能的影响。
图6:gas值对模型吞吐量的影响
图6(a)显示了a100和mi250 gpu上模型吞吐量对gas值的敏感性。在这项研究中,我们测试了gas值为1和4的性能,同时我们将批量大小和序列长度分别保持为16和1024。我们观察到,随着设备数量的增加,在gas值饱和之前,较大的gas值的吞吐量有所提高。我们看到,当微批量大小为1、张量平行度为1的gpt-2xl模型上的gas值从1增加到4时,64个a100 gpu的模型吞吐量增加了1.74倍。
对于mi250 gpu,4个gpu的模型吞吐量增加了1.2倍。性能的提高可以通过处理gas值增加的更多样本的能力来解释。此外,对于a100 gpu,当我们将本地批量大小为32的gas值从1增加到32时,我们观察到模型吞吐量增加了1.74倍,从而证实了在相对较低的批量大小下,gas值更容易增大。关于a100和mi250的本地批量大小和gas值之间的权衡的详细研究正在进行中。图6(b)显示了sambanova sn30系统上gas值为1、4、8和16的每秒采样吞吐量。我们观察到,当与较小的本地批量相结合时,随着gas值的增加,吞吐量增益是显著的。相反,增加gas值对吞吐量的影响较小或没有影响,吞吐量在较大的本地批量时饱和。这一观察结果可归因于这样一个事实,即在较大的批量下,与通过减少优化步骤数量节省的时间相比,在反向通过计算的情况下加载梯度的额外任务非常耗时。
图6(c)显示了graphcore pod16上模型吞吐量对gas值的敏感性。在本研究中,我们考虑了复制因子为4的情况,即表明模型的单个实例(在4个ipu上分片)被复制4次,以跨越整个pod16系统。结果可以扩展到pod64的整个构架。正如我们所看到的,graphcore可以支持从16到2048的非常大的gas值。这是通过处理多个批次并将梯度聚合到累加器张量中而不增加内存使用量来实现的。sambanova sn30在技术上也可以支持非常大的gas值,尽管它对模型吞吐量的影响尚待研究。cerebras梯度累积步骤(gas)由cerebras软件堆栈自动确定,以在给定所需全局批量大小和cs-2s数量的情况下驱动最佳吞吐量。鉴于用户调整该参数的功能有限,我们在本研究中排除了cs-2。
4) 权重稀疏性对模型吞吐量的敏感性:稀疏性对于训练大语言模型很重要,这主要是由于几个因素,例如通过只存储非零参数提高了内存效率,由于减少了每个优化步骤中更新的参数数量而提高了训练速度,以及有效的可扩展性。它还有助于更快的推理,因为计算仅限于非零权重。在此,我们对模型稀疏性对cerebras cs-2吞吐量的敏感性进行了研究。稀疏度反映了为加速训练而修剪的权重的百分比。从图7中可以观察到,模型吞吐量从密集模型(s=0)增加到高度稀疏模型(s=0.9)的变化。对于gpt-2xl模型,与完全密集模型(s=0)相比,我们观察到在具有极端稀疏性(s=0.90)的情况下吞吐量加速了1.8倍到2倍。此外,稀疏度对较大模型的吞吐量提高有更高的影响。对于gpt-3 6.7b,在单个cs-2上的密集模型上,0.9的稀疏度产生2.1倍,而对于gpt--3 30b,在单个cs-2上的密集模型上,0.9的稀疏度获得3.79倍。进一步扩展,与单个cs-2相比,8和16 各cs-2上的6.7b型号的加速系数分别提高了7.75倍和15.49倍。该实验表明,模型稀疏性可以显著提高吞吐量,并有可能帮助在相对较少的设备上运行更大的模型。
图7:不同稀疏度水平(0、0.6、0.8和0.9)对cs-2上模型吞吐量的影响
此外,图8显示了在3b令牌上训练的gpt-3模型的损失曲线,强调了与密集模型相比,稀疏性s=0.9的模型精度损失了15%。在预训练期间,训练损失与稀疏性值成正比。然而,模型的密集微调可以恢复这样的差距,正如cerebras过去在稀疏预训练和密集微调框架上的工作所证明的那样。1.3b gpt-3xl模型以75%的稀疏性进行预训练,在减少2.5倍预训练flop的同时,下游任务精度没有显著损失。我们目前正在探索用于cs-2上的大型llm模型的稀疏预训练密集微调技术。
利用开发的技术和nvidia a100评估稀疏性对sambanova sn30训练的影响的研究正在进行中,并将包含在论文的最终版本中。由于稀疏性在其他系统上的支持有限或没有,他们被排除在本研究之外。
c.genslm
表iv显示了genslm模型在nvidia a100、sambanova sn30和cerebras cs-2之间的吞吐量,以每秒令牌数为单位进行测量。我们给出了三种模型大小的吞吐量:a100和cs-2具有1.5b参数模型,a100、sn30和cs-2带有13b参数模型以及cs-2带有25b参数模型。在a100、sn30和cs-2的情况下,所有实现都使用gpt-2 13b参数模型,并且用1024的序列长度进行训练。a100和sn30都使用32的微批量大小,但由于sn30可以在4个tile上适应32微批量大小的13b模型,因此它可以在8个设备上并行容纳该模型的16个实例。对于表iii中使用的相同型号,sn30和a100使用不同的批大小。
表iv:genslm模型性能评估
我们的观察结果表明,当我们考虑相同数量的计算单元或设备时,sn30的吞吐量比相同数量的a100显著提高了5.7倍。我们还发现,与8个a100相比,同一型号的一个cerebras cs-2表现出了19倍的巨大加速。
当我们进一步比较在nvidia a100和cerebras cs-2上训练的1.5b参数genslm模型的性能时,出现了一个有趣的趋势。cs-2能够处理比a100 gpu上运行的序列长度长十倍的序列长度,同时比a100实现了显著的2倍加速改进。
这一严格的评估强调了这些加速器在解决大规模现实世界科学应用方面的重大贡献。它们在加速大规模科学应用领域的准确性方面发挥着关键作用。
d. 观察结果
这项对最关键的人工智能工作负载之一的全面基准评估得出了几个值得注意的观察结果。下面,我们将介绍一些有趣且有价值的见解。
•在单个设备中容纳相当大的模型的能力取决于可用的计算资源和内存容量。即使使用了强大的计算引擎,采用旨在最大限度地减少内存消耗的创新技术,特别是权重和激活等参数,也是至关重要的。
促进开源模型的执行和简化hugging face模型的扩展对于利用这些人工智能加速器进行大量新兴的人工智能科学应用非常重要。
实现人工智能加速器之间的公平比较是一个显著的挑战。差异源于局部/微批量大小、gas值、模型副本数量和相关因素的变化。必须制定有利于公平比较的方法。
值得注意的是,gas值的增加并不总是转化为超过某个阈值的性能改进。这种方法结合了对微批量大小的明智选择,可以在更大的批量大小下运行。
支持较长的序列长度对于捕获上下文、处理长期依赖关系以及在各种任务中表现出色非常重要。
随着即将推出的具有数万亿参数的模型以及满足更长序列长度的要求,硬件和软件设计必须进行定制,以最大限度地提高计算能力,同时最大限度地减少内存使用。
vi.结论
在本文中,我们对非传统硬件上的生成人工智能模型进行了广泛而全面的评估,重点是gpt模型、transformer block的深入分析和科学应用(genslm)。此外,我们探索了gpt-2模型的缩放行为,以深入了解其性能特征。我们的一个重要观察结果是硬件固有的内存限制,这限制了可以安装在单个设备上的模型大小的可行性。它还需要分布式实现,例如数据并行,并增加设备数量。随着设备数量的增加,也观察到接近线性的缩放。此外,采用优化,如权重稀疏性,有助于有效减少分布式实现中的通信开销。
我们计划继续进行这项评估,重点关注更长的序列长度,并为新兴的科学应用生成具有代表性的人工智能基准模型。我们还希望将这项全面的基准研究扩展到更大的模型,如175b参数模型,以及具有不同架构的生成模型,如llama。据观察,为了促进更大模型的有效训练,例如用于科学应用的人工智能中的万亿参数,利用非传统人工智能硬件将是至关重要的。优化除模型吞吐量之外的其他指标,如训练中的功耗和i/o,特别是在增加计算和利用更大数据集的情况下,也是至关重要的。
本文作者
murali emani、sam foreman、varuni sastry、zhen xie、siddhisanket raskar、william arnold、rajeev thakur、venkatram vishwanath、michael e. papka
创始人王鹏飞:TAC溯源链期待专业审计机构早日出现
游戏AI的前世今生,完美的目标不完美的世界
苹果中国推出智能电池手机壳更换计划 将免费更换合格的电池手机壳
安森美半导体推出两款新型屏蔽板 扩展了物联网开发套件平台功能
中软国际再获华为政务一网通集成服务伙伴认证,专业服务“双认证”为政企数字化成功护航
深度解读各种人工智能加速器和GPU上的LLM性能特征
关于医院网络视频监控系统解决方案的性能分析
通过OpenThread边界路由器获得无缝的OpenThread网络连接
华为nova拆解评测:做工很细致 质高价廉
世界最薄iPhone7充电外壳 仅12.5mm
1%电阻器和运算放大器,构建合格差动放大器足够
MHP发布2023年移动出行研究《软件竞赛》
中国电子科技集团公司第二十一研究所发布了首款人形机器人
墨盒的适用产品类型/适用机型
利用YOCTO的力量进行Linux操作系统移植项目
液晶面板价格出现全面上涨,面板厂商的盈利能力或将进一步提升
智能特种机器人公司史河科技完成千万级人民币天使轮融资
官方解读 未来6G是怎样的
适用于恶劣汽车环境的综合电源系统设计
加州理工学院科学家提出一种完全用光让物体飘浮的理论方法