设计抗 AI 的技术评估
发布日期: 2026年1月21日
作者: Tristan Hume,Anthropic 性能优化团队负责人
概述
本文描述了 Anthropic 的性能工程团队如何创建并迭代重新设计用于招聘性能工程师的带回家测试,因为后续的 Claude 模型持续匹配或超过人类在测试上的表现。
该团队自2024年初开始使用带回家测试,让候选人优化模拟加速器的代码。超过1,000名候选人完成了测试,数十人被录用,包括"搭建了我们的 Trainium 集群并发布了自 Claude 3 Opus 以来每个模型"的工程师。
每个新的 Claude 模型都迫使重新设计。"Claude Opus 4 超过了大多数人类申请者",然后"Claude Opus 4.5 甚至匹配了那些人。"人类在无限时间下仍然可以超越模型,但在带回家测试的时间限制内,区分顶级候选人和模型变得不可能。
作者迭代了三个版本,学到了"关于什么使评估对 AI 辅助具有鲁棒性、什么不具有的新东西。"
原始的带回家测试在 GitHub 上作为开放挑战发布。
带回家测试的起源
2023年11月,Anthropic 正在准备使用新的 TPU 和 GPU 集群加上即将上线的大型 Trainium 集群来训练 Claude Opus 3,但缺乏足够的性能工程师。一条 Twitter 带来了比标准面试流程能处理的更多候选人。
作者花了两周时间设计带回家测试,以更有效地评估候选人。
设计目标
作者想要"真正引人入胜、让候选人兴奋参与"的东西。该格式在评估性能工程技能方面具有优势:
- 更长的时间范围: 4小时窗口(后来改为2小时)比50分钟的面试更好地反映真实工作
- 现实环境: 没有人观察;候选人在自己的编辑器中工作
- 理解和工具的时间: 性能优化需要理解现有系统,有时还需要构建调试工具
- 与 AI 辅助兼容: 候选人被明确允许使用 AI 工具,因为更长时间范围的问题对 AI 来说更难完全解决
设计还应用了以下原则:
- 代表真实工作
- 高信号: 避免依赖单一洞察的问题;确保广泛的分数分布,有足够的深度使强大的候选人无法完成所有内容
- 不需要特定领域知识: 良好的基本功比狭窄的专业知识更重要
- 有趣: 快速的开发循环、有趣的问题和创意空间
模拟机器
作者构建了一个具有类 TPU 特性的假加速器的 Python 模拟器。候选人在该机器上优化代码,使用热重载的 Perfetto 跟踪显示每条指令。
机器特性:手动管理的便签簿内存、VLIW(每周期多个执行单元并行运行)、SIMD(向量操作)和多核(跨核心分配工作)。
任务是并行树遍历,刻意不走深度学习风格。它"受无分支 SIMD 决策树推理启发,这是一个经典的 ML 优化挑战。"候选人从完全串行的实现开始,逐步利用并行性——首先是多核,然后在 SIMD 向量化或 VLIW 指令打包之间选择。版本1还包含一个需要调试的 bug。
早期结果
最初的带回家测试效果很好。Twitter 批次中的佼佼者"在2月初开始,距离我们通过标准流程的首批录用仅两周。"测试被证明具有预测性——这位录用人选立即开始优化内核,并找到了一个阻碍发布的编译器 bug 的解决方案。
在大约1.5年的时间里,约1,000名候选人完成了带回家测试。它被证明"对简历经验有限的候选人特别有价值:我们几位最高性能的工程师直接来自本科。"
许多候选人因为享受而超过了4小时限制。最强的无限时间提交包括"完整的优化迷你编译器和几个我没想到的巧妙优化。"
然后 Claude Opus 4 击败了它
到2025年5月,"Claude 3.7 Sonnet 已经爬升到超过50%的候选人最好完全委托给 Claude Code 的地步。"测试预发布的 Claude Opus 4,它在4小时内产生了比几乎所有人类都更优化的解决方案。
作者之前在2023年设计了一个现场面试问题,更侧重于问题解决而非知识。"Claude 3 Opus 击败了该问题的第1部分;Claude 3.5 Sonnet 击败了第2部分。"
带回家测试的修复很直接——问题有比任何人在4小时内能探索的更多深度,因此作者使用 Claude Opus 4 来识别它开始吃力的地方,将其作为新的起点。版本2添加了更整洁的初始代码、新的机器特性、移除了多核,并将时间限制缩短到2小时(减少调度延迟)。它强调"巧妙的优化洞察而非调试和代码量。"
然后 Claude Opus 4.5 击败了那个
测试预发布的 Claude Opus 4.5 检查点,作者观察 Claude Code 工作2小时,解决了初始瓶颈并实现了常见的微优化,在不到一小时内通过了阈值。
然后它停下来,"确信自己遇到了不可逾越的内存带宽瓶颈。"大多数人类会得出相同的结论,但存在利用问题结构的巧妙技巧。当被告知可达到的周期数时,Claude 找到了技巧,调试、调优并实现了进一步的优化。到2小时标记时,它的分数与最佳人类表现相匹配——"而那个人大量使用了带引导的 Claude 4。"
在 Anthropic 的内部测试时间计算 Harness 中测试,确认它可以在2小时内击败人类,并随时间继续攀升。
考虑各种选项
一些同事建议禁止 AI 辅助。作者不想这样:"我有一种感觉,鉴于人们继续在我们的工作中发挥重要作用,我应该能找到某种方式让他们脱颖而出。"
其他人建议将标准提高到大幅超越 Claude Code 单独的表现。担忧是 Claude 工作速度快,而人类通常花一半的2小时来阅读和理解问题。"占优策略可能变成坐视旁观。"
Anthropic 的性能工程师现在做"艰难的调试、系统设计、性能分析",以及使 Claude 的代码更简单、更优雅。这些很难在没有大量时间或共同上下文的情况下客观测试。
作者还担心,要么 Claude 也会解决任何新的带回家测试,要么它对人类来说在两小时内完成太具挑战性。
尝试1:不同的优化问题
作者选择了一个基于 Anthropic 内部做过的棘手内核优化的问题:在2D TPU 寄存器上高效数据转置同时避免 Bank 冲突。Claude 在不到一天内实现了这些更改。
"Claude Opus 4.5 找到了一个我甚至没想到的好优化。"它意识到可以转置整个计算而不是数据,重写了整个程序。作者修补了问题以移除该方法。Claude 取得了进展但找不到最有效的解决方案——直到作者使用 Claude Code 的"ultrathink"功能和更长的思考预算仔细检查,它解决了问题,甚至知道修复 Bank 冲突的技巧。
作者反思道,跨多个平台的工程师一直在与数据转置和 Bank 冲突作斗争,所以 Claude 有大量训练数据。"虽然我从第一性原理找到了我的解决方案,但 Claude 可以借鉴更大的经验工具箱。"
尝试2:变得更奇怪
作者需要一个让人类推理能够胜过 Claude 更大经验库的问题——足够超出分布的东西,这与模拟实际工作的目标相冲突。
受 Zachtronics 游戏(具有不寻常、高度受限指令集的编程益智游戏)启发,作者设计了一个新的带回家测试,使用小型、高度受限的指令集的谜题,优化最小指令数。在 Claude Opus 4.5 上测试一个中等难度的谜题,"它失败了。"添加了更多谜题,同事验证了人类可以超越 Claude。
与 Zachtronics 游戏不同,故意不提供可视化或调试工具。"构建调试工具是被测试的一部分。"
作者"对新的带回家测试相当满意。"早期结果显示分数与候选人过去工作的水平很好地相关。然而,作者"仍然对放弃原始测试的现实性和多样化深度感到遗憾。"洞察是:"原始测试有效是因为它模拟了真实工作。替代品有效是因为它模拟了新颖的工作。"
开放挑战
原始的带回家测试发布给任何人以无限时间尝试。人类专家在足够长的时间范围内仍然比当前模型有优势。"有史以来提交的最快人类解决方案大幅超越了 Claude 即使在大量测试时间计算下所达到的水平。"
性能基准(模拟机器上的时钟周期)
| 结果 | 描述 |
|---|---|
| 2164周期 | Claude Opus 4 在测试时间计算 Harness 中数小时后 |
| 1790周期 | Claude Opus 4.5 在随意的 Claude Code Session 中,大约匹配2小时内最佳人类表现 |
| 1579周期 | Claude Opus 4.5 在测试时间计算 Harness 中2小时后 |
| 1548周期 | Claude Sonnet 4.5 在远超2小时的测试时间计算后 |
| 1487周期 | Claude Opus 4.5 在 Harness 中11.5小时后 |
| 1363周期 | Claude Opus 4.5 在改进的测试时间计算 Harness 中数小时后 |
该挑战在 GitHub 上可用。将优化到1487周期以下的人——在发布时击败 Claude 的最佳表现——请将代码和简历发送到 performance-recruiting@anthropic.com。候选人也可以通过 Anthropic 的典型流程申请,该流程使用他们现在抗 AI 的带回家测试。"我们好奇它能持续多久。"