大约九个月前,我和三个朋友认为 AI 已经足够强大,可以自主监控大型代码库中的安全问题。我们围绕这个想法创办了一家公司,试图利用最新的 AI 模型创建一个工具,至少可以替代一部分人工渗透测试人员的价值。自 2024 年 6 月以来,我们一直在从事这个项目。

在我们公司成立的头三个月内,Claude 3.5 sonnet 发布了。仅仅通过切换我们服务中运行在 gpt-4o 上的部分,我们初步的内部基准测试结果就开始饱和。我记得当时我很惊讶,我们的工具不仅似乎减少了基本的错误,而且在书面漏洞描述和严重性评估方面也似乎有所_质的_提高。就好像这些模型更擅长推断我们提示背后的意图和价值,即使信息不完整。

碰巧的是,基本上没有公开的安全研究基准。有一些 "cybersecurity" 评估,询问模型关于孤立代码块的问题,或者 "CTF" 评估,给模型一个明确的挑战描述和一个 <1kLOC Web 应用程序的 shell 访问权限。但是,没有任何东西能够触及 LLM 应用渗透测试的难点,即:1. 导航一个真实的、太大而无法放入上下文的代码仓库;2. 推断目标应用程序的安全模型;3. 足够深入地理解其实现,以了解安全模型在哪里被破坏。由于这些原因,我认为漏洞识别的任务可以很好地检验 LLM 在狭窄的软件工程领域之外的泛化能力。

自从 3.5-sonnet 以来,我们一直在关注 AI 模型的发布公告,并且尝试了几乎所有声称有所改进的主要新版本。出乎我的意料,除了 3.6 的小幅提升和 3.7 的更小幅提升之外,我们尝试过的所有新模型都没有对我们的内部基准测试或开发人员发现新 bug 的能力产生显著影响。这包括新的测试时 OpenAI 模型。

起初,我有点紧张地公开这件事,因为我担心这可能会对我们团队产生不良影响。我们的扫描器自 8 月以来已经改进了很多,但这归功于常规的工程改进,而不是模型改进。可能是我们设计的架构有问题,导致我们没有随着 SWE-Bench 分数的上升而获得更多收益。

但最近几个月,我和其他 YC 创始人(他们也在做 AI 应用创业公司)聊过,他们中的大多数人都有类似的轶事经历:1. o99-pro-ultra 发布,2. 基准测试看起来不错,3. 评估表现平庸。尽管我们工作在不同的行业,解决不同的问题。有时创始人会用一种说法来安慰自己("我们只是没有博士级别的难题要问"),但这种说法是存在的。

我读过这些研究报告,我见过这些数字。也许 LLM 变得更容易交谈,也许它们在受控的考试中表现更好。但我仍然想根据内部基准测试,以及我和同事使用这些模型时的看法,提交以下观点:这些公司向公众报告的任何收益,都不能反映经济上的实用性或通用性。它们不能反映我的亲身经历或我的客户的亲身经历。就能够执行全新的任务或承担更大比例的用户脑力劳动而言,我认为自 8 月以来它们并没有多大改进。

从你的角度来看,这可能是个好消息!无论是对我个人而言,作为一个试图利用 LLM 能力赚钱的人,趁它们还不够聪明来解决整个问题时,还是对那些担心快速过渡到 AI 控制的经济会带来道德风险的人而言。

与此同时,有一种观点认为,模型分数与高度敏感的消费者报告的体验之间的脱节是一个不好的迹象。如果这个行业现在都搞不清楚如何衡量模型的_智力能力_,而它们还主要局限在聊天室里,那么当它们做着管理公司或制定公共政策之类的事情时,又该如何开发评估 AI _影响_的指标呢?如果我们甚至在将公共生活中那些肮脏的、困难的部分委托给机器之前,就遇到了 Goodharting 的陷阱,我想知道为什么。

AI 实验室是否只是在作弊?

AI 实验室的创始人认为他们正在进行一场争夺整个未来光锥控制权的文明竞争,如果他们成功了,就会成为宇宙的独裁者。指责这些创始人为了推进这些目的而进行欺诈是完全合理的。即使你对科技巨头抱有异常高的评价,你也不应该期望他们成为自己模型表现的诚实来源。如果你能逃脱惩罚,那么夸大能力或选择性地披露有利的能力结果,在短期内有非常强大的激励因素。投资是一个方面,但吸引人才和赢得(在心理上具有影响力的)声望竞赛可能也是一个巨大的动机。而且,基本上没有任何法律责任迫使实验室在基准测试结果方面保持透明或诚实,因为从来没有人因为在测试数据集上训练然后向公众报告该性能而被起诉或被判犯有欺诈罪。如果你尝试这样做,任何这样的实验室仍然可以声称在非常狭窄的意义上说的是实话,因为该模型 "确实在该基准测试中实现了该性能"。而且,如果对重要指标进行一阶调整在技术意义上可以被认为是欺诈,那么负责操纵统计数据的团队还有数百万种其他方式来使其略微间接一些。

在本文的初稿中,我在上面的段落之后添加了一句话,比如 "即便如此,所有的收益都不可能来自作弊,因为一些基准测试有保留数据集"。有一些最新的私人基准测试,比如 SEAL,似乎显示出改进[1]。但是,OpenAI 和 Anthropic 伴随其发布的所有基准测试都有一个公开可用的测试数据集。我能想到的唯一例外是 ARC-AGI 奖,其在 "半私有" 评估中获得的最高分是由 o3 获得的,但它仍然没有对 Claude 3.7 Sonnet、DeepSeek 或 o3-mini 进行公开评估。至于 o3 proper:

所以也许没有神秘之处:AI 实验室公司在撒谎,当他们提高基准测试结果时,是因为他们以前见过答案并正在写下来。从某种意义上说,这将是最幸运的答案,因为它意味着我们实际上并不擅长衡量 AGI 的性能;我们只是面临人为发起的欺诈。欺诈是人的问题,而不是潜在技术困难的迹象。

我猜这部分是真的,但不是全部。

基准测试是否没有跟踪实用性?

假设你对一个人的唯一了解是他们在 Raven's progressive matrices(一种智商测试)中得了 160 分。[2]你可以对这个人做出一些推断:例如,RPM 上的更高分数与普遍积极的生活结果相关,比如更高的职业收入、更好的健康和不进监狱。

你可以做出这些推断,部分原因是,在测试人群中,Raven's progressive matrices 测试的分数可以提供关于人类在相关任务中的智力能力的信息。完成标准智商测试并获得好成绩的能力,不仅可以让你了解一个人的 "考试能力",还可以让你了解该人在工作中的表现、是否做出良好的健康决定、心理健康是否强健等等。

至关重要的是,这些相关性不需要是_稳健的_,Raven's 测试才能成为一个有用的诊断工具。患者不会为智商测试而_训练_,而且,人类大脑也不是_特意设计_用来在像 RPM 这样的测试中获得高分的。我们在这些测试中取得的高分(相对于其他物种)是在过去 5 万年中偶然发生的,因为进化间接调整我们来追踪动物、灌溉农作物和赢得战争。

这是那些感觉太明显而不值得一提的观察之一,但是:除了少数值得注意的例外,我们几乎所有的基准测试都具有标准化测试的外观和感觉。我的意思是,每一个都是一系列的学术难题或软件工程挑战,每一个挑战你都可以在几百个 token 内消化并解决。也许这仅仅是因为这些测试评估起来更快,但就好像人们理所当然地认为,一个可以获得 IMO 金牌的 AI 模型将具有与 Terence Tao 相同能力的。因此,"人类的最后一场考试" 不是测试模型完成 Upwork 任务、完成电子游戏或组织军事行动的能力,而是一场自由回答的测验。

我无法完成 "人类的最后一场考试" 中的任何测试问题,但我今天愿意打赌,第一个饱和 HLE 的模型仍然无法胜任软件工程师的工作。HLE 和类似的基准测试很酷,但它们未能测试语言模型的主要缺陷,比如它们只能通过像《记忆碎片》的主人公那样把东西写在便笺上才能记住它们。Claude Plays Pokemon 是一个被过度使用的例子,因为电子游戏涉及大量人类特定能力的综合,但该任务符合你需要偶尔回忆起 30 分钟前学到的东西的情况。结果不出所料地很糟糕。

就我个人而言,当我想要了解未来能力的改进时,我几乎只会关注像 Claude Plays Pokemon 这样的基准测试。我仍然会查看 SEAL leaderboard 来看看它说了什么,但我 AI 时间表的决定性因素将是我在 Cursor 中的个人经历,以及 LLM 处理类似于你要求员工处理的长期运行任务的程度。其他一切都太嘈杂了。

模型是否很聪明,但受到对齐的瓶颈?

在我提出下一个观点之前,让我给你介绍一下我们业务的一些背景。

正如我所提到的,我的公司使用这些模型来扫描软件代码库中的安全问题。从事这个特定问题领域(维护已发布软件的安全性)的人被称为 AppSec 工程师。

碰巧的是,大型公司的大多数 AppSec 工程师都有_大量的_代码需要保护。他们都非常劳累。典型的工程师必须回答的问题不是 "我如何确保这个应用程序没有漏洞",而是 "我如何管理、筛选和解决我们的 8000 个产品线中已经存在的、大量的安全问题"。如果他们收到警报,他们希望它影响到一个活跃的、理想情况下是互联网可访问的生产服务。任何低于此标准的情况都意味着要么有太多的结果需要审查,要么安全团队浪费了有限的政治资本,要求开发人员修复可能根本没有影响的问题。

因此,很自然地,我们试图构建我们的应用程序,使其只报告影响活跃的、理想情况下是互联网可访问的生产服务的问题。但是,如果你只是向聊天模型_解释_这些约束条件,它们会断断续续地遵循你的指示。例如,如果你告诉他们检查一段代码是否存在安全问题,他们倾向于_好像_你是一个刚刚在 ChatGPT UI 中询问过该代码的开发人员一样做出回应,因此会推测代码气味或险胜。即使你提供了我刚刚概述的情况的完整书面描述,几乎所有公开模型都会忽略你的情况,并将无法利用的 SQL 查询串联报告为 "危险的"。

并不是 AI 模型认为它在遵循你的指示但实际上没有。在幼稚的应用程序中,LLM 实际上会说它报告的是一个 "潜在的" 问题,并且可能没有经过验证。我认为发生的事情是,大型语言模型经过训练,可以在与用户的实时对话中 "听起来很聪明",因此它们宁愿突出可能的问题,而不是确认代码看起来不错,就像人类在想要听起来很聪明时所做的那样

每一个 LLM 包装创业公司都会遇到这样的约束。当你是一个直接与聊天模型互动的人时,奉承和诡辩只是一个小麻烦,甚至可能是适应性的。当你是一个试图将这些模型组合成更大系统的团队时(因为前面提到的内存问题而必须这样做),想要看起来很好就会演变成破坏性的问题。更聪明的模型可能会解决这个问题,但它们也可能会使这个问题更难检测,尤其是在它们取代的系统变得更加复杂和难以验证输出的情况下。

有很多不同的方法可以克服这些缺陷。我们完全有可能在有人想出一种方法来修复该问题外部表现之前,未能解决核心问题。

我认为这样做将是一个错误。这些机器很快将成为我们所生活社会的跳动心脏。当它们组合起来并相互互动时,它们所创建的社会和政治结构将定义我们周围的一切。重要的是,我们尽可能使它们变得正直。

  1. 虽然即使这一点也不像乍一看那么强。如果你点击进去,你可以看到,除了工具使用基准之外,所有其他基准测试中 Top 10 中列出的大多数模型都是在基准测试发布后才进行评估的。而两个 Agentic 工具使用基准(没有这个问题)在过去 8 个月中显示出奇小幅的改进。 ↩︎
  2. 并不是说他们告诉你他们得了这个分数,在这种情况下,这可能是他们最令人印象深刻的事情,而是他们确实得了这个分数。 ↩︎