ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

大模型涌现能力:统计现象还是因果机制?一套分析框架

大模型涌现能力:统计现象还是因果机制?一套分析框架

这两年,只要聊大模型,就绕不开“涌现能力”这个词。我最早听到它时,第一反应是:这不就是把复杂性系统里的“涌现”概念搬到机器学习里了吗?后来看得越多越发现,这个词已经被用得非常泛,甚至互相矛盾。同一个能力,有人说是涌现出来的,有人说只是评价指标造成的假象,还有人认为是模型内部某种因果结构在规模达到临界点后突然形成。三种说法都有道理,但它们说的根本不是同一件事。这就是上述标题里那个“界定困境”的由来:我们到底是在描述一个统计数据,还是在断言一个因果机制?

如果只是闲聊倒也无所谓,但一旦涉及研究设计、基准测试、产品选型,就必须把这两层分开。否则很容易做出一份“看起来发现巨大规律,换了个场景就完全不复现”的实验。这篇文章想做的,是把围绕涌现能力的各种争论拆开,重新梳理“统计现象”和“因果机制”这两个层面,然后给出一套我在实际项目里常用的分析思路和实验框架。适合正在做大模型评测、可解释性研究或模型选型评估的开发者参考。如果你只是对“涌现”这个概念好奇,也可以从中学会一套分辨真伪能力的方法。

1. 涌现能力为什么越聊越糊涂:一个概念的三角困境

1.1 从复杂性科学借来的概念,到了大模型语境里已经变味

“涌现”这个词原本来自复杂性科学。蚂蚁群体能构建复杂巢穴,单个蚂蚁没有设计图纸;神经元单个放电不产生意识,但海量神经元的集体活动形成了主观体验。这类现象的共同点是:整体行为无法直接从局部规则简单线性叠加得出,宏观上出现了新的结构和规律,而且这种规律很难被还原到某个单一微观要素上。

把这个词搬到大模型领域之后,含义发生了很大漂移。现在大多数人说“模型涌现了某种能力”,其实是在说:在模型规模或训练数据量达到某个阈值之前,某个任务上的性能几乎为零,而一旦跨过阈值,性能突然跳到可用甚至优秀水平。这种“突然出现”的感觉,和复杂性科学里那个“整体大于部分之和”有点像,但本质上是两种语言。前者是观察层面的性能变化,后者是机制层面的新质产生。二者不一定对应。

而这种不对应,正是“涌现能力”界定困境的根源。如果我们把测量结果直接等同于机制发生,就会在理论上留下一个大坑:一个任务上出现性能跃迁,究竟是模型真的长出了新的计算能力,还是我们选的尺子刚好在某个位置发生了非线性扭曲?

1.2 三种主流定义方式,各有各的硬伤

我平时看相关论文和讨论,发现“涌现能力”大体上有三种定义方式。每一种看起来都能用,但操作化之后都有问题。

第一种是最常见的统计定义:以模型参数量为自变量,以某个基准任务的准确率为因变量,如果曲线的形态是“先在低位平缓,然后在某个规模附近突然上升”,就认为出现了涌现。这种定义的最大问题在于:自变量和因变量都不是纯函数关系。参数量增加往往伴随训练数据量、训练时长、架构细节一起变,你很难说清楚“突然上升”到底是谁引起的。再加上很多基准任务本身题目数量有限,准确率的取值是离散的,曲线的突变幅度会被放大。

第二种是能力定义:模型在某个任务上从“看似完全不会”到“竟然会了”,而且这种“会”不是死记硬背,而是表现出了泛化性。比如换了新题、换了措辞,依然能完成。这个定义比指标曲线更有说服力,但它仍然停留在行为层面。你无法从行为判断内部发生了什么,只能推断。更麻烦的是,“泛化”和“记忆”的边界本身就模糊,大模型训练数据规模巨大,你怎么证明一个新任务从未出现在训练集里?几乎不可能。

第三种是机制定义:模型内部形成了某种新的表征或计算策略,比如在隐藏层中出现了对“数数”的编码,或者注意力头开始执行某种可理解的算法。只有机制上的新变化才配叫涌现。这个定义在科学上更严格,但在实际操作上极难验证。因为大规模模型的内部状态是高维、分布式的,所谓“某种新的表征”很难和“规模增长后原有表征精度更高”区分开。

这三种定义各有各的立场,但放在同一场讨论里,概念就会错位。你说统计涌现,他说机制涌现,互相之间根本没有共同度量。

1.3 统计现象与因果机制,是两套完全不同的语言

我特别想用一个生活场景来类比。假设你让孩子练习投篮,每周记录命中率。前五周命中率一直停在5%左右,第六周突然到了40%,第七周能到60%。你会说“投篮能力涌现了吗”?

从统计现象看,确实像突变:练习量跨过某个点后,成绩突然从接近零跳到稳定命中。但从因果机制看,可能有几种完全不同的解释。可能是孩子身高突然长了,手臂力量上来了;可能是他某天掌握了屈膝发力的感觉;也可能是我们换了更矮的篮筐,或者把一个目标从“十个球连续命中三次”调整成了“投十个球不看结果”。

在涌现能力讨论里,这种混淆随处可见。模型的参数量、训练步数、数据构成、评价指标、prompt形式,任何一个变量变化都可能造成“突然变强”的错觉。而真正的问题——模型内部是否出现了新的因果结构——需要更精细的手段才能回答。统计语言回答的是“相关和预测”,因果语言回答的是“机制和干预”。两者缺一不可,但不能混为一谈。

2. 统计现象视角:那些看似“涌现”的曲线,可能只是测量幻觉

2.1 准确率曲线为什么会“跳崖”:指标本身的离散化效应

有一个现象很多做评测的人都遇到过:某个模型卡在30%准确率很久,你增大一个规模档位,它突然到了85%。直觉上这是涌现,但先别激动,看看评测集是怎么构成的。

假如一个任务有20道二选一题,随机概率是50%。模型的能力其实是平滑上升的,每道题的正确概率从50%涨到99%。如果评测指标是“20道题全部正确才算通过”,那么在最开始很长一段,通过率都是0,因为只要一道错就不算通过。到了后期,随着单题正确率逼近1,通过率才会快速爬升。这条通过率曲线会形成一个非常陡的拐点。但实际上,单题正确率曲线是平滑的。

反过来,如果评测指标是“20道题做对10道算及格”,那么拐点会出现在能力刚超过随机水平的时候。同一个模型、同一个能力,仅仅因为指标定义不同,就会呈现出完全不同的“涌现规模阈值”。这个例子我在实际项目里反复遇到过。某开发者做评测时选择了一道包含多步骤组合判断的综合题,模型在较小规模上几乎全错,到较大规模时正确率暴增。他非常兴奋地说是涌现。可我们把这个综合题拆成20个原子子题,分别统计正确率后,每条子能力曲线都是平滑上升的。所谓“涌现”,只是“全部答对”这个复合条件的非线性投影。

2.2 规模、数据、训练步数:三条曲线叠在一起

即使指标本身平滑,另一个混淆来源是训练配置。很多“涌现”现象是在最终模型checkpoint上观察到的,但“模型更大”这个变量,往往同时意味着“训练步数更多”“学习率调度方式不同”“数据顺序不同”。这些因素同样可能产生性能突跃。

举一个我处理过的模拟项目X:一组实验里,小模型训练了30万步,大模型训练了40万步,因为预算允许。结果大模型在某个推理任务上从差劲变为优秀,看起来是涌现。但把训练步数对齐到小模型30万步时,大模型其实还不强;多出的10万步正好跨过了某个任务的学习拐点。换句话说,这更像是“训练时间不够”,而不是“随规模涌现”。

要避免这种误判,标准做法是保留多个中间checkpoint,画出“训练步数-性能”曲线,而不是只看最终精度。如果规模产生的涌现是系统性的,它应该在不同训练步数下反复出现;如果只是某个配置到达阈值的假象,换几个随机种子或训练步数后,涌现点就会漂移甚至消失。我在自己的实验里,经常用“同规模多随机种子”和“同总计算量不同规模”两种方式交叉验证,能筛掉一大半伪涌现。

2.3 统计视角能给我们什么:预测和工程选型

统计层面的涌现并不全是坏事。只要观测协议稳定,即使我们说不清机制,也可以用它来指导工程决策。比如,在某个任务上,固定某模型族,绘制“规模-性能”曲线,找到性能突然满足产品需求的规模区间。这本身就是一种有用的模型选型方法。它回答的是“多大才能用”,不回答“为什么到这么大就会用”。

但如果把统计现象直接包装成科学结论,很容易被反噬。我见过不止一次,有人拿着一条从0跳到100的准确率曲线,宣称发现了新的涌现能力,结果换一个评测模板或者换一个同规模另类模型,现象完全消失。问题不在于观测不真实,而在于观测协议里混入了太多未控制的变量。所以在统计阶段,我们至少要记录清楚:评测集的题目数量、每题的评分方式、随机基线水平、模型同规模下的多次运行方差、训练数据和训练步数是否对齐。这些信息比那个“哇好厉害”的拐点图重要得多。

3. 因果机制视角:真正需要回答的是“模型内部发生了什么变化”

3.1 从“能不能做”到“怎么做出来的”,这一步必须跨过去

如果只停留在统计层面,我们永远无法回答涌现的本质。要进入因果机制层面,核心问题是:模型做到这个任务,依赖的是内部哪些表征、计算路径或决策规则?这些内容在规模增长过程中是何时形成的?它们的变化是断崖式的,还是渐进式的?

这里我常用一个类比:一个人从不会骑车到会骑车,行为上确实存在一个“突然会了”的时刻。但你去看他的运动控制,不是某一块肌肉凭空长出来,而是神经系统里原本就有的平衡控制回路,通过反复练习形成了一种新的协调模式。大脑里没有“会骑车”的开关,是多个既有模块之间的连接权重发生了连续调整。模型里的涌现,可能也是类似的东西:某种能力所需的计算机制早就部分存在,只是规模增大后,模型能更可靠地激活和组合这些机制。

因此,“涌现”不应被理解成一个全有全无的属性开关,而更可能是多维连续变量共同演化到某个可观测阈值的过程。机制层面的关键,是找到那个“阈值”背后的可分解构成要素。

3.2 探测、干预、消融:把隐藏机制“抓出来”的三个工具

在实操中,有三个工具组合起来非常有效。

第一个是探针法。在模型隐藏层训练一个小的线性分类器,去检测某一层向量是否编码了任务所需的概念。比如一个算术推理任务,你可以检测隐藏层中是否出现了“两个对象的数量差”的线性表示。如果探测准确率在小模型时就接近随机,到一定规模后明显上升,这说明新表征确实形成了;但如果探测准确率从一开始就很高,只是下游输出层不会用,那就说明“能力”早就在内部存在,缺的是读出机制。后者不能算严格意义上的机制涌现。

第二个是因果干预,也叫激活替换或路径修复。核心思想是:让模型回答一个需要某能力的问题,在中间某层替换一组神经元激活值,看输出是否变化。如果替换的神经通路对正确输出是因果必需的,那么破坏它之后模型应该答错。这种方法能把“哪个部分真正参与决策”找出来。实际操作时可以先用注意力权重或集成梯度定位候选神经元,再对候选神经元做激活扰动,最后看答案被破坏的比例。

第三个是消融实验。把候选模块置零或者剪掉,看能力是否下降。要注意的是,消融掉一个模块后能力消失,只能说明该模块是完成任务的必要条件,不能说明它就是“涌现”的核心机制。可能某个无关模块被剪掉后引发了全局表征崩塌。所以消融结果要和探针、干预结果互相佐证,不要单独下结论。

3.3 机制视角下的“涌现”:也许从来没有非黑即白的开关

我之前参与过一个跨领域研究性质的模拟项目,用一组不同规模的模型做组合规则推理。原始准确率曲线确实出现了很漂亮的拐点:小模型几乎为0,大模型一下子到了90%。但当我们把探针插入中间层时,发现“规则编码”的线性表征分数从最小模型开始就已经显著高于随机,而且几乎随规模线性上升。换句话说,机制从一开始就在一点点形成,只是在小模型上无法稳定地被输出层利用。

后来我们做了进一步的干预,把输出层之前的一小段前馈网络替换成更简单的投影,小模型的准确率也能大幅提升。这进一步说明:我们没有观察到“新机制的涌现”,我们看到的是一个旧机制被更有效地读取和路由的过程。这让我对“涌现”这个词变得非常谨慎。

当然,这不是说所有涌现都一定是测量假象。可能确实存在一些复杂能力,比如多步规划、组合性泛化,需要多种机制在某个规模后同时成熟,才会出现跨越式表现。只是要证明这种情况,需要证据链条能够说明:新发生的不是单一机制,而是机制间的某种组合,并且这个组合在更小模型内部无法稳定实现。这样的证据,远比一条S型曲线有力得多。

4. 工程与研究中的实操框架:如何做一次不误导人的“涌现能力”研究

4.1 实验设计五步法,从现象到机制逐层验证

基于前面提到的两类视角,我在实际项目里总结了一套五步流程。第一步,严格定义任务并构建数据。要确保任务不是多项选择题式的粗粒度指标,尽量拆解成原子子能力,并明确随机基线水平。如果可能,用合成任务控制训练数据分布,排除记忆泄露。第二步,固定训练配置和评测条件。使用全周期日志,保留中间checkpoint,对齐训练步数和数据量,至少跑3个随机种子。第三步,做统计跃迁判断。看“规模-性能”曲线是否在多个种子里稳定出现,如果不稳定,先不要谈涌现。第四步,做机制归因。用探针、激活干预、消融等手段定位任务所依赖的内部表征,看这些表征是渐进形成还是突变出现。第五步,跨任务、跨架构交叉验证。如果某种涌现机制只在单一任务、单一模型族上成立,结论就要打折扣。

这套流程并不复杂,但能挡住绝大多数“自以为发现了涌现”的研究。我自己做过一个对比,同样一组结果,只跑第一到第三步,结论是“在X规模时出现涌现”;跑完第四和第五步后,结论变成了“内部表征是线性增长的,行为突跃由读出机制和指标阈值共同导致”。两者的科研价值完全不同。

4.2 一个可复现的模拟案例:合成规则推理实验

为了让这一步具象化,我写了一个合成任务示例:给模型输入若干条条件规则(例如“如果红色在左边,则圆在绿色旁边”),再给一组物体摆放状态,要求模型判断某个结论是否成立。这个任务通过程序生成,训练和测试集分布完全隔离,不存在训练数据泄露的可能。

我设置了三个模型规模档位。结果显示,复合任务准确率在小规模档几乎为0,中规模档约20%,大规模档跳到88%。单看这条曲线,很容易得出“涌现”的结论。但同一个实验里,我另外记录了隐藏层中规则表征的探测分数,三条规模下的分数分别是0.52、0.68、0.85,接近线性上升。为了进一步确认,我固定总参数量不变,只增加训练数据中的规则组合密度,小模型的复合准确率从0提升到了57%,这说明任务表现高度依赖数据覆盖,而非单纯依赖规模。最终结论是:该任务上观察到的“涌现”主要是统计测量和训练覆盖共同导致的,机制层面并没有非连续变化。

这种实验设计的好处是,把“涌现”从一句广告词变成一组可追问的实验现象。每个人都可以用自己的模型和数据复现,只要把探测模块和中间checkpoint接入训练流程就行。

4.3 常见问题与排查技巧实录

我在做这类分析时踩过不少坑,列几个高频问题供参考。

疑问一:准确率曲线明明从0跳到90%,“这不是涌现是什么?”排查方向:检查评测集是否由少数复杂组合题构成,以及“通过”标准是不是连蒙带猜很难碰到的阈值。把复合题拆成原子题画曲线,大概率会看到平滑上升。

疑问二:几个不同规模模型的涌现点不一样,为什么?排查方向:比较它们的训练步数、数据总量、学习率和评测时的解码参数。如果这些变量没有对齐,涌现点漂移不代表机制差异。

疑问三:同一个现象,换一种prompt模板就消失了。排查方向:这是典型的评测脆弱性。一个好的涌现结论应该在多种prompt形式下都能复现。单模板上的突跃,优先怀疑测量噪声。

疑问四:探针分数和准确率不匹配,怎么解释?排查方向:探针分数高说明表征可用,准确率低说明下游解码没用好。这是“有机制但无行为表现”,和“行为突跃但机制连续”正好相反。出现这种情况时,你需要重新问自己:你定义的涌现,到底发生在哪一层?

我把这些整理成一个排查表,你可以直接贴到实验记录里。

观察现象可能原因排查手段
准确率突然跳高指标离散、任务粒度太粗拆分原子子任务,用连续指标
涌现点随配置漂移训练步数/数据量未对齐固定总计算量,对齐中间checkpoint
换prompt后消失评测协议不稳定多模板、多温度,报告方差
机制探针连续上升能力早已存在,只是读出不足用激活干预验证下游依赖
消融一个模块能力消失全局表征崩塌结合干预和多模块消融

4.4 写报告和评审时,我常用的三句保守表达

最后聊点方法论以外的东西。在实际项目报告和内部评审里,措辞会直接影响决策。我给自己定了几条规则:第一,只说“观察到性能跃迁”,不说“模型涌现了新能力”。因为性能跃迁是事实描述,新能力是机制断言,证据不足时不能说。第二,只说“该任务上表现随规模显著提升”,不说“规模化带来通用涌现”。兼顾严谨与结论价值。第三,如果说“初步证据支持某种机制假设”,一定附上探针或干预的证据链,而不是只放一条曲线。

这些说法在内部会被认为“谨慎”,但从效果看,恰恰是它们帮我规避了大量后期返工。因为一旦把假说当结论写进报告,后续所有产品决策都会跟着偏。

我自己干这行越久,越觉得“涌现能力”这个词应该被拆成“涌现”和“能力”两层来用。涌现描述的是观察到的变化形态,能力描述的是模型内部可泛化的计算机制。两者有关联,但从不默认相等。如果你刚开始接触这个概念,不妨把每一次“看到涌现”都当成一个待检验的问题,用统计工具确认现象,用机制工具寻找原因,最后再决定要不要在对外说明里使用那个诱人的词。

我在实际项目里最深的体会是:定义困境不是学术抬杠,它直接决定了我们是把精力花在解释真实机制上,还是花在整理漂亮曲线上。与其寻找一个包罗万象的涌现定义,不如承认它本质上是多层级、多视角的,然后在每项实验里明确说清楚自己站在哪个层级。这样一来,所谓“界定困境”反而变成了很好的科学训练:逼着你想清楚,你到底观察到了什么,以及你凭什么说它发生了质变。这种思考方式,比任何一份“涌现能力榜单”都有用得多。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进