一直以来,咱们都对 GPT-4 的模型架构、基础设施、练习数据集、本钱等信息十分好奇。
奈何 OpenAI 嘴太严,很长时间以来,咱们也都仅仅猜想这些数据。
不久之前,「天才黑客」乔治・霍兹(George Hotz)在接受一家名为 Latent Space 的 AI 技术播客采访时透露出一个小道音讯,称 GPT-4 是由 8 个混合专家模型组成的集成体系,每个专家模型都有 2200 亿个参数(比 GPT-3 的 1750 亿参数量略多一些),并且这些模型经过了针对不同数据和任务散布的练习。
虽然此音讯无法验证,但其撒播度十分高,也被部分业内人士以为十分合理。
最近,更多的音讯似乎被泄露了出来。
今天,SemiAnalysis 发布了一篇付费订阅的内容,「揭秘」了有关 GPT-4 的更多信息。
文章称,他们从许多来历收集了很多有关 GPT-4 的信息,包含模型架构、练习基础设施、推理基础设施、参数量、练习数据集组成、token 量、层数、并行战略、多模态视觉适应、不同工程权衡背面的思维进程、独特的完成技术以及怎么减轻与巨型模型推理有关的瓶颈等。
作者表明,GPT-4 最风趣的方面是了解 OpenAI 为什么做出某些架构决议计划。
此外,文章还介绍了 A100 上 GPT-4 的练习和推理本钱,以及怎么拓宽到下一代模型架构 H100 。
咱们依据 Deep Trading(一家算法交易公司)创始人 Yam Peleg 的推文(目前已删除),整理了以下关于 GPT-4 的数据信息。感兴趣的读者能够详尽研讨下。
不过请注意,这并非官方承认的数据,咱们自行判别其准确性。
1、参数量:GPT-4 的巨细是 GPT-3 的 10 倍以上。文章以为它 120 层网络中总共有 1.8 万亿个参数。
2、确实是混合专家模型。OpenAI 能够通过运用混合专家(MoE)模型来坚持合理本钱。他们在模型中运用了 16 个专家模型,每个专家模型大约有 111B 个参数。这些专家模型中的 2 个被路由到每个前向传递。
3、MoE 路由:虽然文献中对于挑选将每个 token 路由到哪个专家模型的高档路由算法进行了很多讨论,但据称 OpenAI 在当时的 GPT-4 模型中选用了相当简略的路由方法。该模型大约运用了 550 亿个同享参数来进行注意力核算。
4、推理:每次前向传递的推理(生成 1 个 token)仅利用约 2800 亿个参数和约 560 TFLOP 的核算量。相比之下,纯密布模型每次前向传递需求大约 1.8 万亿个参数和约 3700 TFLOP 的核算量。
5、数据集:GPT-4 的练习数据集包含约 13 万亿个 token。这些 token 是重复核算之后的成果,多个 epoch 中的 token 都核算在内。
Epoch 数量:针对根据文本的数据进行了 2 个 epoch 的练习,而针对根据代码的数据进行了 4 个 epoch 的练习。此外,还有来自 ScaleAI 和内部的数百万行的指令微调数据。
6、GPT-4 32K:在预练习阶段,GPT-4 运用了 8k 的上下文长度(seqlen)。而 32k 序列长度版别的 GPT-4 是在预练习后对 8k 版别进行微调而得到的。
7、Batch Size:在核算集群上,几天时间里,batch size 逐渐增加,最终,OpenAI 运用 batch size 达到了 6000 万!当然,由于不是每个专家模型都能看到一切 token,因而这仅仅是每个专家模型处理 750 万个 token 的 batch size。
实在的 batch size:将这个数字除以序列长度(seq len)即可得到实在的 batch size。请不要再运用这种误导性的数字了。
8、并行战略:为了在一切 A100 GPU 上进行并行核算,他们选用了 8 路张量并行,由于这是 NVLink 的极限。除此之外,他们还选用了 15 路流水线并行。(很或许运用了 ZeRo Stage 1,也或许运用了块级的 FSDP)。
9、练习本钱:OpenAI 在 GPT-4 的练习中运用了大约 2.15e25 的 FLOPS,运用了约 25,000 个 A100 GPU,练习了 90 到 100 天,利用率(MFU)约为 32% 至 36%。这种极低的利用率部分是由于很多的毛病导致需求重新启动检查点。
假如他们在云端的每个 A100 GPU 的本钱大约为每小时 1 美元,那么仅此次练习的本钱将达到约 6300 万美元。(而现在,假如运用约 8192 个 H100 GPU 进行预练习,用时将降到 55 天左右,本钱为 2150 万美元,每个 H100 GPU 的计费标准为每小时 2 美元。)
10、运用专家混合模型时的 tradeoff:在运用专家混合模型时存在多方面 tradeoff。
例如,在推理进程中处理 MoE 十分困难,由于并非模型的每个部分都在每个 token 生成时被利用。这意味着在某些部分被运用时,其他部分或许处于闲置状态。在为用户供给服务时,这会严重影响资源利用率。研讨人员现已证明运用 64 到 128 个专家比运用 16 个专家能够完成更好的损失(loss),但这仅仅是研讨的成果。
挑选较少的专家模型有多个原因。OpenAI 挑选 16 个专家模型的一大原因是:在许多任务中,更多的专家模型很难泛化,也或许更难收敛。
由于进行了如此大规模的练习,OpenAI 挑选在专家模型数量上愈加保存。
11、推理本钱:GPT-4 的推理本钱是 1750 亿参数的 Davinci 模型的 3 倍。这首要是由于 GPT-4 需求更大规模的集群,并且达到的利用率要低得多。
据估计,在用 128 个 A100 GPU 进行推理的情况下,8k 版别 GPT-4 推理的本钱为每 1,000 个 token 0.0049 美分。假如运用 128 个 H100 GPU 进行推理,同样的 8k 版别 GPT-4 推理本钱为每 1,000 个 token 0.0021 美分。值得注意的是,这些估计假设了高利用率和坚持较高的 batch size。
12、Multi-Query Attention:OpenAI 和其他组织相同,也在运用 Multi-Query Attention(MQA)。由于运用 MQA 只需求一个注意力头(head),并且能够明显减少用于 KV 缓存的内存容量。即便如此,32k 序列长度的 GPT-4 也肯定无法在 40GB 的 A100 GPU 上运转,而 8k 序列长度的模型则受到了最大 batch size 的约束。
13、接连 batching:OpenAI 完成了可变 batch size 和接连 batching。这样做是为了允许必定程度的最大推迟,并优化推理本钱。
14、视觉多模态:它是一个独立于文本编码器的视觉编码器,二者之间存在交叉注意力。该架构类似于 Flamingo。这在 GPT-4 的 1.8 万亿个参数之上增加了更多参数。在纯文本的预练习之后,它又经过了别的约 2 万亿个 token 的微调。
对于视觉模型,OpenAI 本来希望从零开端练习,但由于其没有成熟,所以他们决议先从文本开端练习来下降危险。
这种视觉能力的首要意图之一是使自主智能体能够阅读网页并转录图像和视频中的内容。
他们练习的一部分数据是联合数据(包含烘托的 LaTeX / 文本)、网页的截屏、YouTube 视频(采样帧),并运用 Whisper 对其进行运转以获取转录文本。
15、估测式解码(Speculative Decoding):OpenAI 或许在 GPT-4 的推理进程中运用了估测式解码技术(不确定是否 100%)。这种方法是运用一个更小更快的模型提前解码多个 token,并将它们作为单个 batch 输入到一个大型的猜测模型(oracle model)中。
假如小型模型对其猜测是正确的,大型模型将会赞同,咱们能够在单个 batch 中解码多个 token。
可是,假如大型模型拒绝了草稿模型猜测的 token,那么 batch 中剩余的部分将被丢掉,然后咱们将持续运用大型模型进行解码。
有些阴谋论指出,新的 GPT-4 质量现已下降,这或许仅仅由于他们让估测式解码模型(speculative decoding model)将概率较低的序列传递给猜测模型,然后导致了这种误解。
16、推理架构:推理运转在由 128 个 GPU 组成的集群上。在不同地点的多个数据中心存在多个这样的集群。推理进程选用 8 路张量并行(tensor parallelism)和 16 路流水线并行(pipeline parallelism)。每个由 8 个 GPU 组成的节点仅具有约 1300 亿个参数。
该模型有 120 层,因而适合于 15 个不同的节点。或许第一个节点的层数较少,由于它还需求核算嵌入。
依据这些数字,假如 OpenAI 试图按照 chinchilla 的最佳指标进行练习,他们应该运用的 token 数量是现在的两倍。这表明他们在获取高质量数据方面遇到了困难。
最终想说的是,这应该是迄今为止关于 GPT-4 最为具体的数据揭秘。目前还不能求证是否实在,但也值得咱们研讨下。正如原文作者所说,「风趣的方面是了解 OpenAI 为什么做出某些架构决议计划。 」
关于 GPT-4 的这些架构信息,你怎么看?
更多信息请参阅原文:www.semianalysis.com/p/gpt-4-arc…