7月11日,半导体咨询研究公司SemiAnalysis发布文章,对OpenAI的GPT-4模型的架构、训练数据集、参数、成本等重要信息进行了深度揭秘。(地址:https://www.semianalysis.com/p/gpt-4-architecture-infrastructure?nthPub=11)
文章指出,GPT-4的模型参数在1.8万亿左右、13万亿训练数据、一次训练成本6300万美元等。
SemiAnalysis曾曝光过谷歌的内部文件“我们、OpenAI都没有护城河”,其真实性得到了验证。所以,此次爆料的GPT-4大模型数据,不少人认为比较靠谱。
例如,此次爆料的GPT-4的参数在1.8万亿左右。前几天著名黑客George Hotz在接受采访时表示,GPT-4由8个混合模型组成每个模型参数为2200亿,数据上基本一致。
OpenAI 也做出了多种权衡。例如,在推理过程中处理 MoE 非常困难,因为并非模型的每个部分都在每个 token 生成时被利用。
这意味着在某些部分被使用时,其他部分可能处于闲置状态。在为用户提供服务时,这会严重影响资源利用率。研究人员已经证明使用 64 到 128 个专家比使用 16 个专家能够实现更好的损失,但这仅仅是研究的结果。
选择较少的专家模型有多个原因。OpenAI 选择 16 个专家模型的一大原因是:在许多任务中,更多的专家模型很难泛化,也可能更难收敛。
推理权衡
大型语言模型的推理存在3个主要权衡,这些权衡沿着批量大小(服务的并发用户数量)维度和所使用的芯片数量进行。
GPT-4引入专家混合 (MoE) 的模型架构引面临着一系列全新的困难。每个token生成前的传递都可以路由到不同的专家组。这会影响在较高批量大小下吞吐量、延迟和利用率轴实现的权衡。
OpenAI 在 128 个 GPU 的集群上运行推理。在多个数据中心和地区拥有多个这样的集群。推理是在8路张量并行和16路管道并行下完成的。每个包含 8 个 GPU 的节点只有约 1300亿 参数,或者在 FP16 下每个 GPU 小于 30GB,在 FP8/int8 下每个 GPU 小于 15GB。
包含不同专家的各个层不会跨不同节点进行解析,因为这会使网络流量变得不太规则,并且在每个token生成之间重新计算 KV 缓存的成本太高。未来,任何 MoE 模型扩展和条件路由的最大困难是,如何处理 KV 缓存周围的路由。
GPT-4推理成本
与拥有1750亿参数的Davinchi模型相比,GPT-4的成本是其3倍,尽管其前馈参数只增加了1.6倍。这主要是因为GPT-4需要更大的集群,并且实现的利用率更低。
在用128 个A100 GPU进行推理的情况下,GPT-4的8k序列长度每1000个标记的成本为0.0049美元,而在128个H100上推理GPT-4的8k序列长度每1000个标记的成本为0.0021美元。需要注意的是,这是假设有相当高的利用率,并保持较高批大小的情况下。如果 OpenAI 不这样做,他们的利用率会更低,估计成本会增加一倍以上。
多查询注意力
OpenAI和其他科技公司一样,也在使用MQA(Multi-Query Attention)。简单来说只需要一个注意力头,并且可以显著减少KV缓存的内存占用。
即便如此,32k长度的GPT-4肯定无法在40GB的A100上运行,而8k的最大批大小也有上限。
连续批处理
OpenAI实现了可变批大小和连续批处理。这样做是为了允许一定程度的最大延迟,并优化推理成本。
推测性解码
推测解码OpenAI在GPT-4的推理过程中使用了——推测解码(Speculative Decoding)。
推测解码的基本原理是使用一个更小、更快的草案模型提前解码多个token,然后将它们作为一个批输入到预测模型中。如果OpenAI使用推测解码,可能只在大约4个token的序列中使用。
此外,谷歌的Bard可能也使用了同样的技术,会等待整个序列生成后再将其发送给用户。
视觉多模态
这是一个独立于文本编码器的视觉编码器,二者之间存在交叉注意力,该架构与 Flamingo类似。这在GPT-4的1.8万亿个参数之上增加了更多参数。
GPT-4多模态能力是在文本预训练之后,又用大约2万亿token进⾏了微调。对于视觉模型,OpenAI 本来希望从零开始训练,但由于其尚未成熟,所以他们决定先从文本开始训练来降低风险。据悉,从GPT-5开始,将从头进行视觉训练并且能生成图像,甚至处理音频内容。
这种视觉能力的主要目的之一是,使自主智能体能够阅读网页并转录图像和视频中的内容。他们训练的一部分数据是联合数据(包括渲染的 LaTeX / 文本)、网页的截屏、YouTube 视频(采样帧),并使用 Whisper 对其进行运行以获取转录文本。
相关文章
猜你喜欢