万字长文解析 GPT-4o 背后的技术原理

图片由 DALL·E 3 生成

提示词为:A futuristic illustration of a high-tech planet named GPT-4o. At the center, there is a giant brain symbolizing GPT-4o, connected to thousands of GPUs arranged in a highly orderly manner. The GPUs should be depicted in neat rows, connected by intricate high-speed networking cables. The planet itself should have a sleek, high-tech look, with glowing lights and advanced structures surrounding the central brain. The overall theme should convey a sense of advanced technology and the immense computational power required for GPT-4o. The background should feature a starry sky, emphasizing the futuristic and high-tech atmosphere.

引言

OpenAI 于 2024 年 5 月 13 日(当地时间)正式发布最新的旗舰模型 GPT-4o,并为 ChatGPT 的免费用户提供更多功能。GPT-4o 是最新的旗舰模型,提供了 GPT-4 级别的智能,但速度更快,在文本、语音和视觉方面的能力也有所提高。有关 GPT-4o 的详细特性和使用请参考上一篇文章《重磅:OpenAI 发布 GPT-4o,支持实时音视频交互》。

本文将回顾 GPT-4 的技术细节,以期发现 GPT-4o 技术实现的蛛丝马迹。信息来源于社区,请注意甄别,并以官方正式论文和技术报告为准。

以下为正文。

OpenAI 保持 GPT-4 架构封闭并不是因为对人类存在某种生存风险,而是因为他们所构建的东西是可以复制的。事实上,我们预计 Google、Meta、Anthropic、Inflection、Character、腾讯、字节跳动、百度等在短期内都会拥有与 GPT-4 一样强大甚至更强大的模型。

不要误会我们的意思,OpenAI 的工程技术非常出色,他们的成果令人惊叹,但他们所达成的解决方案并不是魔法。这是一个包含许多复杂权衡的优雅解决方案。做大规模只是战斗的一部分。OpenAI 最持久的护城河在于他们拥有最多的现实世界使用、领先的工程人才,并且能够继续通过未来的模型超越其他公司。

我们已经从许多来源收集了大量关于 GPT-4 的信息,今天我们想分享这些信息。这包括模型架构、训练基础设施、推理基础设施、参数数量、训练数据集构成、token 数量、层数、并行策略、多模态视觉适应、不同工程权衡背后的思考过程、独特的实施技术,以及他们如何缓解与大规模模型推理相关的一些最大瓶颈

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

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

首先,从问题陈述开始。从 GPT-3 到 GPT-4,OpenAI 希望规模扩大 100 倍,但棘手的问题是成本。稠密 transformer 模型将无法进一步扩展。稠密 transformer 是 OpenAI GPT-3、Google PaLM、Meta LLAMA、TII Falcon、MosaicML MPT 等使用的模型架构。我们可以轻松列出 50 家使用相同架构训练大型语言模型的公司。它是一个好的架构,但在扩展方面存在缺陷。

请参阅我们在 GPT-4 公布之前关于密集模型训练成本的讨论,探讨从训练成本的角度来看即将到来的 AI 瓶颈。在那里,我们揭示了 OpenAI 在 GPT-4 架构上的高层次做法以及各种现有模型的训练成本。

在过去的六个月里,我们意识到训练成本并不重要。

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

在未来几年内,多家公司如 Google、Meta 和 OpenAI/Microsoft 将在价值超过一千亿美元的超级计算机上训练模型。Meta 每年在“元宇宙”上消耗超过 160 亿美元,Google 每年在各种永远不会实现的项目上浪费 100 亿美元。亚马逊在 Alexa 上损失了超过 500 亿美元。加密货币在毫无价值的东西上浪费了超过 1000 亿美元。

这些公司和整个社会可以而且将会花费超过 1000 亿美元来创建能够训练单一大型模型的超级计算机。这些大型模型可以以各种方式产品化。这项努力将在多个国家和公司重复。这是新的太空竞赛。与之前那些浪费不同,现在 AI 将在短期内通过人类助手和自主代理带来切实的价值。

扩展 AI 更重要的问题,真正的 AI 墙,是推理。目标是将训练计算与推理计算分离开来。这就是为什么对于任何将要部署的模型,训练远超过 Chinchilla 最优是有意义的。这就是为什么要采用稀疏模型架构;在推理过程中并不是每个参数都被激活。

真正的战斗在于将这些模型扩展到用户和代理时成本过高。推理成本比训练成本高出多倍。这是 OpenAI 针对模型架构和基础设施进行创新的目标。

大型模型的推理是一个多变量问题,对于稠密模型来说,模型规模会让你付出代价。我们在这里详细讨论了这个问题,但对于数据中心来说,问题陈述非常相似。简要概述是,设备永远无法拥有足够的内存带宽,使大型语言模型达到某些吞吐量水平。即使它们有足够的带宽,边缘硬件计算资源的利用率也会非常低。

在数据中心和云端,利用率是关键。Nvidia 因其软件卓越而受到赞誉的原因有一半是因为在 GPU 的整个生命周期中,Nvidia 不断更新低级软件,通过更智能的数据移动(在芯片内部、芯片之间和内存之间),提升 FLOPS 的利用率。

在大多数当前的使用场景中,LLM 推理是作为实时助手运行,这意味着它必须达到足够高的吞吐量,以便用户实际使用。人类平均阅读速度约为每分钟 250 个单词,但有些人能达到每分钟约 1000 个单词。这意味着你需要每秒输出至少 8.33 个 token,但更可能是每秒 33.33 个 token,以覆盖所有边缘情况。

一个拥有一万亿参数的密集模型在数学上无法在即使是最新的 Nvidia H100 GPU 服务器上达到这种吞吐量,因为内存带宽的要求。每生成一个 token,都需要从内存中将每个参数加载到芯片上。生成的 token 随后被输入提示词中以生成下一个 token。此外,还需要额外的带宽来流入用于注意力机制的 KV 缓存。

上图展示了推理一个大语言模型(LLM)所需的内存带宽,以足够高的吞吐量为单个用户服务。图表显示,即使是 8x H100 也无法以每秒 33.33 个 token 的速度服务一个拥有 1 万亿参数的密集模型。此外,在每秒 20 个 token 的情况下,8x H100 的 FLOPS 利用率仍然低于 5%,导致推理成本非常高。实际上,目前一个 8 路张量并行 H100 系统在推理约 3000 亿前馈参数时会遇到瓶颈。

然而,OpenAI 正在使用 A100 以超过 1 万亿参数的模型实现人类阅读速度,并且他们以每 1000 个 token 仅 0.06 美元的低价广泛提供这项服务。这是因为模型是稀疏的,即不是每个参数都被使用。

我们不再绕圈子,让我们讨论 GPT-4 的模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、token 数量、层数、并行策略、多模态视觉编码器、不同工程权衡背后的思考过程、独特的实施技术,以及他们如何缓解与大规模模型推理相关的一些最大瓶颈。

模型架构

GPT-4 的规模超过 GPT-3 的 10 倍。我们认为它总共有大约 1.8 万亿参数,分布在 120 层,相比之下,GPT-3 只有大约 1750 亿参数。OpenAI 通过使用专家混合(MoE)模型来保持成本合理。如果你不熟悉 MoE,可以阅读我们六个月前关于 GPT-4 架构和训练成本的帖子。此外,OpenAI 在他们的模型中使用了 16 个专家,每个专家大约有 1110 亿参数用于 MLP。每次前向传递会路由到其中的两个专家。

虽然文献中有很多关于选择哪些专家来路由每个 token 的高级路由算法的讨论,但据称 OpenAI 目前的 GPT-4 模型采用的是相当简单的算法。此外,大约有 550 亿共享参数用于注意力机制。每次前向传递推理(生成 1 个 token)只使用大约 2800 亿参数和 560 TFLOP。这与纯密集模型每次前向传递所需的 1.8 万亿参数和 3700 TFLOP 形成了对比。

数据集组成

OpenAI 在约 13 万亿个 token 上训练了 GPT-4。这是合理的,因为 CommonCrawl for RefinedWeb 包含约 5 万亿个高质量 token。作为参考,Deepmind 的 Chinchilla 和 Google 的 PaLM 模型分别在 1.4 万亿个 token 和 0.78 万亿个 token 上进行了训练。据称,即使是 PaLM 2 也在约 5 万亿个 token 上进行了训练。

这个数据集并不是 13 万亿个独特的 token。相反,由于缺乏高质量的 token,数据集中包含了多次循环。文本数据进行了 2 次循环,代码数据进行了 4 次循环。有趣的是,这远低于 Chinchilla 最优,这表明需要在双倍的 token 数量上训练模型。这表明在网上很难找到足够多的高质量 token。实际上,有 1000 倍更多的高质量文本 token 以及更多的音频和视觉内容,但获取这些 token 并不像网络抓取那么简单。

从 ScaleAI 以及内部获得了数百万行指令微调数据。不幸的是,我们找不到很多关于他们的 RLHF 数据的信息。

预训练阶段的上下文长度(seqlen)为 8k。GPT-4 的 32k seqlen 版本是基于 8k 预训练后的微调。批处理大小在集群上逐渐增加,但到最后,OpenAI 使用了 6000 万的批处理大小!当然,由于并不是每个专家都能看到所有 token,这“仅仅”相当于每个专家的批处理大小为 750 万个 token。

并行策略

在所有 A100 GPU 上实现并行化的策略至关重要。他们利用了 8 路张量并行,这是 NVLink 的限制。此外,我们了解到他们使用了 15 路流水线并行。理论上,考虑到数据通信与计算时间,这条流水线过多,但如果他们受限于内存容量,这样做是有道理的。

纯粹的流水线+张量并行时,每个 GPU 上的参数仅为 FP16 时需要约 30GB。一旦添加了 KV 缓存和开销,这在理论上是合理的,尤其是如果 OpenAI 的 GPU 中有很大一部分是 40GB 的 A100。他们可能使用了 ZeRO Stage 1,也可能使用了块级 FSDP 或混合共享数据并行。

至于为什么他们不使用完整的模型 FSDP,原因可能是更高的通信开销。虽然 OpenAI 在大多数节点之间有高速网络,但可能并非所有节点之间都有高速网络。我们相信至少有部分集群连接的带宽远低于其他集群。

我们不明白他们如何在这样高的流水线并行度下避免每个批次产生巨大的空泡成本。他们可能只是承担了这些成本。

训练成本

GPT-4 的训练 FLOPS 为约 2.15e25,在约 25000 个 A100 上进行 90 到 100 天,MFU 约为 32% 到 36%。部分极低的利用率是由于大量的失败需要重新从检查点重新开始。上述提到的空泡非常昂贵。

另一个原因是这么多 GPU 之间的 all-reduce 非常昂贵。如果如我们所怀疑的那样,集群实际上是许多较小的集群,之间的网络连接较弱,即集群的部分之间有 800G/1.6T 的非阻塞连接,但这些部分之间只有 200G/400G 的连接,这尤其正确。

如果在云端每个 A100 小时的成本约为 1 美元,那么这次运行的训练成本仅为约 6300 万美元。这忽略了所有的实验、失败的训练运行和其他成本,如数据收集、RLHF、员工等。由于这些因素,实际成本要高得多。此外,这还意味着你有一个人购买芯片/网络/数据中心,吸收资本支出,并租给你。

今天,预训练可以在大约 8192 个 H100 上完成,约 55 天,成本为 2150 万美元,按每个 H100 小时 2 美元计算。请注意,我们认为今年底有 9 家公司将拥有更多的 H100。并不是所有这些公司都会将所有的 H100 投入到一次训练运行中,但那些这样做的公司将拥有一个更大的模型。Meta 到今年底将拥有超过 10 万个 H100,但相当多的 H100 将分布在他们的数据中心进行推理。他们最大的单个集群仍将超过 25000 个 H100。

到今年年底,许多公司将拥有训练 GPT-4 规模模型的计算资源。

专家混合的权衡

MoE 是在推理过程中减少参数数量,同时仍然增加参数数量(这是编码每个训练 token 所需的)的好方法。这是必要的,因为获取足够的高质量 token 极其困难。如果 OpenAI 真正尝试达到 Chinchilla 最优,他们将不得不在双倍的 token 上进行训练。

话虽如此,OpenAI 做出了多种权衡。例如,MoE 在推理中处理起来非常困难,因为在每次 token 生成时并不是模型的每个部分都被使用。这意味着在使用某些部分时,其他部分可能会处于闲置状态。在为用户提供服务时,这真的会影响利用率。

研究人员已经表明,使用 64 到 128 个专家比 16 个专家能够达到更好的损失,但这仅仅是研究。选择较少的专家有多个原因。OpenAI 选择 16 个专家的一个原因是更多的专家在许多任务上更难以泛化。更多的专家也更难以实现收敛。在如此大规模的训练运行中,OpenAI 选择在专家数量上更加保守。

此外,使用较少的专家也有助于他们的推理基础设施。转向专家混合推理架构时存在多种艰难的权衡。在讨论 OpenAI 面临的挑战及其选择之前,让我们先了解一下 LLM 推理的基本权衡。

推理权衡

在开始之前,我们想指出,我们与之交谈过的每个 LLM 公司都认为 Nvidia 的 FasterTransformer 推理库相当糟糕,TensorRT 甚至更差。无法修改 Nvidia 的模板意味着人们从头开始创建自己的解决方案。如果 Nvidia 的人正在阅读这篇文章,你们需要尽快解决 LLM 推理问题,否则开放工具将成为事实标准,并且更容易添加第三方硬件支持。巨型模型的浪潮即将到来。如果在推理中没有软件优势,而且无论如何都需要手写内核,那么 AMD 的 MI300 和其他硬件的市场将会更大。

大型语言模型推理的 3 个主要权衡发生在批处理大小(并发用户数量)维度和所使用的芯片数量上。

    1. 延迟 – 模型必须在合理的延迟时间内响应。人们不希望在聊天应用程序中等待几秒钟才开始接收输出。预填充(输入 token)和解码(输出 token)需要不同的时间来处理。
    1. 吞吐量 – 模型必须每秒输出一定数量的 token。大约 30 个 token 每秒是人类使用所需的。较低和较高的吞吐量对于各种其他用例是可以接受的。
    1. 利用率 – 运行模型的硬件必须达到高利用率,否则成本将太高。虽然较高的延迟和较低的吞吐量可以用于将更多用户请求分组在一起,从而实现更高的利用率,但这会使问题变得更加复杂。

LLM 推理的关键在于平衡内存带宽和计算能力。最简单的说,每个参数都必须被读取,并且每个参数有 2 个 FLOP 相关联。因此,大多数芯片的比例(H100 SXM 只有 3TB/s 的内存带宽,但有 2000 TFLOP/s 的 FP8),对于批处理大小为 1 的推理来说完全不平衡。如果只服务 1 个用户(批处理大小为 1),那么每次生成 token 所需的内存带宽将主导推理时间。计算时间几乎为零。

要有效地将大型语言模型扩展到多个用户,批处理大小必须超过 1。多个用户可以分摊参数读取成本。例如,批处理大小为 256 或 512 时,每读取一字节的内存会有 512 FLOP/s 或 1024 FLOP/s。这个比例更接近 H100 的内存带宽和 FLOP。这有助于实现更高的利用率,但代价是更高的延迟。

许多人认为 LLM 推理的主要瓶颈是内存容量,因为可以容纳模型的芯片数量有限,但这是不正确的。虽然大型模型需要多个芯片进行推理,而且更高的内存容量意味着可以容纳更少的芯片,但实际上更好的是使用比容量要求更多的芯片,这样可以降低延迟、提高吞吐量并使用更大的批处理大小来实现更高的利用率。

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

如果应用程序需要最低可能的延迟,我们需要应用更多的芯片并尽可能多地划分模型。较低的延迟通常可以通过较小的批处理大小来实现,但较小的批处理大小也会导致更差的 MFU(利用率),从而导致每个 token 的总成本(以芯片秒或美元计)更高。

如果应用程序需要离线推理而不关心延迟,主要目标是最大化每个芯片的吞吐量(即,最小化每个 token 的总成本)。最有效的方法是增加批处理大小,因为较大的批处理通常会导致更好的 MFU(利用率),但某些划分策略在较小的批处理大小下不高效,而在批处理大小较大时则变得高效。

更多的芯片和更大的批处理大小是最便宜的,因为它们增加了利用率,但这也引入了第三个变量:网络时间。一些将模型拆分到多个芯片上的方法在延迟方面更高效,但与利用率存在权衡。

内存时间的权重加载部分和非注意力计算时间与模型大小成正比,并与芯片数量成反比。然而,对于给定的划分布局,芯片间通信所需的时间随芯片数量的增加减少得更慢(或根本不减少),因此随着芯片数量的增加,它成为一个越来越重要的瓶颈。

虽然我们今天只会简要讨论这个问题,但需要注意的是,随着批处理大小和序列长度(seqlen)的增加,KV 缓存的内存需求会急剧增加。

如果应用程序需要生成具有长注意力上下文的文本,则会大幅增加推理时间。对于具有多头注意力机制的 500B+ 模型,注意力 KV 缓存会变得很大:对于批处理大小为 512 和上下文长度为 2048 的情况,KV 缓存总量为 3TB,这是模型参数大小的三倍。每次生成 token 时,需要从芯片外内存加载这个 KV 缓存,而芯片的计算核心基本上处于空闲状态。

较长的序列长度对内存带宽和内存容量尤其不利。OpenAI 的 16k seqlen GPT 3.5 turbo 和 32k seqlen GPT-4 更昂贵,因为它们无法利用更大的批处理大小,受到内存限制。较小的批处理大小导致较低的硬件利用率。此外,随着序列长度的增加,KV 缓存会膨胀。KV 缓存不能在用户之间共享,因此需要单独的内存读取,进一步限制内存带宽。接下来我们会详细讨论 MQA(多查询注意力)。

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 的节点只有约 1300 亿参数,或每个 GPU 少于 30GB(FP16)和少于 15GB(FP8/int8)。只要 KV 缓存大小不会膨胀太大,推理就可以在 40GB 的 A100 上运行。

不同专家层包含的各种专家不会分散到不同的节点上,因为这会使网络流量过于不规则,并且在每次生成 token 时重新计算 KV 缓存的成本过高。未来任何 MoE 模型扩展和条件路由的最大难题是如何处理围绕 KV 缓存的路由。

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

GPT-4 推理成本

尽管 GPT-4 只有 1.6 倍于 175B 参数的 Davinchi 模型,但其成本是 Davinchi 模型的 3 倍,这主要是由于 GPT-4 所需的更大集群和实现的更低利用率。

我们认为在 128 个 A100 上进行 8k seqlen 的 GPT-4 推理的成本为每 1000 个 token 0.0049 美分,而在 128 个 H100 上进行 8k seqlen 的 GPT-4 推理的成本为每 1000 个 token 0.0021 美分。需要注意的是,我们假设了较高的利用率和较大的批处理大小。

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

多查询注意力(MQA)

MQA 是每个人都在做的事情,但我们想指出 OpenAI 也在做。简而言之,只需要一个头,KV 缓存的内存容量可以显著减少。即便如此,32k seqlen 的 GPT-4 肯定不能在 40GB 的 A100 上运行,而 8k 的最大批处理大小也有限制。如果没有它,8k 的最大批处理大小将受到显著限制,以至于经济上不可行。

持续批处理

OpenAI 实现了可变批处理大小和持续批处理。这是为了允许一定程度的最大延迟并优化推理成本。如果你不熟悉这个概念,可以阅读 AnyScale 的这个页面。

推测解码

我们从一些可靠消息来源听说 OpenAI 在 GPT-4 推理中使用了推测解码。我们不确定是否相信这一点。token 到 token 延迟的普遍变化以及在执行简单检索任务与更复杂任务时的差异似乎表明这是可能的,但变量太多,无法确定。以防万一,我们在这里解释一下,使用“通过分阶段推测解码加速 LLM 推理”中的一些文本并稍作修改/添加一些细节来说明推测解码的工作原理。

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

第二阶段是解码。选择一个 token 并将其反馈到模型中,模型会生成下一个 token 的 logits。这一过程反复进行,直到生成所需数量的 token。由于解码必须按顺序进行,每次生成单个 token 时权重都会通过计算单元流动,因此在小批处理下的算术强度(即 FLOP/内存带宽字节)非常低。因此,解码通常是自回归生成中最昂贵的部分。这也是为什么 OpenAI 的 API 调用中,输入 token 比输出 token 便宜得多。

推测解码的基本思想是使用一个较小、较快的草稿模型提前解码几个 token,然后将它们作为一个批次输入到主模型中。如果草稿模型对其预测是正确的,即较大的模型同意,那么可以通过一个批次解码多个 token,从而节省大量的内存带宽和时间。然而,如果较大的模型拒绝了草稿模型预测的 token,那么其余的批次将被丢弃,算法自然会回到标准的逐个 token 解码。推测解码还可以伴随拒绝采样方案以从原始分布中采样。注意,这仅在小批处理环境下有用,在这种情况下,带宽是瓶颈。推测解码用计算换取带宽。推测解码之所以成为一个有吸引力的性能工程目标,有两个关键原因。首先,它完全不会降低模型质量。其次,它提供的性能增益通常与其他方法正交,因为其性能来自将顺序执行转换为并行执行。当前的推测方法为批次预测单个序列。然而,这在大批处理大小或低草稿模型对齐度的情况下扩展性较差。直观上,两种模型对于长连续序列的 token 的一致性概率呈指数级下降,这意味着随着算术强度的增加,推测解码的回报迅速递减。我们认为,如果 OpenAI 使用推测解码,他们可能只对大约 4 个 token 的序列使用它。顺便提一下,有关 GPT-4 质量下降的阴谋论可能只是因为他们让主模型接受了来自推测解码模型的低概率序列。另一个插曲是,有些人推测 Bard 使用推测解码,因为 Google 等待整个序列生成后才发送给用户,但我们不相信这种推测是真实的。

多模态视觉

GPT-4 的多模态视觉能力是最不令人印象深刻的部分,至少与领先的研究相比。当然,尚无任何公司将多模态 LLM 的研究成果商业化。这是一个独立的视觉编码器与文本编码器,但有交叉注意力。我们听说其架构类似于 Flamingo。这在 GPT-4 的 1.8 万亿参数基础上增加了更多参数。在文本预训练之后,进行了约 2 万亿 token 的微调。

在视觉模型方面,OpenAI 想从头开始训练,但它还不够成熟,所以他们想通过从文本开始来降低风险。

下一代模型 GPT-5 据说将从头开始训练视觉,并且能够自己生成图像。此外,它还能够处理音频。这种视觉能力的主要目的是为自主代理提供能力,使其能够读取网页并转录图像和视频中的内容。他们训练的一些数据是联合数据(渲染的 LaTeX/文本)、网页截图、YouTube 视频的采样帧,并使用 Whisper 获取转录内容。

所有这些针对 LLM 的过度优化中有趣的一点是,视觉模型的 IO 成本与文本模型不同。在文本模型上,正如我们在 Amazon Cloud Crisis 文章中描述的那样,数据加载成本非常低。在视觉模型上,数据加载的 IO 成本高出约 150 倍。每个 token 600 字节,而文本只有 4 字节。在图像压缩方面有很多工作正在进行。

这对硬件供应商非常重要,他们正在针对未来 2-3 年的使用案例和 LLM 的比例优化硬件。他们可能会发现自己处在一个每个模型都具有强大视觉和音频能力的世界中。他们可能会发现他们的架构不适应。总体而言,架构肯定会超越我们今天看到的当前简化的基于文本的密集和/或 MoE 模型。

(全文完)


3