OpenAI 揭秘 GPT-4.5 训练:10 万块 GPU,几乎全员上阵,出现“灾难性问题”
4 月 13 日消息,最近,在 OpenAI 迄今为止最昂贵的模型 GPT-4.5 发布一个多月后,OpenAI 的联合创始人兼 CEO 萨姆・阿尔特曼(Sam Altman)与 GPT-4.5 的三位核心技术人员进行了为期 45 分钟的信息密集型对话,首次公开了该模型开发过程中超出时间预期的研发耗时、计算集群频繁出现故障、性能提升路径难以预测等多项鲜为人知的细节。
GPT-4.5 项目于两年前启动,是 OpenAI 至今最为详尽的计划,涵盖数百人的团队合作,阿尔特曼表示,为了这个项目,OpenAI 几乎全体员工都参与其中。
在研发过程中,OpenAI 团队遭遇了不少“灾难性问题”。10 万卡集群揭示了基础设施的潜在小概率深层次问题,OpenAI 的系统团队为了平衡时效与性能,不得不“一边修复一边训练”。其中一个隐藏的小 bug 导致集群频繁报错,直到训练进度超过约 40% 后才被发现。
但是,这也促使 OpenAI 建立了更为强大的技术栈:如今仅需要 5-10 人就能复刻出 GPT-4 级别的大模型。GPT-4 到 GPT-4.5 的性能提升约为 10 倍,获得了难以度量但全方位增强的智能,这一点让 OpenAI 的员工们感到惊讶。
OpenAI 团队已经意识到,实现下一个十倍甚至百倍性能提升的关键在于数据效率,即如何开发出能够利用更多算力,从相同数据中学习更多知识的方法。
与此同时,系统结构正从单集群转向多集群架构,未来的训练可能需要1000 万块 GPU 大规模协作学习,其容错能力也亟待提升。
在对谈中,OpenAI 的员工们还探讨了数据长尾效应与 Scaling Law 之间的关联、机器学习与系统团队协同设计(co-design)模式的优势、无监督学习的本质,以及“绝不放过任何异常”的缺陷排查文化,全面呈现了 GPT-4.5 开发期间 OpenAI 的思考与收获。
参与此次对话的 OpenAI 员工除了阿尔特曼外,还有负责 GPT-4.5 预训练机器学习算法的 Alex Paino、OpenAI 首席系统架构师 Amin Tootoonchian 和研究数据效率与算法的 Daniel Selsam。
以下是阿尔特曼与 OpenAI GPT-4.5 团队对话视频的完整整理(为了提升可读性,智东西在不违背原意的前提下进行了必要的调整):
01.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 倍。这是我们大约两年前设定的初步目标。
在此过程中发生了很多事情,我们在思考怎样做得更好,还是可能会不如预期?这是一条非常复杂的道路,但最终就有效计算而言,我们得到了一个认为比 GPT-4 聪明 10 倍的模型。
Amin Tootoonchian:在执行上,GPT-4.5 项目的耗时远远超出我们最初的预期。
02.如今训练 GPT-4 级别模型,仅需 5-10 人即可完成
Sam Altman:当集群从 1 万卡扩展到 10 万卡时,为什么会遇到如此多的问题?
Amin Tootoonchian:我认为,如果系统开发人员足够敏锐,大部分问题能够在小规模阶段发现。
有些问题并非大规模训练阶段特有,而是原本就常见,但在规模提升后会变成灾难性问题,尤其是在团队没有预料到这些问题会恶化到如此程度的情况下。
Sam Altman:导致灾难性后果的因素有哪些?
Amin Tootoonchian:基础设施的问题显而易见,无论是故障率、故障类型还是故障总量都非常高。10 万卡集群是一个大规模的样本池,因此我们也发现了算力供应商未观察到的问题。
网络是其中一个因素,单一加速器也可能出现故障。然而,这也是这种系统的美妙之处 —— 几乎所有组件都需如预期般工作才能获得预期结果。我们的任务是尽量减少这类问题。
Sam Altman:确实在极限规模的集群上工作相当困难,但我注意到,做那些不再是技术前沿的事情变得相对容易了,训练 GPT-4.5 需要数百人,OpenAI 几乎全员上阵。
但如果现在让你们从 OpenAI 中挑选一个最小的团队,从头开始基于我们所知道的知识和系统工作重新训练 GPT-4,需要多少人呢?
Alex Paino:我认为现在要训练出 GPT-4 级别的模型,可能只需 5 到 10 人。在完整 GPT-4.5 的过程中,技术栈已经有了显著的改进。
在训练 GPT-4.5 的过程中,我们已经进行过类似的工作 —— 我们训练了 GPT-4o,这是一个 GPT-4 级别的模型,使用了许多来自 GPT-4.5 研究项目的相同内容进行重新训练。进行那次训练的人数要少得多。
03.数据效率是大模型突破的关键,新一代硬件带来诸多挑战
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:我没有具体的数字可以分享,但一般而言,在新一代硬件部署的初期,系统运行往往面临诸多未被充分认知的技术挑战。我们选择在问题尚未完全明确的情况下推进项目,导致初期的运行失败率居高不下。
不过经验表明,随着根本原因的识别和解决,故障率会显著降低。这一现象反映了我们对基础设施认知的深化过程——有些人称之为基础设施的清理或理解基础设施的根本问题。
执行的早期阶段往往相当痛苦,在推进项目的同时,我们持续发现和解决新型故障模式,但最终故障率会逐渐下降,正常运行时间越来越长。
本质上这是个优先级权衡的问题:基础设施生命周期的早期阶段,其故障风险往往难以准确预估;而如果过于追求理想状态(原文为“City Estate”,理想城市设计),可能反而导致系统在初期阶段的可用性表现极差。
04.计算资源已不再是主要瓶颈,算法仍未触及理论上限
Sam Altman:尽管推理模型是我们未来技术栈的核心成分,但现在暂时让我们关注传统预训练模型的发展边界。假设我们拥有无限的 GPU 计算能力、无限的网络带宽以及无限的电力供应,但仍受限于当前存在的技术瓶颈——包括 시스템 可靠性问题、容错训练方法的缺失,以及现有数据集的限制。
根据我们每个主要 GPT 版本号实现 100 倍规模提升的演进规律,按照目前的技术边界,预训练模型的发展究竟能达到什么水平?具体到 GPT 系列模型,基于我们现有的知识体系,理论上究竟能够训练出什么样的模型?我们能否做出 GPT-5.5?
Alex Paino:从机器学习和算法发展的角度来看,我们尚未触及明确的理论上限。事实上,我们才刚刚开始探索更高效的数据算法,以及如何更充分地利用现有数据资源。这种现状非常引人注目——即便是像 GPT-4 这样的模型,很大程度上都是在计算资源受限的环境中开发的,这也决定了此前大多数研究的方向。
但现在情况完全不同。自 GPT-4.5 起,在某些关键维度上,数据而非计算正变成主要的限制因素。这一转变让相关研究变得不再那么令人兴奋。
Sam Altman:然而,这是惊人的进展,世界可能尚未完全意识到:在我们能够构建的最佳模型上,计算资源已不再是主要瓶颈。这一转变意味深远,因为我们在计算受限的环境中生活已经太久了。
05.模型整体性能提升可预见,智能提升路径却难以预测
Sam Altman:在训练 GPT-4.5 的过程中,我们获得的最有趣的机器学习经验是什么?你们想分享的内容有哪些?
Amin Tootoonchian:总体而言,最引人深思的是那些偏离我们预测的情况——特别是在我们试图理解为什么实际表现偏离预期曲线时。
Alex Paino:令我们惊讶的发现之一是:不同机器学习组件的扩展性表现差异巨大。有些部分能很好地扩展,而另一些则无法做到。这是我们在实际训练过程中才真正意识到的。这段经历给了我们许多启示。
Daniel Selsam:我认为 GPT 范式的两大核心特征在于:其一,测试损失(衡量模型在未见过的测试数据上表现的指标)可被准确预测;其二,模型性能随规模扩大呈现可预测的提升。更神奇的是,测试损失降低会以难以量化却又令人惊叹的神秘方式,转化为全方位增强的智能水平。
Sam Altman:你对此持绝对乐观态度吗?完全认同这一观点吗?
Daniel Selsam:我想说,从 GPT-4.5 测试中,我们发现了非常有趣的现象——重新测试后,模型表现出许多精湛能力,完全超出了所有人的预期。
我们坚信它会以各种难以预定义的方式变得更加智能,而在实际部署后,从用户满意度中就能观察到这些微妙层面的提高:更强的常识储备、更精准的语境理解能力、更细致的语义把握——这正是那些额外测试损失带来的魔力。在我看来,Scaling Law 在这一维度得到了完美验证。
06.机器学习与系统团队紧密合作,不会“自扫门前雪”
Sam Altman:整个训练过程中最积极的时刻是什么?你最喜欢的回忆是什么?显然这期间有很多痛苦,但希望那些痛苦已经有所缓解。
Alex Paino:我确实有这样的时刻。在训练期间我们进行了很多机器学习方面的工作,我认为我们所做的一些改变产生了极好的影响,可能超出了我们的预期,这对我们来说是一个非常激动人心的时刻。
Amin Tootoonchian:对我来说,在训练的同时,我们也在构建基础设施。我们坚信能够跨越那个性能悬崖,我们也有计划和执行的每个人,这需要很长的时间。这是艰苦的工作,绝对比我预想的要难。我低估了解决这些问题所需的时间。
当团队终于克服那些关键问题,性能显著提升的那一刻至今让我难忘。可以明显感受到整个团队的能量转变——所有人突然充满了干劲,带着全新的动力向最终目标冲刺。
最神奇的是,我们状态跟踪器上显示的预计完成时间,从最初的两年不断缩短,最终锁定在一个明确的时间节点。这样的可见进展无疑对团队士气的提升是巨大的。我认为这就是其美妙之处。
我想特别强调的是,机器学习的工作从未停滞。即便在训练开始后,这种机器学习的协同设计过程仍在继续。机器学习团队不仅主动跟进那些曾被标记为“后续处理”的问题,还持续交付了真正优化训练时间的改进。
这完美体现了我们的团队精神——在这里不存在“各人自扫门前雪”的工作界限,而是一种真正无缝的合作,这种凝聚力恰恰是我们最强大的优势。
07.GPT-4.5 的预训练是最周详的计划,绝不放过任何异常
Daniel Selsam:外界对这次训练本身的挑战性和预测准确性已进行了大量讨论。但实际上,这一切都建立在极其严谨的规划基础上——你能否再详细谈谈这方面?
Alex Paino:这绝对是我们迄今为止最周密的计划。正如我之前所说,早在正式启动训练前一年,我们就已经开始为这一项目筹备,多次进行了大型的风险控制测试。
我们特别注重循序渐进地引入所有改进:从高置信度的基础配置开始 —— 可以理解为与 GPT-4 类似的成熟架构,这种配置在机器学习层面我们已经完全掌握 —— 再像搭积木一样层层叠加新特性。
关键是严格验证每个改进在不同规模下的扩展性:不仅要看到性能提升,更要确保这些提升能随着模型规模扩大而持续有效。许多改进在小规模测试时表现良好,但在大规模应用中就会失效。
因此,在整个过程中我们始终保持高度警惕,不断迭代完善我们的扩展定律方法论。通过这次风险控制实践,我们积累了大量宝贵的经验,这些经验也将指导未来 GPT 系列模型的发展。
Amin Tootoonchian:我记得一个特别有趣的瞬间,让我至今怀念。每次启动训练任务时,总会遇到各种 bug,这已经是常态。但关键在于确保进展不受阻,时刻确认当前进度是否在正轨,这些 bug 是否会对训练健康造成致命影响。
虽然我们最初非常确信存在重大缺陷,但通过搭建的监控系统,我们已经能够精准区分问题根源:是硬件故障?哪种类型的硬件故障?是数据损坏?还是机器学习模型本身的 bug?或者是代码中的竞态条件?
当时的情况是,我们同时在多个问题讨论区,各种症状纷繁复杂。经过一系列 bug 修复,我们陷入僵局:眼前堆叠着多个未解问题,所有人都在苦思冥想——这些是不同的 bug 导致的,还是一个 bug 在作祟?
后来我们进行了投票,让团队成员票选最可能的根源。结果最不被看好的选项反而命中了真相:竟然是 PyTorch 上游的 torch.sum 函数出了问题,一个简单的求和运算。
这个 bug 特别有趣。我们主要使用 Triton 内核,只有在某些无关紧要的边缘场景才会回退到 torch 运算。然而,我们特定代码路径所触发的这个 torch.sum 函数 bug,会因数据分布特性极其偶然地引发非法内存访问——它在计算内存偏移时出现了错误。
最戏剧性的是,当某位工程师终于定位问题并提交修复后,所有症状各异的错误竟然全部消失。大家欢庆着把 Slack 频道从“多 bug 理论”集体改名为“单 bug 理论”,场面特别欢乐。
这个 bug 潜伏了多久?从训练一开始就存在,直到进度条过约 40% 才被发现。发现过程也颇具戏剧性:当时涉及一个复杂的内核连续调用序列,第二个调用触发了非法内存访问。
尽管这种崩溃频率极低(每几百甚至上千步训练才出现一次),很容易被视为偶发故障而被忽略,但我们的团队准则是:绝不放过任何异常。这个故事的精彩之处恰恰在于这种不轻言放弃的坚持。
08.我们离理想系统还有很远
Sam Altman:GPT-4.5 预训练启动后,大家还需进行哪些工作?
Alex Paino:我们需要不断观察损失曲线。此外,还要持续优化系统,完善在训练启动前未完成的协同设计(co-design)。我们密切关注训练过程中的各类统计指标,确保没有出现预期外的异常趋势。同时探索机器学习的可能改进方案。虽说预训练启动后数据层面的工作会暂时减少,但仍有大量任务需要处理。
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 系统上共同工作,但就像大脑的不同部分一样,彼此不一定会相互交流。
09.算法改进产生叠加效应,推动数据效率提高
Sam Altman:当前最先进的算法与人类的数据效率相距多少?未来有望追赶上吗?
Daniel Selsam:两者很难直接比较。在语言学习层面上的差距肯定非常显著,关键在于如何定义人类视觉神经接收的信息量。我认为总体上算法的数据效率远低于人类。
深度学习数十年来一直关注算力的效率。除了数据和算力的增长,真正令人惊讶的是算法改进带来的叠加效应。每次算法性能提升 10% 或 20%,加在数据效率上就会产生显著效果。到目前为止,围绕数据效率尚未进行这样的调动,因为在数据不流通且计算能力受限时,这一做法并不划算。
现在,我们正在进入人工智能研究的新阶段,数据效率的胜利将开始累积。我认为,现在预测我们会遇到无法逾越的障碍是有些愚蠢的。人类大脑的运行方式与我们的算法改进显然不同,在这方面我们要保持谨慎。但我对算法未来的发展持乐观态度。
Sam Altman:更大规模的预训练与更强的模型学习推理能力之间存在什么相关性?
Alex Paino:我们观察到更好的预训练和无监督学习通常提升模型的整体智能,并在泛化方面有效提高,这两者是相辅相成的,而推理能力的提升可能会更缓慢。我认为它们之间这种关系是互补的。
Sam Altman:预训练似乎在很多任务上具备普遍适用性,而单个模型的训练则只能使其在某一类任务上表现出色,是这样吗?
Alex Paino:这确实是个有趣的问题,但当你观察训练数据时,你就不会对这一情况感到惊讶。预训练的数据集非常广泛,我们追求的是广度和多样性。而在模型强化学习过程中,让其能够清晰获得良好的奖励信号和训练环境时,我认为很难兼顾数据集的广泛性。
Daniel Selsam:我同意,但我认为还有一个因素,预训练本质上是在压缩数据,从而发现不同事物之间的联系。这与类比相关,更加抽象。推理是应对特定问题需要深思熟虑的一种技能,同时能够获得许多类型问题的解决方案。但在预训练过程中,通过跨越不同领域进行数据压缩时,可以学习到更抽象层面的知识。
10.智能的本质是压缩,数据长尾效应使 Scaling Law 持续有效
Sam Altman:无监督学习为什么有效?
Daniel Selsam:关键在于压缩。理想的智能模式是所罗门诺夫归纳(Solomonov induction),机器学习一般考虑所有可能性,但倾向于从更简单的程序开始验证。
当前的预训练本质上是一个压缩过程,试图找到一个最简的程序来解释人类迄今为止产生的所有数据,从而实现近似表达。
Sam Altman:下一个 Token 预测如何助力实现压缩?
Daniel Selsam:在统计学中存在一个悖论——为什么深度网络看似无法压缩却能够实现泛化?通常情况下,当拥有大量数据和一些小模型时,这些模型必须经历压缩才会学到东西。
在预训练中,数据和模型的规模都很大,有些人就认为这种训练只是记忆和插值学习,事实上,他们忽略了压缩的另一种理解角度——序贯压缩(pre-quential compression),这种方式就像一个压缩器,即便数据权重相当庞大,二进制也无需存储这些信息,利用下一个 Token 预测结果能够迅速检索有用信息,提高压缩效率。
Sam Altman:训练 GPT-4.5 的过程耗费了大量人力、时间和金钱,这实际上可以看作是一次验证 Scaling Law 的实验,结果证明它有效,且还将持续相当长的时间。为什么 Scaling Law 可以被称为宇宙规律?
Daniel Selsam:压缩程度越高,智能就越强大,这具有非常深刻的哲学内涵。为什么训练更大的模型花费的时间越长,压缩率就越高?这涉及许多理论,其中我最喜欢的是稀疏表示(Sparse Representations)。
现实世界中的关键概念遵循幂律分布(power law),例如第 100 个重要概念在每 100 个文档中可能只出现一次,显示出明显的长尾效应。这种分布特性导致需要大规模数据和算力来有效捕捉所有关键概念,也决定了 Scaling Law 会长期有效。
本文来自微信公众号:智东西(ID:zhidxcom),作者:陈骏达、陈家阳