GPT-4的详细信息已经泄露

news2024/11/25 14:29:47

c55d04e5e504ac58cda3dcfd180d2879.png

这位作者说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?可能的原因是他们获得的一些硬件基础设施是旧一代的。这在本地计算集群中很常见,因为组织通常会在几个“波”中升级基础设施,以避免完全暂停操作。由于管道并行度非常高,就像我们其他人一样,他们很可能遭受“批量泡沫”:批次之间的轻微空闲时间。再次:没有魔法。他们知道他们在做什么,但这不是魔法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux获取文件夹下的所有文件名称

用shell脚本的方式实现 新建脚本文件 fapiao.sh [rootiZbp1bjm0o6frv1c7pp8uaZ home]# vim fapiao.sh编写脚本内容 #!/bin/bash# path文件夹路径 path/home/发票文件 #列出文件名 files$(ls $path)for filename in $files do#将文件名打印至filename.txt 或者路径文件 /hom…

Java找实习经历

Java实习 我开始找实习的时间是2023.7.7,第一个面试是2023.7.11,话不多说,先上图 boss 沟通了300个投递简历也就18份,也就说差不多有20个回复了我,其中约面试的又很少 51job 申请了65份,其中查看的大概10…

《数学模型(第五版)》学习笔记(1) 第1章 建立数学模型 第2章 初等模型

参考数学建模论坛《数学模型(第三版)》学习笔记 http://www.madio.net/thread-146480-1-1.html 参考视频 数模视频(姜启源、谢金星) https://www.bilibili.com/video/BV1VJ411w7r3/?spm_id_from333.788.recommend_more_video.0&vd_source3ef6540f84…

C语言联合体

一、联合体的概念 联合 (union) 是一个能在同一个存储空间里 ( 但不同时) 存储不同类型数据的复合数据类型。 大致结构如下: n union foo /* 定义一个联合类型foo */ n { q int digit; q double bigfl[10]; q char letter; n }baz; /* 定义一个example类型的联合变量…

还不习惯用软件管理工作项?体验“自动化规则”解决“痛点”

随着AI,ChatGPT等技术的飞速发展,一些科技界人士提出“程序员已死”,其大概意思是讲在未来AI将替代程序员的一些工作,但其实人工智能来代替程序员工作,并非想象中那么容易,在程序员的核心能力中&#xff0c…

路径规划算法:基于跳蛛优化的路径规划算法- 附代码

路径规划算法:基于跳蛛优化的路径规划算法- 附代码 文章目录 路径规划算法:基于跳蛛优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法跳蛛…

尚硅谷03:前端开发之ES | Vue_es6 Axios Node Npm

目录 内容介绍 统一异常处理 统一日志处理 前端介绍、工具使用 ES6入门 Vue入门 Vue语法 Vue语法高级 内容介绍 1、统一异常处理 2、统一日志处理(了解) 3、前端介绍 4、ES6 5、VUE入门、基本语法 6、VUE高级语法 7、axios(重点…

Pod:Kubernetes里最核心的概念

为了解决这样多应用联合运行的问题,同时还要不破坏容器的隔离,就需要在容器外面再建立一个“收纳舱”,让多个容器既保持相对独立,又能够小范围共享网络、存储等资源,而且永远是“绑在一起”的状态。 Pod 的概念也就呼…

【Ajax】笔记-Ajax案例准备与请求基本操作

案例准备HTML 按钮div <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>AJAX GET 请求</title&g…

C语言进阶之自定义类型(结构体,枚举,联合)

这里写目录标题 1.结构体1.1 结构的基础知识1.2 结构的声明1.3 特殊的声明1.4 结构的自引用1.5 结构体变量的定义和初始化1.6 结构体内存对齐1.7 修改默认对齐数1.8 结构体传参 2. 位段2.1 什么是位段2.2 位段的内存分配2.3 位段的跨平台问题2.4 位段在网络传输中的应用3. 枚举…

【科普贴】UWB定位详解:0维定位、一维定位、二维定位、三维定位

室内定位系统方案中&#xff0c;UWB定位技术目前应用较多&#xff0c;得益于UWB定位10-30厘米的超高定位精度。目前根据使用场景的不同&#xff0c;UWB TDOA定位系统的定位维度分为以下4种&#xff1a;0维定位&#xff08;存在性检测&#xff09;、一维定位、二维定位、三维定位…

spring cloud 搭建消息中间件 RabbitMQ 环境、Mac/Windows下载安装RabbitMQ、配置RabbitMQ环境变量

主要内容概述&#xff1a;spring cloud工程&#xff0c;Mac/Windows下载安装RabbitMQ&#xff0c;并配置环境变量 前言 这里学习如何安装 RabbitMQ&#xff0c;因为远程配置中心的动态更新需要结合 RabbitMQ 来使用。 什么是 RabbitMQ RabbitMQ 是消息队列中间件&#xff0c…

日撸java三百行day74

文章目录 说明通用BP神经网络之激活函数1. 激活函数2. 激活函数分类1.1 反正切函数&#xff08;ArcTan&#xff09;1.2 指数线性函数&#xff08;ELU&#xff09;1.3 恒等函数1.4 泄漏线性整流函数(LEAKY_RELU)1.5 softsign1.6 softplus1.7 Relu函数1.8 sigmoid函数1.9 双曲正切…

一拖三充电线(单USB-C转三充)的解决方案--HUSB251

HUSB251是一款PD DRP双向快充协议芯片&#xff0c;符合USB PD3.1协议&#xff0c;支持PPS、28V EPR FPDO和EPR AVS&#xff0c;并可提供灵活的可编程PDO。当其在Source模式下时&#xff0c;DPDM PHY支持可编程的专有协议&#xff0c;支持BC1.2和5V2.4A、QC2.0/3.0、AFC、FCP和S…

免费系统维护清理工具:Onyx for Mac图文安装教程

OnyX 是一款适用于 macOS 的免费系统维护和优化工具。它由法国开发者 Jol Barrire&#xff08;也称为 Titanium&#xff09;创建&#xff0c;旨在帮助 macOS 用户管理和优化其计算机系统。 OnyX 提供了许多功能和工具&#xff0c;可以帮助用户执行各种系统维护任务。它是一个非…

【雕爷学编程】Arduino动手做(117)---P10V706LED屏模组2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

logstash的四个插件

grok 正则捕获插件 内置正则表达式调用 在logstash conf.d文件夹下面创建filter conf文件&#xff0c;内容如下 ​编辑 logstash 官方也给了一些常用的常量来表达那些正则表达式&#xff0c;可以到这个 Github 地址查看有哪些常用的常量&#xff1a; 自定义表达式调用 muta…

【深度学习】梳理一下概念和术语

1 说明 您是深度学习的新手,正在寻找全面的指南来帮助您了解基础知识及其他方面吗?不要再看了!在本文中,我们将深入研究 20 个基本的深度学习概念,从基础知识开始,逐渐转向更高级的主题。从人工神经网络(ANN)到梯度下降和激活函数(Sigmoid,ReLU,SoftMax),我们将探…

Pytorch 安装与配置

Pytorch 安装与配置 NVIDIA系统管理界面查看 nvidia-smi 进入NVIDIA系统管理界面 对应的详细解释看下图 参考博文 (53条消息) nvidia-smi命令详解和一些高阶技巧介绍_Chaos_Wang_的博客-CSDN博客 CUDA 查看 CUDA 有两类&#xff1a;其中一类是驱动API(Driver API)&#xff…

「深度学习之优化算法」(十二)水波算法

1. 水波算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)   水波算法(Water wave optimization)是根据水波理论提出的优化算法。什么是水波理论?简单来说就是水波的宽度越小,其频率越高,频率与水波宽度的平方根成反比(具体细节我也不懂,物理方面的)。水波…