Skip to content

如何设计能抵御 AI 代做的技术评测

官方原文: https://www.anthropic.com/engineering/AI-resistant-technical-evaluations

发布日期: 2026 年 1 月 21 日

作者: Tristan Hume,Anthropic 性能优化团队负责人


概览

本文讲述 Anthropic 性能工程团队如何为招聘性能工程师设计、又反复改造一项 take-home test。原因很直接:随着 Claude 的迭代,模型不断追平,甚至超过候选人在这项测试中的表现。

团队从 2024 年初开始使用这项 take-home test:候选人需要为一台模拟加速器优化代码。已有一千多名候选人完成测试,团队也据此录用了数十人,其中包括搭建 Trainium 集群、并参与交付 Claude 3 Opus 以来每个模型的工程师。

每一代 Claude 都迫使测试升级。Claude Opus 4 的成绩已经超过大多数申请者,Claude Opus 4.5 则追平了此前最优秀的人类表现。在不限时间时,人仍可胜过模型;但在 take-home test 的时间限制内,这项测试已经无法区分顶尖候选人与 Claude。

作者为此迭代了三个版本,也由此更清楚地理解:什么样的评测能经受 AI 辅助,什么样的不能。原始测试现已作为开放挑战发布在 GitHub 上。

这项 take-home test 从何而来

2023 年 11 月,Anthropic 正准备在新的 TPU、GPU 集群以及即将上线的大型 Trainium 集群上训练 Claude Opus 3,但性能工程师数量不足。一条 Twitter 帖子带来的候选人,远超常规面试流程能够处理的规模。

作者花了两周时间设计这项 take-home test,希望更高效地评估候选人。

设计目标

作者希望它“真正有趣,能让候选人愿意投入”。对于考察性能工程能力,这种形式有几个优势:

  • 时间更充裕: 最初 4 小时、后来缩短到 2 小时,比 50 分钟面试更接近真实工作。
  • 环境更真实: 候选人独立使用自己的编辑器,没有人旁观。
  • 允许理解系统和准备工具: 性能优化往往需要先读懂现有系统,甚至要先做调试工具。
  • 允许使用 AI 辅助: 测试明确允许 AI 工具,因为跨度更长的任务仍不容易被 AI 完整解决。

测试还遵循以下原则:

  • 贴近真实工作。
  • 信号足够强。 不依赖某一个偶然灵感;得分应能拉开差距,也应有足够深度,使最强候选人无法做完全部内容。
  • 不要求特定领域背景。 基本功比狭窄的专业知识更重要。
  • 好玩。 迭代反馈快,问题有意思,也保留发挥空间。

模拟机器

作者用 Python 实现了一台虚构加速器的模拟器,特征类似 TPU。候选人需要优化运行在这台机器上的程序,并可通过支持热重载的 Perfetto trace 查看每条指令。

这台机器具备:手动管理的 scratchpad memory、VLIW(一个周期内多个执行单元并行工作)、SIMD(向量操作)和 multicore(跨核心分配工作)。

题目是并行树遍历,有意避开深度学习主题。它受到无分支 SIMD 决策树推理的启发,这是一个经典的 ML 优化问题。候选人从完全串行的实现开始,逐步挖掘并行性:先使用 multicore,再在 SIMD 向量化与 VLIW 指令打包之间选择。第一版还故意加入了一个需要排查的 Bug。

早期结果

最初的测试很有效。Twitter 候选人中最出色的一位在 2 月初入职,距离通过常规流程录用首批人员只隔两周。这项测试具有很强的预测性:此人很快投入 kernel 优化,还找到了一个阻碍发布的编译器 Bug 的解决方案。

大约一年半里,约 1,000 人完成了测试。它对履历经验较少的候选人特别有价值,团队中数位表现最好的工程师直接来自本科毕业生。许多人因为投入其中,实际花费超过 4 小时;最强的不限时提交甚至包含完整的优化型 mini-compiler,以及作者此前未曾想到的巧妙优化。

随后 Claude Opus 4 破解了它

到 2025 年 5 月,Claude 3.7 Sonnet 已强到让超过半数候选人“完全交给 Claude Code 做,成绩反而可能更好”。在测试预发布版 Claude Opus 4 时,模型在 4 小时内给出的方案已经优于几乎所有人类。

作者此前还在 2023 年设计过一道更偏重解题能力、而非知识储备的现场面试题:Claude 3 Opus 解决了第一部分,Claude 3.5 Sonnet 又解决了第二部分。

改造 take-home test 的方式看似直接。原题深度远超过人类在 4 小时内能探索的范围,于是作者用 Claude Opus 4 找到它开始受阻的位置,并从那里作为新版本的起点。第二版提供更干净的初始代码,加入新的机器特性,去掉 multicore,并把限时缩短为 2 小时,以减少排期延迟。它把重心放在巧妙的优化洞见,而非调试工作与代码量。

Claude Opus 4.5 也破解了第二版

在测试预发布的 Claude Opus 4.5 checkpoint 时,作者观察 Claude Code 连续工作 2 小时。它解决了初始瓶颈,实现常见的 micro-optimization,不到一小时就越过及格线。

接着模型停下,自认为碰到了不可逾越的 memory bandwidth bottleneck。多数人类也会得出同样结论,但题目的结构里实际上还有可利用的技巧。作者告知可达到的 cycle 数后,Claude 找到了诀窍,完成调试和调优,并继续实现优化。到第 2 小时时,其得分与最佳人类表现持平,而那位人类候选人本身也大量使用了经人工引导的 Claude 4。

在 Anthropic 内部的 test-time compute harness 中,团队进一步确认:Claude 既能在两小时内超过人类,也能随着更多计算时间持续提升成绩。

团队考虑过哪些选择

有人建议直接禁止 AI 辅助,但作者不赞同。他认为,只要人仍在工作中发挥关键作用,就应当能设计出让人展示差异化能力的方法。

也有人建议把标准提高到显著超过仅使用 Claude Code 的水平。但 Claude 的执行速度很快,而人类通常要用掉两个小时中的一半来理解题目,最终的最优策略可能变成坐在旁边观看模型工作。

Anthropic 的性能工程师如今面对的是困难的调试、系统设计、性能分析,以及把 Claude 生成的代码变得更简单、更优雅。这类能力没有充足时间或共同上下文,很难客观测试。

作者也担心,任何新题要么同样会被 Claude 解出,要么难到人类无法在两小时内完成。

尝试一:换一道优化题

作者选择了一个基于 Anthropic 内部真实 kernel 优化的问题:如何在二维 TPU 寄存器上高效转置数据,同时避免 bank conflict。Claude 在不到一天内就实现了修改。

Claude Opus 4.5 甚至找到了作者未曾想到的优化:它意识到可以转置整个计算过程,而不是转置数据本身,并重写了整段程序。作者修改题目,封堵该路径后,Claude 虽有进展却找不到最高效的解法。直到作者用 Claude Code 的 ultrathink 和更长的思考预算复查,模型还是解出了问题,并且知道如何处理 bank conflict。

作者的反思是:许多平台上的工程师都曾处理数据转置和 bank conflict,因此 Claude 能从大量训练经验中取用方案。人可以从第一性原理推导解法,模型则拥有更大的经验工具箱。

尝试二:让问题更反常规

作者需要一道人类推理有机会胜过 Claude 经验库的题,也就是足够 out-of-distribution 的题目,但这又背离了评测应贴近真实工作的目标。

受 Zachtronics 编程益智游戏启发,团队设计了新 take-home test:使用极小、限制极强的指令集完成一组谜题,并优化指令数量。在 Claude Opus 4.5 上测试一道中等难度题时,模型失败了。团队又加入更多题目,并由同事验证人类确实可以超过 Claude。

与 Zachtronics 游戏不同,测试有意不提供可视化或调试工具,因为“构建调试工具本身就是测试内容的一部分”。

作者对新测试基本满意。早期结果显示,成绩与候选人过往工作的水平具有较好的相关性。但他仍对放弃原始测试的真实感和多层次深度感到遗憾:原始测试有效,是因为它模拟真实工作;替代测试有效,则是因为它模拟新颖、陌生的工作。

开放挑战

原始 take-home test 已面向所有人开放,可不限时间尝试。只要时间跨度足够长,人类专家仍比当前模型占优:史上最快的人类提交,明显优于 Claude 即使投入大量 test-time compute 后达到的成绩。

性能基准(模拟机器上的 clock cycles)

成绩说明
2164 cyclesClaude Opus 4 在 test-time compute harness 中运行许多小时后取得
1790 cyclesClaude Opus 4.5 在一次普通 Claude Code Session 中取得,约等于人类两小时内的最佳成绩
1579 cyclesClaude Opus 4.5 在 test-time compute harness 中运行 2 小时后取得
1548 cyclesClaude Sonnet 4.5 经远超 2 小时的 test-time compute 后取得
1487 cyclesClaude Opus 4.5 在 harness 中运行 11.5 小时后取得
1363 cyclesClaude Opus 4.5 在改进后的 test-time compute harness 中运行许多小时后取得

挑战已发布在 GitHub。若你能将成绩优化到 1487 cycles 以下,即超过发布时 Claude 的最佳表现,可将代码和简历发送至 performance-recruiting@anthropic.com。候选人也可以走 Anthropic 正常招聘流程,完成如今这份能抵御 AI 代做的 take-home test。作者最后写道:“我们很想知道,它能撑多久。”

AI 落地咨询
艾维禾砺数字科技

企业 AI 落地全链路服务

Agent 开发工作流搭建Claude Code 集成
微信咨询
d187l8801b6124
访问官网 ivheli.com