在过去的6个月里,我们意识到训练成本是无关紧要的。

当然,表面上看起来疯狂,需要花费数千万甚至数亿美元的计算时间来训练一个模型,但对于这些公司来说,这种支出微不足道。这实际上是一个固定资本支出项目,通过扩大规模可以持续获得更好的结果。唯一的限制因素是将计算资源扩展到人类能够获得反馈并修改架构的时间尺度上。

在未来几年里,包括Google、Meta和OpenAI/Microsoft在内的多家公司将在价值超过1000亿美元的超级计算机上训练模型。Meta每年在“元宇宙”上烧掉160亿美元,Google每年浪费100亿美元用于各种无法实现的项目。亚马逊在Alexa上已经亏损了超过500亿美元。加密货币在没有价值的东西上浪费了1000亿美元。

这些公司和整个社会可以并且将会花费超过1000亿美元来创建能够训练单个大规模模型的超级计算机。然后,这些大规模模型可以以各种方式产品化。这个努力将在多个国家和公司中复制。这是一场新的太空竞赛。与以前的浪费不同的是,现在的AI具有明显的价值,短期内将从人类助理和自主代理中获得实际价值。

扩展人工智能的一个更重要问题,真正的AI瓶颈,是推理。目标是将训练计算与推理计算分离。这就是为什么训练超出最佳状态对于任何将被部署的模型都是有意义的。这也是为什么要使用稀疏模型架构;在推理过程中,并非每个参数都被激活。

真正的挑战是将这些模型扩展到用户和代理上的成本过高。推理的成本比训练的成本高出多倍。这就是OpenAI在模型架构和基础设施方面的创新目标。

对于密集模型来说,大型模型的推理是一个多变量问题。我们在这里详细讨论了边缘计算方面的问题,但对于数据中心来说,问题陈述非常相似。简单来说,设备永远无法提供足够的内存带宽来实现大型语言模型的某些吞吐量水平。即使它们有足够的带宽,边缘设备上的硬件计算资源利用率也将很低。

并行策略

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

仅仅通过流水线 张量并行,每个GPU的参数在FP16下就占用了约30GB。一旦加上KV缓存和开销,从理论上讲,如果OpenAI的大部分GPU都是40GB的A100,那么这是有道理的。他们可能使用了ZeRo阶段1。他们可能还使用了块级FSDP或混合共享数据并行。

至于为什么他们没有使用完整模型的FSDP,可能是因为更高的通信开销。虽然OpenAI的大多数节点之间具有高速网络连接,但并非所有节点之间都是如此。我们相信至少一些集群的带宽要低得多。

我们不明白他们是如何在如此高的流水线并行度下避免每个批次产生巨大的延迟。很可能他们只是吸收了这个成本。

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

以上所有内容对于GPT-4的推理来说都很困难,因为作为Mixture of Experts(MoE)的模型架构引入了一整套新的困难。每个标记生成的前向传递可以路由到不同的专家集合。这在吞吐量、延迟和利用率的权衡方面引入了一种新的困境,尤其是在较大的批次大小下。

OpenAI的GPT-4拥有16个专家,每个前向传递路由到其中的2个专家。这意味着如果批次大小为8,每个专家的参数读取可能只有批次大小为1。更糟糕的是,这可能意味着一个专家的批次大小为8,而其他专家的批次大小可能为4、1或0。每个标记生成,路由算法都会将前向传递发送到不同的方向,导致标记之间的延迟以及专家批次大小出现显著的变化。

推理基础设施是OpenAI选择采用较少专家的主要原因之一。如果他们选择更多的专家,内存带宽将更加成为推理的瓶颈。OpenAI的推理集群通常达到4k 的批次大小,这意味着即使在专家之间进行最佳负载均衡,专家们的批次大小也只有约500。这需要非常大量的使用才能实现。

我们了解到OpenAI在一个由128个GPU组成的集群上运行推理。他们在多个数据中心和地理位置拥有多个这样的集群。推理采用8路张量并行和16路管道并行。每个由8个GPU组成的节点仅拥有约130B的参数,或者在FP16模式下每个GPU不到30GB,在FP8/int8模式下不到15GB。这使得推理可以在40GB的A100上运行,前提是所有批次中的KV缓存大小不会膨胀得太大。

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

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

使用连续批处理完成七个序列。左侧显示了单次迭代后的批次,右侧显示了经过多次迭代后的批次。一旦一个序列发出一个序列结束令牌,我们会插入一个新的序列来取代它,例如序列S5、S6和S7。这样可以实现更高的GPU利用率,因为GPU不需要等待所有序列完成后才开始新的序列。

视觉多模态

GPT-4的视觉多模态能力相对于领先的研究来说是最不引人注目的部分。当然,目前还没有任何人将多模态LLM的研究商业化。

GPT-4的视觉编码器与文本编码器是分开的,但存在交叉注意力。据我们所知,该架构类似于Flamingo。这使得GPT-4的参数数量增加了。在文本预训练之后,通过另外约2万亿个标记进行微调。

对于视觉模型,OpenAI原本想从头开始训练,但该模型还不成熟,因此他们决定通过从文本开始进行降低风险。

下一个模型GPT-5据说将从头开始训练视觉,并且能够自主生成图像。此外,它还能够处理音频。

视觉能力的一个主要目的是使自主代理能够阅读网页并转录图像和视频中的内容。他们训练的数据包括联合数据(渲染的LaTeX/文本),网页的屏幕截图,YouTube视频:采样帧,并使用Whisper进行转录。

有趣的是,对于所有这些对LLM过度优化的内容来说,视觉模型的IO成本与文本模型不同。在文本模型中,数据加载非常便宜,就像我们在关于亚马逊云危机的文章中所描述的那样。而在视觉模型中,数据加载的IO成本高出约150倍。每个标记的数据加载约为600字节,而不是文本的4字节。目前在图像压缩方面有很多工作正在进行。

这对于正在针对2到3年后LLM的用例和比例进行硬件优化的硬件供应商来说非常重要。他们可能会发现自己处于一个每个模型都具备强大的视觉和音频功能的世界。他们可能会发现他们的架构不太适应这种情况。总的来说,架构肯定会进一步发展,超越当前我们所看到的基于文本的稠密模型和/或MoE模型的简化形式。

温馨提示:虽然我们每天都有推送,但最近有读者表示因平台推送规则调整,有时候看不到我们的文章~

*文章观点仅供参考,不代表本机构立场。

作者 admin