Anthropic 预训练负责人谈扩展定律、算力与 AI 的未来

封面

摘要

本篇深度访谈邀请到 Anthropic 预训练团队负责人 Nick Joseph,全面回顾他从 Vicarious 到 OpenAI 再到 Anthropic 的职业历程,并系统梳理了预训练(Pre-training)的核心逻辑——为何"下一个词预测"(Next Token Prediction)成为大语言模型的主导训练目标,以及扩展定律(Scaling Laws)如何揭示算力、数据与参数之间的幂律关系。Nick 详细讲述了 Anthropic 早期在分布式训练框架、GPU 集群调试与硬件协同方面的工程实践,包括如何在没有成熟开源工具的情况下自建数据并行(Data Parallelism)与流水线并行(Pipeline Parallelism)方案,以及如何用纸笔建模算力利用率(MFU)并通过性能分析器(Profiler)逐步逼近理论最优。访谈还深入探讨了预训练与后训练(Post-training)的算力分配博弈、合成数据(Synthetic Data)与互联网数据质量的天平、评估指标(Evals)的设计哲学、对齐(Alignment)在预训练与后训练中的分工,以及他对未来范式迁移、难以调试的 Bug 和创业机会的思考。Nick 反复强调:工程能力——尤其是能够深入整个技术栈定位问题的能力——是当前 AI 领域最稀缺也最被低估的技能。

一、从 Vicarious 到 OpenAI 再到 Anthropic:Nick Joseph 的成长之路

Nick 的职业起点是 Vicarious——一家最初定位为通用人工智能(AGI)实验室、后转型做机器人产品的公司。他在那里训练计算机视觉(Computer Vision)模型,第一次接触到了机器学习模型的训练与基础设施搭建。

Nick 透露,他最初在 GiveWell(一家评估慈善机构的非营利组织)实习时,就有人向他提出过"AGI 可能很危险"的观点,但他当时并不信服,转而走上了经济学道路,想直接帮助贫困人群。然而经济学路线未能如愿,他最终决定投身 AI——要么安全问题确实重要他可以贡献,要么问题不存在他至少能用 AI 做出有益的产品。他从未以学术为职业目标,反而觉得 AI 可以"立刻动手做",比走经济学政策路线需要读六年博士要直接得多。

在 OpenAI,Nick 加入了一个安全团队,最初负责评估 GPT-3 的代码生成能力。他发现微调(Fine-tune)后的 GPT-3 写代码能力很强,这让他意识到:如果 AI 能自己写代码,就可能自我改进——这既是巨大的机会,也蕴含风险。然而约八个月后,他所合作的安全团队负责人几乎全部离职并受邀加入 Anthropic,Nick 因为始终关注 AI 安全,便随之一同前往,成为 Anthropic 的创始团队成员之一。

二、预训练的本质:下一个词预测为何胜出

Nick 指出,预训练的核心驱动力来自一个简单的事实:要让模型变强,就需要投入大量算力(Compute);而要最大化算力投入,就需要一个数据几乎无限且无需人工标注的训练目标。互联网正是人类创造的最大单一数据源,而"下一个词预测"——即给定前文预测下一个词——能从文本中提取极为密集的信号:每一个词都是一个新的训练样本。

从 GPT-1、GPT-2 开始,研究者发现投入更多算力、更多数据、更大的模型,就能持续获得更智能的模型。这构成了预训练的核心论点。而扩展定律进一步量化了这种关系:算力、数据量和参数规模的增长能以可预测的方式降低损失函数(Loss),提升下一个词预测的准确度。

访谈者提出了一个关键历史问题:2017 至 2021 年间,BERT、BART 等模型采用掩码语言建模(Masked Language Modeling),为何最终是 GPT 系列的自回归(Autoregressive)方式胜出?Nick 的回答是:这主要是一个实证(Empirical)问题——试了各种方案,这个最有效。但自回归方法有一个关键优势:训练完成后可以直接采样生成文本,天然适配产品化。而且,损失函数与实际目标高度一致——如果模型在语言建模上达到完美,它就等于能像人类一样写作;你可以给它一篇论文标题,它就能生成一篇全新的论文。其他方法难以提供这种开环生成能力。

三、扩展定律的正反馈飞轮

Nick 描述了一个关键的正反馈循环:训练出一个更好的模型 → 用它做出有用的产品 → 获得收入 → 购买更多算力 → 训练出更好的模型。Anthropic 在过去五年里不断重复这个循环。Dario(Anthropic CEO)很早就预见到了这一飞轮,尽管当时并非所有人都能看清。

关于超参数(Hyperparameters)的调优——层数、宽度、注意力头数等——Nick 坦言这些细节"令人惊讶地不那么关键"。早期扩展定律论文就已表明,即使改变这些配置,随着算力增长,模型性能仍会可靠提升。但问题在于:如果某个超参数设置错误到一定程度,模型可能会偏离幂律曲线,而你无法知道这是触及了扩展极限,还是仅仅是学习率(Learning Rate)设置不当——因为没有对照实验(Counterfactual)可以参考。

Nick 介绍了他们的工作范式:先在小规模上按比例缩放测试,建立理论模型(比如 10 倍算力中多少分配给层数、多少给数据、多少给注意力),然后验证最优性,最后才在大规模上运行。

四、Anthropic 早期的基础设施与工程实践

Anthropic 早期使用云服务商的 GPU 集群,但 Nick 指出这和自建机房差别不大——你仍然需要理解芯片的物理布局。他曾有同事运行聚类算法来推断云服务商把芯片放在了哪些房间,因为他们怀疑不同房间之间的网络延迟导致了训练问题。

在资金远少于竞争对手的早期,Anthropic 选择了一条差异化路径:极致的算力效率。当时大多数团队并不高效地使用算力,因此"比别人更高效"成了一个巨大优势。

自建分布式训练框架

早期没有成熟的开源分布式训练框架可用。PyTorch 提供了数据并行的包,但 Nick 的团队即将达到的规模远超 Facebook(Meta)当时的水平——他们不想依赖一个需要不断修改的外部包。于是他们从头实现了 all-reduce 等关键操作。Nick 回忆道,说"我们的规模会比 Facebook 还大"在当时听起来很反直觉,毕竟 FAIR(Facebook AI Research)和 DeepMind 被认为是机器学习研究的顶级机构。但他认为扩展定律的信号非常清晰,反对意见"站不住脚"——原始论文横跨了 11 个数量级,而人们却在争论下一个数量级是否会延续。

MFU 建模与性能调优

Nick 描述了一套系统化的性能优化流程:先用纸笔算出理论上的算力利用率(MFU,Model Flops Utilization)上限——涉及的约束因素不多,大约只有六个关键数字(HBM 带宽、CPU 卸载等),完全可以建模出来;然后实现一个初步方案(当然会很低效);接着用性能分析器(Profiler)逐操作对比实际耗时与理论耗时的差距,逐步消除差异。

单 GPU 的性能分析可以用 PyTorch Profiler,但跨数百、数千 GPU 的分布式性能分析在当时几乎没有先例——他们需要"黑进"分析器来合并所有追踪数据(Traces)。

学习方式:结对编程

Nick 强调,他主要通过结对编程(Pair Programming)学习这些技能。Tom Brown 和 Sam McCandlish 是他早期最重要的搭档。结对编程的独特价值在于:你不仅学到了"做什么",还学到了"怎么做"——如何使用分析器、如何调试,这些知识永远无法从 Slack 上的 PR 总结中获得。他坦承在加入 Anthropic 之前从未使用过调试器(Debugger),一直靠 print 语句,但看到同事用调试器的效率后才意识到这个工具的威力。

五、团队演变:从通才到专才的平衡

随着团队从早期十几人扩展到更大规模,Nick 观察到一个明显的转变:早期他可以阅读代码库中的每一个 PR,团队也以通才为主;但随着规模增长,人员逐渐专业化——有人深耕注意力机制的实现,有人钻研并行策略。专才能让每个子领域做到极致,但也带来了管理挑战:管理者需要确保全局图景仍然连贯,能够发现"改变架构这一点会让那边的效率问题轻松解决"这类跨领域洞察。

Nick 试图在通才和专才之间取得平衡。早期偏重通才导致了"每个人什么都做但没有人真正深入"的失败模式;而过多专才则让管理者承担沉重的"连接"负担。他个人偏好早期那种灵活风格——可以直接提出"如果我们改变这一步的实现方式呢?",避免为一个困难操作投入大量优化工程,转而让操作本身变简单。

六、集群规模扩大带来的新挑战

故障域问题

标准的大模型训练方式下,整个集群是一个故障域——一块 GPU 出错,整个训练任务就会崩溃。随着芯片数量从数百增长到数千乃至更多,故障概率也随之上升。不过重启的代价相对可控——主要就是重新加载检查点(Checkpoint)。

硬件层面的问题

Nick 分享了一个令人印象深刻的经历:他在调试时百思不得其解,经理看了一眼后说"可能是计算机错了"——结果真是 GPU 本身出了故障,需要更换。在 AI 训练中,你需要考虑 GPU 可能出错、可能变慢、数据中心供电可能异常——这对一个 Python 程序员来说是完全陌生的深度。整个技术栈都是新的:从芯片在数据中心的物理布局到芯片本身,GPU 的代际屈指可数,成熟度远不及传统计算硬件。

与芯片供应商的协作

当遇到段错误(Segfault)等问题时,Anthropic 需要从代码库中提取出最小可复现(Minimal Reproducer)的单芯片测试用例,通过共享 Slack 通道发送给供应商。供应商有强烈动机修复问题(想卖更多芯片),Anthropic 同样迫切(所有投入都押在集群正常运转上),但双方并非完全信息共享,因此这种协作需要精心设计。

TPU 与 GPU 的差异

不同芯片虽然底层都在做矩阵乘法(Matrix Multiplication),但编程方式和规格参数差异很大。推理(Inference)任务通常需要更多 HBM 带宽(因为逐 token 采样需要反复加载权重),而预训练因为批次大小(Batch Size)更大,更偏重浮点运算(FLOPS)。因此可以将不同工作负载分配给最合适的芯片。但代价是:每种芯片都需要单独实现,跨芯片抽象层在实践中很难做到,工作量会随芯片种类倍增。

七、预训练与后训练的算力博弈

Nick 指出,"预训练"(Pre-training)这个名称本身就暗示它是一个小步骤,但实际上预训练长期以来是算力消耗的主导环节。如今,强化学习(Reinforcement Learning, RL)带来了另一组扩展定律——投入更多 RL 算力也能获得更好的模型。因此关键问题变成了:如何在预训练和后训练之间分配算力?两者是叠加(Multiply)关系还是一个覆盖另一个?这些问题目前仍处于早期阶段,尚未有定论。

Nick 强调,解决这些问题必须以实证为基础——可以提出理论,但第一步一定是验证,而大多数理论预测都是错误的。他还特别指出一个组织设计(Org Design)陷阱:科学问题不应与团队身份绑定。他自己管理预训练团队,但绝不能因此认定"预训练必须赢"——这在其他公司已经造成了预训练与后训练团队之间的摩擦。Anthropic 通过保持协作文化避免了这一问题。

八、数据:互联网的尽头与合成数据的悖论

关于"互联网数据是否即将耗尽"这一流行叙事,Nick 表示他看到了太多"言之凿凿"的论断,但实际使用的数据量并不透明。他提出了几个重要观察:

合成数据的两种路径

第一种是蒸馏(Distillation):用强模型生成数据,训练小模型,使其接近强模型的水平。开源界的 Qwen 和 DeepSeek 的小型推理模型就采用了这种方式。

第二种更激进:能否用当前模型生成数据来训练一个比它更强的模型?Nick 指出这在理论上有根本困难——如果你的模型认为 5+5=11,新模型也会学到 5+5=11。纯粹从模型自身的分布采样训练,下一个词预测的损失会非常低,学到的只是重复同一分布。

此外,互联网上越来越多 LLM 生成的内容(已知不易检测但也非不可检测)带来了实际问题:1% 的 LLM 生成内容会浪费 1% 的算力,还是会彻底破坏模型?5% 呢?10% 呢?更极端的情况是,有人故意向互联网注入看似合理但实际有害的内容来破坏模型训练。

九、评估指标:损失为何仍然最好

Nick 对评估(Evals)的设计提出了三条标准:

  1. 测量你真正关心的东西:代理指标(Proxy)容易让人误入歧途。他曾经以为能通过编程面试题的 AI 就接近 AGI——结果证明这极其狭隘。
  2. 低噪声:100 道题的评估太嘈杂,置信区间太宽,难以做出统计显著的决策。好的评估应该让较小的差异也有意义。
  3. 快速且易于运行:评估需要能频繁执行以指导迭代。

Nick 反复强调"损失函数出奇地好"。以 AI 医生为例:虽然考执业医师资格考试容易做到 100%,但真正的挑战是在与患者的长对话中区分信号与噪声、做出正确诊断——这很难设计成评估。不过他建议:收集高质量医患对话转录文本,看模型预测这些转录的损失,这本身就是一种强有力的评估。他还指出,任何人都能设计评估,没有模型并没有比较优势——这是创业公司影响大实验室行为的一条可行路径。

十、对齐:从理论到工程

Nick 将对齐(Alignment)定义为:如何让模型共享你的目标,尤其是在模型可能比你更聪明的情况下。这可以从理论角度(如果模型远超人类智能会怎样?)和实证角度(当前模型是否按照我们的期望行动?)分别切入。

对齐的另一个维度是控制模型的人格——让模型不以"平均互联网用户"的方式行事,而是以特定的、精心设计的方式与人交互。宪法 AI(Constitutional AI)是 Anthropic 的关键方法:可以写一套规则作为宪法,既融入训练过程,也写入系统提示(System Prompt)。训练时嵌入的规则更鲁棒,但系统提示更灵活——也更容易被"忽略之前的所有指令"类攻击绕过。

关于"应该嵌入谁的价值观"这一根本问题,Nick 用了一个类比:给汽车装方向盘——先确保有方向盘(即有能力引导模型),再讨论谁来驾驶、驶向何方。他倾向于某种民主控制机制,而非某一个人的价值观;模型可能需要具备非常通用的"向善"价值观,并在具体情况中征询人类意见。

预训练 vs 后训练在对齐中的角色

Nick 的核心观点是:能在后训练中做的事,就应该在后训练中做——因为迭代速度极快(天级甚至小时级),而预训练的迭代周期长达数月。而且,许多复杂的行为干预(比如精确调整人格)需要模型足够智能才能生效,小模型连句子都说不通,无法用来测试这类干预。

但他也指出,未来某些对齐要素可能需要"回迁"到预训练阶段——以更强的鲁棒性和更深层的嵌入来实现。有一篇论文《Pre-training on Human Feedback》就在探索这个方向。代价是灵活性:一旦嵌入预训练,后续发现问题时修改的代价极高。

十一、前方的挑战:范式迁移与隐性 Bug

Nick 认为最令他紧张的不是宏大的理论问题,而是难以发现的 Bug。一个微妙的精度转换错误,可能在大规模训练一个月后才暴露,让你损失整整一代模型。机器学习中的 Bug 本身就极难定位——模型仍然在训练,权重仍在更新,只是结果不够好。他引用了 Nelson Elhaj 博客中记录的一个"被诅咒的 Bug",庆幸自己及早交给了别人。

Nick 认为未来一定还会有更多范式迁移(Paradigm Shift),向更多 RL 的转变只是第一个。仅靠扩展现有方案就能达到 AGI 而无需任何新发现的设想,在他看来"过于乐观"。

十二、团队招聘:工程能力最稀缺

Nick 明确表示:Anthropic 预训练团队最需要的是工程师,而非研究员。核心逻辑是:架构本身相对简单,数学可以写在一张纸上;真正的挑战在于正确实现、大规模并行化、确保无误——这是一个工程问题。他们特别需要能够"深入任何层次调试任何问题"的人——从理解学习动态的 ML 层面,到追踪字节在网络中如何流动的底层层面。这种全栈调试能力极为罕见。

早期团队招聘了大量物理学家,他们经过短期编程训练后表现出色。如今随着领域成熟,更多招聘有直接经验的专家——比如做过 JAX 栈优化的工程师。

十三、其他架构与扩散模型的看法

对于非 Transformer 架构(如 Liquid AI)和非自回归训练方法,Nick 认为它们很有趣,但自回归方案"可能足够达到 AGI"。他的核心判断是:规模的驱动力远大于架构创新——不是创新不存在或不更好,而是规模更可靠、收益更确定。

关于扩散模型(Diffusion Models),Nick 坦承 Anthropic 尚未涉足图像生成,他对扩散模型的理解还不够深入,无法做出明确判断,但将其归类为"可能不是根本性范式迁移但会是重大改进"的类别。

十四、推理与预训练的协同设计

Nick 高度重视推理(Inference)团队——这是他合作最紧密的团队。预训练决定了推理需要解决的问题:一个巨大的模型、需要大量通信的架构、复杂的实现,都可能让推理变得不可能高效。预训练和推理团队本质上是在协同设计既聪明又便宜的模型。在算力有限的世界里,推理效率直接决定了能服务多少用户。

十五、创业机会与给学生的建议

Nick 认为,任何"在当前模型下几乎可行但还需要大量工作"的方向都很有前景。但需要警惕的是:那些现在需要搭建庞大脚手架(Scaffold)才能运行的任务——下一代模型可能就不需要脚手架了。

他特别提出了一个创业构想:一家专门验证 GPU 芯片是否正常工作的公司——"告诉我这些芯片是否完美,如果不是,精确指出哪里出了问题"。这在大规模训练中是真实痛点。

给学生的建议

如果回到十年前,Nick 会告诉自己:专注 AI,尤其专注工程——这在当时并不显然,因为 ML 文献的核心是数学和理论(如支持向量机等)。而今天,他会建议学生把精力放在工程能力思考如何应对 AGI 上——这两件事是他当下最看重的。