这位作者说GPT-4的详细信息已经泄露,不知道可信度如何。一些关键信息:- GPT-4的大小是GPT-3的10倍以上。我们认为它在120层中总共有大约1.8万亿个参数。- GPT-4是多个专家模型混合在一起,但不是之前说的8个专家,而是16个。研究人员已经证明,使用64到128个专家比16个专家能够获得更好的损失,但这只是纯粹的研究。OpenAI选择16个专家的一个原因是,更多的专家在许多任务上难以泛化。更多的专家也可能更难以达到收敛。- 预训练阶段的上下文长度(seqlen)为8k。GPT-4的32k seqlen版本是在预训练后对8k进行微调的结果。- 为了在所有的A100s GPUs上并行化,他们使用了8路张量并行,因为这是NVLink的限制。- 如果他们在云中的成本约为每小时$1美元/A100,那么这次运行的训练成本将约为6300万美元。- GPT-4推理成本是175B参数的Davinchi的3倍。这主要是由于GPT-4需要更大的集群和实现的利用率更低。它的成本估计是$0.0049/ 1K tokens。(目前GPT-4的API价格大约是$0.03 / 1K tokens) - 新的GPT-4质量下降的阴谋论可能只是因为他们让Oracle模型接受来自推测解码模型的较低概率序列。- 推理在128个GPU的集群上运行。它在8路张量并行和16路管道并行中完成。每个8个GPU的节点只有约1300亿个参数,或者在FP16下每个GPU少于30GB,在FP8/int8下少于15GB。- 视觉多模态是一个与文本编码器分开的视觉编码器,具有交叉注意力。该架构类似于Flamingo。这在GPT-4的1.8T之上增加了更多的参数。它在文本预训练后,用另外约2万亿个Token进行微调。在视觉模型上,OpenAI希望从头开始训练,但它还不够成熟,所以他们希望通过从文本开始来降低风险。他们训练的一部分数据是联合数据(渲染的LaTeX/文本),网页截图,YouTube视频:采样帧,并在其周围运行Whisper以获取转录。将他的推文线程翻译一下供参考:GPT-4的详细信息已经泄露。一切都在这里:
参数数量:GPT-4的大小是GPT-3的10倍以上。我们认为它在120层中总共有大约1.8万亿个参数。混合专家模型 - 已确认。OpenAI通过使用混合专家(MoE, mixture of experts)模型,能够保持合理的成本。他们在模型中使用了16个专家,每个专家的MLP参数约为1110亿。每次前向传递都会路由到这些专家中的2个。混合专家(MoE)路由:虽然文献中大量讨论了选择将每个Token路由到哪个专家的高级路由算法,但OpenAI的GPT-4模型的路由方式据说相当简单。大约有550亿个共享参数用于注意力。推理:每次前向传递推理(生成1个Token)只使用约2800亿个参数和约560 TFLOPs。这与纯密集模型每次前向传递所需的约1.8万亿个参数和约3700 TFLOP形成对比。
数据集:GPT-4在约13万亿个Token上进行训练。这些并非唯一的Token,他们也将更多的Token计算为纪元(Epoch)。纪元数量(Epoch number):文本数据为2个纪元,代码数据为4个纪元。有数百万行来自ScaleAI和内部的指令微调数据。GPT-4 32K:预训练阶段的上下文长度(seqlen)为8k。GPT-4的32k seqlen版本是在预训练后对8k进行微调的结果。批量大小(Batch Size):批量大小在集群运行的几天内逐渐增加,但到最后,OpenAI使用的批量大小为6000万!当然,这“只是”每个专家看到的令牌数量为750万的批量大小,因为并非每个专家都看到所有的令牌。对于真实的批量大小:将这个数字除以seq len就可以得到真实的批量大小。已经停止使用这些误导性的数字了。并行策略:为了在所有的A100s GPUs上并行化,他们使用了8路张量并行,因为这是NVLink的限制。除此之外,他们还使用了15路管道并行。(可能使用了ZeRo Stage 1。他们可能使用了块级FSDP) 训练成本:OpenAI的GPT-4训练FLOPS约为2.15e25,在约25,000个A100s上运行90到100天,MFU约为32%到36%。这种极低的利用率部分是由于需要从中重新启动的检查点的数量巨大。如果他们在云中的成本约为每小时1美元/A100,那么这次运行的训练成本将约为6300万美元。(今天,预训练可以在约55天内用约8192个H100完成,成本为2150万美元,每小时H100的成本为2美元。) 混合专家权衡:采取了多种MoE权衡:例如,MoE在推理上非常难处理,因为并非每个模型的部分都在每个Token生成时使用。这意味着当其他部分被使用时,部分可能会处于休眠状态。当服务用户时,这真的会损害利用率。研究人员已经证明,使用64到128个专家比16个专家能够获得更好的损失,但这只是纯粹的研究。有多种原因选择更少的专家。OpenAI选择16个专家的一个原因是,更多的专家在许多任务上难以泛化。更多的专家也可能更难以达到收敛。对于如此大的训练运行,OpenAI选择在专家数量上更保守。GPT-4推理成本:GPT-4的成本是175B参数的Davinchi的3倍。这主要是由于GPT-4需要更大的集群和实现的利用率更低。它的成本估计是$0.0049 / 1K Tokens,用128个A100推理GPT-4 8k seqlen,$0.0021/ 1K Tokens,用128个H100推理GPT-4 8k seqlen。应该注意的是,我们假设利用率较高,并保持批量大小较大。多查询注意力:OpenAI像其他人一样使用MQA(Multi-Query Attention)。因此,只需要1个头,可以显著减少KV缓存的内存容量。即使如此,32k seqlen的GPT-4肯定无法在40GB的A100s上运行,8k的最大bsz也受到限制。连续批处理:OpenAI实现了可变批量大小和连续批处理。这样做是为了允许一定程度的最大延迟,同时优化推理成本。视觉多模态:这是一个与文本编码器分开的视觉编码器,具有交叉注意力。该架构类似于Flamingo。这在GPT-4的1.8T之上增加了更多的参数。它在文本预训练后,用另外约2万亿个Token进行微调。在视觉模型上,OpenAI希望从头开始训练,但它还不够成熟,所以他们希望通过从文本开始来降低风险。这种视觉能力的主要目的之一是为了能够阅读网页并转录图像和视频中的内容。他们训练的一部分数据是联合数据(渲染的LaTeX/文本),网页截图,YouTube视频:采样帧,并在其周围运行Whisper以获取转录。推测解码(Speculative Decoding):OpenAI可能在GPT-4的推理上使用推测解码(不确定100%)。这个想法是使用一个更小更快的模型提前解码几个Token,然后将它们作为一个单独的批次输入到一个大的oracle模型中。如果小模型对其预测正确 - 大模型同意,我们可以在一个批次中解码几个Token。但是如果大模型拒绝了由草案模型预测的令牌,那么剩下的批次就会被丢弃,继续使用大模型。新的GPT-4质量下降的阴谋论可能只是因为他们让oracle模型接受来自推测解码模型的较低概率序列。推理架构:推理在128个GPU的集群上运行。在不同位置的多个数据中心中有多个这样的集群。它在8路张量并行和16路管道并行中完成。每个8个GPU的节点只有约1300亿个参数,或者在FP16下每个GPU少于30GB,在FP8/int8下少于15GB。模型有120层,所以它适合在15个不同的节点中。[可能在第一个节点上有更少的层,因为它需要计算嵌入] 根据这些数字:如果OpenAI试图按照chinchilla的最优去训练,他们应该在2倍的令牌上进行训练。[更不用说像我们一样超越它了] 这说明他们正在努力获取高质量的数据。为什么没有FSDP?可能的原因是他们获得的一些硬件基础设施是旧一代的。这在本地计算集群中很常见,因为组织通常会在几个“波”中升级基础设施,以避免完全暂停操作。由于管道并行度非常高,就像我们其他人一样,他们很可能遭受“批量泡沫”:批次之间的轻微空闲时间。再次:没有魔法。他们知道他们在做什么,但这不是魔法。