赞
踩
MLLM:《揭秘GPT-4:OpenAI架构背后的工程权衡—GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE》翻译与解读
导读:GPT-4核心要点总结:
>> 训练数据集: GPT-4使用来自互联网、书籍、研究论文等来源的约13万亿tokens进行训练,采用张量和管道并行以及6000万的batch size进行训练,训练成本预计约6300万美元。
>> 模型规模: GPT-4是拥有120层、约1.8万亿参数的语言模型,比GPT-3大10倍。
混合专家模型(MoE): 使用16个专家模型的MoE,每个专家模型拥有约1110亿参数,能够更有效地利用资源,推理过程中仅需约2800亿参数和560 TFLOP。选择16个专家的MoE,相对于更多专家,16个专家更容易泛化和收敛。使用相对简单的MoE路由算法,每次前向传递路由到2个专家模型。
>> GPT-4训练: 训练成本FLOPS约为2.15e25,持续90至100天,估计成本为6300万美元。
GPT-4 32K: 在预训练阶段,有8k上下文长度,32k版本是在此基础上微调的。
Batch Size: 使用6000万的batch size进行训练,每个专家750万个tokens的批量大小。
并行策略: 利用8路张量并行和15路管道并行,在A100s GPU上进行并行化。
连续批处理: 实现了可变批量大小和连续批处理,以允许一定程度的最大延迟并优化推理成本。
视觉多模态: 使用交叉注意力的独立视觉编码器,用于处理多模态任务,如阅读网页、转录图像和视频。
推测性解码: 可能使用推测性解码来进行GPT-4的推理,通过使用较小、更快的模型提前解码多个tokens。
>> GPT-4推理: 推理成本每次前向传递的推理仅利用约280亿参数和560 TFLOP,与纯密集模型形成对比,推理成本显著降低。推理成本是Davinchi的3倍,主要因为需要更大的集群和低利用率。
推理架构: 在128个GPU的集群上运行,通过8路张量并行和16路管道并行来完成。
硬件基础设施: 缺少FSDP可能是由于保护旧一代硬件基础设施造成的,因为组织通常会分阶段升级基础设施。
目录
《GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE》翻译与解读
开始探讨:GPT-4的模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、令牌数量、层数量、并行策略、多模态视觉编码器、不同工程权衡背后的思考过程、独特的实施技术
参数量规模:GPT-4 是一个120 层的拥有约 1.8 万亿个参数的语言模型
混合专家模型MoE(可保持合理的成本):16个专家模型(过多则很难泛化),每个专家模型拥有约 1110 亿个参数
GPT-4训练成本:早期(6300 万美元/90~ 100 天),目前(2150万美元/55天)
推理架构:128 个 GPU 的集群,8路张量并行和16路管道
地址 | 文章地址:GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE |
时间 | 2023年7月11日 |
作者 | >> DYLAN PATEL,GERALD WONG,SemiAnalysis 发布了一篇付费订阅的内容,「揭秘」了有关 GPT-4 的更多信息。 >> Yam Peleg的推文,也直接泄露了相关信息,目前该推文已删除。 |
OpenAI is keeping the architecture of GPT-4 closed not because of some existential risk to humanity but because what they’ve built is replicable. In fact, we expect Google, Meta, Anthropic, Inflection, Character, Tencent, ByteDance, Baidu, and more to all have models as capable as GPT-4 if not more capable in the near term. Don’t get us wrong, OpenAI has amazing engineering, and what they built is incredible, but the solution they arrived at is not magic. It is an elegant solution with many complex tradeoffs. Going big is only a portion of the battle. OpenAI’s most durable moat is that they have the most real-world usage, leading engineering talent, and can continue to race ahead of others with future models. | OpenAI让GPT-4的架构保持封闭,不是因为对人类存在一些风险,而是因为他们建造的东西是可复制的。事实上,我们预计谷歌、Meta、Anthropic、Inflection、Character、腾讯、字节跳动、百度等都将在短期内都将拥有与GPT-4一样甚至更强大的模型。 不要误解我们的意思,OpenAI拥有惊人的工程技术,他们构建的东西令人难以置信,但他们所达到的解决方案并非魔法。这是一个优雅的解决方案,涉及许多复杂的权衡。规模扩大只是战斗的一部分。OpenAI最持久的壁垒在于他们在实际应用中拥有最多,领先的工程人才,并且可以继续在未来的模型中领先于其他公司。 |
We have gathered a lot of information on GPT-4 from many sources, and today we want to share. This includes model architecture, training infrastructure, inference infrastructure, parameter count, training dataset composition, token count, layer count, parallelism strategies, multi-modal vision adaptation, the thought process behind different engineering tradeoffs, unique implemented techniques, and how they alleviated some of their biggest bottlenecks related to inference of gigantic models. | 我们从很多渠道收集了很多关于GPT-4的大量信息,今天我们想分享一下。这包括模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、令牌数量、层数量、并行策略、多模态视觉适应、不同工程权衡背后的思考过程、独特的实现技术,以及它们如何缓解与巨型模型推理相关的一些最大瓶颈。 |
The most interesting aspect of GPT-4 is understanding why they made certain architectural decisions. Furthermore, we will be outlining the cost of training and inference for GPT-4 on A100 and how that scales with H100 for the next-generation model architectures. First off, with the problem statement. From GPT-3 to 4, OpenAI wanted to scale 100x, but the problematic lion in the room is cost. Dense transformers models will not scale further. A dense transformer is the model architecture that OpenAI GPT-3, Google PaLM, Meta LLAMA, TII Falcon, MosaicML MPT, etc use. We can easily name 50 companies training LLMs using this same architecture. It’s a good one, but it’s flawed for scaling. See our discussion training cost from before the GPT-4 announcement on the upcoming AI brick wall for dense models from a training cost standpoint. There we revealed what OpenAI is doing at a high-level for GPT-4’s architecture as well as training cost for a variety of existing models. | GPT-4最有趣的方面是理解它们为什么做出某些架构决策。 此外,我们将概述A100上GPT-4的训练和推理成本,以及如何与下一代模型架构的H100进行扩展。 首先,从问题陈述开始。从GPT-3到GPT-4,OpenAI想要扩展100倍,但问题的关键在于成本。Dense transformers 模型将无法进一步缩放。Dense transformers是OpenAI GPT-3、Google PaLM、Meta LLAMA、TII Falcon、MosaicML MPT等使用的模型架构。我们可以轻松地列举出50家公司使用相同架构进行LLM训练。这是一个不错的架构,但对于扩展来说有缺陷。 从训练成本的角度来看,请参阅我们在GPT-4发布之前关于即将到来的密集模型人工智能砖墙的训练成本讨论。在那里,我们透露了OpenAI在GPT-4的架构以及各种现有模型的训练成本方面所做的工作。 |
Over the last 6 months we realized that training cost are irrelevant. Sure, it seems nuts on the surface, tens of millions if not hundreds of millions of dollars of compute time to train a model, but that is trivial to spend for these firms. It is effectively a Capex line item where scaling bigger has consistently delivered better results. The only limiting factor is scaling out that compute to a timescale where humans can get feedback and modify the architecture. Over the next few years, multiple companies such as Google, Meta, and OpenAI/Microsoft will train models on supercomputers worth over one hundred billion dollars. Meta is burning over $16 billion a year on the “Metaverse”, Google waste’s $10 billions a year on a variety of projects that will never come to fruition. Amazon has lost over $50+ billion on Alexa. Cryptocurrencies wasted over $100 billion on nothing of value. These firms and society in general can and will spend over one hundred billion on creating supercomputers that can train single massive model. These massive models can then be productized in a variety of ways. That effort will be duplicated in multiple counties and companies. It’s the new space race. The difference between those prior wastes and now is that with AI there is tangible value that will come from the short term from human assistants and autonomous agents. | 在过去的6个月中,我们意识到训练成本是无关紧要的。 当然,在表面上看,为了训练一个模型,数千万甚至数亿美元的计算时间似乎是疯狂的,但对于这些公司来说,这实际上是可以轻松承受的。这实际上是一项资本支出,扩大规模一直能够产生更好的结果。唯一的限制因素是将这种计算推向一个人类能够得到反馈并修改架构的时间尺度。 在未来几年,谷歌、Meta和OpenAI/Microsoft等多家公司将在价值超过一千亿美元的超级计算机上训练模型。Meta每年在“元宇宙”上烧掉超过160亿美元,谷歌每年在各种项目上浪费100亿美元,这些项目永远不会开花结果。亚马逊在Alexa上损失了500多亿美元。加密货币在毫无价值的东西上浪费了超过1000亿美元。 这些公司和整个社会可以也将花费超过1000亿美元来制造能够训练单个大规模模型的超级计算机。然后,这些大型模型可以通过各种方式进行产品化。这一努力将在多个国家和公司中复制。这就是新的太空竞赛。与以前的浪费不同,现在的AI在短期内可以从人类助手和自主代理那里获得有形的价值。 |
The much more important issue with scaling AI, the real AI brick wall, is inference. The goal is to decouple training compute from inference compute. This is why it makes sense to train well past Chinchilla optimal for any model that will be deployed. This is why you do sparse model architecture; every parameter is not activated during inference. The real battle is that scaling out these models to users and agents costs far too much. The costs of inference exceed that of training by multiple folds. This is what OpenAI’s innovation targets regarding model architecture and infrastructure. Inference of large models is a multi-variable problem in which model size kills you for dense models. We have discussed this regarding the edge in detail here, but the problem statement is very similar for datacenter. The quick rundown is that devices can never have enough memory bandwidth for large language models to achieve certain levels of throughput. Even if they have enough bandwidth, utilization of hardware compute resources on the edge will be abysmal. | 扩展AI(真正的AI砖墙)更重要的问题是推理。目标是将训练计算与推理计算解耦。这就是为什么对将要部署的任何模型进行远超过Chinchilla最优的训练是有意义的。这就是为什么你做稀疏模型架构;在推理期间,并非所有参数都被激活。 真正的问题在于将这些模型扩展到用户和代理上的成本太高。推理的成本超过了训练的多倍。这是OpenAI在模型架构和基础设施方面的创新目标。 大型模型的推断是一个多变量问题,在这个问题中,对于密集模型来说,模型大小是致命的。我们已经在这里详细讨论了这个问题,但对于数据中心来说,问题陈述非常相似。单来说,设备永远不能具有足够的内存带宽,以实现大型语言模型达到一定吞吐量的水平。即使它们有足够的带宽,边缘上的硬件计算资源的利用率也会非常低。 |
In the datacenter, in the cloud, utilization rates are everything. Half the reason Nvidia is lauded for software excellence is because over a GPU’s generations lifespan, Nvidia is constantly updating low level software that pushes FLOPS utilization rates up with smarter movement of data around a chip, between chips, and memory. LLM inference in most current use cases is to operate as a live assistant, meaning it must achieve throughput that is high enough that users can actually use it. Humans on average read at ~250 words per minute but some reach as high as ~1,000 words per minute. This means you need to output at least 8.33 tokens per second, but more like 33.33 tokens per second to cover all corner cases. | 在数据中心和云服务中,利用率就是一切。Nvidia之所以因其卓越的软件而备受赞誉,一半是因为在GPU的几代生命周期中,Nvidia通过不断更新低层软件,提高了在芯片之间、芯片之间以及内存之间智能地移动数据的FLOPS利用率。 在大多数当前用例中,LLM推理是作为实时助手运行的,这意味着它必须实现足够高的吞吐量,以便用户可以实际使用它。人类平均每分钟阅读约250个单词,但有些人每分钟阅读高达约1000个单词。这意味着您需要每秒至少输出8.33个令牌,但更像是每秒输出33.33个令牌,以涵盖所有极端情况。 |
A trillion-parameter dense model mathematically cannot achieve this throughput on even the newest Nvidia H100 GPU servers due to memory bandwidth requirements. Every generated token requires every parameter to be loaded onto the chip from memory. That generated token is then fed into the prompt and the next token is generated. Furthermore, additional bandwidth is required for streaming in the KV cache for the attention mechanism. | 由于内存带宽要求,即使是在最新的Nvidia H100 GPU服务器上,一个万亿参数的密集模型在数学上也无法实现这种吞吐量。每个生成的令牌都需要将每个参数从内存加载到芯片上。然后将生成的令牌输入到提示符中,并生成下一个令牌。此外,还需要额外的带宽来流式传输用于注意机制的KV缓存。 |
The chart above demonstrates the memory bandwidth required to inference an LLM at high enough throughput to serve an individual user. It shows that even 8x H100 cannot serve a 1 trillion parameter dense model at 33.33 tokens per second. Furthermore, the FLOPS utilization rate of the 8xH100’s at 20 tokens per second would still be under 5%, resulting is horribly high inference costs. Effectively there is an inference constraint around ~300 billion feed-forward parameters for an 8-way tensor parallel H100 system today. | 上面的图表展示了在足够高的吞吐量下推断LLM为单个用户服务所需的内存带宽。它表明,即使是8倍H100也无法以每秒33.33个令牌的速度服务1万亿参数密集模型。此外,在每秒20个令牌的情况下,8xH100的FLOPS利用率仍然低于5%,这导致了非常高的推理成本。目前,对于8路张量并行H100系统,有效地存在约3000亿个前馈参数的推理约束。 |
Yet OpenAI is achieving human reading speed, with A100s, with a model larger than 1 trillion parameters, and they are offering it broadly at a low price of only $0.06 per 1,000 tokens. That’s because it is sparse, IE not every parameter is used. | 然而,OpenAI通过A100实现了人类阅读速度,使用的模型规模超过1万亿参数,并且以仅0.06美元每1,000个令牌的低价广泛提供。这是因为该模型是稀疏的,即不是每个参数都被使用。 |
Enough waffling about, let’s talk about GPT-4 model architecture, training infrastructure, inference infrastructure, parameter count, training dataset composition, token count, layer count, parallelism strategies, multi-modal vision encoder, the thought process behind different engineering tradeoffs, unique implemented techniques, and how they alleviated some of their biggest bottlenecks related to inference of gigantic models. | 足够的废话,让我们谈谈GPT-4的模型架构、训练基础设施、推理基础设施、参数数量、训练数据集组成、令牌数量、层数量、并行策略、多模态视觉编码器、不同工程权衡背后的思考过程、独特的实施技术,以及他们如何缓解与巨大模型推理相关的一些最大瓶颈。 |
细节 | 数据集(Dataset):GPT-4 在约 13T 的tokens上进行训练,而且因为没有高质量的token,这个数据集还包含了许多个epoch。 Epoch number:基于文本的数据为 2 个epochs, 基于代码的数据为 4 个epochs。 |
另外,ScaleAI 内部有数百万行指令微调数据。 | |
数据集混合,CommonCrawl 和RefinedWeb 都是5T。删除多个时期中重复的tokens,我们就得到了合理数量的“下落不明”的token:“秘密”数据。 到目前为止,已经有传言称其中部分内容来自 Twitter、Reddit 和 YouTube。 一些猜测是: - LibGen(400 万+ 本书) - Sci-Hub(8000 万+ 篇论文) - GitHub 的全部 |
参数量规模 | GPT-4 的大小是 GPT-3 的 10 倍以上。我们相信它在 120 层中总共有约 1.8 万亿个参数。 |
细节 | OpenAI 通过利用混合专家(Mixture-Of-Experts,MoE) 模型能够将成本保持在合理水平。他们在模型中使用了16个专家模型,每个MLP专家模型大约有 111B 个 参数。其中,有2个专家模型被路由用于前向传播。 |
权衡 | MoE(混合专家模型)是一种在推理过程中减少参数量的很好方法,虽然同时会增加参数量。但是这对于每个训练标记来编码更多信息是必要的,因为获取足够高质量的标记非常困难。如果OpenAI真的想追求最佳性能,他们需要训练两倍的token才能达到。 MoE 采取了多种权衡:例如,MoE 很难处理推理,因为并非模型的每个部分都会在每次token生成中使用。 这意味着当其他部件正在使用时,部件可能会处于休眠状态。在服务用户时,这确实会损害利用率。 |
分析 | 研究人员表明,使用 64~128 名专家比使用 16 名专家可以实现更好的损失,但这纯粹是研究结果。 选择较少的专家有多种原因,OpenAI 选择 16 名专家的原因之一是因为更多的专家很难在许多任务上进行泛化,更多的专家也可能更难以实现收敛。 面对如此大规模的训练,OpenAI在选择专家数量上更加保守。 |
细节 | MoE 路由(MoE Routing):虽然文献中大量讨论了用于选择将每个token路由到哪些专家的高级路由算法。 但是据说,OpenAI用于GPT-4的算法,其实非常简单。 此外,模型中还有大约55B个参数,被用做注意力机制的共享。 |
细节 | 预训练阶段有 8k 上下文长度 (seqlen)。GPT-4 的 32k seqlen 版本是基于预训练后的 8k 进行微调的。 |
细节 | 多查询注意力(Multi-Query Attention):使用 MQA,可以显着减少 KV 缓存的内存容量。即便如此,32k seqlen GPT-4 绝对无法在 40GB A100 上运行,并且 8k 的最大 bsz 受到限制。 |
细节 | 推测性解码(Speculative Decoding):OpenAI 可能对 GPT-4 的推理使用推测性解码。 这个想法是使用更小、更快的模型提前解码多个tokens,然后将它们作为单个批次输入到大型预言机模型中。 如果小模型的预测是正确的——大模型也同意,我们就可以在一个批次中解码多个tokens。 但是,如果较大的模型拒绝草稿模型预测的标记,则该批次的其余部分将被丢弃,继续使用更大的模型。 新 GPT-4 质量下降的阴谋论可能只是因为他们让预言机模型接受来自推测解码模型的较低概率序列。 |
细节 | 视觉多模态(Vision Multi-Modal):VMM是与文本编码器分开的视觉编码器,具有交叉注意力,该架构类似于 Flamingo。这在GPT-4的1.8T之上增加了更多参数。在仅进行文本预训练之后,它又使用约 2 万亿个tokens(~2 trillion tokens)进行了微调。 在视觉模型上,OpenAI想从头开始训练,但还不够成熟,所以他们想从文本开始来规避风险。 这种视觉功能的主要目的之一是让自主代理(autonomous agents)能够阅读网页并转录图像和视频中的内容。 他们训练的一些数据是联合数据(渲染的 LaTeX/文本)、网页屏幕截图、YouTube 视频:采样帧,并围绕它运行 Whisper 以获得转录本(transcript)。 |
细节 | OpenAI 的 GPT-4 训练 FLOPS 约为 2.15e25,在约 25,000 个 A100 上持续 90 至 100 天,MFU 约为 32% 至 36%。 利用率在32%到36%之间。这种极低的利用率,部分原因是故障数量过多,这就会导致需要重新从之前的检查点开始训练。比如上面提到的气泡成本。 另一个原因是这么多GPU之间的all-reduce非常昂贵。 |
如果他们在云中的成本约为每 A100 小时 1 美元,那么仅此一次运行的训练成本就约为 6300 万美元。当然,这还不包括所有的实验、失败的训练和其他成本,比如数据收集、RLHF、人力成本等。 但是放到今天,在2美元/每H100小时的条件下,预训练可以在大约8,192个H100上进行,只需要55天,费用为2150万美元。 | |
今年年底,至少将会有9个公司拥有超过上述大小的H100集群。虽然并非所有这些公司都会将它们全部用于单个模型训练,但如果有公司这样做的话,他们将拥有比GPT-4更大的模型。 比如Meta到今年年底将拥有超过100,000个H100,但其中相当一部分将分布在自己的数据中心进行推理。但是它最大的单个集群仍将超过25,000个H100。 总之,到今年年底,许多公司都会拥有足够的算力资源,来训练GPT-4大小的模型。 |
细节 | 集群上的批量大小在几天内逐渐增加,但到最后,OpenAI 使用的批量大小为 6000万!当然,这“只是”每个专家 750 万个tokens的批量大小,因为并非每个专家都能看到所有tokens。 |
细节 | 并行策略(Parallelism Strategies):为了在所有 A100s GPU 上进行并行化,他们利用了 8 路张量并行,因为这是 NVLink 的限制。 除此之外,他们还使用 15 路管道并行性。(可能使用了 ZeRo Stage 1。他们可能使用了块级 FSDP) |
细节 | OpenAI 实现了可变批量大小和连续批处理。这是为了允许一定程度的最大延迟并优化推理成本。 如果您对这个概念不熟悉,可以参考:《How continuous batching enables 23x throughput in LLM inference while reducing p50 latency》https://www.anyscale.com/blog/continuous-batching-llm-inference。 |
细节 | 推理(Inference):每次前向传递推理(生成 1 个token)仅利用约 280B 参数和约 560 TFLOP。 这与纯密集模型,每次前向传递所需的约 1.8 万亿个参数和约 3,700 TFLOP 形成鲜明对比。 |
细节 | 推理在 128 个 GPU 的集群上运行,不同位置的多个数据中心中有多个这样的集群,它是通过8路张量并行和16路管道并行来完成的。 |
细节 | GPT-4 的成本是 175B 参数 Davinchi 的 3 倍。这主要是由于 GPT-4 需要更大的集群,而利用率却低得多。 如果是128 个 A100 则推断 GPT-4 8k seqlen 的成本为每 1k tokens 0.0049 美分,128 个 H100 推断 GPT-4 8k seqlen 的成本为每 1k tokens 0.0021 美分。 应该指出的是,我们假设利用率很高,并保持较高的批量大小。 |
细节 | 造成这种情况的一个可能原因可能是他们所保护的一些硬件基础设施是旧一代的,需要过高的通信成本。这在本地计算集群中非常常见,因为组织通常会分几次升级基础设施,以避免操作完全暂停。 |
OpenAI在如此高的管线并行度下,如何避免在每批中产生如下图这样的「泡泡」(huge bubbles),很有可能OpenAI就是生生地抗下了这些成本。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。