深度揭秘GPT-4.5预训练:Scaling Laws的极限探索与系统工程挑战
摘要
OpenAI内部访谈深入回顾了GPT-4.5的预训练全过程。团队以实现10倍智能提升为目标,经历了长达两年的研发,涉及ML与系统团队的深度协同设计、多集群训练中的硬件故障应对、大规模调试困境,以及从计算受限向数据受限的关键转变。访谈验证了Scaling Laws的持续有效性,并揭示了数据效率和容错机制等未来核心挑战。
核心概念及解读
Scaling Laws:描述模型性能随计算量、数据量和参数规模增长而可预测提升的经验规律,是GPT-4.5训练规划和风险评估的核心方法论
数据效率(Data Efficiency):指模型从有限数据中提取知识的能力,GPT-4.5研发标志着OpenAI从计算受限进入数据受限的新阶段,当前算法与人类学习效率仍有十万到百万倍的差距
协同设计(Co-design):ML算法团队与系统基础设施团队在架构、通信、计算和存储等层面进行深度联合设计,确保软硬件在目标规模下高效协同工作
困惑度(Perplexity):衡量语言模型预测能力的核心指标,数值越低表示模型压缩和泛化能力越强,OpenAI以内部代码库的困惑度作为模型智能水平的关键标尺
风险解除(Derisking):在正式大规模训练前,从已知稳定配置出发逐层引入新特性并验证其跨规模扩展性的系统化实验流程,用于避免大规模训练中的不可预见失败
- 视频链接:Pre-Training GPT-4.5
- 官方频道:OpenAI
深度揭秘GPT-4.5预训练:Scaling Laws的极限探索与系统工程挑战
近期,OpenAI 举办了一场特别的内部访谈,由 CEO Sam Altman 主持,邀请了参与 GPT-4.5 研发的核心技术成员——负责预训练数据与机器学习的 Alex Paino、首席系统架构师 Amin Tootoonchian 以及负责数据效率与算法的 Daniel Selsam,共同回顾了这款备受瞩目的大模型从构思到训练完成的艰辛历程。与以往发布新产品不同,这次讨论旨在揭示 GPT-4.5 背后深层次的研究投入、技术挑战与关键学习,回应社区对其超越 GPT-4 的优异表现及其成因的广泛兴趣。
一、 宏伟目标与规模化挑战的起点
GPT-4.5 项目的启动可追溯至访谈发生时的两年前,其核心目标被设定为实现相较于 GPT-4 约 10x 的智能提升。这一雄心壮志的设定是基于对即将上线的新一代大规模计算集群能力的预判。团队预见到,这将是一项需要投入大量人力、时间及计算资源的庞大工程。正如 Amin Tootoonchian 所述,大型模型的训练过程是一个从概念诞生之初就需要机器学习(ML)与系统(Systems)团队深度协作,直至模型精确定义、训练启动并最终完成的复杂流程。而 GPT-4.5 的研发,更是集合了比以往模型(如 GPT-4)更多的人力,代表了一次在规模和复杂度上都截然不同的尝试。最终,团队认为所交付的模型在有效算力投入和智能水平上达到了预设的 10x 目标。
二、 精心规划、风险解除与深度协同设计
通往 GPT-4.5 的道路并非一蹴而就,而是伴随着长达一年多的前期规划与准备。团队在正式训练开始前进行了大量的“风险解除”(Derisking)运行。Alex Paino 解释道,这包括从已知稳定的配置(如 GPT-4 的设置)出发,谨慎地、分层地引入新特性,并极其关注(甚至到了“偏执”的程度)这些改动在不同计算规模下的表现,确保小规模实验中观察到的优势能够持续扩展至目标规模,避免“小尺度有效,大尺度失效”的陷阱。这一过程极大地依赖并推动了 OpenAI 对 Scaling Laws 方法论的理解和迭代。
尤为关键的是,GPT-4.5 的研发见证了 ML 与系统团队之间前所未有的深度协同设计(Co-design)。这种合作贯穿始终,甚至可以追溯到训练启动前 6 到 9 个月。团队针对 GPT-4.5 的特定功能需求和必须克服的系统挑战,进行了一次专门的、大规模的风险解除运行,其核心焦点就是确保 ML 算法与系统基础设施在目标规模下能够高效、稳定地协同工作。Amin Tootoonchian 指出,这种深度协同对模型的最终架构设计产生了实质性影响,有时甚至需要 ML 层面做出调整以适应系统层面的约束或优化,旨在构建一个通信、计算、存储各方面都尽可能平衡和对称的整体系统。这种紧密的跨团队合作精神,甚至在训练运行开始后仍在持续,ML 团队不断进行优化以提升运行效率和稳定性。
三、 系统工程的极限:故障、扩展与运维
将模型训练规模提升至 GPT-4.5 的量级,系统层面遭遇了前所未有的挑战。Amin Tootoonchian 深入剖析了规模化带来的固有难题:在小规模下罕见或可控的问题(如硬件故障),在大规模集群中会因基数效应而演变成灾难性的、频繁发生的事件。团队必须面对种类和数量都远超预期的硬件(加速器、网络 fabric 等)故障模式,甚至观察到了供应商可能都未曾遇到过的极端情况。这要求系统具备极高的鲁棒性。
为了满足庞大的计算需求,GPT-4.5 的训练不得不扩展到多集群环境,这引入了新的复杂性,例如跨集群的状态管理问题,迫使团队必须开发和部署新的解决方案。Amin 进一步指出,新一代基础设施在投入使用的早期阶段,往往伴随着较高的、未被充分理解的故障率。团队不得不在这种“边运行、边学习、边修复”的痛苦模式下艰难推进,导致训练初期进展常常显著慢于预期。维持如此大规模、长时间运行的稳定性,其运维负担是巨大的,GPT-4.5 的训练过程几乎触及了当时 OpenAI 技术栈所能支撑的极限。
四、 ML实践中的不确定性与调试困境
机器学习方面同样充满挑战。Alex Paino 提到,实际的训练损失曲线(Loss Curve)常常会偏离基于 Scaling Laws 的理论预测,诊断这些偏差的原因是一项关键任务。同时,并非所有在小规模验证有效的 ML 改进都能在大规模下良好扩展,其效果可能出乎意料。团队需要持续监控包括损失曲线在内的多种统计指标,从充满噪声的信号中判断训练状态是否健康,这期间不乏“虚惊一场”的误报(False Alarms)。
访谈中详细描述了一个具体的调试案例,生动展示了大规模训练中定位问题的极端困难。一个潜藏在上游 PyTorch 库 sum 函数中的、数据依赖且触发概率极低的 bug,导致了多种看似毫无关联的低概率正确性问题(如非法内存访问)。尽管团队有多种猜测,但这个真正的根源 bug 在最初的“投票”中得票最少。最终,在一位工程师的深入排查下,这个 bug 被定位并修复,神奇地解决了所有相关的悬而未决问题。这个潜伏了训练过程约 40% 时间的 bug 的故事,凸显了在大规模、复杂系统中坚持不懈追查细微异常的重要性。
五、 关键学习:Scaling Laws 的力量与数据效率的新纪元
尽管挑战重重,GPT-4.5 的成功也带来了宝贵的经验和深刻的洞见。首先,它再次强有力地验证了 Scaling Laws 的基本原则:更低的测试损失(尤其是在高质量、严格隔离的留出数据集,如 OpenAI 内部代码库 “Monorepo Loss” 上测得的困惑度 Perplexity)确实能转化为更广泛、更深入的智能。Daniel Selsam 强调,模型展现出的许多细微的、未被明确预期的能力(如更强的常识推理、对上下文和细微差别的理解)正是这种“压缩即智能”规律的体现,是测试损失降低带来的“魔法”。
其次,一个重要的转折点是,研究团队观察到,在 GPT-4.5 及之后,对于某些方面,他们开始从过去的“计算受限”(Compute Constrained)进入到“数据受限”(Data Bound)的新阶段。这意味着,即使拥有更多算力,模型性能的提升也开始受到高质量数据量或数据利用效率的限制。这一转变极大地激发了对“数据效率”(Data Efficiency)算法的研究热情。Daniel Selsam 指出,虽然当前算法在数据效率上与人类相比仍有天文数字般的差距(可能达到 100,000x 到 1,000,000x),但他对未来通过持续的算法创新(类似过去计算效率的叠加式进步)来大幅提升数据效率持乐观态度。
此外,这次经历也凸显了经验积累的价值。曾经作为前沿技术的 GPT-4 级别模型的训练,在 GPT-4.5 项目积累的技术栈和系统改进(如 GPT-4o 的训练)下,如今可能仅需一个 5-10 人的小团队即可完成。知道某件事是“可能”做到的,本身就极大地降低了后续尝试的门槛。
六、 度量指标的基石作用
访谈强调了度量指标(Metrics)在大型模型研发中的核心作用。团队主要依赖困惑度(Perplexity)作为衡量模型压缩能力和泛化性能的关键指标。Daniel Selsam 解释了为何避免使用人类可读的测试作为主要优化目标:因为这容易导致模型过度拟合测试模式(记忆),而非提升真正的泛化智能。关键在于使用高质量的、与训练数据严格隔离的“留出”(Held-out)数据集。OpenAI 发现其内部代码库(Monorepo)作为一个优秀的留出数据集,其损失值(Monorepo Loss)与模型最终在各种任务上的表现具有惊人的相关性和预测力,成为了衡量模型进展的重要标尺。
七、 未来展望:数据效率、容错与系统极限
展望未来,团队认为持续推动 AI 能力边界的关键在于几个方面。算法层面,突破数据效率瓶颈是核心议题,需要开发出能从有限数据中学习更多知识的新方法。系统层面,构建更强大的、与工作负载深度协同设计的容错(Fault Tolerance)机制至关重要,特别是网络传输层的鲁棒性,以应对更大规模(例如,设想中的 10,000,000 GPU 级别,可能是半同步或去中心化形式)训练带来的运维挑战。Amin Tootoonchian 认为,未来的系统需要在故障发生时能更优雅地处理,而不是将负担完全转嫁给应用层。至于硬件瓶颈,虽然内存带宽总是受欢迎的,但整体瓶颈是动态的,取决于计算、内存、网络、电力以及与工作负载的协同设计。
八、 理论思考:无监督学习与 Scaling Laws 的根源
访谈也触及了更深层次的理论问题。Daniel Selsam 阐述了为何无监督学习(特别是通过 Next-Token Prediction 进行预训练)如此有效。他将其与 Solomonoff 感应的理想智能模型联系起来,认为预训练本质上是在进行数据压缩——寻找能解释观察数据的最短程序。而模型在训练中快速学习的能力,可以通过“序列预测压缩”(Prequential Compression)理论解释为一种有效的压缩形式,即使模型参数量巨大。至于 Scaling Laws 为何有效,一个有吸引力的理论是现实世界数据中概念的分布遵循幂律(Power Law),存在长尾效应。被动地收集数据需要指数级增长的计算和数据才能不断捕捉到尾部的稀有概念,这或许解释了为何持续投入资源能带来持续的智能提升。
九、 结语
GPT-4.5 的研发不仅是 OpenAI 内部一次巨大的工程壮举,更是对当前大模型技术路线的一次重要验证和探索。访谈揭示了在追求更高人工智能水平的过程中,所面临的系统工程极限、算法创新的迫切性、以及理论理解与实践探索之间的紧密互动。正如 Sam Altman 所言,这整个过程本身就是一场验证 Scaling Laws 是否持续有效的宏大实验。事实证明,定律依然有效,但前方的道路也揭示了新的瓶颈(如数据效率)和对系统、算法、乃至理论认知的更高要求。这场深度对话为我们理解尖端 AI 模型的诞生过程提供了宝贵的第一手资料和深刻启示。
GPT-4.5 预训练过程回顾
一、 引言与背景
Sam Altman: 通常我们进行这样的访谈是为了讨论即将发布的新产品,但今天我们要做点不一样的,我们将深入探讨我们产品背后的研究。当我们发布 GPT-4.5 时,我们觉得人们会喜欢它,我们对这个模型感到非常自豪,但人们喜欢的程度远超我们的想象。大家说了各种各样的话,比如“我从未想过与模型交谈会有这样的体验,它与 GPT-4 如此不同,在那些显而易见或难以解释的方面要好得多,诸如此类。” 人们对于 GPT-4.5 的研发过程产生了极大的兴趣。所以今天,我们请来了打造 GPT-4.5 的一些关键团队成员,我们将一起探讨这个话题。我们会谈谈其中的投入、我们的收获,以及打造这样一个巨型模型需要什么。
Sam Altman: 也许我们就从这里开始吧,打造这样一个巨型模型需要什么?你先说。
Amin Tootoonchian: (在介绍前被 Sam 打断)
Sam Altman: 哦,也许你们应该先自我介绍一下。Alex,你先来?
Alex Paino: 好的,大家好,我是 Alex。我主要负责预训练数据方面的工作,也领导了 GPT-4.5 的预训练机器学习(ML)部分。
Amin Tootoonchian: 我是 Amin Tootoonchian,OpenAI 的首席系统架构师,我在 OpenAI 广泛负责系统和网络方面的工作。
Daniel Selsam: 我是 Dan,我负责数据效率和算法方面的工作。
Sam Altman: 好的。那么,打造它需要什么?
二、 GPT-4.5 训练的规模与目标
Alex Paino: 是的,我想我们大约是在两年前启动了这个项目。我们当时知道有一个新的大型计算集群即将上线,我们预见到了这一点,并开始做了大量工作来确定我们想要在这次运行中包含的特性,进行了许多大规模的风险解除(Derisking)运行,并为此制定了非常长远的计划。这涵盖了从系统到机器学习等整个技术栈。这是一个漫长的执行过程,旨在解除风险并为运行本身做准备,而运行本身也是一项非常庞大的工程。
Amin Tootoonchian: 我认为这是一个从一开始就涉及机器学习(ML)团队和系统团队协作的过程,一直持续到我们精确知道要训练哪个模型为止。然后是启动运行过程本身。以我们目前的工作节奏,特别是要利用我们最新可用的计算资源,这使得完美地提前规划变得非常困难。所以我们几乎总是在带着大量未解决的问题的情况下启动项目,并试图在整个运行过程中克服所有挑战向前推进,基本上是增加更多计算资源,解决所有我们可能没有预料到的问题——尽管我们在 ML 和系统两方面都做了所有预测——并努力缩小我们预测应该发生的情况与实际情况之间的差距。我认为这在非常高的层面上,用最宽泛的笔触描绘了整个过程。而过程的最后阶段是执行,这需要大量的人员、巨大的能量和动力,在一段很长的时间内完成训练过程。
Sam Altman: 你觉得我们实际发生的情况与我们预期的有多接近?
Amin Tootoonchian: 通常在开始阶段,我说的是系统方面,我们通常与预期相差甚远。我们总是面临选择:是推迟启动,基本上是延迟到更多问题解决后再开始,还是尽早启动,然后边做边解决问题。这总是在权衡,既要避免不合理地拖延进程,但几乎总会遇到一些我们开始时不一定知道会遇到的问题。整个过程就是尽力处理已知问题,并为运行应如何进行制定计划,然后在推进过程中处理未知因素,比如一次运行如果成功,会花费多长时间等变数。
Alex Paino: 是的,我想从最高层面来看,这个项目我们设定要做 GPT-4.5,意味着比 GPT-4 聪明大约 $10x$。这大概是我们两年前开始设定的初步目标。然后在此过程中发生了很多事情,比如我们觉得能不能做得更好或更差。我认为这是一个非常复杂的旅程,但最终我们得到了一个我们认为达到了比 GPT-4 聪明 $10x$ 这一标准的模型,这是就我们投入的有效计算而言。
Amin Tootoonchian: 在执行方面,当然,最初它远比我们想象的要长,确实花费了比预期更长的时间。但我认为这个过程就是努力缩短它,以基本匹配我们的预期。
Sam Altman: 关于此有两部分问题。第一,为什么将 GPU 数量(这里是打比方)从 10,000 增加到 100,000 会让问题变得困难得多?
Amin Tootoonchian: 很多问题。我确实相信,你在大规模下观察到的问题,如果你有非常敏锐的眼睛,在小规模下也能观察到。它们并非只在大规模下显现,但某些罕见事件在规模扩大时会变成灾难性的,特别是如果你没有预料到的话。
Sam Altman: 有哪些类型的事情变成了灾难性的?
Amin Tootoonchian: 其中一些我认为是众所周知的,是关于基础设施的问题,你观察到的故障率,观察到的故障种类繁多,无论是故障类型还是数量本身。因此,我们得以观察到一些我确信供应商也未曾观察到的情况,因为这是一个巨大的样本池,我们得以观察到我们正在执行的大量资源的完整统计分布。网络结构(Fabric)总是一个因素,单个加速器也是。但归根结底,这同时也是它的魅力所在:几乎所有事情都需要按预期工作,结果才能成立,而我们的工作就是尽量减少这种变异性。
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 研究项目的相同技术进行了重新训练。我认为进行那次运行本身实际只需要更少的人。
Sam Altman: Dan,从你的角度看呢?或者就是,为什么训练大模型很难?
Daniel Selsam: 我认为做任何新的事情都很难。我觉得,仅仅是发现别人做成了某件事,就会让事情变得极其容易,因为困难的部分在于首先要有做某件事的信念。感觉上,仅仅是某件事“可能”做到这一点,就是一个巨大的“作弊码”,让事情变得简单。
Alex Paino: 是的,我们总是在 GPT 预训练运行中将规模扩大 $10x$,总会发现一些你无法预料的有趣新事物。
三、 规划、执行与协同设计
Daniel Selsam: (接上文)我认为做任何新的事情都很难。我觉得,仅仅是发现别人做成了某件事,就会让事情变得极其容易,因为困难的部分在于首先要有做某件事的信念。感觉上,仅仅是某件事“可能”做到这一点,就是一个巨大的“作弊码”,让事情变得简单。
Alex Paino: 是的,我们总是在 GPT 预训练运行中将规模扩大 $10x$,总会发现一些你无法预料的有趣新事物。
Alex Paino: (关于规划)就像我说的,我们基本上在开始训练运行本身之前大约一年就开始了这个项目。在此期间,我们进行了多次非常大规模的风险解除运行。我们非常谨慎地规划了所有我们想加入的改动的顺序,从非常高置信度的、已知良好的配置开始——你可以想象成 GPT-4,我们非常理解这种设置——从 ML 的角度来看,然后逐步将东西叠加进去,并且非常小心地研究我们所做所有改动的规模化效果。仅仅看到一些收益是不够的,我们还希望任何新特性带来的任何收益都能在不同规模下持续存在,而不是逐渐减弱。很多东西在小规模下看起来不错,但在大规模下就不行了。所以我们在这个过程中必须非常非常偏执。并且,我认为我们继续迭代了我们的 Scaling Laws 方法论,在这个风险解除过程中,我们在这方面学到了很多,这也在继续指导我们未来的 GPT 模型。
Amin Tootoonchian: (关于执行与协作)我认为这是一个从一开始就涉及机器学习(ML)团队和系统团队协作的过程,一直持续到我们精确知道要训练哪个模型为止。……我们几乎总是在带着大量未解决的问题的情况下启动项目,并试图在整个运行过程中克服所有挑战向前推进……为了更快地达到目标,我们积极地并行化工作。……并且过程的最后阶段是执行,这需要大量的人员、巨大的能量和动力,在一段很长的时间内完成训练过程。ML 协同设计部分在(训练)启动时并未停止,人们跟进那些留待以后解决的问题,积极地进行工作并交付有助于缩短执行时间的东西。我认为这种团队合作精神,以及没有“我完成了我的工作,交给你了”这种团队界限是非常强大的。
Daniel Selsam: 我想说的是,一直有很多关注点在于运行本身是多么具有挑战性,以及预测是多么……但这都是在进行了大量复杂的规划之后(发生的)。
Sam Altman: 这是迄今为止规划最充分的一次吗?
Alex Paino: 是的。
Sam Altman: (关于协同设计)你们的团队在准备 4.5 运行时,在模型规格方面合作有多紧密?有多少是你们……
Alex Paino: 非常紧密。甚至细致到我们想要进行的矩阵乘法(matmul)的形状,确保它们被很好地优化。但对于这个项目,这是一次更深层次的合作,可以追溯到运行启动前大约六到九个月。为了实现我们想加入运行的一些功能,以及为了实现 4.5 所需的某些方面,我们进行了一次特定的、非常大规模的风险解除运行,它特别专注于与系统的协同设计(Co-design),以确保 ML 和系统在规模化时能够良好地协同工作。
Amin Tootoonchian: 是的,我认为那是我记忆中第一次大规模的、不仅仅是微调某个方面的工作。根本上讲,你希望系统层面保持某个属性,而这个属性不会凭空出现,你真的需要引导系统来赋予你这个属性。所以这种协同设计的努力形成了模型的架构和架构元素,并在某种程度上将系统和 ML 方面联系在一起。这可能是我们不希望拥有的一个属性,理想情况下,我希望所有东西都是解耦的,以便给彼此最大的空间,但有时事情会紧密联系在一起,你确实需要满足基础设施的要求,或者事情应该如何运作。通常情况下,你确实想要一个平衡的系统,平衡的通信和非常对称的系统类型,而我们能使用的最好调节手段就是所有的协同设计。
Sam Altman: 我们距离理想化的系统有多近?你是指完全满意,拥有我们想要的所有硬件,它能满足我们对 ML 的所有了解?
Amin Tootoonchian: 我们离那还差得远呢。但它很有趣。构建系统的实践总是关于此:你有一个关于事物应如何运作的理想化视图,然后就是调和它与你所拥有现实之间的差异。我认为我们不是为了理论而理论,仅仅谈论我们希望它是什么样;我们只是想让它发生,并尽可能地接近那个理想。所以老实说,我认为这对于系统领域来说可能是最激动人心的时刻了。你真的可以提出关于什么是好的系统设计的假设,然后以此为基础,很快就能在实践中看到结果。对于那些以前人们会说“这是一个优雅的系统设计,历史会告诉我们这是对是错”的事情,我们现在拥有大量的计算资源,我们有一个问题,我们知道目标,我们直接去看我们的选择是否正确。
Sam Altman: 你的团队在决定运行中要包含什么内容时,有多大程度在考虑系统设计的约束?
Alex Paino: 我认为这对于进行大规模预训练运行来说是一个巨大的考虑因素。我觉得自 4.5 以来,架构方面的大量工作,也有持续进行的关于进一步协同设计、进一步为未来硬件共同构建的设计方向。自那时以来,已经有很多有希望的工作了。
四、 面临的主要挑战
Amin Tootoonchian: (关于规模化挑战)我确实相信,你在大规模下观察到的问题,如果你有非常敏锐的眼睛,在小规模下也能观察到。它们并非只在大规模下显现,但某些罕见事件在规模扩大时会变成灾难性的,特别是如果你没有预料到的话。……其中一些我认为是众所周知的,是关于基础设施的问题,你观察到的故障率,观察到的故障种类繁多,无论是故障类型还是数量本身。……网络结构(Fabric)总是一个因素,单个加速器也是。……
Amin Tootoonchian: (关于系统演进)我认为即使在我们已经训练的不同 GPT 之间,GPT-4.5 所需的工作量,基本上是我们需要做出的改变的绝对体积,是模型规格的副产品。我们无法在与 GPT-4 完全相同的技术栈上训练 GPT-4.5。比如说,状态管理,我们的状态管理方法改变了。我们必须扩展到更多的计算资源,而这些计算资源并非在一个集群内可用,我们不得不进行多集群训练。想象一下,很多很多像这样的不同工作流必须在短时间内汇集到一起,我们才能做到这一点。为了实现下一个 $10x$ 的飞跃,当然,以及其他我们先前知道存在的问题——只是为了加速执行而选择性地跳过了这次——对于下一次,我们必须要做,没有其他办法。正是这些选择,基本上使得构建完美系统的时间线变得更长。所以我们总是在妥协,寻求获得结果的最快方式。系统本身不是目的,它产生的东西才是。
Amin Tootoonchian: (关于容错)对我来说,下一个 $10x$ 将是容错,而且是一种我们可以与工作负载协同设计的容错形式,这样我们就不必担心……维持如此大规模运行的运维负担不会像我们之前的系统那样。我敢说,用我们之前的技术栈,4.5 已经处于我们能维持的极限边缘了。
Sam Altman: 你知道在 4.5 运行中,有多少百分比的步骤因为某个地方的某个组件故障而失败了吗?
Amin Tootoonchian: 我手头没有确切的数字,但通常事情是这样运作的,这很有趣。在新一代硬件的生命周期早期,存在一些问题不一定被很好地理解或研究过。我们启动过程,并希望在存在这些问题的情况下取得进展。当然,在运行早期,故障率相当高。它们不一定……很可能一旦我们找到根本原因并消除它,总故障数会显著下降。这通常是情况。只是我们学到了更多,基础设施,有人称之为清理基础设施或理解关于基础设施的基本问题,状态会显著改善。但那个早期的执行阶段几乎总是相当痛苦,因为我们正在学习新基础设施中的新故障模式,同时还要取得进展。当然,后期故障率显著下降,整体正常运行时间等得到改善。但这只是一个时间问题,很难预测一代基础设施生命周期的早期故障风险会是什么样子,而为稳定状态设计可能导致过程早期可用性非常差。
Sam Altman: 我们在 4.5 训练期间学到的最有趣的 ML 方面的事情,你想分享的是什么?
Amin Tootoonchian: (思考)总的来说,我认为是偏离预测,并试图找出我们为什么偏离了我们预测的斜率。
Alex Paino: 是的,我认为也许我们可以……是的,我认为我们发现的更令人惊讶的事情之一是,我们在 ML 方面所做的不同方面的工作以及我们投入运行的东西是如何扩展的,以及一些扩展得好或不好的东西,这是我们在训练这个模型的过程中发现的。这……是的,我们通过这个学到了很多。
Sam Altman: (问Alex)我理解你的生活是怎样的,我想大多数人能想象出来,就像在按下运行按钮之前。但那之后,你的日常是怎样的?你只是坐在那里看损失曲线吗?它是如何进行的?
Alex Paino: 绝对有很多时间在看损失曲线,我们都花了很多时间做这个。不,我认为在那之后,还有各种各样的事情。仍然试图与系统团队合作,以推出我们在启动前未能完成的代码设计方面的改进。我们试图持续监控运行的许多事情,看是否有任何事情的趋势不如我们预期——这包括损失曲线,但还有许多其他我们可以观察的统计数据。然后,是的,也在努力从 ML 的角度对运行进行任何其他可能的改进。所以在数据方面,一旦你点击开始,它会立刻变得不那么忙碌,但其他方面仍然有很多工作要做。
Amin Tootoonchian: 我认为我们在 ML 方面依赖的是大量的正确性检查。想象一下,有很多嘈杂的信号,你有时像在解读茶叶渣,就是判断这是否健康。当然,如果你等待足够长的时间,你会知道它是否健康。只是责任在于……
Sam Altman: 出现误报(False Alarms)的频率有多高?比如你觉得“哦,这看起来真的很糟糕”,然后结果没事的情况?
Alex Paino: 相当频繁。我想大概有一半的时间吧,也许是因为我们是一群偏执的人。所以,是的,如果不是一半时间,我们就没有足够仔细地观察。
Amin Tootoonchian: (关于PyTorch Bug)想象一下,我们启动一个运行而它没有任何 bug 是极不可能的。我的意思是,各种各样的 bug,这简直是必然的。但我们需要取得进展,我们需要确信,好吧,我们是否真的确定这在正轨上,并且这些 bug 没有对运行的健康产生极其负面的影响?虽然我们绝对确定,我们最初非常确定存在一些有后果的 bug。我们确实构建了许多系统来提供可见性,并能够区分:这是硬件故障吗?是什么类型的硬件故障?是某种形式的数据损坏,还是某个 ML……潜在的 ML bug,或者我们代码中的竞争条件之类的?发生的情况是,我们当然有几个关于各种问题的未解决线索,涉及不同的症状,都是与正确性相关的问题。最终,当然,我们已经找到并修复了一些 bug 等等。我们到了这样一个点:我们有多个未解决的线索,并且对于是什么导致了所有这些问题有很多思考——它们是不同的 bug,还是一个 bug 导致了所有这些?人们围坐在一起说,大家投票,你认为哪个是这个 bug 最可能的原因?结果证明是 bug 的那个选项得票最少。它就是那个 Torch 的 sum bug,一个简单的求和操作,在上游 PyTorch 库里。
Sam Altman: 那个 bug 是什么?
Amin Tootoonchian: 这个 bug 是因为……这很有趣,因为对于这个特定的代码路径,我们触发了它。需要说明背景的是,我们主要使用 Triton 内核,只是对于一些边缘情况,比如操作不太重要时,我们基本上会回退到……运行 Torch 操作是可以接受的。而我们特定的代码路径或数据触发了 Torch sum 函数中的一个 bug。它只在非常不频繁的情况下发生,它是依赖于数据分布的,并且在好的情况下会触发非法内存访问,因为它计算了一些偏移量和某段内存……最后的有趣发现是,一旦有人修复了这个 bug——我们的工程师弄清楚了,“哦,我找到 bug 了,就是 Torch sum 的这一行,让我们发布一个修复看看它是否能解决所有问题”——它修复了所有悬而未决的 bug,那些看似有不同症状的 bug。这非常有趣,我想我们当时在重命名 Slack 频道,从“多重理论”改为“单一 bug 理论”之类的。那真是有很多乐趣,去弄清楚……
Sam Altman: 那是什么时候发生的?我现在记不清了。
Amin Tootoonchian: 它从运行的早期就存在了,一直到……我想运行了相当一部分的时候。大概 40% 进程的时候?
Sam Altman: 你们记得是谁发现的吗?
Amin Tootoonchian: 我确实记得,我想它在列表里……想象一下,有一系列内核调用,第二个是触发非法内存访问的那个,那是一些我们写的非常复杂的内核。当然,我们的团队会怀疑那里有 bug,显然那里一定有 bug。几个非常聪明的人逐行检查,每个人都在看。确实发现了一个 bug,我们部署了修复,一些问题消失了,但不是全部。在某个时候,有人发现……在列表中,torch.sum 是为这个内核提供输入的那个(众多输入之一)。我们的一位工程师开始查看代码和不同的代码路径,说:“哦,这个非常不可能的代码路径,可能大多数人都不会遇到,但我们遇到了。”他说:“好吧,这一行有 bug。”当然,我们对此唯一的验证和确认就是:发布更改,观察所有崩溃是否消失。它确实消失了。我想这就是我们需要的验证。但是,它是……这是关键,它是在非常非常……我的意思是,一个很慢的速率下崩溃,每百步一次,每千步一次。这是很容易被忽视的事情。但只是,我们不应该在运行中有这个,作为我们应有的纪律,就是不放弃它,这就是故事。
五、 关键学习与洞见
Daniel Selsam: (关于Scaling Laws的有效性)GPT 范式的两个决定性特征一直是:你可以预测测试损失(Test Loss),并且它能可预测地、神奇地扩展;更低的测试损失意味着在所有那些无形的、惊人的、神秘的方式中拥有更高的智能。
Sam Altman: 你是这方面的极端主义者(Maximalist)吗?你完全相信这个吗?
Daniel Selsam: 我正要说,我们从 4.5 中发现的有趣事情之一是,我们再次测试了它,这个模型拥有所有这些极其细微的能力,而这些能力并不在任何人的预期(Bingo Card)之中。具体来说,我们只是……信念是它将在那些事先很难描述的方式中变得更智能。然后你在部署中看到,在用户满意度中看到,它在所有这些非常微妙的方式中更聪明了:它有更多的常识知识,它理解细微差别和上下文。这就是从那几个额外的测试损失比特中产生的魔法。我认为扩展性(Scaling)的那一部分保持得非常好。
Sam Altman: 整个训练运行中最积极的时刻是什么?最喜欢的记忆是什么?显然有很多痛苦,但希望有所……
Alex Paino: 我确实有一个,但是……是的,我可以先说。是的,我能想到的一个是,我们在运行期间本身也对运行的 ML 做了很多工作。我认为我们在运行期间做出的一些改变产生了相当好的影响,我想也许比预期的要好。这对我们来说是一个非常激动人心的时刻。
Amin Tootoonchian: 是的,我认为对我来说,这可能是就……我看到的时间而言,是最大的努力。在运行期间,在我们构建东西的同时,我们并行地运行着事情。当然,为了更快地到达那里,我们积极地并行化工作。并且有信念认为它会得到回报,我们会越过那个性能悬崖——那个使得模型在所需训练时间上基本无法训练的悬崖。有一个计划,每个人都在执行它,但它花费了很长时间。这绝对是艰苦的工作,肯定比我想象的要难。我对解决这些问题需要多长时间的预测是错误的。看到……我认为看到那个时刻,一旦其中几个问题得到解决,我们获得了巨大的性能提升,我记得之后每个人都……你能感觉到能量变了。就是每个人都感到兴奋,现在更有动力去推动所有事情直到结束。看到我们状态追踪器上的预计完成时间(ETA)不断地从比如说两年变为某个具体可感的东西,它对团队士气和其他一切的影响……我认为这就是它的美妙之处。我想指出的另一部分是,ML 方面的工作并没有停止。这个 ML 协同设计部分并没有在启动时就停止,人们跟进那些被搁置说“以后再解决”的问题,积极地进行工作并交付有助于缩短执行时间的东西。我认为这种团队合作精神,以及没有“我完成了我的工作,把它交给你”这种团队界限,是非常强大的。
Alex Paino: (关于从计算约束到数据约束)我认为直到大约这个时间点,如果你回顾甚至包括 GPT-4 在内的历史,我们很大程度上只是处在一个计算受限(Compute Constrained)的环境中。所以那是所有研究投入的方向。但现在,我们处于一个非常不同的状态,从 4.5 开始,对于数据的某些方面,我们更受数据限制(Data Bound)。所以现在对这方面的研究有了更多的兴奋点。这是一个疯狂的更新,我认为世界还没有真正理解这一点——我们能生产的最佳模型不再受计算约束了。这就像……我们长期生活在那个世界里。
Alex Paino: (关于经验价值)我认为达到 GPT-4 级别的模型,大概需要 5 到 10 个人左右。……GPT-4.5 则不同……但既然我们已经完成了那项工作,我认为我们的技术栈已经改进了很多。如果要重新训练……我们训练了 GPT-4o……我认为进行那次运行本身实际只需要更少的人。
Daniel Selsam: (关于经验价值)我觉得,仅仅是发现别人做成了某件事,就会让事情变得极其容易,因为困难的部分在于首先要有做某件事的信念。感觉上,仅仅是某件事“可能”做到这一点,就是一个巨大的“作弊码”,让事情变得简单。
六、 度量指标的重要性
Daniel Selsam: 有一件尚未提及的事情是关于度量指标(Metrics)的纪律。就像你通过这些 Scaling Laws 和进行所有 ML 科学研究得到的东西,非常依赖于你选择的度量指标。
Sam Altman: 你是指什么?你想说什么?
Daniel Selsam: 哦,是的,只是谈论你评估困惑度(Perplexity)所用的测试集。
Sam Altman: 所以你指的是,即使主要看困惑度……
Daniel Selsam: 哦是的。已经有一些……
Sam Altman: 一些观众可能认为我们在看大学考试之类的。
Daniel Selsam: 哦是的。
Sam Altman: 嗯,所以,是的,你想解释一下困惑度吗?我认为这值得。
Daniel Selsam: 是的,尝试用那些人类易于理解的测试来评估你的模型的智能是非常诱人的。但如果你这样做,你可能会偏向于那些使记忆更容易的改变,而牺牲了让系统真正变得更聪明的代价。因为几乎我们现有的每一个测试,网上都有类似的东西。如果你真的能在整个互联网上训练,测试相对于人类(他们无法做到这点)而言,在某种程度上就变得退化了。所以这个领域的主要方法是看它在某个被认为是好数据的、留出(Held-out)的数据集上压缩了多少。即便如此,如果你对那个留出数据不小心,它与你的训练数据太相似,那么对你的训练算法进行的、使其记忆能力更好的改变,看起来会使它更聪明,因为它会已经……它会已经知道你的测试集了。我们不想只是在测量一次又一次的记忆;我们追求的是泛化能力。
Alex Paino: 所以是分布外泛化(Out-of-distribution generalization)。所以,是的,这就是为什么,我想,是的,也许你暗指的是,像我们关注的关键测试集,我们非常在意它们在我们的训练集中不存在任何程度的、哪怕是最轻微的存在,因为那会打乱我们进行 Scaling Laws 的所有方式。所以,是的,这是非常关键的一点。
Sam Altman: 我们在这方面最好的东西是什么?
Alex Paino: 是我们的内部代码库。我们知道它不在外面。是的,这是一个非常好的留出数据集。
Sam Altman: 它在我们最好的……跨越了许多……它仍然是最好的东西吗?
Alex Paino: 是的,它仍然是最好的。
Sam Altman: 这很了不起。我的意思是,我们开玩笑说一个模型就是它的 Monorepo Loss(内部代码库损失)。就像其他一切……
Daniel Selsam: 那里有一个难以置信的元递归(Meta-recursive)的东西。哦是的。不知何故,你预训练了这个模型,它有一个 Monorepo Loss,不知何故这告诉你如此多关于它未来行为的信息。它告诉你很多关于一个哲学研究生将如何看待其回应的细微之处的信息。但这令人难以置信。
Sam Altman: 确实令人难以置信。
七、 未来展望与瓶颈
Sam Altman: 下一个 $10x$ 或 $100x$ 的预训练规模需要什么?数据效率?这意味着什么?
Daniel Selsam: 简单的答案,显然我知道。但它意味着什么?所以,Transformer,也就是 GPT,在有效利用数据方面非常出色。它吸收信息,它压缩并在某种程度上进行泛化。但它的决定性特征,它的标志,是用计算非常有效地吸收信息。但是,它能从数据中获得多深的洞察力,似乎存在某种天花板。因此,在某个点上,随着计算不断增长,而数据增长慢得多,数据就成了这种标准范式的瓶颈。这就需要一些算法创新,能够花费更多的计算,从相同数量的数据中学到更多东西。
Sam Altman: 你们认为除了这个,我们还需要什么来持续扩展?
Amin Tootoonchian: 我认为这个答案是系统方面的。我认为即使在我们已经训练的不同 GPT 之间,GPT-4.5 所需的工作量,基本上是我们需要做出的改变的绝对体积,是模型规格的副产品。……我们无法在与 GPT-4 完全相同的技术栈上训练 GPT-4.5。……为了实现下一个 $10x$ 的飞跃,当然,以及其他我们先前知道存在的问题——只是为了加速执行而选择性地跳过了这次——对于下一次,我们必须要做,没有其他办法。正是这些选择,基本上使得构建完美系统的时间线变得更长。所以我们总是在妥协,寻求获得结果的最快方式。系统本身不是目的,它产生的东西才是。对我来说,下一个 $10x$ 将是容错,而且是一种我们可以与工作负载协同设计的容错形式,这样我们就不必担心……维持如此大规模运行的运维负担不会像我们之前的系统那样。我敢说,用我们之前的技术栈,4.5 已经处于我们能维持的极限边缘了。
Sam Altman: 假设我们有无限的 GPU、无限的网络和无限的电力,但我们仍然面临所有当前的问题:东西仍然会坏,我们没有解决容错训练问题,我们只有现有的数据等等。我们使用每个 GPT 主要版本号代表 $100x$ 增量的惯例。以我们今天所知,我们能走多远?像 GPT 多少是我们能训练出来的?
Alex Paino: 我认为就 ML 和算法方面而言,我们大概能达到像 5.5。我没觉得我们发现了什么明确的限制。我认为……是的,我觉得我们只是刚开始触及更高效数据算法的表面,以及更好地利用我们现有数据的方法。这非常有趣,因为我认为直到大约这个时间点,如果你回顾甚至包括 GPT-4 在内的历史,我们很大程度上只是处在一个计算受限的环境中。所以那是所有研究投入的方向。但现在,我们处于一个非常不同的状态,从 4.5 开始,对于数据的某些方面,我们更受数据限制。所以现在对这方面的研究有了更多的兴奋点。
Sam Altman: (闪电问答)如果你可以在下次大型运行前得到任何一个 ML 问题的答案,你最想知道什么?
Alex Paino: 我认为是在某些领域数据有限的情况下,我们应该采用什么算法,这是主要的事情。这是一个有点模糊的问题,但答案也很大。
Sam Altman: (闪电问答)如果你可以对当前硬件做任何改变,比如发明一种新的网络,或者全新的芯片架构,目前系统方面的限制因素是什么?不是让你说“哦我想要……”
Amin Tootoonchian: 所以,在……这是一个传输层面的……网络传输层面的改变。就是说,当存在一些可以在不同于应用层面被绕过的故障时,我宁愿传输层,网络传输层做好它的工作,继续运行,并给我可用的带宽,而无需我担心它。
Sam Altman: 这方面有什么有希望的进展吗?
Amin Tootoonchian: 是的,我们可以谈谈。
Sam Altman: 那至少是好的。分两部分,问 Dan。关于数据效率问题,人类,不论我们学习上有什么其他缺陷,我们似乎在数据效率上难以置信地高。
Daniel Selsam: 是的。
Sam Altman: 我们目前最好的算法距离人类水平的数据效率有多远?
Daniel Selsam: 真的很难同等比较(apples to apples)。我觉得,就凭感觉,在语言方面,天文数字般的遥远。$100,000x$ 到 $1,000,000x$?大概在那个范围内。这取决于你是否计算视神经上的每一个像素信息比特,但我们并不知道如何在算法上利用这些信息来达到人类的文本水平。所以,我认为在算法上,是的,相当相当遥远,在同等比较下。
Sam Altman: 然后第二部分是,你认为以我们当前方法的方向,我们能达到人类水平的数据效率吗?还是说那根本不会发生,也不重要?
Daniel Selsam: 嗯,我认为几十年来,深度学习一直是关于计算效率的。除了数据和计算的增长,神奇之处在于算法的改变叠加得非常好。你有不同地方的不同人发现这个小技巧能让它好 10%,然后那个好 20%,它们就这样不断叠加。只是围绕数据效率,还没有出现那种动员,因为它一直不值得。因为当数据就在那里,而你受计算限制时,它就是不值得。所以现在我们正进入人工智能研究的一个新阶段,我们将开始叠加数据效率的胜利:这里 10%,那里 20%。我认为预测它会遇到我们没有理由预测的障碍会有点傻。但是,大脑确实在运行与我们正在做的任何微小调整都不同的算法原理,所以我们必须对此有所保留。但我认为有充分理由保持乐观。
Sam Altman: (闪电问答)下一个问题对你们三位都一样。是或否,或者你可以补充解释。人类是否会进行一次一千万(10 million)GPU 或更大规模的同步预训练运行?
Alex Paino: 我不知道它是否会确切地是一次预训练运行,但我认为可能会有某种类型的训练运行,会达到一千万 GPU 规模。是的,是的。我不知道它看起来会怎样,可能与我们今天做的完全不同,但会有某种本质上是无监督学习的东西,达到那种规模。我认为是的。
Amin Tootoonchian: 我会称之为半同步(Semi-synchronous)。至于它的规模,我希望如此。我觉得这听起来非常有趣。
Sam Altman: 你会称之为半同步,你说?
Amin Tootoonchian: 是的。我认为不是完全同步,只是自然法则不能完全扭曲。
Daniel Selsam: 我认为它很可能比那更去中心化。肯定会有一千万个 GPU 协同工作在一个正在学习和做事情的 AI 系统上,但它可能不会……大脑的所有部分不一定都会一直相互通信。
Sam Altman: 这说得通。在系统进展方面,什么会限制我们?芯片、处理器、内存、网络还是电力?什么将是继续扩展这个规模的瓶颈?
Amin Tootoonchian: 这就是系统的美妙之处,在于如果你进行协同设计,工作负载就能适应你构建的基础设施。我认为,比如说,没有一个普遍的说法是网络是瓶颈,或者内存带宽是瓶颈,或者计算是瓶颈。我们有选择,基本上可以转移资源需求,来创建一个更平衡的系统。然而,话虽如此,我认为比如预训练的答案与推理的答案等等是不同的。但拥有更多的内存带宽永远不会有坏处。是的,我认为这是一个很难回答的问题,在没有限定条件的情况下。
八、 理论基础:为何有效?
Sam Altman: 你能说说我们观察到或学到的关于更聪明、更大的预训练模型与模型学习推理能力的好坏之间有何关联吗?
Alex Paino: 是的,所以我想我们观察到的是,更好的预训练和无监督学习倾向于提升模型广泛的基础智能,并在泛化方面有很大帮助。我们发现这与推理能力形成了很好的互补,推理在提升智能方面可能倾向于更“尖峰”(spikier)、更“块状”(lumpier),即在特定领域提升显著。所以,是的,我认为我们发现它们是很好的补充。
Sam Altman: 稍微离题一下,你们中有人对这个现象有直觉吗?预训练似乎对所有事物都如此通用,而当我们教模型推理时,我们只能让它在一个类别的事情上变得那么好,这是否奇怪?或者有什么值得思考的地方?
Alex Paino: 是的,我不知道这是不是最……是的,我认为这很有趣。我觉得看到预训练产生这种结果并不奇怪,当你看看你用来训练的东西时。当你构建一个用于预训练的训练数据集时,它本质上是非常广泛的,我们的目标是广度和多样性。我认为当你谈论进行强化学习(RL),并拥有可以清晰获得良好奖励信号和良好环境的环境时,要获得同样的广度总是有点困难。
Daniel Selsam: 我同意,但我认为还有另一个因素。预训练本质上是在压缩数据,而压缩数据是关于看到不同事物之间的联系,是关于类比,是关于抽象。而推理是针对特定问题的,它涉及到一种仔细思考的技能和技巧,仔细思考可以解锁不同领域中许多不同类型的问题解决能力。但是,当你像预训练那样跨领域进行压缩时,存在一种在更抽象层面上的学习,这使得……
Sam Altman: 哦,那我马上要改问你的问题了,我刚想到了别的事情。问 Dan:为什么无监督学习有效?
Daniel Selsam: 压缩。所以,理想的智能被称为 Solomonoff 感应。基本上,它不确定自己处于哪个宇宙中,它想象所有可能的……它考虑所有可能的宇宙,简单的宇宙比不简单的宇宙更有可能。它完全是贝叶斯式的,并在进展中更新其观点。你可以通过找到计算你迄今为止所见一切的最短程序来近似这一点。我们用预训练所做的,或者思考预训练正在做什么的一种方式是,它在压缩,它试图找到能解释人类迄今为止产生的所有数据的最短程序,作为一种近似方式。
Sam Altman: 为什么观察下一个词元预测(Next Token Prediction)能做到这一点?
Daniel Selsam: 这实际上是一个微妙的问题。统计学中长期存在一个悖论或某种程度上的悖论:为什么深度网络能够泛化,而它们似乎并不压缩?通常在统计学中,你有大量数据和小模型,模型预测了数据,因此你可以……模型必定压缩了并学到了一些东西。在预训练中,通常模型非常巨大,并且它们的规模大致与数据量成比例。所以一直有一个问题:它们真的在压缩吗?它们在泛化吗?当然,也有批评者说,这只是记忆、插值和肤浅的东西。但是有一种看待预训练的方式,使得你确实看到它是一种压缩器,以一种不同的、非直观的方式。基本上,这个想法被称为“序列预测压缩”(Prequential Compression)。其思想是,它在训练期间学习得很快这一事实,意味着你可以把它变成一个很棒的压缩器。所以,即使权重很大,(解压器的)二进制文件也不需要存储权重;二进制文件可以从头开始预训练来进行解压。因此,它学习得非常非常快意味着,大部分数据你可以用非常非常少的比特来编码。所以基本上,出于一个微妙的原因,它确实是一个相当好的压缩器。我认为这是一个相当令人满意的解释,说明了为什么它确实能导向智能。
Sam Altman: (问其他人)你们有什么要补充的吗?
(无人补充)
Sam Altman: 好的,这很棒,谢谢。
Sam Altman: 最后一个问题,在某种意义上,这整个耗费了巨大的人力、时间、金钱等资源的努力,是一项实验,旨在进一步验证 Scaling Laws 持续有效及其原因。结果证明它们确实有效,并且可能在很长一段时间内继续有效。我接受 Scaling Laws,就像我接受量子力学之类的东西一样,但它们仍然……我仍然不知道为什么。为什么这应该是宇宙的一个属性?所以,为什么 Scaling Laws 是宇宙的一个属性?你想……
Daniel Selsam: 我可以尝试回答一下。嗯,更多压缩会导致更高智能这一事实,有着非常强的哲学基础。所以问题是,为什么训练更大的模型更长时间会给你带来更多的压缩?这里有很多理论。我喜欢的一个是,相关的概念在世界的数据中是某种程度上稀疏的,特别地,它是一个幂律分布。所以,比如第 100 个最重要的概念出现在百分之一的文档中,或者诸如此类。所以存在长尾。
Sam Altman: 这是否意味着如果我们制作一个完美的数据集,并找出非常数据高效的算法,我们……就可以收工回家了?
Daniel Selsam: 这意味着,通过非常精心地选择数据,可能有指数级的计算优势可供挖掘。但基本上,当你只是被动地收集数据时,你需要将你的计算和数据都增加 $10x$,才能获得那个尾部中接下来固定数量的东西。而且那个尾部还在继续,它很长。你可以继续挖掘它,尽管正如你提到的,你可能可以做得更好得多。
九、 结论
Sam Altman: (承接上文)这整个耗费了巨大的人力、时间、金钱等资源的努力,是一项实验,旨在进一步验证 Scaling Laws 持续有效及其原因。结果证明它们确实有效,并且可能在很长一段时间内继续有效。
Sam Altman: 我认为在这里结束是个好地方。非常感谢各位,这很有趣。
Alex Paino: 是的,谢谢你。
要点回顾
好的,这是从视频脚本中提取的关于GPT-4.5预训练过程的框架与要点,已按要求格式化:
GPT-4.5 预训练过程回顾
一、 引言与背景
- 本次讨论目的:分享GPT-4.5研发背后的研究、学习过程和投入,而非发布新产品。
- GPT-4.5反响热烈:用户喜爱程度远超OpenAI预期,认为其相比GPT-4有显著或难以言喻的提升。
- 核心团队成员介绍:
- Alex Paino:负责预训练数据和GPT-4.5预训练机器学习(ML)部分。
- Amin Tootoonchian:OpenAI首席系统架构师,负责系统和网络。
- Daniel Selsam:负责数据效率和算法。
二、 GPT-4.5 训练的规模与目标
- 基本要素:需要大量人员、时间及计算资源(Compute)。
- 项目启动时间:大约在访谈的两年前启动。
- 初始目标:设定了比GPT-4聪明$10x$的目标。
- 资源基础:预见到新的大型计算集群即将上线,并围绕其进行规划。
- 结果:最终模型达到了预设的$10x$有效算力投入和智能目标。
- 相比GPT-4:GPT-4.5的研发需要更多人参与,是更庞大、更复杂的工程。
三、 规划、执行与协同设计
- 长期规划:在训练开始前约一年就已启动,包含大量“风险解除”(Derisking)运行。
- 风险解除策略:
- 进行大规模的预运行以验证想法和功能。
- 从已知良好配置(如GPT-4)开始,谨慎地分层添加新特性。
- 极其关注(Paranoid)各项改动的规模化(Scaling)效果,确保小规模的优势能持续到大规模。
- 持续迭代Scaling Laws方法论。
- ML与系统协同(Co-design):
- 从项目初期到执行结束,ML与系统团队紧密合作。
- 针对GPT-4.5的特定需求,进行了专门的大规模风险解除运行,专注于ML与系统的协同设计,确保两者在规模化下能良好配合。
- 这种深度的协同设计是首次,对模型架构和系统实现都产生了影响。
- 即使在训练运行期间,ML团队也持续进行代码设计和优化,以改进运行效率。
- 执行过程特点:
- 快速迭代,边运行边构建并行工作流。
- 带着大量未解决的问题启动训练,边运行边解决。
- 团队协作紧密,打破了团队界限,共同承担责任。
四、 面临的主要挑战
- 系统层面挑战:
- 规模化难题:小规模下罕见的问题(如硬件故障)在大规模时会变成灾难性问题。故障类型和数量都远超预期。
- 基础设施稳定性:需要应对计算集群(包括加速器、网络结构等)中各种预料之外的故障模式和统计分布。
- 多集群训练:计算需求超出单个集群能力,必须进行多集群训练,带来了新的复杂性(如状态管理)。
- 运行初期困难:新硬件/基础设施的早期故障率通常很高,需要边运行边学习和解决,导致初期进展痛苦且低于预期。
- 运维负担:保持如此大规模运行的稳定是巨大挑战,GPT-4.5的运行已接近当时技术栈能力的极限。
- ML层面挑战:
- 偏离预测:实际训练曲线偏离预期斜率,需要诊断原因。
- 非预期扩展:模型不同方面的ML改进在规模化下的表现(扩展性)可能出乎意料。
- 信号解读:需要从充满噪声的信号(如损失曲线、各种统计数据)中判断模型训练的健康状况,存在很多“虚惊一场”的情况。
- 调试挑战(PyTorch
sumBug案例):- 一个上游PyTorch库中的
sum函数存在一个非常罕见、数据依赖的Bug。 - 该Bug导致了多种看似无关的、低概率的正确性问题(如非法内存访问)。
- 团队对Bug根源有多种猜测,但最终确认的
sumBug是得票最少的那个。 - 修复这一个Bug后,所有相关的悬而未决的正确性问题都解决了。
- 这个Bug在训练运行了相当长一段时间(约40%进程)后才被定位和修复。
- 体现了大规模训练中调试的困难性和坚持不懈的重要性。
- 一个上游PyTorch库中的
五、 关键学习与洞见
- Scaling Laws的有效性:
- 再次验证了降低测试损失(Test Loss)与模型智能(更强的通用能力、常识、理解细微差别等)之间的关联性。
- GPT-4.5展现出许多未被明确预测(不在"bingo card"上)的细微能力,是低测试损失带来的“魔法”。
- 从计算约束到数据约束:
- 在某些数据维度上,开始进入数据受限(Data Bound)而非计算受限(Compute Constrained)的新阶段,这是一个重大转变。
- 这激发了对数据效率(Data Efficiency)算法的更多研究兴趣。
- 经验的价值:
- 训练GPT-4级别模型(如GPT-4o)现在变得容易得多,可能只需要5-10人团队,得益于GPT-4.5项目积累的技术和系统改进。
- 知道某件事是“可能的”本身就是巨大的“作弊码”,让后续尝试变得更容易。
六、 度量指标的重要性
- 核心度量:主要依赖于困惑度(Perplexity)在高质量、严格隔离的“留出”(Held-out)数据集上的表现。
- 为何不用人类测试:直接针对人类可读测试进行优化,容易倾向于改进模型的“记忆”能力而非真正的“泛化”智能。
- 留出数据的关键性:必须确保测试数据在训练集中完全不存在,否则无法准确衡量泛化能力,容易被记忆效应误导。
- OpenAI内部代码库(Monorepo):作为一个优秀的留出数据集,其损失(Monorepo Loss)被证明与模型最终的广泛能力高度相关,具有惊人的预测性。
七、 未来展望与瓶颈
- 下一步(Next $10x$ or $100x$)的关键需求:
- 数据效率:急需算法创新,以从有限数据中学习更多知识。
- 系统容错:需要与工作负载协同设计的、更强大的容错机制,以降低大规模运行的运维负担。需要更好的网络传输层容错。
- 当前能力边界:
- 基于现有知识(忽略数据和容错限制),可能达到GPT-5.5级别。
- 当前算法在数据效率上距离人类水平还“极其遥远”(可能差$100,000x$到$1,000,000x$)。
- 对数据效率的乐观预期:虽然与人脑机制不同,但有理由相信数据效率的改进也能像计算效率一样,通过持续的、可叠加的小幅进步($10\%$, $20\%$等)实现巨大提升。
- 未来超大规模训练:
- 很可能会出现$10,000,000$ GPU级别的训练运行,但形式可能不同(例如,半同步、去中心化)。
- 系统瓶颈:并非单一因素(网络、内存、计算、电力),而是取决于工作负载和协同设计。但更大的内存带宽总是有益的。
八、 理论基础:为何有效?
- 为何无监督学习有效(压缩理论):
- 本质上是在压缩数据,寻找能解释数据的“最短程序”,这近似于Solomonoff感应(一种理想化的智能形式)。
- 压缩促进了发现数据间的联系、类比和抽象,从而产生智能。
- 为何Next-Token Prediction能实现压缩:
- 通过“Prequential Compression”理论解释:模型在训练中学习速度快,意味着这些数据可以用很少的比特来编码(通过重新训练模型来解压),即使模型参数量很大。
- 为何Scaling Laws有效:
- 智能与压缩程度相关(哲学基础)。
- 现实世界数据中的相关概念呈幂律分布(长尾效应),需要更大的模型和数据量才能捕捉到尾部的稀有概念。
- 被动收集数据时,需要指数级增加计算和数据才能持续学习尾部概念。主动或更智能的数据选择可能带来指数级的计算效率提升。
九、 结论
- GPT-4.5项目是一次巨大的、耗费巨大的实验,进一步验证了Scaling Laws的有效性及其背后的原理。
- 这段旅程充满了挑战、学习和跨学科的深度合作。