当 AI 超出我们用来衡量它的测试时,会发生什么?

GPT-6 Astra 发布后,作者把注意力从「模型有多强」转到一个更容易被忽略的问题:我们到底怎么知道模型在变强?基准会饱和、会用代理指标、真值来源复杂、评分方法也会变,文章给出一套看分数时该问的五个问题。

中文
复制
题图:深蓝背景上金色与蓝色光带穿过一块带数字的浅色网格,白色大写标题「当 AI 超出我们用来衡量它的测试时会怎样」,底部署名 Hemapriya Kanagala

太长不看(TL;DR)

GPT-6 Astra 又开启了一场我们很熟悉的 AI 讨论。这个模型更强了,黄仁勋在 X 上说 「AGI 已经到来」,社交平台上的情绪在兴奋、好奇与对下一步的恐惧之间迅速切换。

我理解这些反应为什么这么强烈。AI 变化很快,这些模型现在能做的一些事,放在不久之前会让人觉得意外。但我也注意到,「AI 变得强得多」 有多容易被换成 「开发者要没用了」「CSE 完了」。在我看来,那是一个大得多的结论。

对我来说,Astra 引出了另一个更容易被忽略的问题:

我们到底怎么知道一个 AI 模型在变强?

我们通常看基准,它们有用。但基准也会变老。有些会饱和,有些用代理指标去衡量难以直接测量的能力,真值可能很复杂,评测方法也可能变。而且一个基准分数并不能自动告诉我们,这个模型对我们自己的工作有多大用处。

Astra 的系统卡给了几个这样的例子:较早的评测出现饱和,或者正在被考虑退役;较新的评测用更贴近现实或更具实验性的数据;评测方法则随时间改变。

这对开发者同样重要。如果 AI 让写代码变得更便宜、更快,软件工程不会就此消失。需求、架构、系统设计、安全、验证、取舍、维护,以及决定到底该做哪一个,仍然重要。

AI 会改变这份工作。我认为这一点相当清楚。

更有用的问题是:我们拿这个改变做什么,以及我们衡量 AI 的方式是否好到足以看懂正在发生的事。


目录

  • 又一次 AI 发布,讨论很快变得喧闹
  • 基准给了我们一个数字。这个数字到底说明了什么?
  • 每个基准都有寿命
  • 92% 是按什么算的?
  • 数字会变,因为测试本身变了
  • 一个答案正在告诉我们越来越少
  • 那么看到基准时,我们该看什么?
  • 这一切对开发者意味着什么?
  • 我们可以认真对待 AI,而不必把每条头条都当成最终结论
  • 模型在变,我们看模型的方式也得跟着变
  • 我很想听听你的看法
  • 参考资料

又一次 AI 发布,讨论很快变得喧闹

每当一个重要的 AI 模型到来,似乎都有一套熟悉的流程。模型发布,人们试用,基准结果出现,对比开始,然后更大的问题随之而来。

这次 Astra 也一样,NVIDIA 首席执行官黄仁勋在 X 上一边祝贺 OpenAI 发布,一边说 「AGI 已经到来」

如你所料,人们开始用非常不同的方式解读这句话。有人把它看作一个重要的里程碑,有人质疑 Astra 是否真的符合自己对 AGI 的定义,还有人立刻开始想这对就业和软件开发意味着什么。

从我自己的信息流里看到的,还有大量关于开发者在这个局面里处于什么位置的恐惧。

我不是说恐惧是错的。AI 能力越来越强,确实伴随着真实的风险,我认为这些风险值得认真对待。

但我认为,说 「这项技术变化很快」 和说 「开发者不再被需要」「不再需要 CSE」 之间,有很大的差别。

从一次能力提升推出后面那种结论,步子大得多。

软件开发会变。这一点几乎没有疑问。但当生产代码变得更容易,工作中其他部分反而可能变得更重要。

理解问题、设计系统、做架构决策、梳理需求、考虑安全与可靠性、验证产出、理解取舍,以及判断一个 AI 给出的方案什么时候就是错的方案,这些仍然都是构建软件的一部分。

它们不会仅仅因为写代码变快了就变得不重要。

所以,当所有人都在问新模型有多强时,我开始想一个稍微不同的问题:

我们到底是怎么衡量那种能力的?


基准给了我们一个数字。这个数字到底说明了什么?

基准有一种非常方便的地方。你看到模型 A 是 82%、模型 B 是 88%,忽然就好像有了一个明确的答案,知道哪个更好。

说实话,基准是有用的。没有它们,比较 AI 系统会难得多。有一个共同的测试,至少给了我们一个起点,这很有价值。

容易被忘掉的是,基准是一个测量工具。它给出关于模型能力的证据,但它不是能力本身。

想一想温度计。它告诉你温度,但温度计不是温度。同样地,一个基准可以告诉我们某模型能做到什么,但它抓不住这个模型在现实世界里能做的全部事情。

而当模型变强时,这一点会变得更要紧,因为测试本身最终可能变得不那么有信息量。

一个曾经能在模型之间显出清晰差距的基准,最后可能变成几乎所有强模型都接近满分。到那时候,数字仍然是数字,但它能告诉我们的,可能比以前少多了。


每个基准都有寿命

Astra 系统卡里让我觉得有意思的一点,是它相当坦率地谈了评测随时间变化这件事。一些早期的评测已经相对饱和,一些正在被考虑退役,而引入更新的评测,是因为旧的评测可能已经给不出足够的信息量。

这其实非常合理。想象一个测试,现在最强的模型拿 97%、98%、98%。这些成绩显然很亮眼,但如果大多数有能力的模型都已经贴着天花板,我们从一个百分点里究竟还能学到多少?

这个基准可能并没有变坏。它可能只是到了这样一个阶段:它不再擅长展示我们真正在意的那些差别。

换个角度说,这意味着这个基准完成了它的任务。在模型离天花板还很远的时候,它帮我们看清了进步;而现在模型已经走得很远,我们需要另一种方式来把它们区分开。

所以当我看到某个评测被退役或被替换时,我并不一定把它看作那个基准的失败。有时候,那恰恰说明技术向前走了。

模型动了,测试也得跟着动。

而且我认为,随着 AI 系统继续变强,这个想法会越来越重要。


92% 是按什么算的?

看到基准分数时,这大概是我最喜欢问的问题。

92% 是按什么算的?

疑惑思考的反应 GIF

对有些任务,答案很简单。数学题有已知答案。编程题可以用测试来检查。事实性问题通常可以拿来与一个可信来源对照。

但当我们评测的是科学推理、生物学预测,或者那些没有唯一明显正确答案的较长任务时,事情就复杂得多。

这就轮到真值出场了。简单说,真值是我们评测模型时当作正确参照的那个答案或证据。视问题而定,它可能来自专家、实验数据、模拟,或者其他可信来源。

而有时我们没法直接测量自己在意的能力,于是就用一个代理指标。代理指标是我们能够测量的东西,它被期待能告诉我们一些关于那个更难测量的能力的信息。

Astra 的系统卡给了一个来自生物学的例子。其中一项评测考察 AAV 衣壳包装预测。AAV 是腺相关病毒的缩写,衣壳是包裹在病毒外面的蛋白外壳。在这项评测里,模型要预测不同的衣壳在包装这件事上表现如何。这个结果被当作某些更宽泛的生物学设计能力的代理指标。

使用代理指标本身并不自动等于有问题。在很多领域,它只是衡量某些否则极难或极贵才能直接测试的东西的务实办法。

但说 「模型在这项预测上变得更好了」 和说 「模型在这个预测所代表的现实能力上变得更好了」,这两者之间有重要差别。

这两件事可以彼此相关,但并不完全等同。

系统卡还讨论了与 BPNet 相关的一个问题,BPNet 是一个用于做生物学预测的模型。如果原始系统给出的预测里含有错误或假设,那么把这些预测当作测试的参照,就会造成一种奇怪的局面:未来的 AI 系统可能在复现这些模式上变得更擅长,却未必在我们真正在意的那个底层生物学任务上变得更好。

这是一个很微妙的测量问题,但很重要。

分数可以是真实的,进步可以是真实的,而我们仍然可以对这份进步究竟代表什么抱有疑问。

这也正是 Astra 那些使用未发表的实验数据经湿实验验证的证据的新生物学评测有意思的原因。湿实验验证基本上意味着,结果是通过真实的实验室实验核对过的,而不是只依赖计算预测。这让评测与它试图测量的现实行为联系得更紧。

所以当我看到一个基准写着 92%,我仍然对这个数字感兴趣。

我只是想知道它背后是什么。

92% 是按什么算的?


数字会变,因为测试本身变了

看基准图表时,还有一部分很容易被漏掉:测试本身可以变。

基准分数不会自己冒出来。它背后有一个数据集、给模型的指令、判分答案的方式、一套打分方法,有时还有特定的工具或模型设置。这些东西里任何一个变了,最终那个数字的含义也可能跟着变。

Astra 的系统卡直接指出了这一点。策略、判分器、数据集、评测以及其他测量细节都可能随时间演进,这意味着,旧的结果一般不该直接拿来和新结果比较,除非先看看中间改了什么。

所以当我们看到这样的东西:

模型 A:90% 模型 B:95%

那五个百分点的差距也许是有意义的。但在拿它下一个大结论、说某个模型比另一个强得多之前,值得先确认这两个数字是不是来自同一类评测设置。

甚至还有一个更小的细节也会影响某些结果:答案的长度

在一些开放式评测里,更长的答案有更多机会去命中判分器在找的那些点。这就意味着,一个模型可能仅仅因为说得更多就拿到更好的分数,哪怕对人来说更短的答案可能更有用。Astra 的系统卡讨论了这个现象,并对一些评测给出了按长度调整后的分数,以校正它。

这听起来可能只是一个技术细节,但当我们想弄明白一个基准分数到底告诉了我们什么时,这类细节恰恰是关键。

数字很重要。

但我们是怎么得到这个数字的,同样重要。


一个答案正在告诉我们越来越少

我们实际使用 AI 的方式也在变。我们不再只是问一个问题、然后等一个答案。AI 系统可以走完多步任务、使用工具、与软件交互、应付不完整的指令,并在需求变化时做出调整。

Astra 的发布材料也谈到这类行为。它描述这个模型更善于处理含糊之处,当某个答案可能改变结果时会问出聚焦的问题,并在等待回复的同时继续做别的工作。当决定的影响更大时,它可以等用户输入,而不是直接猜。

这类行为很难用一个孤立的问题捕捉到。

如果我让一个 AI 系统帮忙处理一个 30 分钟的工作流,我在意的很可能远不止它有没有答对某一个问题。它理解我真正想做什么了吗?它中途做的决定合理吗?需求改到一半,它接住了吗?出了问题它能恢复吗?到最后,结果真的能用吗?

Astra 的系统卡里也包含了更接近职场场景的评测,涉及计算机与浏览器任务、含糊的指令,以及复杂的权限。

这更接近我们许多人如今对 AI 的体验。

一个模型可以在回答单个问题上非常出色,却在必须把任务从头做到尾时卡住。反过来也会发生。一个系统可能在某个孤立的基准上看起来平平,但在拿到需要的工具和上下文之后,表现得出奇地好。

所以我认为,评测这个问题本身也在慢慢改变。

除了问 「这个模型答对了吗?」, 我们可能还得问 「它把整件事处理得怎么样?」

而那是一件难衡量得多的事。


那么看到基准时,我们该看什么?

我不认为每次有新模型发布,我们都需要成为评测方法论的专家。但有几个问题,能让一个基准分数变得好懂得多。

1. 实际被测的是什么?

这个基准衡量的是我们在意的那种能力,还是用了一个代理指标,也就是一个被期待能告诉我们该能力情况的东西?

2. 这个基准还难吗?

如果大多数强模型都已经接近最高分,这个基准可能已经饱和,也就是说,它不再给我们留出多少能看出模型间有意义差别的空间。

3. 真值从哪里来?

我们把什么当作正确答案?是固定答案、专家判断、另一个模型、一次模拟,还是来自现实世界的证据?

4. 评测变过吗?

数据集、判分器、打分方法、提示词、工具或模型设置有没有改?即使是小改动,也会影响我们该如何解读最终那个数字。

5. 这个结果能迁移到我真正在意的工作上吗?

如果你是开发者,这一条尤其有用。一个模型可以在通用编程基准上表现极好,却仍不是最适合你实际代码库、团队或工作流的模型。

为此,你自己做一个小小的评测,可能出奇地有用。

从你的工作流里挑 20 到 30 个真实任务,让这些模型来做。然后看你真正在意的东西。代码能用吗?模型理解需求了吗?它是怎么应对变化的?你需要纠正多少?出错时它能恢复吗?花了多长时间,成本多少?

你不必丢掉那些大的基准分数。它们仍然能给你一个有价值的整体印象。

你自己那些任务只是又添了一份证据,而有时候,那恰恰是最要紧的一份。


这一切对开发者意味着什么?

基准这套讨论,在这里接回了我围绕 Astra 看到很多的一句话:「AI 会取代开发者。」

我能理解人们为什么会这么问。如果一个模型能写代码、能理解代码库、能用工具、能走完一个任务、还能应付中途的变化,那么去想几年后的软件开发会是什么样子,是合理的。

我确实预期这份工作会变。有些事会快得多,有些任务可能需要更少人力,而且随着工具变好,大概会有一些技能变得不那么重要。与此同时,另一些技能会变得更重要。

比如说,如果生产代码变得容易得多,那么难的部分可能会移到理解到底该做什么、以及该怎么做上去。

真实的需求是什么?我们有哪些约束?系统该怎么设计?系统长大之后这个架构还撑得住吗?方案安全、可靠吗?我们怎么验证 AI 的产出?半年后需求变了会怎样?以及,这东西到底有没有解决用户的问题?

这些问题不会因为 AI 能飞快地写出几百行代码就消失。

在某些情况下,它们甚至会更重要,因为做出好几版可能的实现变得更容易了。总得有人理解这些选项,并判断哪一个适合当下的情况。

这就是为什么 「不再需要 CSE」 这个说法在我看来过于极端。计算机科学与软件工程从来都不只是写代码。代码是构建软件的一部分,而不是全过程。

变化肯定会有,其中一些可能相当重大。但我更愿意看着这份工作实际如何演变,而不是过早断定整个领域要消失。

对开发者来说,更有用的问题也许不是 「AI 会不会取代我?」,而是 「当 AI 接走越来越多工作,我应该在哪方面变得更强?」


我们可以认真对待 AI,而不必把每条头条都当成最终结论

我不想轻视围绕 AI 的担忧。安全、滥用、安保、可靠性、就业,以及我们该给这些系统多少自主权,都是真问题。它们不是小问题,而且随着技术变得更强,值得认真对待。

与此同时,我也不认为每一次能力提升都得变成关于某个职业终结的预言。当我看到 AI 能写代码,我看到的是正在改变软件开发的技术。我不认为唯一可能的结论就是开发者完了。

对越来越复杂的 AI 系统也是如此。与其直接跳到人类还需不需要,我觉得更有用的是问:哪些工作部分我们可以放心交给 AI,哪些仍然需要人参与,以及什么样的监督是合理的。

而当我看到基准分数上升,我也想弄明白那个数字背后是什么。测的是什么?怎么测的?这个基准还在给出有用的信息吗?那项进步会不会出现在人们实际做的那类工作里?

对我来说,这让讨论变得更有意思。我们可以为这些模型正在做的事兴奋,同时质疑围绕它们的说法。我们可以认真对待风险,而不假定最极端的结果;也可以承认真实的进步,而不把每条新头条都当成最终答案。

关于这一切要往哪里去,我们大概还有很多不知道的。

这没关系。我们正在实时看着它变化。


模型在变,我们看模型的方式也得跟着变

这大概就是我在 Astra 这件事上反复回到的地方。模型变得更强了,但与此同时,衡量这种能力变得更复杂。基准会饱和,代理指标有局限,真值并不总是简单,评测方法也必须持续演进。

也许我们的问题也需要跟着它们一起演进。

与其只问 「AI 会不会取代开发者?」, 我们可以问 「开发工作的哪些部分正在改变,哪些技能正在变得更有价值?」

与其问 「CSE 死了吗?」, 我们可以问 「当生产代码变得容易得多,计算机科学会是什么样子?」

而与其只问 「AGI 到了吗?」, 我们可以问 「我们谈的到底是哪些能力,我们是怎么衡量它们的,我们又有什么证据?」

我们会不断看到更强的模型、令人印象深刻的演示,以及围绕它们极其强烈的意见。有些预测大概会被证明是对的,有些会过头,还有些事情会让我们所有人意外。

这就是看着一项技术以这样的速度变化的一部分。

对我来说,有用的事情是保持好奇、看证据、认真对待风险,同时也留意我们自己的工作里究竟在发生什么变化。

因为在所有的基准、头条和预测之后,也许值得问的问题很简单:

「变的是什么,我们怎么知道,这对我们在意的工作意味着什么?」

然后是:

「好。这是这项技术现在能做到的事。我们该用它建什么?」


我很想听听你的看法

我们都在看同样的 AI 进展,但看到的并不总是一回事。

也许你觉得当前的进步被低估了。也许你觉得某些兴奋或恐惧过头了。又或者,你已经在自己的开发工作里看到了我还没注意到的变化。

我很想听听你的看法。

你怎么想?

如果你对 AI 基准、模型评测,或者软件开发将走向何处有不一样的看法,欢迎在评论里说说。我们来自不同的经历,而我认为,这些讨论正是因此而更有意思。


参考资料

这些是文中关于基准、评测与能力那几部分内容的主要参考资料。

来源: DEV Community← 返回首页