OpenAI的GPT-4.5训练揭秘:计算挑战与突破
历时两年研发的GPT-4.5项目是OpenAI迄今为止最具雄心的尝试。这项庞大的工程汇集了数百人的共同努力,OpenAI的CEO Sam Altman指出,该项目几乎需要整个组织的全力投入。
克服大规模训练中的“灾难性问题”
GPT-4.5的创造之路并非一帆风顺。团队在研发阶段遇到了无数“灾难性问题”。使用包含10万个GPU的集群暴露了以前未见的、低概率但影响深远的基础设施故障。为了在效率和最佳性能之间取得平衡,OpenAI的系统团队不得不采取“边修复边前进”的方法。一个特别难以捉摸的漏洞困扰着集群,频繁出错,直到大约40%的训练过程完成后才被发现。
尽管面临这些挑战,GPT-4.5项目催生了更强大的技术堆栈的开发。如今,仅需一个由5-10人组成的精干团队就可以复制类似于GPT-4的大型模型。从GPT-4到GPT-4.5的性能提升约为十倍,产生了“难以量化但在各个方面都得到增强的智能”,这一结果甚至让OpenAI自己的员工感到惊讶。
转变焦点:从计算能力到数据效率
OpenAI已经意识到,要实现下一个十倍或百倍的性能飞跃,关键不在于原始计算能力,而在于数据效率——具体来说,是从相同数量的数据中提取更多知识,同时利用更大的计算资源的能力。
架构也在从单集群向多集群模式演进。未来的训练迭代可能涉及多达1000万个GPU的协同学习,这需要更高的容错能力。
Sam Altman与GPT-4.5团队的对话
以下是Sam Altman与OpenAI GPT-4.5团队讨论的编辑版汇编:
Sam Altman:构建像GPT-4.5这样的大型模型需要什么?
**Alex Paino:**我们大约在两年前启动了这个项目。当时,OpenAI即将启动一个新的大型计算集群,我们的团队认为这是一个机会,可以进行一系列操作来确定模型需要包含的功能,并进行了大量的风险降低操作测试。
我们为此制定了一个长期计划,涉及从系统到机器学习的整个技术堆栈。降低风险和为训练做准备是一个漫长的执行过程,而训练本身就是一个非常大的项目。
**Amin Tootoonchian:**我认为这个过程需要机器学习团队和系统团队从一开始就密切合作,直到我们明确想要训练的模型,然后才开始训练。
我们在机器学习和系统方面都做出了预测,试图尽可能缩小期望与现实之间的差距。但是,由于我们的工作节奏很快,并且必须使用最新的计算资源,因此模型训练已成为一种难以提前完美计划的事情。
我们几乎总是带着许多未解决的问题开始训练,并尝试在操作过程中克服挑战并取得进展。主要的解决方案是增加更多的计算资源。
最后阶段是执行,这需要许多人投入大量的精力和动力才能长时间完成训练过程。
Sam Altman:您认为我们的期望与现实之间的差距有多大?
**Amin Tootoonchian:**就系统而言,我们通常在一开始就远未达到预期的状态。我们总是面临一个选择:是推迟开始并等待问题解决,还是尽早开始并在过程中解决问题。这总是需要权衡,以避免过程中出现不合理的延迟。
但是,几乎总是存在一些意想不到的问题,我们必须做的是尽可能多地处理这些节点,处理未知的因素,并制定模型训练计划。
**Alex Paino:**在这个项目中,我们的目标是制造GPT-4.5,这意味着它的能力应该比GPT-4聪明10倍。这是我们在大约2年前设定的初始目标。
在此过程中发生了很多事情。我们一直在思考我们是否可以做得更好,或者会比预期的更糟?这是一个非常复杂的过程,但最终,就我们投入的有效计算量而言,我们得到了一个我们认为比GPT-4聪明10倍的模型。
**Amin Tootoonchian:**就执行而言,在GPT-4.5项目上花费的时间远未达到我们最初的预期。
Sam Altman:为什么当集群从10,000张卡扩展到100,000张卡时,您会遇到这么多问题?
**Amin Tootoonchian:**我认为,如果系统开发人员足够敏感,则可以在小规模阶段观察到大多数问题。
某些问题并非大规模训练阶段所独有的,但以前经常发生,但在规模扩大后会成为灾难性问题,尤其是当团队没有预料到这些问题会恶化到如此程度时。
Sam Altman:哪些事情造成了灾难性后果?
**Amin Tootoonchian:**我认为基础设施问题是众所周知的,无论是故障率、故障类型还是故障总量都非常高。100,000张卡集群是一个大规模样本池,因此我们还发现了计算能力供应商未观察到的问题。
网络是其中之一,单个加速器也可能出现问题。但这也是该系统的美妙之处——几乎所有组件都需要按预期工作才能产生预期的结果。我们的工作是尽可能减少这个问题。
Sam Altman:在集群规模的极限工作确实很困难,但我也注意到,做不再处于技术前沿的事情变得容易多了。训练GPT-4.5需要数百人,OpenAI几乎所有人都在船上。
但是今天,如果从OpenAI中选择最小的团队,并使用我们所知道的所有知识和系统工作从头开始重新训练GPT-4,需要多少人?
**Alex Paino:**我认为现在可能需要大约5到10个人才能制作GPT-4级别的模型。在完成GPT-4.5的过程中,技术堆栈得到了极大的改进。
实际上,我们在训练GPT-4.5的过程中也做了类似的事情——我们训练了GPT-4o,这是一个GPT-4级别的模型,并使用GPT-4.5研究项目中的许多相同内容重新训练了它。用于该训练的人员更少。
Sam Altman:从您的角度来看,Dan?为什么训练大型模型很困难?
**Daniel Selsam:**我认为做任何新事物都很困难。我认为即使只是发现其他人做了某件事也会变得容易得多,因为最困难的部分首先是有信心去做某件事。我认为仅仅知道某件事是可行的,就是一个超级作弊码,可以使事情变得容易得多。
**Alex Paino:**我们正在将GPT预训练运行扩展到以前的10倍,并且我们总是会发现一些有趣的您无法预测的新事物。
Sam Altman:要实现预训练规模的下一个10倍或100倍的增长,需要什么?
**Daniel Selsam:**数据效率。Transformer架构(即GPT)在利用数据方面非常高效。它可以很好地吸收和压缩信息并实现泛化。它最大的特点是可以通过计算资源有效地吸收信息。
但是,它从数据中获得的洞察深度是有限的。当计算能力快速增长而数据增长相对缓慢时,数据就成为此标准模型的瓶颈。这需要算法创新来开发可以使用更多计算能力来从相同数量的数据中学习更多知识的方法。
Sam Altman:您认为我们还需要什么来维持扩展?
**Amin Tootoonchian:**我的答案是关于系统的。我认为GPT-4.5所需的大量工作本质上是模型规范不可避免的结果。我们无法使用与GPT-4完全相同的技术架构来训练GPT-4.5。
在状态管理方面,由于所需的计算资源已超过单个集群的容量,因此我们必须转向多集群训练架构。为了实现此目标,我们必须在短时间内集成多个不同的工作流程。
尽管这确实帮助我们实现了阶段性突破,但为了实现下一个数量级的性能提升,我们仍然需要解决几个已知但暂时搁置的技术问题——这些问题是无法避免的。正是这种技术权衡不断延长了完美系统的研发周期,我们始终在追求最佳实施方案的过程中进行战略性权衡。
需要明确的是,系统本身不是最终目标,其实际输出值是核心考虑因素。对于下一个10倍的性能提升,我认为容错方面的突破至关重要。我们需要构建一个与工作负载深度协同的容错机制,以显着降低运维焦虑。当前超大规模系统的运维复杂度与之前的系统本质上不同。
Sam Altman:您知道在GPT-4.5训练期间,某些组件造成的故障百分比是多少吗?
**Amin Tootoonchian:**我没有具体的数字可以分享,但总的来说,在部署新一代硬件的早期阶段,系统运行通常会面临许多尚未完全理解的技术挑战。我们在问题完全确定之前选择了推进项目,这导致了较高的初始故障率。
但经验表明,随着根本原因被识别和解决,故障率将显着降低。这种现象本质上反映了我们对基础设施的不断深入理解——有些人称之为清理基础设施或理解基础设施的基本问题。
执行的早期阶段几乎总是相当痛苦。在推进项目的同时,我们也在不断发现和解决新的故障模式,但是故障率会逐渐降低,正常运行时间会变长。
这本质上是一个优先级权衡的问题:在基础设施生命周期的早期阶段,其故障风险通常难以准确估计;如果我们过度追求最终的理想状态(原文是“城市庄园”,理想的城市国家设计),可能会导致系统早期阶段的可用性性能极差。
Sam Altman:尽管推理模型是我们未来技术堆栈的关键组成部分,但让我们暂时专注于传统预训练模型的开发边界。假设我们拥有无限的GPU计算能力、无限的网络带宽和无限的电源供应,但仍然受到现有技术瓶颈的限制——包括系统可靠性问题、缺乏容错训练方法以及现有数据集的限制。
根据我们每个主要GPT版本号实现100倍规模增长的演化规律,基于当前的技术边界,预训练模型的开发可以达到什么水平?具体到GPT系列模型,根据我们现有的知识体系,我们理论上可以训练出什么样的模型?可以制作GPT-5.5吗?
**Alex Paino:**从机器学习和算法开发的角度来看,我们尚未达到明确的理论上限。实际上,我们才刚刚开始探索具有更高数据效率的算法以及如何更充分地利用现有数据资源。这种情况非常有趣——即使像GPT-4这样的模型,也主要是在有限计算资源的约束下开发的,这也决定了以前大多数研究的方向。
但是现在情况完全不同。自GPT-4.5以来,在某些关键维度上,数据而不是计算正在成为主要的约束。这种转变使相关研究不再那么令人兴奋。
Sam Altman:但这确实是一个了不起的进步,世界可能没有完全意识到计算资源不再是我们可以构建的最佳模型的主要瓶颈。这种变化意义深远,毕竟,我们在计算资源受限的环境中生活了太久。
Sam Altman:在训练GPT-4.5的过程中,我们学到了最有趣的机器学习经验是什么?只谈谈您想分享的内容。
**Amin Tootoonchian:**总的来说,最发人深省的是那些偏离我们预测的情况——尤其是当我们尝试了解为什么实际性能偏离预期曲线时。
**Alex Paino:**我们最令人惊讶的发现之一是,不同机器学习组件的可扩展性性能差异很大。某些部分可以很好地缩放,而另一些部分则不能。这是我们在实际训练过程中真正意识到的。这种经验给了我们很多启发。
**Daniel Selsam:**我认为GPT范例的两个核心特征是:首先,可以准确预测测试损失(一种衡量模型在未见过的测试数据上表现如何的指标);其次,模型性能随着规模的扩大而显示出可预测的改进。更神奇的是,测试损失的减少将转化为各种方式难以量化但令人惊叹的全方位增强的智能水平。
Sam Altman:您绝对对此感到乐观吗?您完全同意这种观点吗?
**Daniel Selsam:**实际上,我想说的是,我们在GPT-4.5测试中发现了一些特别有趣的现象——在重新测试后,该模型显示出许多完全超出所有人预期的微妙能力。
我们确信它将以各种无法提前定义的方式变得更聪明,并且在实际部署后,我们可以从用户满意度中观察到这些微妙的改进水平:更强的常识储备,更准确的上下文理解能力,以及更精细的语义把握——这正是那些额外的测试损失带来的魔力。在我看来,缩放定律已在此维度中得到完美验证。
Sam Altman:整个训练过程中最积极的时刻是什么?您最喜欢的回忆是什么?显然有很多痛苦,但我希望这些痛苦已经减轻。
**Alex Paino:**我确实有这样的时刻。我们在训练期间做了很多机器学习工作。我认为我们在操作过程中所做的一些更改产生了相当好的影响,可能比预期的要好,这对我们来说是一个非常激动人心的时刻。
**Amin Tootoonchian:**对我而言,在进行训练的同时,我们也在构建基础设施。我们坚信我们可以跨越这个性能悬崖,并且我们有一个计划,每个人都在执行它,但这需要很长时间。这是艰苦的工作,并且肯定比我想象的要困难。我的预测是错误的,我低估了解决这些问题所需的时间。
团队最终克服了那些关键问题并且性能显着提高的那一刻仍然让我记忆犹新。您可以清楚地感觉到整个团队的能量转换——每个人突然都充满了能量,并以新的动力朝着最终目标冲去。
最神奇的是,我们的状态跟踪器上显示的估计完成时间从最初的两年继续缩短,并最终锁定在一个明确的时间节点上。这种可见的进展对团队士气产生了不可估量的推动作用。我认为这就是它的美妙之处。
我想强调的是,机器学习工作从未停止。即使在训练开始后,这种机器学习协同设计过程仍在继续。机器学习团队不仅积极跟进那些被标记为“后续处理”的问题,而且还不断提供真正优化训练时间的改进。
这完美地反映了我们的团队精神——这里没有“各人自扫门前雪”的工作边界,而是真正无缝的协作,而这种凝聚力是我们最大的优势。
Sam Altman:外界已经讨论了很多关于这次训练本身的挑战和预测准确性。但实际上,所有这一切都基于极其周密的计划——您能更详细地谈谈这一点吗?
**Alex Paino:这绝对是我们迄今为止最周密的计划。**正如我所说,我们早在正式开始训练前一年就开始为此项目做准备。在此期间,我们进行了多次大规模的风险控制测试。
我们特别注意逐步引入所有改进:从高置信度的基本配置开始——可以理解为类似于GPT-4的成熟架构,我们在机器学习级别上已完全掌握了此配置——然后像构建模块一样逐层添加新功能。
关键是要严格验证每个改进在不同规模上的可扩展性:不仅要查看性能改进,还要确保这些改进随着模型规模的扩大而继续有效。许多改进在小规模测试中表现良好,但在大规模应用中会失败。
因此,我们在整个过程中始终保持高度警惕,并继续迭代和改进我们的扩展定律方法。通过这种风险控制实践,我们积累了许多宝贵的经验,这些经验将继续指导未来GPT系列模型的开发。
**Amin Tootoonchian:**我记得一个特别有趣的时刻,我很怀念。您知道,我们几乎每次开始训练任务时都会遇到各种错误。这已经司空见惯。但关键是要确保进展不会受阻,并始终确认当前的进展确实走在正确的轨道上,以及这些错误是否会对训练的健康状况产生致命的影响。
尽管我们最初非常有信心存在重大缺陷,但通过我们构建的整个监控系统,我们已经能够准确地区分问题的根本原因:是硬件故障吗?是什么类型的硬件故障?是数据损坏吗?还是机器学习模型本身的错误?还是代码中的竞争条件?
当时,我们同时打开了多个问题讨论区,出现了各种症状。经过一系列错误修复后,我们陷入了困境:我们面前存在多个未解决的问题,每个人都在绞尽脑汁——这些是由不同的错误引起的吗?还是工作中的错误?
后来,我们举行了一次投票,让团队成员投票选出最可能的根本原因。最没有希望的选项击中了真相:事实证明,PyTorch上游的torch.sum函数存在问题,这是一个简单的求和运算。
这个错误特别有趣。您知道,我们主要使用Triton内核,并且我们只会在一些不重要的边缘场景中回退到torch操作。我们的特定代码路径触发的torch.sum函数错误会意外地由于数据分布特性而导致非法内存访问——它在计算内存偏移时犯了一个错误。
最戏剧性的是,当一名工程师最终找到问题并提交了修复程序时,所有具有不同症状的错误报告都消失了。每个人都兴奋地将Slack频道从“多错误理论”更改为“单错误理论”,现场非常开心。
这个错误潜伏了多久?它从训练的早期阶段就存在了,直到进度条经过大约40%才被识别出来。发现过程也充满了戏剧性:当时,一个复杂的内核依次调用了序列,第二次调用触发了非法内存访问。
尽管此崩溃频率极低(每几百甚至几千个训练步骤中仅发生一次),但很容易被忽略为偶尔的故障,但我们团队的指导原则是:绝不放过任何异常。这个故事最精彩的部分在于这种不轻易放弃的毅力。
Sam Altman:在GPT-4.5预训练开始后,您还需要做什么?
**Alex Paino:**我们所有人都需要经常观察损失曲线。此外,我们需要继续优化系统并改进在训练开始之前未完成的协同设计。我们密切监视训练过程中的各种统计信息,以确保没有意外趋势。同时,我们从机器学习的角度探索可能的改进计划。尽管在预训练开始后,数据级别的工作将暂时减少,但仍有大量任务要处理。
**Amin Tootoonchian:**我认为机器学习在很大程度上取决于正确性判断。在预训练开始后,面对大量噪声信号,我们就像解读茶叶渣的算命先生一样,我们需要判断系统是否健康。这是我们的责任。
Sam Altman:在系统级别,什么会限制我们进行模型训练?是芯片、处理器、内存、网络还是电源?
**Amin Tootoonchian:**系统的美妙之处在于,在进行协同设计时,工作负载可以适应您构建的基础设施。没有通用的说法是网络是瓶颈,或者内存带宽是瓶颈等等。即使对于相同规范的模型,我们也可以选择转移资源需求。我们可以选择创建一个更平衡的系统,但是拥有更多的内存带宽总是有益的。如果不限制条件,则很难回答这个问题。
在设计GPT-4.5时,我们可能需要在系统中具有某个属性,该属性需要通过人工指导来生成。因此,协同设计对于形成模型架构和架构元素非常重要,并在某种程度上连接了系统和机器学习方面。如果系统具有我们不太希望拥有的属性。我理想的情况是,一切都应该解耦,以使彼此之间有最大的空间。
有时事情是联系在一起的,我们需要满足基础设施的要求,或者事情应该是这样。大多数情况下,我们需要一个平衡的系统,一个平衡的通信。而我们拥有的最佳监管手段就是所有这些协同设计。
Sam Altman:我们离这样的理想系统目标有多远?
**Amin Tootoonchian:**我们离这个目标还很远。构建系统的过程总是这样:首先是对事物应该如何运作的理想化观点,然后将这些差异与现有资源进行协调。
我不认为我们为了理论而做理论,而只是为了讨论我们想要它变成什么样,实现它,并尽可能接近那个理想。这可能是系统领域最令人兴奋的部分。人们过去常说这是一种优雅的系统设计,最终历史将告诉我们这种选择是正确的还是错误的。
Sam Altman:如果您可以在下一次大型训练之前获得一个机器学习问题的答案,您最想知道什么?
**Alex Paino:**我想知道在有限的数据和特定领域下我们应该使用哪些算法。尽管这是一个广泛的问题,但它确实是最关键的。
Sam Altman:将来您会使用1000万个或更多GPU进行同步预训练吗?
**Alex Paino:**我认为会有,但它可能不是传统的预训练模型。其形式可能与现有技术非常不同,但它仍将保留无监督学习的核心。
**Amin Tootoonchian:**我更喜欢半同步模型。由于物理定律,完全同步不是很现实。
**Daniel Selsam:**我认为它更可能是去中心化的。肯定会有1000万个GPU在AI系统中协同工作,以学习和执行任务,但是像大脑的各个部分一样,它们可能不一定彼此通信。
Sam Altman:当前最先进的算法与人类数据效率之间有多大的差异?将来有可能赶上吗?
**Daniel Selsam:**两者很难直接比较。语言学习方面的差距肯定很大。关键在于如何定义人类视觉神经接收的信息量。我认为算法的总体数据效率远低于人类。
几十年来,深度学习一直专注于计算效率。除了数据和计算能力的增长之外,真正令人惊讶的是算法改进所产生的叠加效应。每次算法性能提高10%或20%,叠加到数据效率上都会产生显着的效果。到目前为止,还没有围绕数据效率进行过这样的动员,因为当数据没有流动且计算能力有限时,这样做是不值得的。
现在,我们正在进入AI研究的新阶段,我们将开始积累数据效率的胜利。我现在预测我们会遇到无法克服的障碍有点傻。人脑的运作方式绝对不同于我们的算法改进,我们应该在这方面保持谨慎。但是我