据报道的 Anthropic 系统设计面试题:LLM 推理批处理、模型权重分发、设计文档评审、提示词 Playground 和聊天。

由 The Forward Deployed 编辑团队撰写并审校

本题库涵盖据报道 Anthropic 软件、ML 和基础设施岗位会考的系统设计题池。前沿部署流程有其独特的形态,已在 Anthropic FDE 面试指南中单独介绍。当你的面试流程包含系统设计环节,或者你在权衡 Anthropic 的工程岗位与 FDE 岗位时,请使用本页面。下面每道题都链接到完整的分析与解答。在打开题目之前,先大声把答案说出来。

格式和题目本身同样重要。据报道,这一轮面试在共享文档中进行,你需要用打字来阐述思路,而不是画框图。面试官会挑一两个深度领域细看,其余部分略读。如果泛泛地过一遍需求、实体、API、Schema 和规模,就会把时间浪费在错误的地方。尽早找到深度领域,并以此为主线展开。

题目列表

设计一个跨 GPU 批处理请求的 LLM 推理 API

题池中被提及最多的一道题。客户端发送生成请求,无论是否流式。将它们路由到模型副本并进行批处理,让 GPU 保持忙碌,同时尾部延迟保持在有界范围内。

要足够熟悉现代推理服务的基线,能够把它讲清楚。Continuous batching 允许新请求加入正在运行的解码批次。Paged KV-cache 内存让长度差异很大的请求共享 GPU 内存。Prefill 和解码分开处理,因为解码是瓶颈。接下来是运维方面的追问。GPU 启动需要几分钟,那么在新容量启动期间,谁来保护前门?一个出色的答案会监控队列深度,随着队列增长按层级收紧速率限制,并优先丢弃免费层流量。还要预期关于批次中途 GPU 故障、重试的幂等键,以及安全检查在流水线中位置的追问。

一个更窄的变体固定了 GPU 的接口约定。你拿到一个不可更改的批处理调用,只需围绕它设计调度层。练习时,假设每次调用最多接受 50 个输入,且总是在 200 ms 内返回,流量为每秒 2,000 个请求。一个满批次每 GPU 每秒可服务 50 / 0.2 = 250 个请求,所以 8 个 GPU 是下限。如果批次只装一半,就需要 16 个。你得到哪个数字取决于批处理器。当队列达到 50 或短超时到期时(以先到者为准)就刷新批次。低流量时批次永远装不满,超时就成为控制延迟的主要手段。

用 成本与延迟来准备,其中涵盖批处理、缓存和延迟预算。反复练习 GPU 数量估算,直到不看笔记也能完成。

阅读完整的分析与解答。

评审一份设计文档

一种较新的形式。面试官会分享一份设计文档,有时接近团队的真实工作,给你时间阅读,然后要求你进行评审。它出现在工程经理面试流程中,并且越来越多地作为高级工程师的系统设计环节。上文提到的推理服务器就是一个被报道过的题目。

像高级工程师在真实的评论线程中那样进行评审。对风险进行排序,把伤害最大的那个放在最前面。指出缺失的内容,因为这份文档是故意不完整的。提出一个带有具体权衡的替代方案,并注意作者何时已经考虑过某个角度。如果文档固定了某个约束,例如固定批处理或不支持自动扩缩容,就在该约束内进行评审。一份清单可以加快阅读速度:目标与非目标、备选方案、规模与成本、故障模式、上线与回滚、可观测性、安全性、迁移。代码库与学习演练可以在代码上训练同样的技能。

阅读完整的分析与解答。

设计一个提示词游乐场

有标注的系统设计,以产品设计的方式运行。部署图是给定的且固定的,流量很低。重点在于产品本身:提示词、版本、对话和分享。

快速勾勒出数据模型。让版本不可变并带有父指针;这样无需锁就能实现历史记录、分支和撤销。分享占据这一小时的大部分时间:公开链接、需要登录的链接、按账户的显式访问权限,以及撤销。说明撤销后权限可以保持过期状态多久,以及为什么这个界限是可以接受的。另一个深入方向是非常大的提示词。将正文保存在对象存储中并通过引用访问,直接从客户端上传,在版本之间存储差异并定期做快照,并对长文本进行懒加载渲染。最后以导出收尾,即将一个保存的版本变成一次真实的 API 调用。提示词与结构化输出涵盖了提示词版本应当冻结哪些内容。

阅读完整的分析与解答。

将一个大型模型检查点分发到数百台主机

一个源节点保存着一个数百 GB 的检查点。集群中的每台主机都需要一份副本,而且要快。每条链路的带宽是固定的,并且一些主机会在分发过程中发生故障。

先给出下界。作为练习,取一个 400 GB 的检查点、10 Gbps 的链路(1.25 GB/s)和 200 台主机。每台主机都必须下载整个文件,因此没有任何设计能突破 400 / 1.25 = 320 秒。朴素拉取方式会把 200 份副本全部压过源节点的一条链路:64,000 秒,接近 18 小时。二叉树方式——每台主机向两个子节点转发完整副本——每层耗时约 640 秒,共七层,接近 75 分钟。把文件拆分成块,每块一落地就立即转发,这样所有链路同时工作。这种集群式方案就能逼近 320 秒的下界。

把这个演进过程口头讲出来。推导过程比在第一分钟就说出 BitTorrent 更能加分。然后是追问:分块哈希、慢节点或失效节点,以及在没有中央协调器的情况下如何恢复——节点之间共享各自持有哪些分块,并优先拉取最稀缺的缺失部分。最后一个考察点是就绪状态。只把流量路由到已加载并验证了正确模型版本的主机。部署涵盖了就绪门控和回滚。

阅读完整的分析与解答。

设计一个一对一聊天系统

仅限一对一消息,每个用户一台设备。这一轮涵盖消息投递、在线状态、离线排队、历史记录,以及消息总线的选型。

把持久化放在每个收件人的收件箱表中,在发布之前先写入。实时传输层因此可以做到快速且有损,重连的客户端会清空自己的收件箱。在线状态来自心跳和一个会过期的键;在每次心跳时都写入最后在线时间会把数据库压垮。Kafka 的讨论是最常被反馈容易卡壳的地方。要了解分区、消费者组与再均衡、同步副本与领导者选举,以及日志压缩,并能论证什么时候用 Redis pub/sub 就够了。只承诺会话内的顺序性。

阅读完整的分析与解答。

为不同敏感级别的利益相关方设计一个数据平台

大规模摄取数据、处理数据,并为有不同需求和不同权限级别的团队提供服务。不需要专门的机器学习知识。

涵盖支持重放和模式演化的批处理与流式摄取。保证转换是幂等的。将数据存储在湖仓层中,并做分区和成本分层。按行和列控制访问,将其与每个数据集的敏感度标签绑定,并保留审计记录。根据每秒事件数、每事件字节数和保留期来估算存储容量。坏数据需要一个“爆炸半径”式的回答:你如何检测它、隔离它,以及如何回填。安全与合规涵盖了分类和访问控制。

阅读完整的分析与解答。

设计一个机器学习配置系统

一个偏研究方向的选项。设计(有时部分实现)训练运行的配置:模式、继承与覆盖、校验,以及可复现性。用具体的方式定义可复现性。解析完整配置、对其做哈希、固定环境和数据版本,并证明同一次运行在几周后可以在另一台机器上重新启动。然后论证简短灵活的配置与严格的类型化校验之间的权衡。

阅读完整的分析与解答。

哪些内容可以跨题库通用

请边做边把你的数字和权衡写入文档,因为面试官阅读的正是这份文档。在前几分钟内选定你要深入的方向。准备好关于 GPU、带宽和存储的粗略估算,因为七道题中有三道依赖于此。关于这些技能的面向客户版本,请回到 Anthropic FDE 面试指南。

常见问题

Anthropic 会问哪些系统设计问题?

据反馈的问题包括:带 GPU 批处理的 LLM 推理 API、设计文档评审、提示词演练场、在集群间分发模型检查点、一对一聊天系统、带敏感度分级的数据平台,以及研究轨道上的 ML 配置系统。其中推理 API 被提及最多。请与你的招聘人员确认具体形式。

Anthropic 的推理 API 面试题是什么?

你需要设计一个 API,接收生成请求并在多块 GPU 上进行批处理,在保持尾部延迟有界的同时让 GPU 保持忙碌。面试会深入考察连续批处理、KV 缓存内存、prefill 与 decode、GPU 数量估算,以及在新 GPU 启动期间如何保护服务。上面的页面详细讲解了 GPU 数量的计算。

Anthropic 的 FDE 流程会用到这些问题吗?

FDE 流程的核心是客户对话模拟、Claude 部署设计环节和价值观面试。本页的问题据反馈来自工程系统设计环节,但它们训练的是同样的设计能力。参见 Anthropic FDE 面试指南。

下一篇:Google 面试指南