设计抗 AI 技术评估
发布日期: 2026 年 1 月 21 日
作者: Tristan Hume,Anthropic 性能优化团队负责人
概述
随着 AI 能力的提升,评估技术候选人变得越来越困难。今天能有效区分人类技能水平的编程作业,明天可能对模型来说就变得轻而易举,从而失去评估价值。
原始编程作业
设计目标
自 2024 年初以来,Anthropic 的性能工程团队一直使用一项编程测试,要求候选人优化针对模拟加速器的代码。超过 1000 名候选人完成了该测试,其中数十人现已在公司任职,包括参与交付了自 Claude 3 Opus 以来每个模型的工程师。
原始评估追求几个关键目标:
- 更长的时间窗口: 4 小时(后缩减为 2 小时)比典型的 50 分钟面试更能反映真实工程工作
- 真实环境: 候选人在自己的编辑器中工作,不受监看
- 留出理解和工具构建时间: 候选人可以构建调试工具,这反映了真实的性能工程工作
- 代表真实工作: 该问题提供了对工作要求的真实洞察
- 高区分度: 多种优化路径确保分数分布广泛
- 无需特定领域知识: 基础知识比专业知识更重要
- 参与感: 快速的开发迭代和创造空间能激发参与热情
模拟机器
该评估包含一个 Python 模拟器,模拟一个类似 TPU 的虚构加速器。候选人使用支持热重载的 Perfetto 追踪工具优化代码,该工具显示每条指令。该机器包括:
- 手动管理的暂存内存
- VLIW(多个执行单元,需要高效的指令打包)
- SIMD(多元素向量运算)
- 多核并行
任务涉及并行树遍历——特意避免深度学习风格,因为大多数候选人没有机器学习经验。候选人逐步利用机器的并行性,从多核开始,然后选择 SIMD 向量化或 VLIW 指令打包。
早期成功
最初的编程作业效果显著。一位来自早期 Twitter 招聘的候选人明显超越所有其他人。此人于 2024 年 2 月入职后"立即开始优化内核,并找到了一个阻碍启动的编译器 bug 的变通方案"。
在十八个月内,约 1000 名候选人完成了该评估。它成功识别出了高性能工程师,对简历单薄的候选人尤其有价值——几位顶尖表现者直接来自本科,但展示了足以放心录用的技能。
反馈积极。许多候选人因真正的投入而超过了 4 小时限制。高级提交包括完整的优化迷你编译器和意想不到的巧妙优化。
Claude Opus 4 击败版本 1
到 2025 年 5 月,Claude 3.5 Sonnet 已经进步到"超过 50% 的候选人完全委托给 Claude Code 会更好"的程度。测试预发布版 Claude Opus 4 发现,它"在 4 小时内生成的优化方案优于几乎所有人类"。
虽然这仍能区分最优秀的候选人,但表明需要重新设计。
版本 2 调整
该问题包含的深度远超候选人在 4 小时内能探索的范围,因此 Tristan 找出了 Claude Opus 4 开始吃力的地方,并将其作为新起点。变更包括:
- 更整洁的起始代码
- 新的机器特性以增加深度
- 移除多核(Claude 已经解决)
- 将时间限制从 4 小时缩短为 2 小时
版本 2 强调巧妙的优化洞察,而非调试和代码量。它暂时成功了。
Claude Opus 4.5 击败版本 2
测试预发布版 Claude Opus 4.5 时,模型在该问题上工作了 2 小时,逐步改进。它解决了初始瓶颈,实现了标准的微优化,并在一小时内达到了通过阈值。
重要的是,Claude 随后"停了下来,确信自己遇到了不可逾越的内存带宽瓶颈"。大多数人类得出同样的结论。然而,巧妙的技巧可以利用问题结构绕过这个瓶颈。当被告知可达成的周期数时,Claude"思考了一会儿并找到了这个技巧",然后调试、调优并实现了进一步优化。
到 2 小时结束时,Claude 的分数匹配了该时间限制内的最佳人类表现——而那个人类大量使用了 Claude 4 并加以指导。
内部测试证实 Claude 可以在 2 小时内击败人类,并且在延长时间的情况下继续改进。
考量选择
Anthropic 面临关键决策。一些同事建议禁止 AI 辅助,但 Tristan 认为人们仍应在有 AI 的环境中脱颖而出——这反映了真实工作条件。将门槛提高到"显著超越 Claude Code 单独完成的效果"的担忧是,Claude 工作得如此之快,人类会花一半时间理解问题规范,而始终落后。
重要的是:"如今 Anthropic 的性能工程师仍有大量工作要做,但看起来更像是棘手的调试、系统设计、性能分析、弄清楚如何验证系统正确性,以及让 Claude 的代码更简洁优雅。"
尝试 1:数据转置问题
Tristan 尝试了一个更难的编程作业,基于高效的 2D TPU 寄存器转置,同时避免 bank 冲突。Claude Opus 4.5 找到了"一个他未曾考虑的绝佳优化"——转置整个计算而非仅转置数据。
当他堵住这个方法后,Claude 取得了进展但最初无法找到最高效的解决方案。然而,使用 Claude Code 的"ultrathink"功能(更长的思考时间预算)测试发现,它最终解决了问题,甚至知道 bank 冲突技巧。
根本问题:"许多平台的工程师都在数据转置和 bank 冲突上挣扎过,因此 Claude 有大量训练数据可借鉴。"
尝试 2:走向更怪异
寻找人类推理能超越 Claude 更大经验库的问题,Tristan 将目光投向 Zachtronics 游戏——以不寻常、高度约束的指令集为特色的益智游戏,迫使非传统编程。
他使用微型、高度约束的指令集设计谜题,优化目标是最小指令数。测试显示 Claude Opus 4.5 在他实现的中等难度谜题上失败,尽管同事验证了不太专业的人类仍然超越 Claude。
关键的是,他特意"没有提供可视化或调试工具。起始代码只检查解决方案是否有效。"构建调试工具成为测试的一部分——"关于如何投资工具的判断是评估信号的一部分。"
结果与权衡
新的编程作业显示出希望。分数与候选人过去的工作质量良好相关。他最有能力的同事之一"得分高于迄今为止的任何候选人"。
然而,权衡是真实的:"我仍然为放弃了原始版本的逼真度和多样化深度而难过。但逼真度可能是我们不再拥有的奢侈品。原始版本之所以有效,是因为它模拟了真实工作。替代方案之所以有效,是因为它模拟了新颖工作。"
开放挑战
Anthropic 公开发布原始编程作业供无限时尝试。人类专家"在足够长的时间范围内对当前模型保持优势。有史以来提交的最快人类解决方案大大超过了 Claude 即使在大量测试时算力下取得的成绩。"
性能基准
以模拟机器的时钟周期衡量:
- 2164 周期: Claude Opus 4 在测试时算力框架中数小时后
- 1790 周期: Claude Opus 4.5 在普通 Claude Code 会话中(约匹配最佳人类 2 小时表现)
- 1579 周期: Claude Opus 4.5 在测试时算力框架中 2 小时后
- 1548 周期: Claude Sonnet 4.5 在扩展测试时算力后
- 1487 周期: Claude Opus 4.5 在框架中 11.5 小时后
- 1363 周期: Claude Opus 4.5 在改进的测试时算力框架中数小时后
提交详情
优化至 1487 周期以下(超越 Claude 的发布性能)的人可将代码和简历提交至 performance-recruiting@anthropic.com。
或者,候选人可通过 Anthropic 的标准流程申请,使用新的抗 Claude 编程作业。"我们很好奇它能维持多久。"