网传 GPT-4 模型架构等信息被泄露,真实性如何?会造成哪些影响?

网传 GPT-4 模型架构等信息被泄露,真实性如何?会造成哪些影响?

原标题:网传 GPT-4 模型架构等信息被泄露,真实性如何?会造成哪些影响?

关键字:人工智能,科技,GPT,GPT-4

最佳回答:桔了个仔

回答字数:1009字

看了下内容,主要信息点是,再次确认GPT-4用的是混合专家模型(MoE, mixture of experts)模,使其保持合理的成本。

其实万亿级别参数的MoE模型,GPT-4并不是第一个。谷歌在2021发布的Switch Transformers,就是具有1.6万亿的MoE模型

谷歌此时的内心:我搞MoE更早,我的万亿参数来得更早,咋这波风口没我份。(有时候啊,涌现来得太突然,你都不知道谁会先涌现)

不过谷歌也不是最早提出MoE的人,其实MoE已经已经有30多年历史。最早可以追溯到1991年Michael Jordan, Geoffrey Hinton(是不是熟悉的名字?没错,MoE还是他们开创的)的论文《Adaptive mixtures of local experts》。

不过Yam Peleg也不是第一个揭露GPT-4是MoE模型的人了。几个星期前就有爆料说GPT-4由8个experts组成

不过最新这个消息说到,不是8个,而是16个。

不过其实这波大模型浪潮里,很多用MoE的模型,例如谷歌的Pathways,PKU-DAIR的HetuMoE等等。

至于会造成哪些影响?可能会让某些团队开始考虑MoE模型吧。毕竟大家都觉得MoE作为一种老旧的集成学习方式,并不是什么革命性的架构。而GPT-4证明MoE确实能让模型能力再上一层楼,可能让很多团队重新考虑这个方法。

本文链接:

联系作者

回答作者:桔了个仔

0

评论0

  1. 翻译修改自:GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE

    省流版本:

    架构:1.8兆(万亿)(1800B)参数,120层深,混合专家模型(16个110B大的小模型,每次选两个)(gpt3.5是1750亿参数)(更多的experts理论上效果更好但工程难度更高(内存带宽要求高),更难收敛)采用MoE是对推理成本的节省上的考量数据:13兆(T)数据(llama和palm是1.4T),文本2个Epoch训练,代码数据4个Epoch,Batch批量大小逐渐在几天内逐步增加,最后,OpenAI使用的批量大小为6000万。预训练阶段的上下文长度为8k。32k的Token长度版本是在预训练后的8k基础上进行微调的。用了来自Scale Al和内部的数百万行指令微调数据,强化数据不知道。并行计算:8路张量并行+15路管道并行(流水线并行)视觉多模态架构:类似于Flamingo,GPT4的视觉编码器和文本编码器是分开的,在文本预训练完成后通过2T token再微调,采用类Flamingo的方式联合视觉模型和文本模型,未对其从头训练。(和开源社区的MLLM思路基本一致)可能用了猜测解码,采用speculative decoding加速推理25,000个40G的A100训练了90+天 (6300万美元/ 用H100可节约至2150万美元)大概率采用了FB16和int8模式使其能在40G机器上训练MQA(多查询注意力,一个头部)减少KV的内存容量(尤其是在对较长序列时有明显作用)连续批处理提高GPU利用率还有很多关于通讯效率、并行策略、吞吐量上的讨论,详细内容在正文中

    详细版本:

    1 - GPT-4模型架构

    GPT-4的规模是GPT-3的10倍以上。据我们了解,它具有大约1.8兆参数,120层深,而GPT-3具有大约1750亿(175B)参数。 (就大一个数量级)

    OpenAI通过使用混合专家(MoE)模型,成功地控制了成本。此外,OpenAI在其模型中使用了16个专家,每个专家的MLP参数约为1110亿(111B,单个模型比ChatGPT还小),每次前向传递选两个专家

    虽然文献中谈论了选择将每个Token路由到哪个专家的高级路由算法,但据称OpenAI目前的GPT-4模型的路由算法相当简单。此外,注意力机制共享大约550亿参数。

    每次前向传递推理(生成1个Token)只使用约2800亿参数(280B)和560 TFLOPS。这与纯密集模型每次前向传递所需的约1.8兆参数和3700 TFLOPS形成了对比。

    (明白了,Attention部分是共享参数的,MLP是不共享的,这个思路非常类似于多模态领域的很多文章,例如VLMO?)

    2 - 数据集成

    OpenAI在大约13兆Token上对GPT-4进行了训练。考虑到RefinedWeb的CommonCrawl包含大约5兆高质量Token,这还算是有意义的。供参考,Deepmind的Chinchilla模型和Google的PaLM模型分别使用了大约1.4兆Token和0.78兆Token进行训练,甚至据称PaLM 2是在大约5兆Token上进行训练的。

    这个数据集并不包含13万亿个独特的标记。相反,由于缺乏高质量的标记,数据集包含了多个时代。文本数据有2个时代,代码数据有4个时代。有趣的是,这远远不足Chinchilla的最佳水平,表明需要对模型进行双倍的标记计数进行训练。这表明网上缺乏易于获取的标记。有1000倍以上的高质量文本标记,甚至还有更多的音频和视觉标记,但获取它们并不像简单的网页抓取那样容易。

    该数据集不包含13兆个(兆=万亿)非重复的Token。相反,由于缺乏高质量Token,该数据集包含多个Epoch。文本数据有2个Epoch,代码数据有4个Epoch(即重复训练4次)。这表明在网络上缺乏易于获取的Token。不过,音频和视觉的高质量Token的数量很多(是文本的1000倍),但是获取它们并不像网页抓取那么简单(字节的机会啊?)。

    他们拥有来自Scale Al和内部的数百万行指令微调数据,可惜的是,我们找不到太多关于他们的强化学习数据。

    预训练阶段的上下文长度为8k。32k的Token长度版本是在预训练后的8k基础上进行微调的。

    Batch批量大小逐渐在几天内逐步增加,但到最后,OpenAI使用的批量大小为6000万!当然,由于不是每个专家都看到所有Token,这实际上只是每个专家每批次处理750万个Token。

    3 - 并行策略

    在所有A100 GPU上进行并行化的策略非常重要。他们采用了8路张量并行,因为这是NVLink的极限。此外,我们听说他们正在使用15路管道并行(流水线并行)。从计算时间和数据通信的角度来看,理论上管道并行(流水线并行)的数量太多了,但如果他们受到内存容量限制,那么这是有道理的。

    纯粹的管道+张量并行时,每个GPU仅参数就需要约30GB(FP16)。一旦加上KV缓存和开销,理论上如果OpenAI的大部分GPU都是40GB的A100,则这是有道理的。他们可能使用了ZeRo阶段1。可能他们使用了块级FSDP或混合共享数据并行。

    至于为什么他们没有使用完整模型FSDP,可能是因为通信开销较高。尽管OpenAI的大多数节点之间有高速网络连接,但并非所有节点之间都是如此。我们相信至少有一些集群之间的带宽比其他集群低得多。我们不理解他们如何在具有如此高的管道并行度时避免每批次出现巨大的气泡(Bubble)。很可能他们只是承担了这个开销。

    4 - 训练成本

    OpenAI在GPT-4的训练中,使用了大约25,000个A100芯片,在90至100天的时间内进行了约32%至36%的MFU(平均功能利用率)。这种极低的利用率部分是由于大量的故障导致需要从检查点重新启动的原因,上述提到的气泡代价非常高。

    另一个原因是在这么多GPU之间进行全局归约(Reduce)的代价非常高。如果我们的猜测是正确的,那么该集群实际上是由许多较小的集群组成的,它们之间的网络连接非常薄弱,即集群的不同部分之间的非阻塞连接为800G/1.6T,但这些部分只能以200G/400G的速度连接起来。

    如果他们在云中的成本约为每小时1美元的A100芯片,仅这次训练的成本就约为6300万美元。这还没有考虑到所有的实验、失败的训练运行和其他成本,比如数据收集、强化学习和人员成本等。由于这些因素,实际成本要高得多。此外,这意味着您需要有人购买芯片/网络/数据中心、承担资本支出并将其租给您。

    目前,使用约8,192个H100芯片,以每小时2美元的价格,在约55天内可以完成预训练,成本约为2150万美元。需要注意的是,我们相信到今年年底将有9家公司将拥有更多的H100芯片。并非所有这些公司都会将它们全部用于单次训练运行,但那些这样做的公司将会拥有更大规模的模型。Meta将在今年年底拥有超过10万个H100芯片,但其中相当多的芯片将分布在他们的数据中心用于推理。他们最大的单个集群仍然将超过25,000个H100芯片。

    到今年年底,很多公司将拥有足够的计算资源来训练与GPT-4规模相当的模型。

    5 - MoE 的权衡

    在推理过程中,MoE是一种很好的方式,可以在推理时减少参数数量,同时增加参数数量,这对于编码更多的信息每个训练Token是必需的,因为获取足够的高质量Token非常困难。如果OpenAI真的试图实现Chinchilla方法中提到的最佳化,他们将不得不在训练中使用两倍于目前的Token数量。

    尽管如此,OpenAI做出了多个权衡。例如,在推理过程中,MoE非常难处理,因为模型的每个部分在每个Token生成时都不会被使用。这意味着在为用户提供服务时,某些部分可能处于闲置状态,而其他部分则正在使用。这对利用率产生了很大的负面影响。

    研究人员已经表明,使用64到128个专家比使用16个专家的损失更小,但那只是纯粹的研究结果。减少专家的数量有多个原因。OpenAI选择16个专家的原因之一是因为更多的专家在许多任务上很难进行泛化。使用更多的专家也可能更难实现收敛。在如此大规模的训练运行中,OpenAI选择在专家数量上更保守一些。

    此外,减少专家的数量还有助于他们的推理基础设施。在采用专家混合推理架构时,存在各种困难的权衡。在探讨OpenAI面临的权衡和他们所做的选择之前,我们先从LLM的推理基本权衡开始。

    6 - 推理的权衡

    在大型语言模型的推理中,有3个主要的权衡,它们发生在批量大小(服务的并发用户数),Dimension维度,和使用的芯片数量之间。

    1. 延迟 - 模型必须以合理的延迟做出响应。人们不想在等待输出开始流入聊天应用程序之前等待几秒钟。预加载(输入Token)和解码(输出Token)需要不同的时间来处理。

    2. 吞吐量 - 模型必须以每秒输出一定数量的Token。大约每秒30个Token是人类使用所需的。对于其他各种用途,较低和较高的吞吐量都可以接受。

    3. 利用率 - 运行模型的硬件必须实现高利用率,否则成本将过高。虽然可以使用更高的延迟和较低的吞吐量将更多用户请求进行分组,从而实现更高的利用率,但这会增加难度。

    LLM的推理完全是关于平衡两个主要因素:内存带宽和计算。每个参数都必须读取,一个参数对应2个FLOP。因此,大多数芯片的比例(各个组成部分的能力)在批量大小为1的推理中完全不平衡(例如H100 SXM芯片只有3TB/s的内存带宽,但有2,000 TFLOP/s的FP8)。如果只为一个用户提供服务,批量大小为1,那么为了每个Token生成,所需的内存带宽主导推理时间。计算时间几乎为零。为了有效地将大型语言模型扩展到多个用户,批量大小必须超过4。多个用户会分摊参数读取的成本。例如,对于批量大小为256或512,每个字节的内存读取有512个FLOP/s或1024个FLOP/s。这个比例更接近于H100的内存带宽与FLOPS之间的比例。这有助于实现更高的利用率,但代价是更高的延迟。

    许多人将内存容量视为LLM推理的一个主要瓶颈,原因是大型模型需要多个芯片进行推理,而较大的内存容量会使其适应的芯片数量减少,但实际上,最好使用超过所需容量的芯片,以便将延迟降低,提高吞吐量,并且可以使用更大的批量大小来实现越来越高的利用率。

    谷歌在他们的PaLM推理论文中展示了这些权衡。然而,值得注意的是,这是针对像PaLM这样的稠密模型,而不是像GPT-4这样的稀疏模型。

    如果一个应用程序要求最低的延迟,那么需要应用更多的芯片,并将模型划分为尽可能多的部分。较小的批量大小通常可以实现较低的延迟,但较小的批量大小也会导致更差的利用率,从而导致每个Token的总成本(以芯片秒或美元计)更高。如果一个应用程序需要离线推理,并且延迟不是问题,那么主要目标是最大化每个芯片的吞吐量(即尽量减少每个Token的总成本)。

    增加批量大小是最高效的,因为较大的Batch批量通常可以实现更好的MFU利用率,需要注意某些partition策略对对小批量大小不生效。更多的芯片和更高的批量大小是最便宜的,因为它们可以增加利用率,但这也引入了一个第三个变量,即网络时间。某些方法(模型并行)将模型分割到不同芯片上,这对于延迟友好,对利用率不友好(带来了网络开销)。

    内存时间和非注意计算时间都与模型大小成正比,与芯片数量成反比。然而,对于给定的分区布局,芯片间通信所需的时间下降得较慢(或根本不下降),因此随着芯片数量的增加,它变得越来越重要,成为一个越来越重要的瓶颈。虽然我们今天只是简单地讨论一下,但应该注意到,随着批量大小和序列长度的增长,KV缓存的内存需求会急剧增加。如果一个应用程序需要生成具有较长注意力上下文的文本,则推理时间会显著增加。

    对于一个具有多头注意力的500B+模型,注意力KV缓存会变得很大:对于批量大小为512和上下文长度为2048,KV缓存总共达到3TB,这是模型参数大小的3倍。芯片上的内存需要将此KV缓存从芯片外存加载到内存中,而此期间芯片的计算核心基本上处于闲置状态。较长的序列长度对内存带宽和内存容量特别不利。OpenAI的16k序列长度GPT 3.5 turbo和32k序列长度GPT 4的成本要高得多,因为由于内存限制,它们无法使用更大的批量大小。

    较低的批量大小导致较低的硬件利用率。此外,随着序列长度的增加,KV缓存也会变得更大。KV缓存无法在用户之间共享,因此需要单独的内存读取,进一步成为内存带宽的瓶颈。

    7 - GPT-4的推理权衡和基础设施

    以上所有内容在GPT-4推理中都很困难,但是模型架构采用了专家混合模型(MoE),这引入了一整套新的困难。每个Token生成的前向传递可以路由到不同的专家集合中。这对于在批量大小较大时在吞吐量、延迟和利用率之间实现的权衡造成了困扰。

    OpenAI的GPT-4有16个专家,每个前向传递中有2个专家。这意味着如果批量大小为8,每个专家的参数读取可能只是批量大小为1。更糟糕的是,可能一个专家的批量大小为8,而其他的专家可能是4、1或0。每次Token生成,路由算法都会将前向传递发送到不同的方向,导致Token到Token的延迟以及专家批量大小的显著变化。推理基础设施是OpenAI选择较少的专家数量的主要原因之一。如果他们选择了更多的专家,内存带宽将更加成为推理的瓶颈。

    OpenAI在推理集群上经常达到4k+的批量大小,这意味着即使在专家之间进行了最佳的负载均衡,专家的批量大小也只有约500个。这需要非常大量的使用才能实现。我们了解到,OpenAI在一个由128个GPU组成的集群上运行推理。他们在多个数据中心和地理位置上都有多个这样的集群。推理是在8路张量并行和16路流水线并行上进行的。每个由8个GPU组成的节点只有大约130B的参数,即每个GPU在FP16模式下不到30GB,在FP8/int8模式下不到15GB。这使得推理可以在40GB的A100芯片上运行,前提是所有批次的KV缓存大小不会过大。

    包含各种专家的单个层不会分割到不同的节点上,因为这会使网络流量过于不规则,并且在每个Token生成之间重新计算KV缓存的代价太高。对于任何未来的MoE模型扩展和条件路由,如何处理KV缓存的路由是一个最大的困难。

    模型有120个层,所以将其平均分配到15个不同的节点上是很简单的,但由于第一个节点需要进行数据加载和嵌入,所以在推理集群的主节点上放置较少的层是有意义的。此外,我们听到了一些关于推理的猜测解码的传言,我们稍后会讨论,但我们不确定是否相信这些传言。这也可以解释为什么主节点需要包含较少的层。

    8 - GPT-4的推理成本

    与175B参数的Davinchi模型相比,GPT-4的成本是其3倍,尽管其前馈参数只增加了1.6倍。这主要是因为GPT-4需要更大的集群并实现了更低的利用率。

    我们认为,对于128个A100来推理GPT-4 8k序列长度,每1kToken的成本是0.0049美分,而对于128个H100来推理GPT-4 8k序列长度,每1kToken的成本是0.0021美分。

    值得注意的是,我们假设有较高的利用率,并保持较高的批量大小。这可能是一个错误的假设,因为很明显OpenAI有时的利用率非常低。我们假设OpenAI在低谷时段关闭集群,并重新调整这些节点以从检查点恢复对较小测试模型的训练,尝试各种新技术。这有助于降低推理成本。如果OpenAI不这样做,他们的利用率将更低,我们的成本估计将增加一倍以上。

    9 - 多查询注意力

    MQA是其他公司正在使用的技术,但我们想指出OpenAI也在使用。长话短说,只需要一个头部,KV缓存的内存容量可以大大减少。即使如此,32k序列长度的GPT-4肯定无法在40GB的A100芯片上运行,而8k序列长度的GPT-4在最大批量大小上受到限制。如果没有MQA,8k序列长度的GPT-4的最大批量大小将受到极大的限制,以至于经济上不可行。

    10 - 连续批处理

    OpenAI实现了可变的批量大小和连续批处理。这样可以在一定程度上允许最大延迟,并优化推理成本。如果您对这个概念不熟悉,那么这篇由AnyScale撰写的文章值得一读。

    11 - 关于猜测解码

    我们从一些可靠的人士那里听说OpenAI在GPT-4推理中使用了猜测解码。我们不确定是否完全相信这一点。Token到Token的延迟的普遍变化以及在进行简单的检索任务与更复杂的任务时的差异似乎表明这是可能的,但是变量太多,无法确定。以防万一,我们将在这里使用一些“使用分段猜测解码加速LLM推理”的文本并稍作修改/添加一些说明。

    使用LLM通常分为两个阶段。

    首先是预填充阶段,将提示文本通过模型生成KV缓存和第一个输出的logits(可能的Token输出概率分布)。通常,这个阶段很快,因为整个提示文本可以并行处理。

    第二阶段是解码。从输出的logits中选择一个Token,并将其反馈到模型中,生成下一个Token的logits。重复这个过程,直到生成所需数量的Token。因为解码必须按顺序进行,每次都要将权重流通过计算单元以生成单个Token,所以当以小批量运行时,第二阶段的算术强度(即计算的FLOP / 内存带宽的字节数)非常低。

    因此,解码通常是自回归生成中最昂贵的部分。这就是为什么在OpenAI的API调用中,输入Token比输出Token便宜得多的原因。

    猜测解码的基本思想是使用一个更小、更快的草稿模型预先解码多个Token,然后将它们作为一个批次馈送给神谕模型。如果草稿模型对其预测的Token是正确的,即较大模型也同意,那么可以通过一个批次解码多个Token,这样可以节省相当多的内存带宽和时间,每个Token都能节省。

    然而,如果较大模型拒绝了草稿模型预测的Token,那么剩下的批次将被丢弃,算法自然会恢复到标准的逐Token解码。猜测解码可能还伴随着拒绝采样方案,以从原始分布中进行采样。请注意,这仅在带宽是瓶颈的小批量设置中有用。

    猜测解码通过交换计算和带宽来进行权衡。猜测解码作为性能优化目标具有两个关键原因。首先,它完全不会降低模型质量。其次,它提供的优势通常与其他方法无关,因为其性能来自将顺序执行转换为并行执行。

    目前的猜测方法为批次预测一个单独的序列。然而,这在大批量大小或低草稿模型对齐度的情况下无法很好地扩展。直观地说,两个模型在连续的长序列中达成一致的概率指数级地降低,这意味着随着算术强度的扩大,猜测解码的回报迅速减少。

    我们认为如果OpenAI使用猜测解码,他们可能只在大约4个Token的序列上使用它。顺便提一下,GPT-4降低质量的整个阴谋可能只是因为他们让神谕模型接受来自猜测解码模型的较低概率序列。另一个注意的是,有人猜测Bard使用了猜测解码,因为谷歌在将整个序列发送给用户之前等待序列的生成完成,但我们不相信这种猜测是真实的。

    12 - 关于视觉多模态

    视觉多模态能力是GPT-4中最不令人印象深刻的部分,至少与领先的研究相比。当然,还没有任何公司将多模态LLM的研究商业化。

    它是一个独立的视觉编码器,与文本编码器分开,但存在交叉注意力。我们听说它的架构类似于Flamingo。这在GPT-4的1.8T参数之上增加了更多的参数。在仅文本预训练之后,它还进行了另外约2万亿个Token的微调。

    对于视觉模型,OpenAI原本希望从头开始训练,但这种方法还不够成熟,因此他们决定先从文本开始以减轻风险。据称,下一个模型GPT-5将从头开始进行视觉训练,并且能够自己生成图像。此外,它还将能够处理音频。

    这种视觉能力的主要目的之一是让自主代理能够阅读网页并转录图像和视频中的内容。他们训练的数据中有一部分是联合数据(渲染的LaTeX/文本)、网页的屏幕截图、YouTube视频:采样帧,并运行Whisper来获取转录。

    关于所有这些针对LLM的过度优化的有趣之处在于,视觉模型的成本与文本模型的成本不同。正如我们在“亚马逊云危机”文章中所描述的那样,在文本模型中,成本非常低。而在视觉模型中,数据加载的IO要高出约150倍。每个Token的字节数为600,而不是文本的4。有很多关于图像压缩的研究正在进行中。

    这对于那些正在根据未来2-3年内LLM的用例和比率来优化硬件的硬件供应商来说非常重要。他们可能会发现自己处于一个每个模型都具有强大的视觉和音频能力的世界中。他们可能会发现他们的架构适应不良。总的来说,架构肯定会发展到超越当前简化的基于文本的密集和/或MoE模型的阶段。

    前言(我把原文的前言放到了最后,废话太多了)

    OpenAI保持GPT-4架构封闭,不是因为对人类的某种存在风险,而是因为他们所构建的内容是可复制的。实际上,我们预计Google、Meta、Anthropic、Inflection、Character、Tencent、ByteDance、Baidu等公司在短期内将拥有与GPT-4一样甚至更强大的模型能力。

    请不要误解,OpenAI具有令人惊叹的工程能力,他们所构建的东西令人难以置信,但他们所找到的解决方案并非魔法。这是一个优雅的解决方案,其中包含许多复杂的权衡。规模扩大只是战斗的一部分。OpenAI最持久的竞争优势在于他们拥有最多的实际应用、领先的工程人才,并且可以通过未来的模型继续超越其他公司。

    我们从多个来源收集了关于GPT-4的大量信息,今天我们想分享一下。这包括模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、Token数量、层数量、并行策略、多模态视觉适配、不同工程权衡背后的思考过程、独特的实现技术以及他们如何减轻推理超大模型遇到的一些最大的瓶颈

    GPT-4最有趣的方面在于理解他们为什么做出某些架构决策。

    此外,我们将概述在A100上训练和推理GPT-4的成本,以及在下一代模型架构中如何与H100进行扩展。

    首先,让我们来看看问题陈述。从GPT-3到4,OpenAI希望扩大100倍,但成本不允许。密集Transformer模型(Dense Transformer Model)将无法进一步规模化。Transformer是OpenAI GPT-3、Google PaLM、Meta LLAMA、TII Falcon、MosaicML MPT等模型使用的模型架构。我们可以轻松地列举出使用这种相同架构训练LLM的50多家公司。这是一个不错的架构,但对于规模化来说有缺陷。

    请看我们之前在即将到来的AI瓶颈中从训练成本角度讨论过的内容,以及OpenAI在高层次上为GPT-4架构所做的工作,以及对各种现有模型的训练成本做出了披露。 在过去六个月中,我们意识到培训成本是无关紧要的。

    当然,从表面上看,为培训一个模型花费几千万甚至几亿美元的计算时间似乎很荒谬,但对于这些公司来说,这是微不足道的开支。这实际上是一个资本支出项目,扩大规模始终会带来更好的结果。唯一的限制因素是将计算规模扩大到人类可以得到反馈并修改架构的时间范围内。

    在未来几年,谷歌、Meta和OpenAI/Microsoft等多家公司将在价值超过一千亿美元的超级计算机上训练模型。Meta每年在“Metaverse”上投入超过160亿美元,谷歌每年浪费100亿美元在各种不可能实现的项目上。亚马逊在Alexa上已经亏损了超过500亿美元。加密货币在毫无价值的事物上浪费了超过1000亿美元。这些公司和整个社会可以并且将会花费超过一千亿美元来创建可以训练单个巨大模型的超级计算机。这些巨大的模型随后可以以多种方式产品化。这个努力将在多个国家和公司中复制。这是新的太空竞赛。与以前的浪费不同,现在的人工智能具有实实在在的价值,这些价值短期内将从人类助手和自动人类代理中得到体现。

    规模化人工智能的真正的AI瓶颈在于推断。目标是将训练计算与推断计算分离。这就是为什么要使用稀疏模型架构;在推理过程中,并不需要激活每个参数。真正的挑战在于将这些模型应用到用户的成本太高,这个过程中,推理的成本超过训练的成本数倍。这就是OpenAI在模型架构和基础设施方面的创新目标。大型模型的推理是一个多变量问题,对于密集模型来说,模型大小是致命的。我们在这里详细讨论了与边缘计算相关的问题,但数据中心的问题陈述非常相似。简单来说,设备永远无法拥有足够的内存带宽来实现大语言模型的特定吞吐量水平。即使带宽足够,边缘计算设备上硬件计算资源的利用率也将非常低。

    在数据中心和云端,利用率是至关重要的。Nvidia之所以受到赞赏,一半的原因是因为在GPU的整个迭代周期中,Nvidia不断更新底层软件,通过更智能地在芯片内部、芯片之间和内存之间移动数据,将FLOPS的利用率提高。

    在大多数使用情形中,LLM推理的目标是作为实时助手运行,这意味着它必须达到足够高的吞吐量,使用户能够真正使用它。人类平均阅读速度约为每分钟250个词,但有些人甚至高达每分钟1000个词。这意味着您需要至少每秒输出8.33个Token,甚至接近每秒输出33.33个Token以应对所有情况。

    根据内存带宽的要求,一个兆级别参数的密集模型在最新的Nvidia H100 GPU服务器上数学上无法实现这种吞吐量。每个生成的Token都需要将每个参数从内存加载到芯片上,生成Token,然后输入到Prompt中,然后再生成下一个Token。此外,为注意力机制流式传输KV缓存还需要额外的带宽。

    这个图表假设由于无法融合每个操作、注意机制所需的内存带宽等原因,硬件效率等同于参数读取。实际上,即使使用了像Nvidia的FasterTransformer库这样的"优化"库,总开销也更大。

    上面的图表展示了推理一个LLM所需的内存带宽,以实现足够高的吞吐量为单个用户提供服务。它显示,即使使用8个H100,也无法以每秒33.33个Token的速度为1兆参数的密集模型提供服务。

    此外,以每秒20个Token的速度使用8个H100的FLOPS利用率仍然不到5%,导致推理成本非常高。事实上,目前基于8路张量并行的H100系统对于约3000亿前向参数存在推理限制。

    然而,OpenAI正在使用A100实现人类阅读速度,使用的模型参数超过1兆,并以每1,000个Token仅售0.06美元的低价广泛提供。这是因为它是稀疏的,即并非每个参数都被使用。

    ==本质上就是GPU利用率被内存/带宽等要素限制了,GPU没被真正开发出完全的潜力。==

    hjl4am 2023-09-25 0 回复
没有账号?注册  忘记密码?