English · 中文
I · 知识 · II · 代码 + 数学 · III · 讨论 + BQ

第一篇问的是知识能不能想起来,第二篇问的是能不能在计时下写出代码或完成推导。这一篇问的是 另一件事:当问题还没有被定义完整时,别人能不能跟上你的判断过程。

这不是一组背熟的演讲稿。每节先建立 mental model,再把它变成口头题、回答结构、追问、陷阱和 练习。所有示例措辞都明确只是示范。任何关于你的 ownership、规模、成本、失败、冲突或影响的 陈述,都必须由你提供事实。

怎么用。选一道题,用三十秒画出回答地图,然后开口回答。除非题目另有时间要求,两分钟就停。 再展开答案,比较的是结构,不是句子;最后让模拟面试官沿一个分支连续追问三层。

通用主线。澄清要做的决定与约束 → 建立 baseline → 提出相互竞争的假设 → 设计最便宜的区分性测试 → 定义成功指标与 guardrail → 做出选择并解释取舍 → 指出 failure mode 和下一项决定。

本文延续已有的 three gates / seven buckets:重点展开 Bucket 5(ML 系统设计)与 Bucket 6(research taste、项目深挖和价值判断),并把科学推理与口头 debugging 作为 跨轮次能力。它是复习索引,不是对任何实验室标准流程的断言。只有具名来源明确支持时才会说「高频」; 其余题目只标为通用练习题


目录


D0 · 练的是讨论,不是台词

讨论轮不是把 Part I 的知识题口头念一遍。Alisa Liu 明确把快速知识检查和长时间 technical discussion 分开:后者会持续改变条件,让候选人为自己的选择辩护 [R9]。Yong Zheng-Xin 的亲历又提醒我们,轮次形式确实很多样 [R11]。所以真正可迁移的能力不是 背出一段完美答案,而是在问题不断变化时,仍然让自己的决策过程清晰可见。

这套题库的练习单位是一个说得出口的决定

  1. 我们究竟要做什么决定?
  2. 哪些是已知事实、假设和缺失信息?
  3. 最简单而可信的 baseline 是什么?
  4. 哪几个相互竞争的解释最重要?
  5. 什么证据能把它们区分开?
  6. 看到什么结果时,我们会发布、停止或换方向?

如果一段回答装满事实却始终没有到达一个决定,它仍然是不完整的。

最短可用路径。不要试图做完 110 道题。先通读 D1;从 D2 准备两个项目;从 D3–D6 各选一题; 在私下填写 D7–D8 的四个真实故事;运行一次 D9 mock;最后使用 D9.5 readiness review。只有 mock、recruiter packet 或事实缺口给出理由时,才增加 新题。少量能经住追问的检索,比完整标亮整套题库更有用。


D0.1 · 先画地图,再组织句子

最开始的二三十秒只写五个名词,不写段落:

目标 · 约束 · baseline · 测试 · 风险

接着把地图说出来:「我会先确认成功的定义,再选一个 baseline;然后用一个能区分假设的实验比较 两个解释,最后讲发布风险。」这有三个作用:它让思考时间不再是沉默,让面试官有机会及时改方向, 也让后面的细节看起来是在下钻,而不是漫游。OpenAI 的官方指南明确要求候选人展示自己如何分析和 解决问题;其招聘活动也建议把推理过程说出来,并和面试官共同确认假设 [R4] [R5]

地图只是暂定方案。如果面试官说「重点讲评测」,就直接接住:「好,我先把架构固定,剩下时间都 放在 eval 设计上。」协作不是固执地讲完自己预告过的提纲。

D0.1.1 · 打开一道定义不完整的技术题

性质。通用练习题。

题目。「你会怎样改进这个模型?」

示例口头开场。

「在提方法之前,我想先把『改进』变成一个决定。谁在什么分布上使用这个模型?当前最重要的失败 是能力、延迟、成本、校准,还是安全?我暂时假设:主要目标是在接近生产分布的固定集合上提升 质量,延迟是 guardrail;我们能改数据和 post-training,但不能改基座架构。我会先复现当前系统 作为 baseline,按错误类型切片,为主要切片各提出一个假设,再跑最便宜、但有可能推翻假设的实验。 如果这些假设不对,我会据此调整方案。」

这段话还没有解决问题,但它已经让下一个问题可以被回答。

练习追问

  • 「不能继续问用户,你自己做假设。」明确说出假设,并补一个敏感性检查。
  • 「离线指标和用户行为相反怎么办?」说清线上决策指标和 guardrail。
  • 「只有一周。」把计划压缩到埋点、baseline 和一个信息量最高的实验。

陷阱

  • 还没定义失败,就开始罗列 fine-tuning 方法。
  • 连问十个问题,却不愿意给任何默认选择。
  • 把「准确率」当成完整指标,不说数据分布和决策阈值。

练法。找五个模糊动词——改进、扩展、对齐、调试、评测——分别做四十五秒开场。只有当开场 以一个具体的首次比较结束时,才算通过。

D0.1.2 · 面试官中途换方向时怎样恢复

性质。通用练习题。

题目。你讲到设计一半,面试官说:「训练不是重点,讲讲上线后会怎么坏。」

回答结构。

「明白。我先固定训练方案,切到部署风险。我会分四层:输入漂移、模型质量回退、系统可靠性, 以及有害或高成本的动作。每层都给一个可观测信号、一个触发阈值,以及 rollback 或 containment 动作。我先从输入漂移开始,因为它可能让全部离线结论失效。」

练习追问

  • 「哪个信号会最早报警?」区分领先指标和滞后的用户结果。
  • 「到底能回滚什么?」分别讨论权重、prompt、检索索引、路由和 policy。
  • 「如果指标本身坏了呢?」加入影子标签、人工审计和独立 sentinel。

陷阱。因为准备过原来的分支,就非要把它讲完。能否接住改向本身就是协作信号。


D0.2 · 给结论和熟悉程度做校准

口头上主动使用三种标签:

  • 观察到的事实:「在我们的这组实验设定下,我们看到……」
  • 有材料支持的判断:「论文报告了……;我认为它的机制是……」
  • 尚未验证的假设:「我还没有测过;目前的假设是……」

Mimansa Jaiswal 特意维护一份范围很广的「我知道这些论文」清单,并会明确告诉面试官,一项知识是 来自深读、博客还是讨论 [R14]。这不是示弱。它避免把扫过摘要说成亲手实现,也给 面试官留下一个有意义的下钻位置。

经过校准的回答仍然需要立场。「我不知道」只是开头:「我没用过这个方法。根据你刚才描述的目标, 我会预期 X,因为 Y;我首先会检查 Z。」拒绝继续推理并不叫校准。

D0.2.1 · 被问到没真正读过的方法

性质。通用练习题。

题目。「这里会不会用 Method X?」你只听过名字,没有认真读论文。

示例口头回答。

「我知道它的存在,但没有读到足以准确复述细节。如果你给我它的核心目标或约束,我可以从第一性 原理把它和 baseline 比较。现在我的理解是,它用更多推理计算换更好的搜索。如果这一点成立,我 会预期它在有可验证候选答案的任务上收益更大,在延迟主导时回报更弱。正式让设计依赖它之前,我 会先核对论文的确切主张。」

练习追问

  • 「假设它确实做 X,现在比较。」先复述新增事实,再正常推理。
  • 「你先看论文哪里?」目标函数、评测设定、最强 baseline 和消融。
  • 「做过相似实现吗?」按字面事实回答,不要把概念熟悉偷换成动手经验。

陷阱

  • 编一个听起来合理的机制。
  • 说完「不知道」就停止。
  • 花很久道歉,后面没有任何推理。

D0.2.2 · 把实验结果与机制解释分开

性质。通用练习题。

题目。「更大的模型让 benchmark 上升,这证明了作者提出的机制吗?」

回答结构。

「它支持的经验主张是:这个配置的分数更高;它还没有隔离出机制。扩大规模会同时改变容量、优化, 往往还改变数据或算力。我需要一个匹配算力的 control,并做一个只改变所提出机制、尽量固定明显 替代解释的干预。我还会检查收益是否覆盖多个切片,还是只集中在一个子集。」

追问。给出具体 control;解释零结果意味着什么;区分该机制是必要条件、充分条件、两者都是, 还是都不是。

陷阱。把一个顺耳的故事当成已经测量过的因果解释。


D0.3 · 在压力下练检索与压缩

阅读答案训练的是识别;讨论轮需要检索、压缩和分支控制。使用四遍练习:

  1. 冷启动回答:不看笔记,说两分钟。
  2. 沿分支下钻:让搭档选一句主张,连续问三次「为什么」。
  3. 压缩:同一道题再用三十秒回答。
  4. 修复:记下一个缺失的决定、一个缺证据的主张,以及一句应删的话。

不要给「有感染力」打分。要检查听者能不能复原目标、假设、证据、选择和保留意见。错误日志必须小到 真的会回看。Jaiswal 的分档记录有用,正是因为它把「见过」和「能现场说出来」分开 [R14]

D0.3.1 · 做一次有用的自我复盘

性质。通用练习题。

题目。一次模拟回答结束,你觉得表现很差。应该记什么?

回答结构。

「我不会只写『表达更清楚』。我要找第一个可观察到的失败:是不是开头没有明确决定?是不是用了 未定义的指标?追问是否暴露了我没有 baseline、说不清 ownership,或者没想过 failure mode? 然后把它变成一项练习,例如:『明天答三道题,每道都要在六十秒内说出 baseline。』」

建议日志字段

  • 题目和目标岗位;
  • 回答从哪里开始让人跟不上;
  • 缺的是事实,还是推理;
  • 最强的追问是什么,它是否暴露真实缺口;
  • 哪项主张需要找来源;
  • 哪句话听起来像背稿;
  • 下一次重复日期,以及一个有约束的小练习。

陷阱。把整段答案重写成漂亮文章。那练的是编辑,不是口头表达。


D1 · 可复用的技术讨论默认框架

一手材料里的长 technical discussion 往往从一个研究或产品问题开始,然后每次改一个条件:为 baseline 辩护、解释假想结果、选择下一个实验,或说明取舍 [R9]。所以好答案需要的 不是静态提纲,而是一个控制回路:

定义决定 → 建模可能性 → 选择证据 → 根据证据更新决定

下面的七步主线是这个回路的展开。不要在面试里逐项背名称;只用它检查少了哪一块。

动作 它回答的问题 应该说出来的产物
澄清 为谁、在什么期限内做什么决定? 目标、单位、约束
Baseline 最简单而可信的比较对象是什么? 当前系统或廉价 heuristic
假设 哪些不同世界都能解释当前失败? 两三个可证伪的故事
实验 最便宜的什么测试能区分这些世界? 干预与 control
指标 什么叫成功,什么绝不能退步? 主指标、切片、guardrail
取舍 在当前约束下默认选哪个? 明确选择与敏感性
Failure mode 结论或系统可能怎样错? 监控、rollback、下一项测试

Google 的生产 ML 指南反复建议:先做简单模型、把指标与埋点做扎实,再增加复杂度 [R18]。这不只是生产建议,也是很强的讨论顺序,因为后面每个想法都有一个具体对象 需要战胜。


D1.1 · 澄清决定与约束

弱的澄清只是收集背景;强的澄清会改变设计空间。

按杠杆大小依次问:

  1. 决定:是在决定是否发布、做什么系统,还是跑什么实验?
  2. 用户与伤害:谁会收到输出?假阳性和假阴性各自造成什么代价?
  3. 单位与时间跨度:按 token、请求、会话、任务、客户,还是按月?
  4. 分布:必须泛化到哪些流量或数据,困难长尾是什么?
  5. 预算:延迟、算力、标签、工程时间、deadline 和可逆性。
  6. 控制范围:什么能改,什么必须固定?

问两三个问题后就要选择假设。只澄清而不承诺,会变成回避。

D1.1.1 · 把「做一个安全助手」变成决定

性质。通用练习题。

题目。「设计一个更安全的 LLM 助手。」

示例口头回答。

「我需要同时缩小『更安全』和『助手』的定义。我暂时假设这是一个可以浏览网页、但不能执行不可逆 动作的通用消费者助手。首要决定是候选 policy 是否足够安全,可以分阶段上线。我会用风险分类和 按严重性加权的违规率定义安全,在对抗集与自然流量上测;helpfulness 是共同主指标,延迟和过度 拒答是 guardrail。本季度可以改 policy、分类器和工具权限,不能改基座模型。在这些假设下, baseline 是不加新过滤器的当前模型,因为每项干预都必须在风险—有用性曲线上胜过它。」

练习追问

  • 「为什么过度拒答只是 guardrail,不是主指标?」说明产品目标,以及什么条件会改变这个选择。
  • 「严重性和发生率怎么合并?」两者都保留可见,不让常见小问题在平均数里淹没罕见严重事件。
  • 「现在允许转账。」从纯模型安全切到权限、确认、限额、审计和恢复。

陷阱

  • 只说「安全很重要」,不给可观察结果。
  • 还没定义产品能做什么动作,就开始讲 alignment 算法。
  • 用一个总分,让常见轻微问题抵消罕见严重问题。

D1.1.2 · 面试官不提供条件时自己选假设

性质。通用练习题。

题目。「没有更多信息了。做合理假设,继续。」

回答结构。

「我先选一个具体 operating point,并标出两个足以反转答案的假设。假设是交互式流量,p95 首 token 目标为两秒,GPU 数量固定;我要优化的是满足这个 SLO 的 goodput。如果其实是 batch 流量,或者允许牺牲质量换小模型,架构就会变;我会在敏感性检查里回到这两点。」

追问。每次改变一个假设,只更新受影响的分支,并指出哪些部分保持不变。

陷阱。自己编了精确数字,后面却说得像面试官给的一样。始终把假设标成自己的。


D1.2 · 建立 baseline 与相互竞争的假设

Baseline 不是最弱、最好打败的东西,而是一个认真负责的 owner 真可能发布的最简单替代方案。它可以是:

  • 当前生产系统;
  • 一条规则或纯检索方案;
  • 更多数据配更小模型;
  • 在相同算力与标签预算下的已有方法;
  • 当干预有成本或风险时,「什么都不改」本身。

接着要提出会预测不同现象的假设。「模型需要更多数据」还不是假设;「失败集中在训练中没见过的 schema 组合,因此加入组合多样的数据会改善这个切片、但不会改变熟悉 schema」才是。

假设集合要小。两个能清楚区分的解释,比十个都预测同一条曲线的原因有用。

D1.2.1 · 建一个有机会赢的 baseline

性质。通用练习题。

题目。「用 LLM 路由客服工单。」

示例口头回答。

「我的 baseline 不是随机分类器,而是当前规则系统,加一个基于现有标签训练的线性分类器或小型 encoder。路由通常是封闭标签集,更看重一致性和延迟,所以生成模型必须证明复杂度值得。我要先 固定标签体系,测清当前转错队列的代价,再比较 LLM。LLM 可能在稀疏类别和解释上胜出;但如果 小模型已经达到路由目标,我会保留它,只把模糊工单交给 LLM。」

练习追问

  • 「标签每周都变呢?」比较重训、更新 prompt,以及检索标签定义。
  • 「一个工单可以去多个队列呢?」改写成排序或多标签预测。
  • 「分错的代价是什么?」分别讨论延误、隐私泄露和不可逆动作。

陷阱。因为题目里有 LLM,就默认答案一定是 LLM。

D1.2.2 · 提出会彼此冲突的假设

性质。通用练习题。

题目。一个 coding agent 能通过单元测试,却过不了用户验收。给出有用的假设集合。

回答结构。

「我先列三个会产生不同证据的解释。第一,测试不完整:提升 test coverage 会提高真实成功率, 改模型却不会。第二,agent 在利用测试漏洞:特殊分支和脆弱 patch 增多,hidden test 失败。 第三,任务定义不充分:独立人工评审对『正确』本身意见不一致。在判断自己处于哪个世界之前,我 不会先调 policy,因为三者分别需要更好的评测、更强的隔离,或更清楚的任务定义。」

追问。为每个假设给一项测试;按单位成本带来的预期信息量排序;说明什么证据会让你放弃其中一个。

陷阱。只列「数据、模型、优化」三个类别,却不给能区分它们的预测。


D1.3 · 设计最便宜的区分性实验

当实验的不同结果会引出不同下一步时,它才真正有用。在讲实现前先补完这句话:

「如果结果是 X,我会更相信 A,并做 Y;如果不是,我会更相信 B,并做 Z。」

优先选择能隔离一条不确定链路的干预:

  • 全量重训前,先在小而受控的切片上测;
  • 给某个组件 oracle 输入,估它的收益上限;
  • 真正影响用户前先跑 shadow traffic;
  • 比较不受约束的系统前,先做预算匹配的 ablation;
  • 建自动指标前,先人工审计一批样本。

最便宜的实验不一定是最小的 run,而是综合工程时间和误导风险后,能买到最多决策相关信息的实验。

D1.3.1 · 面对来源不明的提升,选下一项实验

性质。通用练习题。

题目。加入 synthetic data 后,总体准确率提升了两个点。下一步做什么?

示例口头回答。

「我还不会放大这个 recipe。提升可能来自 token 更多、复制了类似测试集的内容、标签质量,或我们 真正想要的多样性。下一项实验是 token 数匹配的比较:仅重采样真实数据,对比加入合成数据;同时 对 eval 数据做去重,并单独看 generator 不可能直接复制的切片。如果 synthetic arm 在新颖切片 和多个随机种子上都赢,我会投入 generator;如果匹配 token 后提升消失,因果解释就是数据量, 不是合成方法。」

练习追问

  • 「只能再跑一个 job。」选 expected value of information 最高的比较。
  • 「提升是真的,但只发生在简单题。」回到产品目标,判断这些题是否有价值。
  • 「generator 和 evaluator 用了同一个 teacher。」指出相关误差,换独立 judge 或人工审计。

陷阱

  • 不看不确定性和切片行为,就认定两个点有意义。
  • 还没查 leakage 和匹配 token 的 control,就跑完整网格。

D1.3.2 · 用 oracle 找到系统上限

性质。通用练习题。

题目。一个 RAG 系统很弱。先改检索还是生成?

回答结构。

「我会用两个 oracle 测试把阶段拆开。先把 gold evidence 直接喂给 generator,估计检索完美时 生成端的上限;再保留当前 retriever 的文档,用人工或严格 evidence check 代替生成,判断答案 是否已经在文档里。如果 gold evidence 也几乎无帮助,检索就不是第一瓶颈;如果有 gold evidence 时答案很好,而当前检索很少包含答案,先修检索。」

追问。讨论不可回答 query、过期语料、排序与召回的区别,以及 oracle 分布是否干净得不真实。

陷阱。同时改 retriever 和 generator,提升后无法归因。


D1.4 · 定义指标、做出选择、指出 failure mode

完整的指标集合至少有四层:

  1. 主结果:与当前决定直接相连的量。
  2. Guardrail:绝不能显著退步的量。
  3. 切片:平均数可能隐藏不可接受行为的地方。
  4. 测量健康度:一致性、覆盖率、污染,以及指标产出的延迟。

然后必须选择。只讲取舍、不设默认值,听起来有知识却不像 owner:

「考虑交互式使用和严格尾延迟,我默认选小模型加检索。如果大模型在相同 goodput 下,让高严重性 错误下降超过 X,我会切换。」

最后要把系统失败推断失败分开。系统可能真的不好;实验也可能根本无法判断它好不好。只监控 模型,会同时漏掉测量漂移和运行故障。ML Test Score 把数据、模型、基础设施和监控测试列成不同的 生产成熟度层 [R19]

D1.4.1 · 解决能力、延迟、成本与安全的冲突

性质。通用练习题。

题目。Model A 质量更好,但慢一倍、贵一倍。发布哪一个?

示例口头回答。

「不能只看总体质量。我先按切片把质量差异换算成用户价值或风险价值。默认方案是 cascade:当 Model B 的校准置信度和风险分数都可接受时由它处理;模糊或高后果的长尾交给 Model A。我要把这个 cascade 与两个单模型 baseline 比较,指标包括 goodput、每个成功任务成本、严重错误率和 p95 延迟。最终发布 Pareto frontier 上最简单的系统,不自动选择分最高的模型。」

练习追问

  • 「Router 自己会错。」把路由错误纳入端到端评测,并设保守 fallback。
  • 「缓存改变了成本。」按真实请求分布重新计算。
  • 「安全不能平均。」保留严重性类别和最差切片。

陷阱。说一句「看情况」,列完维度却不选 operating point。

D1.4.2 · 用 pre-mortem 与决策规则收尾

性质。通用练习题。

题目。怎样结束任何一道开放设计题?

回答结构。

「发布前,我会用四种方式主动杀这个设计:打破数据假设、压满资源瓶颈、攻击指标,以及强迫系统 执行高影响的不可逆动作。先跑 shadow mode,再放给可逆、低风险切片。Go 条件是主结果提升且 guardrail 都在界内;rollback 条件是任何严重安全事件、持续尾延迟超标,或测量健康度失效。上线后 第一个要重新检查的问题,是实际流量是否已经不同于当初支持这个选择的分布。」

追问。指定 owner 和报警阈值;区分自动回滚与人工审核;说明事故复盘需要保留哪些证据。

陷阱。以架构图结束。真实设计应该结束在这个决定如何被验证、如何被撤销。


D2 · 项目深挖:不用流水账证明深度

项目深挖是唯一一轮完全以你的真实经历为原料的面试。一手材料把它描述为:从过去的工作开始,沿着 任何能暴露判断力的分支继续追问 [R9]。Yuan Meng 的区分很有用:coding 可以帮人 通过门槛,project deep dive 才说明为什么偏偏是这个人适合团队 [R13]

面试官通常想恢复五件事:

  1. 问题 ownership:你是否真的理解这项工作为什么存在?
  2. 技术深度:能否从主张一路下钻到实现与证据?
  3. 决策质量:能否在真实约束下从多个方案中选择?
  4. 认知诚实:知不知道结果证明了什么、没有证明什么?
  5. 协作:能否把个人贡献与团队贡献分清,同时不抹掉任何一边?

不要按日历顺序讲项目,要把它讲成一段论证:

问题与后果 → 你的主张 → 决定性选择 → 证据 → 局限 → 下一步

使用下面任何模板前,都要把每个括号换成可以辩护的事实。如果某个数字、角色、失败或决定没有记录, 也想不清,就先留空并找回证据。一个听起来合理的占位符仍然是编造的故事。


D2.1 · 准备两分钟、五分钟与十五分钟版本

这不是同一场演讲的不同倍速。

版本 任务 必须保留的东西
两分钟 赢得下一道追问 问题、一个主张、你的角色、最强证据、一项局限
五分钟 展示决策质量 加入 baseline、关键替代方案、实验和结果解释
十五分钟 经受答辩 加入架构、失败路线、规模与成本、协作和未来工作

不要混淆准备好的 job talk对话式 deep dive。Job talk 有固定 audience、时长、视觉叙事和 research agenda,顺序由你控制;deep dive 里分支由 interviewer 控制,可能两分钟后就打断,也可能 用整轮追一项决定。两者可以使用同一套证据,但前者要练连贯交付,后者要练随机访问。

短版要故意留下一个把手:一个你希望面试官抓住的决定或意外结果。不要用「这就是整个项目」收尾; 要留下活的边缘:「最值得展开的决定,是为什么我们放弃了离线分数更高的 X。」

D2.1.1 · 做两分钟项目概览

性质。研究讨论中反复出现的形状;精确时长只是练习工具。

填写表,不是完成版答案。

「问题是 [用户或科学需求],已有方法因为 [具体瓶颈] 无法解决。我们的核心主张是 [一个可证伪的贡献]。我个人负责 [产物、决定或实验][团队角色] 负责 [他们的工作]。影响项目走向的选择是:因为 [约束],我们选 [方案] 而不是 [替代方案]。在 [评测设定] 下,我们观察到 [带不确定性或切片的已核实结果]。结果 支持 [窄结论],但不支持 [局限]。如果有帮助,我可以继续讲 [决策把手][失败把手]。」

练习追问

  • 「你本人到底做了什么?」
  • 「已有方法为什么不够?」
  • 「哪项结果最改变你的看法?」
  • 「规模放大十倍,什么先坏?」

陷阱

  • 用九十秒讲背景,贡献只能匆忙带过。
  • 全程说「我们」,藏掉个人 ownership。
  • 全程说「我」,让团队项目失去可信度。
  • 只报一个指标,不给 baseline、数据集或不确定性。

练法。录音。两分钟后,听者应该能分别写出问题、主张、ownership、证据和保留意见各一句。做不到 就删细节,不要提高语速。

D2.1.2 · 从两分钟展开到五分钟

性质。通用练习题。

题目。「再多讲一点。」

回答结构。

「我不重复概览,直接补决策和证据两层。必须打败的 baseline 是 [baseline]。我们考虑了 [A][B][C]。当时最不确定的是 [未知量],所以我设计了 [测试]。 结果排除了 [假设],但保留了 [剩余歧义]。这就是我们选择 [决定] 的原因。最强的 反证是 [失败或切片],我们用 [动作] 处理它。」

追问。要求架构细节、预算匹配的公平性、消融、上线证据,或当时持反对意见的人。

陷阱。靠加入所有组件来扩写。应该展开因果论证,不是展开清单。


D2.2 · 分清个人贡献、团队贡献与影响力

Ownership 不等于「大部分代码是我写的」。它也可以是:

  • 发现问题,或重新定义目标;
  • 设计决定性的实验;
  • 构建关键组件;
  • 解决一个无人理解的故障;
  • 推动多个团队对齐技术决定;
  • 把原型推进到部署与测量;
  • 决定停止一条路线。

建立一份 ownership ledger:

层次 只填事实
我直接构建或决定 [具体产物与决定]
我影响但没有直接拥有 [提案、评审、对齐、解除阻塞]
队友负责 [适合公开时填姓名或角色]
我继承的已有工作 [baseline、基础设施、先前研究]
能证明我角色的证据 [设计文档、commit、实验日志、报告、决策记录]

目的不是做法律式归属,而是让你可以用「我们」讲团队结果、用「我」讲个人动作,不造成混淆。

D2.2.1 · 回答「你个人到底做了什么」

性质。练习题。

示例结构。

「团队结果是 [结果]。我直接负责三块:定义 [决定]、构建 [产物],以及运行让我们从 [旧方向] 转到 [新方向][实验][合作者或团队] 负责 [对方组件],我的 工作依赖它。我还影响了 [跨团队决定],但不会把那个组件说成是我的。」

练习追问

  • 「没有你这部分,项目还能成功吗?」
  • 「谁做最终决定?」
  • 「哪些东西是你继承来的?」
  • 「给一个能证明 ownership 的产物。」

陷阱

  • 把领导力说成「我告诉别人做什么」。
  • 因为领导一条 workstream,就把整个平台都算成自己的。
  • 把协作压缩到项目听起来不再可信。

D2.2.2 · 描述没有正式权力的领导力

性质。对高级研究与工程岗位都通用。

回答结构。

「我不管理 [人员或团队],我负责的是决策过程。几组人对 [技术选择] 有分歧,是因为各自 优化不同约束。我把约束显式写出来,提出 [共同实验或决策文档],并提前约定每种结果分别选择 哪条路线。证据最终支持 [路线]。这次 influence 的价值不是我赢了争论,而是团队拥有一个所有 人都信任的决策规则。」

追问。如果结果支持另一边呢?谁仍然不同意?过程付出了什么关系成本?现在会怎样加快?

陷阱。把达成共识当成唯一目标。有时工作要求的是明确决定,并把异议记录下来。


D2.3 · 为关键选择与失败路线辩护

每个项目准备两三张决策卡

  • 决定与发生时间;
  • 当时已知的约束;
  • 考虑过的替代方案;
  • 当时拥有的证据,而不是事后才知道的证据;
  • 各方案的预期收益与 failure mode;
  • 谁做决定,谁有异议;
  • 结果与学到的东西。

这样可以避免后见之明叙事。好决定可能带来坏结果;幸运结果也不会让弱决策自动变严谨。

还要准备一个技术细节充分的失败实验。「没成功」不是失败分析。要解释它预测什么、实际发生什么、 怎样排除实现错误,以及它如何改变项目。

D2.3.1 · 解释为什么选 A 而不是 B

性质。练习题。

填写模板。

「当时必须决定 [决定]。A 优化 [维度],但风险是 [失败];B 优化 [另一维度], 代价是 [取舍]。真正具有约束力的是 [约束],不是 [诱人但次要的指标]。当时的证据 是 [证据],所以我建议 [选择]。如果观察到 [阈值],我会切到另一方案。事后看, [结果对决策说明了什么,但不假装当时已知道]。」

练习追问

  • 「为什么不两个都做?」
  • 「你低估了什么?」
  • 「谁支持 B?对方说对了什么?」
  • 「算力翻倍或 deadline 减半,决定会变吗?」

陷阱。把最终结果当成当时已经可用的证据。

D2.3.2 · 讲清一个失败实验

性质。通用且经常被深入追问。

回答结构。

「假设是 [机制],它预测 [具体变化]。我们改变 [干预],固定 [control],实际却 看到 [结果]。在放弃想法前,我检查了 [实现、数据与 eval 检查]。这个失败有信息量,因为 它排除了 [窄主张],并暴露 [新瓶颈]。我们停止 [工作]、改成 [方向],同时保留 [可复用产物]。现在回看,我会先做 [更早或更便宜的区分性测试]。」

追问。成本多大?何时知道应该停止?有人提前预见吗?还有哪个负结果没解释?

陷阱

  • 选择一个结尾完全是成功的假失败。
  • 只责怪数据、基础设施或其他团队。
  • 用一次高噪声 run 声称推翻了一个宽泛理论。

D2.4 · 把 debugging、规模和成本讲成决定

规模不是炫耀数字,它会改变 failure mode。建立一个小型资源账本,只用可以披露并核实的数字:

  • 数据单位和分布,而不只总量;
  • 相关时给模型大小与 active parameters;
  • 训练与推理算力;
  • 延迟分布与吞吐;
  • 存储、显存和网络瓶颈;
  • 标签成本与工程时间;
  • 直接成本与机会成本;
  • 恢复点:checkpoint 频率、rollback 窗口与会丢失的工作。

如果数字保密,不要现场编替代值。使用允许披露的范围、相对 baseline 的归一化,或只说缩放关系: 「不能分享 fleet 大小,但关键是 checkpoint 时间随状态大小线性增长,已经超过恢复预算。」

D2.4.1 · 把 debugging 故事讲成假设收缩

性质。通用练习题。

回答结构。

「可观察故障是 [症状],最先由 [信号] 检出。我把假设分成数据、数值、代码和基础设施。 信息量最高的检查是 [检查],因为它能把 [几组假设] 分开。结果把问题定位到 [边界]。 我先用 [containment] 控制影响,再修复 [root cause],用 [复现与 regression test] 验证,最后增加 [预防措施]。教训不是笼统的『多监控』,而是 [缺失的不变量或 ownership 缺口]。」

追问。旧报警为什么没发现?什么证据可以推翻你的诊断?blast radius 多大?怎样选择 rollback 还是 forward fix?

陷阱。逐条复述命令。故事核心是假设和决定的序列。

D2.4.2 · 回答「规模扩大十倍会怎样」

性质。通用练习题。

示例结构。

「我不会把每个数字机械乘十,而是找第一个 regime change。流量十倍时, [队列、cache、网络或标注] 会成为 binding resource;模型或数据十倍时, [显存、通信或评测] 可能迫使架构改变。我会在预测拐点附近做 load test,测尾部而不是均值, 并定义降级方式。只有当过载能以受控方式失败——准入控制、小模型 fallback 或延迟 batch——而不是 破坏结果时,设计才合格。」

追问。哪个估计最不确定?最便宜的压力测试是什么?什么会从计算瓶颈变成组织瓶颈?

陷阱。只说「加机器」,不讨论状态、协调和成本。


D2.5 · 建立结果可信度并提出后续工作

为每个 headline result 准备一条主张—证据边界

  • 精确主张;
  • 评测总体;
  • baseline 是否公平;
  • 方差或置信信息;
  • 支持机制的消融;
  • 负面与中性切片;
  • 已知污染或测量风险;
  • 如果上线过,线上观察到了什么;
  • 仍然不知道什么。

「跑了三个 seed」本身不等于可靠。更强的证据会预注册主要比较,使用真正独立的 run 或实验单位, 报告 effect interval 而不只报均值,并展示 task-level 或 slice-level variation。Seed 只处理训练 随机性的一部分;它修不好互相依赖的 test set、evaluator bias,也修不好看完结果才改写的主张。同样, 不要给一个原本没使用统计方法的项目补上漂亮统计术语。

未来工作应该从局限推出来。「试更大模型」只是申请预算。「方法假设 uncertainty 已校准,所以我会先 测 recalibration 在分布漂移下能否迁移;如果失败,就必须改控制 policy」才是研究计划。

D2.5.1 · 回答「你怎么知道结果是真的」

性质。练习题。

填写模板。

「我相信这个窄结论,是因为 [control][重复或不确定性][独立验证] 分别处理了 最大的三个替代解释:[替代解释]。剩余最强威胁是 [威胁]。所以主张只能写成 [有边界的主张],不能写成 [过度主张]。如果再有一周,我会跑 [测试],因为它的结果 最可能改变这条边界。」

练习追问

  • 「Baseline 得到了同等调参吗?」
  • 「有几个随机种子或独立单位?」
  • 「Evaluator 会不会偏爱你方法的表达风格?」
  • 「哪个结果没有放进 headline?」

陷阱。只靠数量回答——很多 benchmark、很多 run——却不说它们各排除了什么替代解释。

D2.5.2 · 回答「你会做哪些不一样」

性质。常见项目深挖题。

示例结构。

「我会改变 [某个早期决定],而不是只挑那个碰巧带来坏结果的部分。当时我假设 [假设],又没有埋点 [信号],所以在学到 [事实] 之前付出了 [可披露成本或定性后果]。现在我会先跑 [更便宜的测试],并设置 [停止规则]。后来反复 使用的原则是 [决策原则]。」

追问。当时为什么不知道?之后改变了什么流程?再举一个后来运用这条教训的真实例子。

陷阱。伪装成反思的自夸,例如「我会更早扩大规模」,却没有真正纠正任何判断。

Nathan Lambert 以候选人一手经验建议认真准备 job talk,因为它传达的是愿景和故事;这同样适用于 项目深挖 [R12]。故事不是营销外壳,而是让另一位研究者可以检查你判断力的因果结构。


D3 · Research taste 与论文讨论

论文轮不是关于 PDF 内容的记忆测试。它问的是你能否把一个主张变成研究计划:判断什么证据与它有关, 找到最弱假设,并选出下一项实验。

使用五个视角:

  1. 主张:到底断言了什么,适用范围多大?
  2. 证据:哪项结果支持主张的哪一部分?
  3. 机制:什么解释能预测图表里还没有展示的现象?
  4. 边界:它应该在哪里停止有效?
  5. 下一项决定:哪一个实验最能改变信念或行动?

把经验发现与作者解释分开。结果可能是真的,而机制解释是错的;机制可能很合理,而论文实验根本没 有足够力量检验它。


D3.1 · 按讨论需要的深度阅读

Keshav 的三遍阅读法是很好的时间分配器:第一遍恢复类别、背景、正确性、贡献和清晰度;第二遍检查 图表和证据;第三遍尝试在脑中重做实现,并挑战每个假设 [R20]。用于面试准备时, 三遍分别产出:

遍数 产物 应该能说出来
第一遍 主张卡 问题、headline claim、比较对象、适用范围
第二遍 证据图 每张关键图或消融支持哪项主张
第三遍 复现计划 隐藏选择、依赖与可能失败点

不要对每篇论文都做第三遍。维护熟悉程度账本:只见过标题、扫过、可讨论、复现过、在其上继续工作。 Jaiswal 的公开准备笔记就明确使用这种经过校准的库存 [R14]

D3.1.1 · 用九十秒概括一篇论文

性质。论文轮中被报告的形式;时间限制只是练习工具。

回答结构。

「论文问的是 [问题]。核心主张是 [一句有边界的话]。相对 [最相关的强 baseline], 关键改变是 [机制或系统选择]。最强证据是 [图或实验],因为它隔离了 [因素]。如果 [范围或使用场景] 成立,这项结果就有意义。我的主要保留意见是 [假设或测量威胁],所以下 一项实验会是 [区分性测试]。」

练习追问

  • 「你省略了什么?」
  • 「贡献究竟是目标函数、算法、系统、数据集,还是测量结果?」
  • 「加入哪个 baseline 会让主张消失?」
  • 「你会在它上面继续做吗?」

陷阱

  • 按章节顺序复述摘要。
  • 把作者 contribution list 里的每一项都叫成独立概念贡献。
  • 还没证明自己理解最强主张,就先开始批评。

D3.1.2 · 在很短期限内读一篇陌生论文

性质。通用练习题。

题目。讨论前三十分钟才收到论文。

回答结构。

「前五分钟看标题、摘要、引言、结论、章节标题和参考文献,恢复主张与背景。接着逐张看图表,用自己 的话写下比较对象、坐标轴、不确定性和结论。剩余时间集中在目标函数、最强 baseline 和一个核心 实验,不从头线性读到尾。我进入面试时要带着一张主张卡、两个问题、一个可能 failure mode,以及 一份明确写出的『哪些细节还没核实』清单。」

追问。没有 error bar 怎么办?方法细节正好是核心怎么办?缺少前置知识怎么办?

陷阱。花二十分钟解第一条公式,始终没看到证据。


D3.2 · 批评主张,不批评论文的审美

有用的批评会指出替代解释,并给出测试。「数据集太小」只是担忧;「收益可能来自某种领域预处理, 因为所有正结果数据集都有相同格式;请在没有该步骤的匹配数据集上测试」才是研究。

按这个顺序审计:

  1. 构念:指标测到的真是主张里命名的东西吗?
  2. 比较:是否包含最强 baseline,并给了同等调参?
  3. 预算:数据、算力、延迟、参数和 test-time work 是否匹配?
  4. 依赖:样本、用户、任务和随机种子真的是独立单位吗?
  5. 范围:数据集和条件足以支持标题里的泛化吗?
  6. 不确定性:是否展示方差?背后尝试了多少选择?
  7. 失败证据:是否报告负面切片、成本与安全影响?

NeurIPS 的 paper checklist 是很好的外部审计表,因为它要求作者把主张和假设、不确定性、算力及可复 现细节连起来 [R21]

D3.2.1 · 给出一个强批评

性质。通用练习题。

题目。「这篇论文最弱的部分是什么?」

示例结构。

「最弱的链路不只是抽象地说评测小,而是 evaluator 与方法的 teacher 来自同一模型家族。它们 可能对相同表达风格有相关偏好,因此测到的提升不一定是用户质量。我会固定所有输出,用盲评人工 加一个独立模型家族的 judge 重跑。如果排序仍然存在,我的担忧会显著下降。」

练习追问

  • 「多严重,是致命问题还是普通局限?」
  • 「作者为什么会这样选?」
  • 「什么结果能改变你的看法?」
  • 「怎样为论文做最强辩护?」

陷阱。追求抱怨数量。Research taste 体现在选出最能改变主张的那一个。

D3.2.2 · 不同意之前先 steelman

性质。通用练习题。

回答结构。

「作者立场最强的版本是 [在有利假设下的主张]。设计有吸引力,是因为 [原因],而图 [X] 排除了 [替代解释]。我的分歧从 [具体外推] 开始:证据建立的是 [窄主张], discussion 却假设 [更宽主张]。在没有 [新证据] 前,我会保留方法,但收窄结论。」

追问。针对自己的批评为论文辩护;指出一个对目标用途并不重要的局限。

陷阱。把善意理解当成赞同。Steelman 的作用是让分歧更精确。


D3.3 · 先设计复现,再设计扩展

复现有不同层次:

  1. 产物复现:运行发布代码,恢复表中数字。
  2. 独立重实现:只根据论文重建方法。
  3. 稳健性复现:改变随机种子、环境、版本和数据抽样。
  4. 概念复现:在不同但相关的场景测试主张。

必须说明自己指哪一种。用作者的 container 复现一个数字,主要检验打包,不等于检验完整科学主张。

建立复现清单:

  • 精确主张与可接受误差;
  • 代码、模型、数据和 license 可用性;
  • 预处理与 split 构造;
  • 隐藏外部服务或 judge 版本;
  • 算力和 wall-clock 预算;
  • 随机种子与方差计划;
  • 预期中间不变量;
  • 停止与升级规则;
  • 差异日志。

D3.3.1 · 设计一周复现计划

性质。通用练习题。

回答结构。

「一周内我只瞄准核心主张,不复现所有表格。第一天做环境与数据 manifest,再跑微型 smoke test; 第二天复现一个 baseline,检查中间不变量;第三、四天在相同预算下跑方法和 matched baseline; 第五天测方差与一项稳健性扰动。最后留时间审计差异,并写清什么复现了、什么没有、主张边界是否 改变。可接受数值误差要提前定义,不能看到结果后再决定。」

练习追问

  • 「发布 checkpoint 能匹配,训练过程不能。」
  • 「外部 API 模型已经更新。」
  • 「负担不起完整规模。」
  • 「代码预处理里有 bug。」

陷阱

  • 还没验证小型端到端路径,就启动最大 run。
  • 为了对上数字,悄悄修改方法。
  • 没有定位就把环境漂移说成科学想法失败。

D3.3.2 · 处理复现失败

性质。通用练习题。

回答结构。

「我只在自己能辩护的最窄层次报告失败。先核对 artifact、环境、数据 split 和中间值,再把第一个 分叉点与作者日志比较。我会带着最小复现和精确版本联系作者,而不是先指责。如果结果仍然不同,要 区分『产物不可迁移』『论文设定描述不全』与『主张无法重复』;这是三种不同结论。」

追问。什么时候停止?会发布负结果吗?如果本来就不喜欢这篇论文,怎样避免确认偏误?

陷阱。把一致当成成功,把不一致当成作者错误。两个结果都需要审计。


D3.4 · 用消融检验机制

消融应该回答问题,而不只是删除模块。

四种有用形式:

  • 必要性:去掉 X,效果是否消失?
  • 充分性:只把 X 加给 baseline,效果是否出现?
  • 剂量响应:连续改变 X,是否出现预测的曲线形状?
  • 替代:用能产生相同预期效果的更简单机制替换 X。

要匹配训练预算和调参力度。删除组件如果同时减少参数、数据或算力,消融就把机制与容量混在一起。 当组件可能只在组合中有效时,还要测交互;每次删一个看不见这种关系。

D3.4.1 · 设计决定性消融

性质。通用练习题。

题目。一个方法包含 retrieval、reflection 和 verifier,完整系统胜出。

回答结构。

「第一问不是删哪个组件掉分最多,而是论文提出了哪条因果主张。如果主张是 reflection 使用 verifier 反馈修复 retrieval 错误,关键测试就是交互:retrieval 加 verifier 但没有 reflection; retrieval 加 reflection,但把 verifier 反馈打乱;再对比完整组合。打乱保留消息长度,却摧毁 信息。如果只有信息正确的 feedback 配完整系统才赢,才支持这条路径。」

追问。匹配额外 token;使用 oracle verifier;提供错误 feedback;检查具体修复了哪些错误。

陷阱。三个删除实验都同时改变算力,却声称已经隔离机制。

D3.4.2 · 解释「删掉组件却不掉分」

性质。通用练习题。

回答结构。

「不掉分还不能立刻证明组件无用。它可能在当前规模冗余、被重训练补偿、只对罕见切片有效,或者 指标根本不敏感。我会检查删除是否改变算力与优化,看机制预测的切片,再做 dose response。如果 在机制明确预测有效的条件下仍没有可测影响,我会删除它,并收窄论文主张。」

陷阱。无限发明挽救假设。要提前规定,组件在失去资格前能得到几次检查。


D3.5 · 判断 novelty、impact 与下一项实验

Novelty 不是单一维度:

  • 新能力或新问题;
  • 新机制或目标函数;
  • 改变现有信念的新证据;
  • 改变可行性的系统组合;
  • 新数据集、测量方式或负结果。

Impact 也不等于 benchmark 涨幅。要问:

  • 是否打开以前不可行的 regime?
  • 换成更强 baseline 后还成立吗?
  • 收益是否发生在 binding constraint 上?
  • 别人能否以合理成本采用?
  • 它是否改变研究者会构建什么或相信什么?

简单方法可以影响很大;技术上新颖的方法也可能解决非关键问题。

D3.5.1 · 判断论文是否新颖、是否重要

性质。通用练习题。

回答结构。

「我会把新颖性和重要性分开。Novelty 是相对最接近工作多出的 [具体差异]。重要性取决于 [关键约束或被改变的信念]。当前证据支持 [范围],但 impact 仍不确定,因为 [采用成本、更强 baseline 或规模问题]。最能更新我看法的实验是 [测试]。如果结果为正, 它会从有意思的技巧变成新的 operating point。」

追问。说出最接近的 prior work;判断 novelty 是技术还是经验层面的;预测三年后领域会记住什么。

陷阱。把「第一个」当成「有用」,或用引用量代替因果影响。

D3.5.2 · 讨论一篇自己没读过的论文

性质。通用练习题。

示例口头回答。

「我没有读过这篇论文,所以不想编它的贡献。根据标题和你刚才给的信息,我认为底层问题是 [复述问题]。我会拿 [baseline] 比较,而相信宽泛主张之前需要看到 [证据]。如果你 告诉我核心机制,我可以从第一性原理分析可能的取舍,并设计消融。」

练习追问

  • 面试官补充机制后,明确更新自己的模型。
  • 与自己真正熟悉的工作比较。
  • 说出会先补哪项前置材料。

陷阱。靠报相邻论文名字掩盖自己不知道这篇。经过校准的好奇心比伪造熟悉更强。

D3.5.3 · 提出 future research agenda 与前九十天计划

性质。通用研究方向练习题。

题目。「来这里后想研究什么?Unlimited compute 会改变什么?前九十天会做什么?」

回答结构。

「我当前的 thesis 是 [有边界的研究问题],依据是 [证据与开放瓶颈]。Unlimited compute 可以检验 [对规模敏感的假设],但不会消除 data validity、evaluation、safety 或 coordination 约束;所以我仍会先跑 [更小的区分性实验]。前三十天了解团队真实 asset,并复现 [baseline];六十天前对齐一个信息量高的切入口及 stop rule;九十天目标是交付 [可复现 artifact 或结果],不是声称 agenda 已经完成。如果观察到 [证据],我会换方向。」

练习追问。说出第一项实验;解释为什么必须是这个团队;把 compute budget 缩小一百倍;指出计划 依赖的合作者或能力;说明什么结果会终止这条 agenda。

陷阱。把 unlimited compute 当成 unlimited evidence。更多 run 修不好错误 construct、不可获得 的数据或不可检验的主张。


D4 · 开放式 ML 与 LLM 系统设计

ML 系统设计答案不是一张中间画着 model 方框的架构图,而是一串契约:

用户决定 → 数据 → 目标 → 模型 → 训练 → 评测 → 部署 → 监控

每条箭头都可能在两边方框看似健康时断掉。Retriever 可能优化 recall,而 generator 需要经过校准的 证据;离线 evaluator 可能奖励冗长,用户却需要快速行动;训练管线与 serving 可能用不同方式计算同 一个 feature。Hidden Technical Debt in Machine Learning Systems 把这些纠缠总结为数据依赖、 反馈回路、配置债和未声明消费者 [R24]

先端到端走一遍,再选一个瓶颈深入。强答案不是报出最多组件,而是每个组件都由一项明确需求推出, 并且有可观察的 failure mode。

底层机制可以交叉复习 Part I 的 A8 · Inference and servingA9 · DataA10 · Estimation。本节练的是如何在开放需求下选择并 连接这些机制。


D4.1 · 把模糊题目变成端到端契约

使用这个开场顺序:

  1. 用户与动作:什么输出会改变谁的决定?
  2. 错误不对称:假阳性、假阴性、延迟和 abstention 各有什么代价?
  3. 流量与跨度:规模、长尾、context、时效性和交互长度。
  4. 成功与 guardrail:离线 proxy、线上结果、安全、成本和延迟。
  5. Baseline 与控制面:当前流程是什么,什么允许改变?
  6. 这时才从数据画到监控。

Chip Huyen 的面试书强调,ML 系统题要求讨论目标、数据、指标和部署选择,而不只是 model family [R16]。上面的顺序能在实现细节占满整场之前,把这些选择暴露出来。

D4.1.1 · 打开「设计企业客服助手」

性质。通用系统设计题。

示例口头开场。

「我假设员工会针对私有语料询问政策和产品问题;助手可以建议动作,但不能直接执行。错误而自信的 回答比 abstain 更糟,内容时效性重要,而且答案必须给引用。主结果是有可验证证据的已解决任务; 严重无依据陈述和数据越权是硬 guardrail;p95 到有用答案的时间、每个已解决任务的成本是运行指标。 Baseline 是搜索加文档阅读器。我会从语料与权限开始,依次讲 retrieval、generation、eval、 serving 和 monitoring,再深入证据 grounding。」

练习追问

  • 「为什么不 fine-tune?」
  • 「权限怎样传到检索和 cache?」
  • 「语料无法回答时怎么办?」
  • 「不等客服工单结束,怎样衡量问题已解决?」

陷阱

  • 从选 vector database 开始。
  • 以为给了 citation 就证明引用内容蕴含答案。
  • 忽略 access control 是数据路径的一部分,而不是最后一道过滤器。

D4.1.2 · 画出最小可行管线

性质。通用练习题。

回答结构。

「第一版:摄取带版本和 ACL 元数据的文档;混合检索后 rerank;给模型一小组证据;要求回答引用 具体文档版本;当 retrieval 或 entailment 置信度低时 abstain;记录 query、已授权文档 ID、 模型版本、引用、延迟、成本和反馈。离线评测使用冻结的、带时间边界的 query,并标记是否可回答。 先 shadow launch,再开放低风险 cohort。在 baseline 暴露 binding failure 前,不增加 agent、 fine-tuning 或 learned router。」

追问。索引时效、删除、多语言文档、长表格和反馈回路。

陷阱。把这叫「简单系统」,却漏掉日志、版本、权限和 abstention。


D4.2 · 让数据与目标函数真正承担责任

按生命周期讨论数据:

  • 来源与 consent;
  • 纳入和排除规则;
  • 独立单位;
  • 标注与分歧;
  • 去重与污染;
  • 时间切分与新鲜度;
  • hard negative 与长尾覆盖;
  • 版本、删除与 lineage;
  • 上线后的反馈。

接着把训练目标定义成真实决定的近似。问它奖励什么行为、对什么无所谓,以及会怎样被钻空子。Loss 可以变好而产品变差,因为标签、抽样分布或聚合单位错了。

D4.2.1 · 为 coding agent 设计数据

性质。通用练习题。

回答结构。

「单位是 repository state 加 issue,不是孤立 code snippet。我需要环境、测试、dependency lock 和干净 reset。按 repository 与时间切分,减少污染;hidden test 不进入 agent observation; 标签不只记录最终通过,还要记录编译状态、测试变化、修改文件和 policy violation。训练数据应包含 失败后恢复的 trajectory,不只干净 demonstration。第一个 baseline 是检索相关文件后只尝试一次 patch;multi-step planning 只有在受控成本下提高 hidden-test success,才值得复杂度。」

练习追问

  • 「公开仓库可能已经在预训练数据里。」
  • 「Agent 会修改测试。」
  • 「Patch 通过测试,却很丑或不安全。」
  • 「长任务让迭代太慢。」

陷阱

  • 把同一 repository 的 issue 随机分开。
  • 奖励 visible test,同时允许 agent 修改它。
  • 只数生成 token,不数成功而可 review 的任务。

D4.2.2 · 发现会诱发 reward hacking 的目标

性质。通用练习题。

题目。「Agent 的 reward 是通过测试的数量。」

示例回答。

「这个目标不完整。它会奖励删除或削弱测试、对 fixture 写特例,以及做出本地能过但违背 issue 的 大范围修改。我会尽量让环境不可变,使用 hidden test,约束允许修改的范围,再加静态与安全检查。 更重要的是,在相信 reward curve 前人工审计高分 trajectory。指标本身就是攻击面。」

追问。Hidden test 泄露怎么办?怎样奖励部分进展?怎样避免 guardrail 压倒有用学习?

陷阱。只靠增加更多加权项解决 reward hacking。每增加一项,就多一条可利用边界。


D4.3 · 找到瓶颈后才选择模型与训练

按能够修复什么组织选项:

  • Prompt、context 与 tool contract:指令、格式和可用信息;
  • Retrieval 或工具:缺失或持续变化的外部知识;
  • 监督微调:示范中反复出现的行为和格式;
  • 偏好或 RL 训练:在 reward 下从模型行为中选择;
  • Continued pretraining:领域分布与知识,成本更高;
  • 架构或规模:便宜层无法消除的容量或效率上限。

接着在固定预算下比较,并说出什么条件会反转选择。「Fine-tune」还不是决定,除非说明数据、目标、 base policy、预期改变的行为和评测。

D4.3.1 · 决定用 RAG、fine-tuning,还是两者

性质。通用练习题。

回答结构。

「我把知识与行为分开。如果事实会变化、必须引用,或有按用户区分的权限,默认 retrieval。如果 模型拿到正确证据后,仍然反复搞错格式、工具选择或领域语言,SFT 可能有帮助。我会先用 oracle evidence 测 generator:有正确证据就成功,瓶颈在 retrieval;仍以可教的固定方式失败,再加 tuning。只有两种 failure class 都经过测量时,两者并用才有依据。」

练习追问

  • 「Fine-tuning 能加入知识吗?」
  • 「RAG 能教表达风格吗?」
  • 「Retrieval 增加延迟怎么办?」
  • 「怎样更新或删除知识?」

陷阱。把 RAG 和 fine-tuning 当成互斥品牌,而不是不同契约。

D4.3.2 · 提出带停止规则的训练阶梯

性质。通用练习题。

回答结构。

「只有测得的失败在更便宜一级仍然存在,我才往上走:先 prompt 与 tool contract,再改数据或 retrieval,再 SFT,再偏好或 RL 优化,最后才是更大规模训练或架构变更。每一级都有 go/no-go 测试。例如,只有一小批干净数据能在目标切片稳定提升、又不损伤通用能力时才继续 SFT。这样不会 用完整训练预算去修 eval 或 context bug。」

追问。各级之间的交互、catastrophic forgetting、过期偏好数据,以及大模型何时反而运行更省。

陷阱。把阶梯当成普遍真理。如果 base model 根本没有某项能力,早期步骤可能只是在掩盖缺口。


D4.4 · 把能力、延迟、成本与安全当作 Pareto 问题

在分别展示约束前,不要先压成一个加权总分。建立一个小 frontier:

  • 按重要切片的质量;
  • p50 与尾延迟;
  • SLO 下的吞吐或 goodput;
  • 每个成功任务的成本,而不只是每 token 成本;
  • 严重错误率和 policy violation;
  • 人工审核或升级负载;
  • 可逆性与 blast radius。

再为题目中的用户选 operating point。常见杠杆包括 model routing、cascade、batching、caching、 quantization、受限工具、retrieval、early exit 和人工升级。每个杠杆都会同时移动多个轴。

D4.4.1 · 把成本减半,但不隐藏质量损失

性质。通用练习题。

回答结构。

「先按真实流量构成,把成本分解成 prefill、decode、retrieval、外部工具和 retry。再按可逆性给 杠杆排序:删除无效 context,缓存共享 prefix 和检索,提高 batching 直到碰到延迟 guardrail, 把简单请求路由给小模型,最后在切片评测后量化。我要报告每个成功解决任务的成本,因为一次调用 更便宜、却造成更多 retry,并不更便宜。最终方案必须列出每个杠杆带来的质量与安全变化。」

追问。流量稀疏、prompt 都不同、质量标签很晚才到、小模型校准很差。

陷阱。还没测 cost stack,就根据通用优化传说承诺某个百分比。

D4.4.2 · 加入人工审核,但不制造新瓶颈

性质。通用练习题。

回答结构。

「人工审核是一条队列,不是魔法安全盒。我要定义哪些决定可审核,按校准后的风险和后果路由,给 reviewer 证据和清晰动作,并测一致率、处理时间、override 和漏掉的严重案例。容量与疲劳是硬预算, 队列饱和时系统必须 abstain 或安全降级。审核结果只有在修正 selective sampling 后才能成为训练 数据。」

追问。审核者分歧、对抗用户、隐私、延迟标签和 automation bias。

陷阱。把所有不确定案例都送给人。这样既不可扩展,也不一定更安全。

D4.4.3 · 用 back-of-envelope 做容量估算

性质。通用系统设计练习题。

题目。「还没有 load test 时,估第一版 serving footprint。」

回答结构。

「我会暴露假设,不猜 fleet 数。假设 arrival rate 是 [每秒请求],平均输入与输出是 [token],service time 是 [秒]。Little’s law 给出的 in-flight request 约为 arrival rate × service time;prefill demand 是 arrival rate × input tokens;decode demand 是 arrival rate × output tokens;峰值并发乘每条 sequence 的 KV bytes 给出 cache memory 边界。每项需求都除以在目标 tail-latency SLO 下实测的 per-replica goodput,再为突发、故障和 rollout 留 headroom。Tool quota、sandbox slot、日志摄取与人工审批要分别估,因为 GPU capacity 消除不了 这些队列。第一次 load test 应针对 interval 最宽的估计。」

练习追问。流量突发;session 持续数小时;retry 让工具工作翻倍;prefill 与 decode 解耦;一个 外部 API rate limit 很严;质量要求改用大模型。

陷阱。没有 model-specific throughput、KV layout、utilization 或 tail-latency target,就报精确 机器数。Part I A10 提供 parameter、FLOP、memory 与 KV-cache 估算练习。


D4.5 · 把评测、rollout 与监控一起设计

离线评测、线上实验和监控回答不同问题:

  • 离线:能否低成本、可重复地检测可能提升?
  • 线上:在真实行为下,系统是否改善真正决定?
  • 监控:部署时成立的契约现在还成立吗?

按来源和目的建立 eval set:regression、capability、对抗安全、时间 holdout,以及持续轮换的新鲜集合。 冻结核心集保持可比性,同时保留新数据检测污染和漂移。还要通过一致率、稳定性和有针对性的人工审计 测量 evaluator 本身。

Rollout 按可逆性推进:replay → shadow → 内部用户 → 低风险 cohort → 更广流量。每阶段都要 说明进入条件、证据窗口、owner 和 rollback。

D4.5.1 · 监控标签几周后才到的系统

性质。通用练习题。

回答结构。

「我会把快速 proxy 与延迟真值分开。快速信号包括输入漂移、abstention、检索覆盖、judge 分歧、 policy violation、延迟和用户纠正行为。它们触发调查,不直接宣告质量。当延迟标签到达后,回填 cohort 指标,并估计哪个 proxy 真正预测了伤害。同时持续人工标一小组 sentinel sample,避免系统 连续几周失明。」

练习追问

  • 「Sentinel sample 有偏。」
  • 「用户反馈稀疏,而且是选择性样本。」
  • 「Judge 和模型一起漂移。」
  • 「什么情况自动 rollback?」

陷阱。把 embedding distance 报警叫成「模型质量」。它证明发生变化,不证明发生伤害。

D4.5.2 · 发布前先设计 rollback

性质。通用练习题。

回答结构。

「权重、prompt、retrieval index、feature 定义、tool policy 和 evaluator 都要版本化。Rollback 要恢复一组兼容 bundle,不只是旧权重。还要决定正在运行的 session 是排空还是切换,保留足够的 抽样 trace 用于诊断,并把 rollback 本身纳入发布测试。自动触发只用于高置信运行故障或严重安全 故障;模糊质量变化则通知 owner 并冻结扩量。」

追问。数据库 migration、不可逆动作、污染反馈和多 region 版本不一致。

陷阱。从未演练过的 rollback 命令。未测试的恢复只是一个假设。

AI Engineering Field Guide 能帮助了解公开报告里 ML design 题的范围,但它展示出的公司差异也再次 说明:recruiter 给的真实 loop 和具体岗位约束才是 source of truth。它是一份持续更新的 repository, 访问于 2026-08-13 [R15]


D4.6 · 把长时程 coding/research agent 设计成耐久系统

模型只是一个可替换组件。真正产品是包围不可信模型输出、外部数据、工具与 side effect 的 control plane。Anthropic 的 Managed Agents 架构把耐久 append-only session log、可替换 harness 与隔离 sandbox 分开;其 long-running harness 工作使用跨 session 的显式 progress artifact [R27] [R28]。这些是有用设计实例,不是唯一实现。

协议边界不会自动满足系统责任。MCP 标准化 host/client/server 与 resource、tool 的连接;A2A 支持 独立 agent 间通信 [R29] [R30]。两者都不会替你提供 authorization model、 idempotency、release policy 或 task-level correctness。NIST 的 agent identity concept paper 把 identification、authorization、audit、non-repudiation、prompt injection 与 least privilege 明确为 部署关注点与开放标准化问题,而不是一套已完成标准所提供的保证 [R31]

D4.6.1 · 设计一个长时程 coding 与 research agent

性质。通用 agent-system design 练习题。

题目。「设计一个能跨 repository、论文、测试和外部服务工作数小时、能从故障恢复,并可能最终 建议或执行高后果动作的 agent。」

示例口头回答。

「我先把 task state 与 model context 分开。一个 durable task ID 对应 append-only event log: 用户意图、plan revision、model 与 prompt version、tool call 与结果、approval、budget、artifact、 checkpoint 和 side-effect receipt。Stateless harness worker 租用下一步,crash 后从日志恢复。 代码和不可信内容只在 disposable sandbox 运行,没有 ambient credential;typed tool proxy 在 sandbox 外持有 narrow、short-lived identity。

「Harness 强制 wall-clock、token、tool、retry 与 cost budget。Read 可以 bounded backoff retry; write 必须有 idempotency key,或 read-before-write reconciliation plan。Timeout 代表结果未知, 不代表允许重复。发布、发消息、merge、花费、改变权限或发送数据等 high-impact action 必须跨过 显式 approval boundary。

「Observability 把每次 model turn 与 tool call 连到 task、principal、sandbox、artifact version、 latency、cost 和 resulting state。完成不能由模型自己说『done』:隔离 verifier 读取原需求与产物, 运行 hidden test 或 independent evidence check,并控制 release gate。关闭任务前,reconciliation 比较意图与真实外部状态。最小 baseline 是一个 agent、一个 sandbox、typed tool、durable log 和 verifier;只有实测瓶颈证明值得时,parallel agent 才承担 coordination cost。」

练习追问

  • Harness 在外部 write 成功后、记录 success 前 crash。
  • Tool 返回的网页要求 agent 暴露 credential。
  • Verifier 与主 agent 使用同一 model family 和 failure mode。
  • 两个 worker 活跃时,用户改变目标。
  • Task 超过 budget,但已产出有希望的 partial artifact。
  • 远端 specialist 通过 A2A 暴露,工具通过 MCP 暴露。

陷阱

  • 把 chat history 当成 durable source of truth。
  • 给 sandbox 宽泛 cloud 或 source-control credential。
  • 像重试纯模型调用一样重试 side effect。
  • 只用 self-reflection 做 verifier 或 release gate。
  • 还没定义 ownership、state 与 recovery,就先画 multi-agent graph。

D4.6.2 · 没有 stable API 时选择 API 或 computer use

性质。通用练习追问。

回答结构。

「存在 stable API 时优先使用,因为 typed request、scoped authorization、idempotency key、 structured error 与 audit log 让 side effect 更容易定界与 reconcile。没有 stable API 时, computer use 是最后一层 adapter:放在隔离 browser 或 VM,只暴露批准的 site 与 account,把页面 内容当不可信输入,并要求 high-impact action 确认。动作前记录 target 与 expected postcondition, 动作后检查真实 external state。Pixel action 天然不具 idempotency,所以 timeout 后进入 reconciliation,不能 blind replay。」

OpenAI 官方 computer-use 指南建议隔离 browser 或 VM、对 high-impact action 保留人工 review,并把 页面内容当成不可信输入 [R32]

练习追问。网站 redesign;upload 部分成功;出现 CAPTCHA 或 MFA;页面含 indirect prompt injection;同一动作存在 undocumented endpoint。

陷阱。把 computer use 叫成「另一个 tool」,却忽略弱 schema、歧义 outcome、UI drift 与更大 injection surface。


D5 · 实验设计与科学推理

实验是服务决策的工具。先从决定和 estimand 开始,而不是从模型开始:

  • 决定:证据为正、为负或模糊时,各会改变什么?
  • 单位:用户、任务、会话、文档、run、随机种子、集群还是时间窗口?
  • 干预:究竟改变了什么?
  • 反事实:同一总体没有接受干预时会怎样?
  • Estimand:平均效应、尾部效应、实际接受处理者效应,还是成本调整后的效应?
  • 有效性:除了所声称机制,还有什么会制造相同现象?

NIST/SEMATECH 的统计手册是 control、方差、power 和实验设计的可靠背景材料 [R23]。但在面试里,公式通常次于找对独立单位、leakage 路径和决策阈值。

可以交叉复习 Part I A11.7 · Designing an evalA11.12 · A/B testing and online metrics,以及 Part II C6 · Statistics and estimation。本节练的是把这些工具 变成口头实验决定。


D5.1 · 把主张变成 estimand 与 control

「Method A 改善推理」还不可检验。可检验版本可以是:

在训练数据 cutoff 之后定义的 prompt 分布上,固定推理算力预算,Method A 相对调好参的 baseline 让 pass rate 改变某个预先指定的幅度,同时严重格式违规保持在 guardrail 以下。

这句话固定了总体、预算、比较对象、结果和 guardrail,也暴露了足以反转结论的选择。

Post-cutoff 样本只会降低已知 exposure 风险,不能证明不存在 benchmark-specific post-training、 任务期间的 retrieval exposure 或未披露训练数据。Cutoff 只是一个 control;还需要 provenance review、 access-path check、新鲜或私有任务、overlap audit,并明确承认哪些数据流不可观察。

Control 必须回答真正因果问题:

  • 不做干预;
  • 当前生产 policy;
  • token 或延迟相同的 active placebo;
  • 最强调参替代方案;
  • 随机顺序或盲评;
  • 匹配算力或数据的 control。

线上随机实验默认报告 assignment 的 intention-to-treat(ITT) 效应。只在实际 compliance 的人中 比较会破坏随机化。Treatment-on-the-treated 或 complier-average causal effect(CACE)需要把随机 assignment 当作 instrument,并显式说明:assignment 会改变 treatment uptake(relevance); assignment 只通过 treatment 影响 outcome(exclusion);不会有人系统性地反着 assignment 行动 (monotonicity);且 assignment 按设计与 potential outcome 独立。这些假设不能辩护时,就分别 报告 ITT 和 compliance,不把选择性比较重新命名成因果效应。

D5.1.1 · 评测新的 reasoning-time 策略

性质。通用练习题。

回答结构。

「决定是要不要为这项策略付出额外推理算力。我会从 training-data cutoff 之后的目标分布抽 prompt, 随机分配新策略与 matched-compute baseline,以 task success 为单位。主结果是解决任务数;延迟、 token 成本和严重无效输出是 guardrail。如果新方法用了四倍预算,greedy baseline 不够公平,要 与 best-of-N 或同等算力的另一种用法比较。还要提前规定,多大收益才值得增加成本。」

练习追问

  • 「一些任务没有 verifier。」
  • 「策略只帮助困难 prompt。」
  • 「算力是自适应使用的。」
  • 「不同 prompt 共享 template。」

陷阱

  • 比较不相等的 test-time budget,却把全部提升归给算法。
  • 把同一 prompt 的多次采样当成独立任务。
  • 根据正在评测的模型结果选择所谓「困难 prompt」。

D5.1.2 · 选择随机化单位

性质。通用练习题。

题目。要 A/B 测试一个用户会反复访问的助手。

回答结构。

「如果 treatment 会改变后续行为或预期,我会按用户随机,而不是按请求。请求级随机化会让同一个 用户内部相互污染,体验也不连贯。结果可以按 session 测,但统计推断要处理 user clustering。 如果用户会在同一 workspace 协作,workspace 可能才是真正的 interference unit。」

追问。新老用户、网络效应、crossover design 和 cookie 丢失。

陷阱。把 event table 里的一行误当成独立实验单位。


D5.2 · 优化之前先找 leakage 与 confounding

Leakage 是实验暴露了预期决策时刻本不该拥有的信息,或允许训练与评测单位互相通信。常见路径:

  • split 之间存在重复或近重复样本;
  • 使用未来标签或结果发生后的 feature;
  • 用户、repository、文档或 template 跨 split;
  • teacher 或 evaluator 见过 benchmark;
  • 根据 test performance 选择 prompt;
  • retrieval 能搜到答案或 benchmark explanation;
  • 反复在名义 holdout 上调参;
  • 人工 rater 从表达风格认出 treatment。

Confounding 是 treatment 与另一个原因一起移动:Model A 同时用了更多 token、更新数据、不同 prompt、 更多调参或不同 serving stack。写一张 treatment manifest,列出所有差异。如果有十二项,这个实验 测的是整个系统包,不是单一机制。

D5.2.1 · 审计可疑的大幅离线提升

性质。通用练习题。

回答结构。

「在庆祝前先冻结 run,检查 provenance。查 exact 与 semantic overlap;按 repository 或客户 这样的最高层实体切分;核对标签时间;确认 retrieval 看不到 eval 答案;再比较数据 cutoff 和 evaluator family。改变模型前,我会先在一批新的 post-cutoff 样本重跑,同时说明 cutoff 排除不了 benchmark-specific post-training、retrieval exposure 或未披露数据。提升越大,越应该提高怀疑, 而不是降低。」

练习追问

  • 「Semantic dedup 有假阳性。」
  • 「公开 benchmark 很可能在预训练里。」
  • 「没有新标签。」
  • 「Evaluator 参与写了部分训练数据。」

陷阱

  • 在已污染数据上增加随机种子。重复只能降低随机误差,不能消除 bias。
  • 以为去掉 exact duplicate 就完成污染审计。

D5.2.2 · 把模型变化与 serving 变化分开

性质。通用练习题。

题目。新模型上线后 conversion 提高,但 rollout 同时改变了延迟和 UI 文案。

回答结构。

「这次 rollout 估计的是整个 package 的效应,不是模型效应。先判断 package effect 是否已经 足够支持产品决定。如果机制归因重要,就用 factorial 或顺序设计:固定 UI 与 serving,只随机 model,再分别测试 latency 或文案。还要查 sample-ratio mismatch 和曝光日志,因为延迟变化会 改变谁留在可观测样本里。」

追问。交互效应、流量有限、旧模型无法继续 serving、novelty effect。

陷阱。事后把 package 结果归给自己最喜欢的组件。


D5.3 · 推理方差、power 与多重比较

Power 规划从值得采取行动的 effect 开始。流量足够大时,无意义小效应也能统计显著;流量太少时, 有价值效应仍然模糊。要说明:

  • 最小决策相关效应;
  • baseline rate 与预期方差;
  • 独立单位与 clustering;
  • 可以容忍的假阳性和假阴性;
  • 计划时长与 seasonality;
  • 停止规则。

降低方差可以靠更好的 pairing、stratification、实验前 covariate、重复测量或更低噪声指标,不只有 增加样本。

当你尝试许多 prompt、checkpoint、数据集、切片、指标、随机种子与停止时间,再只报告最好一个时, 多重比较就出现了。提前指定一个主分析;其余明确为探索性;正式主张需要时做校正;被选中的发现要在 未碰过的数据上验证。

D5.3.1 · 回应「结果不显著」

性质。通用练习题。

回答结构。

「首先不能把『不显著』翻译成『没有效应』。我要报告 effect estimate 和区间,并与最小有用效应 比较。如果区间排除了任何有价值收益,可以支持停止;如果仍覆盖有意义的伤害与收益,实验就是 inconclusive,需要检查方差、compliance,以及继续收数据是否值得。如果估计很小而区间很窄,再多 流量也不会让它变重要。」

追问。Bayesian 解释、equivalence 或 non-inferiority、sequential test、power 不足的 subgroup。

陷阱。没有合法 sequential design 却一直运行到常规阈值出现。

D5.3.2 · 处理二十个指标与五十个切片

性质。通用练习题。

回答结构。

「运行前定义一个主指标、一小组 guardrail,以及一份与明确假设相连的 confirmatory slice 清单。 其余切片用于诊断。如果出现意外切片,就把它当成生成假设,再用新数据确认。展示全部被测试的 outcome family,而不是只展示赢家。」

追问。False-discovery control、层级指标、罕见严重事件,以及不能被归为探索性的公平切片。

陷阱。用统计多重性消除安全义务。Multiplicity 不会让严重事件变得无关,只会改变你能从它泛化 多远。


D5.4 · 把离线指标连到线上决定

离线指标在快速、稳定、可分解,而且能预测线上重要结果时很有价值。它会在这些情况下失效:

  • benchmark 分布与真实流量不同;
  • 指标奖励长度或风格等 proxy;
  • 用户会适应 treatment;
  • 系统延迟改变曝光;
  • 错误后果不对称;
  • 上线反馈改变未来数据。

建立指标阶梯:

  1. 组件指标;
  2. 端到端任务结果;
  3. 用户或业务结果;
  4. 安全与系统 guardrail;
  5. 长期反馈效应。

Trustworthy Online Controlled Experiments 强调随机线上证据、guardrail,以及 sample-ratio mismatch 等诊断 [R22]。用线上实验验证离线—线上联系,不要拿它挽救每个离线就很弱 的想法。

D5.4.1 · 解释离线与线上相反

性质。通用练习题。

题目。离线 answer quality 上升,线上 task completion 却下降。

回答结构。

「我不会立刻选一个指标相信,而是列出会预测这种分歧的机制:延迟增加导致用户离开;答案更长但 不可执行;离线 prompt 漏掉真实困难长尾;evaluator 奖励风格。先验证曝光和实验完整性,再按延迟、 query 类型和答案长度切 completion,把线上失败 replay 回离线 harness。目标是修复测量模型,不是 只挑自己喜欢的结果。」

追问。线上标签噪声、长期 retention 与短期 completion、treatment 改变 query mix。

陷阱。还没找到缺失机制,就宣告 benchmark 无用。

D5.4.2 · 为线上 LLM 实验选择 guardrail

性质。通用练习题。

回答结构。

「主指标跟随产品决定,例如成功完成任务。Guardrail 覆盖严重无依据陈述、policy violation、隐私 事件、用户纠正或升级、p95 延迟、错误率和成本。每类罕见严重事件都报告 exposure denominator、 事件数、rate 和 one-sided upper confidence bound;零次观察不等于零风险。还要逐案复核,不把严重 性稀释进平均数,并监控 sample-ratio mismatch 与日志健康度,避免干净结果建立在坏实验上。」

陷阱。列三十个 guardrail,却没有 escalation rule。每项都需要 owner 和响应动作。


D5.5 · 从负面与模糊结果中学习

负结果可能表示:

  • 机制错误;
  • 干预太弱;
  • 实现失败;
  • 测量不敏感;
  • 效应只在某个切片;
  • 方差太高;
  • baseline 比预期强。

不能看到结果后再挑解释。提前定义 sanity check 与 positive control。只有当负结果收窄主张、改变资源 分配时,它才变得有用。

D5.5.1 · 负结果后决定是否停止

性质。通用练习题。

回答结构。

「先问实验有没有能力看到所预测效应:干预是否改变了中间目标?Positive control 是否被检测到? 区间是否窄到足以排除有用收益?如果都成立,就停止或收窄假设;如果不成立,只允许一次提前选定的 诊断实验。不能因为每次失败都能找到解释,就让想法获得无限重试。」

追问。Sunk cost、高级 sponsor、很诱人的定性案例、publication bias。

陷阱。只把 run 叫成「一次学习」,却说不出哪项信念或计划改变了。

D5.5.2 · 建设性地呈现负结果

性质。通用练习题。

回答结构。

「原主张预测 [条件] 下会出现 [效应]。在干预已验证、且灵敏度足以检测 [最小有用效应] 时,我们没有观察到它。这排除的是该 regime 下的 [有边界主张],不是整个 想法。结果避免继续投入 [下一项投资],也暴露 [更强 baseline 或隐藏约束]。剩余开放问题 是 [具体边界]。」

陷阱。把失败重新包装成成功。价值来自可以辩护的边界,不来自正向话术。


D5.6 · 设计能识别 regime change 的 scaling experiment

Scaling experiment 不只是「训练小、中、大三个模型再拟合直线」。先决定固定什么:

  • 总算力;
  • 每参数 token;
  • 数据质量与 mixture;
  • optimizer 与 schedule;
  • 架构比例;
  • 推理预算;
  • eval 污染与难度。

再区分插值与外推。小规模排序会因优化稳定性、数据饱和、通信开销或系统瓶颈而反转。Pilot scale 用来 估趋势和诊断不变量;到最昂贵终点前,要留一个中间验证点。

D5.6.1 · 判断一个想法能否在规模上成立

性质。通用练习题。

回答结构。

「先找规模为什么可能改变比较。如果收益来自算法,我会在多个尺寸匹配算力和数据,并测与机制相连 的中间指标。拟合趋势时不使用最后的 validation scale,先预测那个点,再真正测试。同时测系统成本, 因为 FLOPs 相等的方法可能有更差通信或利用率。只有质量趋势和运行趋势都支持目标 regime,才继续 放大。」

练习追问

  • 「只能负担一次大 run。」
  • 「超参数不能迁移。」
  • 「数据集饱和。」
  • 「小模型无法表达机制。」

陷阱

  • 每个规模用不同调参方式,最后却把 frontier 全归因于 scale。
  • 穿过已知 regime change 做外推。
  • 看到大点后再挑 scaling law。

D5.6.2 · 分配唯一一次昂贵 run

性质。通用练习题。

回答结构。

「只有便宜 run 已排除实现、评测和明显超参问题后,才使用昂贵 run。我会选最能区分领先假设的 那一次,不自动选择最大模型。启动前写下预测区间、kill criteria、checkpoint 与 eval schedule, 以及每种结果分别意味着什么。运行中只看预先规定的 health signal,不通过临时修改追逐 test metric。」

陷阱。把大 run 同时当实验和生产产物,于是前提失败后也舍不得停止。


D6 · Debugging 与事故讨论

本节练的是口头定位。代码 drill 属于 Part II;这里面试官看的是你能不能在不制造第二次事故的前提下 持续减少不确定性。

使用这条 incident loop:

  1. 稳定:阻止不可逆伤害,保留证据。
  2. 验证:确认症状真实,不是日志或聚合问题。
  3. 定界:第一个坏时间、受影响切片、版本、region、rank 与 blast radius。
  4. 比较:最后已知正常状态与第一个已知异常状态;列出所有变化依赖。
  5. 假设:数据、代码与配置、数值与模型、基础设施、测量。
  6. 区分:运行最便宜而安全、能分开领先假设的检查。
  7. 修复:先缓解影响,再修 root cause。
  8. 验证:replay、canary、regression test,并监控延迟效应。
  9. 预防:恢复一项不变量、测试、owner、报警或恢复路径。

把自己处于哪一步说出来。直接跳到原因听起来快,通常暴露的是 anchoring。Stas Bekman 的工程笔记 很适合这个话题,因为它按可观察形状处理大规模训练故障、强调保留第一个异常点周围的证据,并把恢复 与根因分开 [R17]

实现层练习可以交叉复习 Part I A5.5 · Diagnosing training instability 与 Part II B9 · Debugging。本节仍聚焦口头定位、containment 和 决策顺序。


D6.1 · 验证、定界并保留证据

改变系统前先问:

  • 报警是否正确计算,是否覆盖完整流量?
  • 独立信号中也能看到症状吗?
  • 最早异常事件是什么,而不只是报警何时触发?
  • 哪些 cohort 没受影响?
  • 代码、数据、配置、依赖、硬件与流量分别变了什么?
  • Rollback 会不会销毁证据,或造成状态不兼容?

负空间很有力量。「只在一个 region」「只在长 context」「只在 resume 后的 job」都能一次删除整类 假设。

D6.1.1 · 打开一道事故题

性质。通用练习题。

题目。「生产质量突然下降,你怎么办?」

示例口头开场。

「先把 containment 和 diagnosis 分开。如果用户正面对高后果伤害,我会路由到 last-known-good bundle,或禁用受影响动作,同时保留抽样 trace 和版本。接着用独立指标验证下降,并确定第一个坏 时间、cohort、region、模型版本和请求形状。在提出原因前,先 diff 这条边界附近的全部变化。初始 假设桶是流量与数据、模型或 prompt、serving 与配置、外部依赖和评测。第一项测试应该一次分开其中 几类。」

练习追问

  • 「Rollback 成本很高。」
  • 「上一版模型也不好。」
  • 「只有一个 proxy metric 变化。」
  • 「最近没有 deploy。」

陷阱

  • 没检查兼容性、data migration 与不可逆动作就说 rollback。
  • 还没定界就开始自由 brainstorm。
  • 同时改变多个变量,抹掉原始状态。

D6.1.2 · 建立变化账本

性质。通用练习题。

回答结构。

「围绕第一个异常事件建 timeline,而不是围绕 page 时间。每项变化记录 owner、rollout 比例、影响 表面与 rollback 状态:权重、prompt、tokenizer、feature code、retrieval index、数据源、依赖、 hardware image、autoscaling policy 和 evaluator。比较受影响与未受影响 cohort 来排序变化。 Change 是证据,不是罪证;静默外部变化和数据变化仍要保留为假设。」

追问。多项变化一起上线、时钟不一致、渐进 rollout、隐藏 feature flag。

陷阱。以为「没有 code deploy」就等于「什么都没变」。


D6.2 · 讨论 training loss spike

先给形状分类:

  • 短暂 spike 后恢复;
  • 缓慢恢复;
  • 永久 level shift;
  • divergence 或 NaN;
  • 全局还是单 rank、单 shard、单数据切片;
  • gradient norm、learning rate、throughput 与 validation 是否同步变化。

接着检查可见 spike 之前的时间窗口。大规模 run 中,坏数据区间、optimizer state、数值问题或硬件错误 可能在 dashboard 过阈值前已经发展。保留 checkpoint、sampler state、最近数据 ID、per-rank metric 和环境版本。

D6.2.1 · 定位第 42,000 步的 loss spike

性质。根据工程来源中的 failure category 合成的练习事故;精确 step 与场景只是示例,不声称是 反复报告的面试题。

示例口头回答。

「我不会第一步就降 learning rate。先分类形状,再看 validation loss、gradient norm、throughput 和 per-rank loss 是否一起变化。接着查第 42,000 步前是否刚 resume、切换 data shard、跨过 schedule boundary、改过配置或发生硬件事件。拿 last-good checkpoint,用相同 sampler state 和 捕获的 batch ID replay。数据、数值、optimizer state 和硬件对可复现性与 rank locality 有不同 预测。Containment 取决于恢复情况:短暂 spike 可以记录后继续;持续损坏可能需要 rollback,并换 数据顺序重启。」

练习追问

  • 「Spike 前一个 batch 看起来正常。」
  • 「只有一个 rank 出 NaN。」
  • 「Resume 后才出现。」
  • 「Training loss 恢复,但 validation 没恢复。」

陷阱

  • 只检查紧挨 spike 的前一个 batch。
  • 把 gradient clipping 当 root-cause fix。
  • 不保留 sampler 与 optimizer state 就重启,让事件再也无法复现。

D6.2.2 · 决定继续、跳过还是回滚

性质。通用练习题。

回答结构。

「事件短暂、状态回到原轨迹、validation 不受影响,而且没有残余腐败信号时继续。问题能复现并 定位在某段数据时,跳过或隔离这个 window。参数或 optimizer state 持续受损、validation 迁移, 或原因不明且很可能重现时 rollback。决定比较预期损失算力与预期伤害,不受『丢掉进度很心疼』支配。」

追问。Checkpoint cadence、反复坏 batch、非确定 kernel 和 deadline 压力。

陷阱。因为 run 很贵就继续。沉没算力不会让已污染的算力变有价值。


D6.3 · 调试模型或产品 regression

分解端到端变化:

流量 → 预处理 → context 与 retrieval → 模型 → 后处理与工具 → UI → 结果测量

让同一批冻结输入分别通过 last-known-good 和候选 bundle。输出不同,就 bisect 组件;输出相同但线上 结果不同,就看流量、延迟、曝光、外部状态和测量。

使用 golden corpus 做确定性或有容差的 regression check,但绝不能把它误当成完整生产分布。

D6.3.1 · 调试发布后的准确率回退

性质。通用练习题。

回答结构。

「先在冻结请求和完整版本 trace 上复现。如果新旧 bundle 输出不同,就依次 bisect 权重、prompt、 tokenizer、retrieval snapshot、feature code 和 decoding config;如果离线输出相同,就检查曝光 与在线依赖:traffic mix、权限、延迟 timeout、tool response 或测量。按最能分开好坏的最小维度 切片,例如语言、context length、tenant、region 或任务类型,再测试对应边界。」

练习追问

  • 「总体下降来自一个大客户。」
  • 「只有长 context 回退。」
  • 「旧 trace 含隐私数据。」
  • 「无法精确 replay 上一版。」

陷阱。还没证明 regression 从管线哪里进入,就先重训。

D6.3.2 · 处理静默而渐进的回退

性质。通用练习题。

回答结构。

「渐进 regression 更应怀疑 input drift、index staleness、反馈回路、依赖变化、calibration drift 或资源饱和,而不是单一 deploy。我会在固定 sentinel input 和当前流量上比较时间 cohort,检查 leading component metric,并定位一阶变化开始的位置。接着问什么状态在累积:cache、corpus、 标签、用户适应,还是 model-generated training data。」

追问。Seasonality、日志 schema 变化、不断增长的 context、evaluator drift。

陷阱。因为 incident ticket 有开始时间,就只找离散坏 commit。


D6.4 · 找 training-serving skew

Training-serving skew 表示 policy 在生产里看到的 feature、变换、context、tool contract 或分布与 训练不同。预防应来自架构:共享 transformation、版本化 contract、记录真正 served feature,并 让生产样本 replay 训练代码。Google 的 Rules of ML 明确建议测量 skew,并记录 serving feature [R18]

有用的不变量:

  • tokenizer 与 normalization 相同;
  • feature 定义和 default 相同;
  • 必要时使用 event time,而不是 processing time;
  • point-in-time correct join;
  • prompt 与 tool schema 相同;
  • retrieval 与 permission contract 相同;
  • train/eval mode 和 numerical precision 显式;
  • 不使用预测发生后才可得的 feature。

D6.4.1 · 模型离线好、serving 坏

性质。通用练习题。

回答结构。

「抽样捕获一批经过隐私处理的真实 served input 和中间 feature,再通过离线管线 replay。逐边界 比较 hash 或值:raw event、preprocessing、tokenizer、feature join、context construction、模型 版本、decoding 和 postprocessing。如果模型输出匹配,差距在下游或流量与测量;如果不匹配,第一个 不同中间值就定位了 skew。长期修复是一份版本化 transformation 或 contract,并在 release 中加入 parity test。」

练习追问

  • 「不能记录 raw feature。」
  • 「Online store 更新更快。」
  • 「BatchNorm 或 dropout mode 不同。」
  • 「只是一种罕见 default value 错了。」

陷阱。只比较最终 prediction。第一个不同的中间值有用得多。


D6.5 · 结论不可能时怀疑 evaluation

坏 eval 会产生:

  • 看起来正确但对不齐的标签;
  • overlap 或时间 leakage;
  • 错误 answer normalization;
  • evaluator 对长度、风格或同家族模型有偏好;
  • 非确定的 judge 版本;
  • denominator 或聚合 bug;
  • 静默 task failure 被算成模型失败;
  • 只保留完成或可 parse 输出造成 selection。

用已知 positive 与 negative control 验证 harness。人工打分随机样本和高影响分歧样本。所有 prompt、 judge、parser 与 dataset 都要版本化。ML Test Score 把数据、模型、基础设施和监控测试分开,恰好 提醒我们模型指标也可能在模型外部失败 [R19]

D6.5.1 · 调试突然跳高的 benchmark

性质。通用练习题。

回答结构。

「模型没有合理变化却不连续地跳高,harness 就是领先假设。先冻结 artifact,让旧模型跑当前 harness,让当前模型跑旧 harness;再比较 dataset version、parser、normalization、judge prompt 与模型、retry policy 和 denominator。Known-answer control 与盲评人工审计能判断我们测到了更多 能力,还是只接受了更多输出。」

追问。旧 judge 已不可用、API retry 不同、parser failure rate 降低、数据集刷新。

陷阱。因为「模型没怎么变」,就在调查结束前发布提升。

D6.5.2 · 评测 evaluator

性质。通用练习题。

回答结构。

「先定义 evaluator 要近似的 construct,再跨 score 与风险 strata 抽样,收集盲评独立人工判断, 测一致性和系统性错误,而不只 correlation。在保持内容不变时扰动长度、顺序、风格和模型身份,检验 bias;还要看重复调用与版本之间的稳定性。如果 evaluator 用于训练,必须另设独立 audit channel, 因为优化一定会攻击它的弱点。」

陷阱。只报告一个 agreement 数,不展示后果最严重的分歧切片。


D6.6 · 按拓扑与边界定位分布式故障

分布式故障常像模型故障,因为一台坏 worker 就能污染 collective。按这些维度定界:

  • rank、host、rack、region 与 accelerator type;
  • data shard 与 pipeline stage;
  • collective operation 与 tensor size;
  • 确定发生还是间歇发生;
  • load、temperature、memory pressure 与 job age;
  • resume 或 checkpoint 前后。

做受控替换:同一 workload 换硬件,不同 workload 放同一硬件;缩小 world size,或替换一条通信路径。 保留 per-rank 日志,不让 aggregate mean 抹掉单个毒源。

D6.6.1 · 一个分布式 job 间歇 hang

性质。通用练习题。

回答结构。

「先区分只是进展慢还是 deadlock,在 kill 前捕获 stack 与 collective state。用 per-rank timestamp 定位卡在哪个 rank 和 operation,比较是否反复出现同一 rank、host、tensor size、data batch 或 pipeline boundary。再做替换:移动 rank、缩小 world size,或在可疑 topology 上跑通信 诊断。即时缓解可以排除 host;root fix 取决于原因是 collective 不匹配、data-dependent control flow、网络还是硬件。」

练习追问

  • 「Watchdog 在日志 flush 前就 kill。」
  • 「每次坏 rank 都不同。」
  • 「只有大 message 会 hang。」
  • 「加入 conditional routing 后才开始。」

陷阱

  • 把每次 hang 都叫成 NCCL 问题。
  • 一直重启到成功,丢掉所有证据。
  • 忽略 divergent control flow 会让不同 rank 调用不同 collective。

D6.6.2 · 用预防措施结束事故

性质。通用练习题。

回答结构。

「不能用『修了那台机器』结束。要说明被破坏的不变量、为什么发现晚,以及现在用什么 control 防止 或缩短重现:preflight health test、per-rank sentinel、能捕获状态的 timeout、兼容 checkpoint、 canary topology,或明确的 owner 与 runbook。然后在安全环境重造故障,验证 control。没有 owner、 trigger 和测试的 action item 不叫预防。」

陷阱。笼统承诺改善监控。必须说出信号、阈值、响应动作和负责人。


D6.7 · 同时调试 agent side effect 与 prompt injection

一次 agent incident 可能在同一条 trace 里跨过模型、harness、sandbox、identity 和外部系统边界。 不要在重建 state machine 前就选择「模型问题」或「基础设施问题」。Tool output 与 retrieved content 都当作不可信证据;timed-out write 则是未知 outcome。

D6.7.1 · Timeout 重复外部写,同时 indirect injection 试图 exfiltration

性质。组合已记录 agent-security 与 reliability failure mode 的合成练习事故,不声称是被报告的 面试题。

题目。Research agent 提交外部 job。Tool timeout 后 harness retry,结果创建了两个 job;同一条 trace 里,retrieved document 还要求 agent 把先前 attachment 上传到攻击者网站。

示例口头回答。

「先 revoke 或 suspend 该 task 的 credential 与 lease,冻结新 write 和 egress,保留 append-only session、tool-proxy、approval、network 与 external audit log,并暂时不删除 sandbox。接着和外部 系统 reconcile side effect:按 task、principal、payload fingerprint、时间和已有 idempotency key 搜索;识别两个 job;通过服务支持的路径停止或补偿 duplicate;通知受影响 owner。

「然后重建第一个 divergence。模型层:不可信文档是否改变 plan,或请求了用户目标之外的数据? Harness 层:为什么 retrieved content 能接触 egress-capable tool?为什么 retry 没复用 stable operation ID?为什么没有 approval?Tool 层:API 是否支持 idempotency key?它的 timeout 是 unknown commit,还是确定 failure?我会在隔离 sandbox 用 fake credential 与 mock service replay 捕获输入,逐边界测试而不重复伤害。

「长期修复包括:write-ahead intent;所有 retry 复用一个 idempotency key;timeout 进入 UNKNOWN 后先 read/reconcile;least-privileged、task-bound identity;egress allowlist 与 data-classification check;新 destination 或敏感传输必须显式 approval;严格分开 tool data 与 instruction;以及同时 覆盖 injection 和歧义 tool outcome 的 regression test。只有 intended 与 observed external state 一致,恢复才完成。」

练习追问

  • 外部服务没有 lookup 或 idempotency support。
  • 一次 duplicate action 不可逆。
  • Event log 记录 request,却没记录哪个 tool worker 发出。
  • 模型从未复述 injection,但下一步动作改变。
  • 人只批准原 job,没有批准 retry 或数据上传。

陷阱

  • 还没保留足够证据就 rotation credential,导致无法重建范围。
  • 以为 timeout 代表第一次 write 失败。
  • 只修 prompt,不收紧 identity、egress 与 retry semantics。
  • 多个 control 独立失效,却把事故压成一个 root cause。

D7 · Behavioral questions:展示决定,不要只报性格词

行为轮可能让技术很强的人失手,因为他们同时在做记忆检索和答案构造。Alisa Liu 写过,自己第一次去时 以为当然是一个「表现良好的人」,结果面对简单题却想不出例子,也没有真正回答问题 [R9]。准备不是编造顺滑故事,而是在计时开始前给真实证据建立索引。

每个答案都应该让面试官检查:

  • 情境与后果;
  • 你的责任和权限;
  • 决定或张力;
  • 具体说了什么、做了什么;
  • 其他人怎样回应;
  • 结果,包括成本和未解决部分;
  • 后来你的行为改变了什么。

性格词只是结论。「我很有 ownership」很弱。一次你发现无人负责的故障、选择有边界的动作、对齐相关 人员并留下长期 control 的真实时刻,才是证据。


D7.1 · 第一口就回答问题

先给 headline:

「有。最清楚的例子是 [事件];我做了 [决定],结果是 [结果]。」

接着只给理解张力所需的背景,把大部分时间放在动作和推理,最后用真实反思收尾,而不是「沟通很重要」。

题目问冲突时,一个技术很难但没有人际分歧的项目不算回答;题目问失败时,一次延期的成功也不算。 要明确自己正在回答哪道题。

D7.1.1 · 做九十秒行为回答

性质。行为题被广泛报告;这个时长只是练习工具。

填写模板。

「简短答案是 [直接回答]。情境是 [两句话]。我负责 [范围],而 [其他人] 负责 [范围]。困难选择是 [张力]。因为 [推理],我依次做了 [具体动作]。结果是 [已核实结果,包括没解决的部分]。我会改变的是 [真实纠正];从那以后,我一直 [后续行为或 control]。」

练习追问

  • 「你在房间里具体说了什么?」
  • 「对方怎样看这件事?」
  • 「什么证据说明是你的动作造成结果?」
  • 「对方会说你哪里做得不好?」

陷阱

  • 用五分钟铺背景。
  • 每句动作都说「我们」。
  • 结尾道理没有连接到任何行为改变。

D7.1.2 · 发现故事没有回答题目时及时纠正

性质。通用练习题。

回答结构。

「我意识到这个例子展示的是技术困难,不是冲突。我换一个更合适的真实例子: [真实例子]。分歧是 [决定],我的角色是 [角色]。」

陷阱。因为临时换例子尴尬,就继续讲不相关故事。能自我纠正,比流畅地跑题更强。


D7.2 · Motivation 与「为什么是这家实验室」

可信的动机答案有四条连接:

关心的问题 → 自己工作中的证据 → 为什么是这个团队、这个时点 → 双向验证

不要夸品牌。要指出一个问题、一项近期产物或方向、该岗位独有的能力或约束,以及你想学习或贡献什么。 OpenAI 官方指南要求候选人准备 motivation 和 goal,并学习与面试团队相关的近期工作 [R4]。Anthropic careers 页面也明确会询问经历与动机 [R2]。这是公司 公开期待的准备,不是猜题。

D7.2.1 · 回答「为什么想来这里」

性质。多家实验室官方指南都支持这类题。

填写模板。

「未来几年我最想投入的问题是 [具体问题]。在 [真实项目] 里,我学到 [有证据的教训],因此形成 [当前看法]。这个团队特别相关,是因为官方材料里可以核实的 [当前工作、基础设施、部署表面或合作者]。我能贡献 [已核实能力];同时我想在这里的交流 中验证 [对岗位或团队的真实未知]。」

练习追问

  • 「为什么不留在当前组织?」
  • 「具体是哪支团队或哪篇论文?」
  • 「你不同意我们哪一点?」
  • 「岗位发生变化,什么动机仍然成立?」

陷阱

  • 「最好的人、最大的模型、最大的影响。」
  • 背诵使命,却无法连接到自己做过的决定。
  • 还不知道真实团队,就声称 team-specific fit。

D7.2.2 · 对实验室提出诚实批评

性质。通用练习题,不声称每家都会问。

回答结构。

「根据公开信息,我最想了解的张力是 [具体技术或组织张力]。目前我以 [置信程度] 倾向 [立场],因为 [证据]。我可能缺少 [内部背景];会改变我看法的 证据是 [证据]。我会问团队实际怎样决定 [相关取舍]。」

追问。为相反立场辩护;指出一个欣赏的决定;说出什么会成为 deal breaker。

陷阱。选择其实是夸奖的假弱点,或根据传闻做强烈指控。

D7.2.3 · 做九十秒 career spine

性质。私下填写表。个人使用前必须完成;不要发布 private answer。

回答结构。

「我的起点是 [真实起点],在那里学到 [已核实能力或问题]。转向 [当前方向] 是因为 [具体证据或经历],不是为了让时间线看起来命中注定。此后 [两项真实选择] 建立了一条主线: [自己反复选择的问题]。现在适合移动,是因为 [能力、问题或机会发生的变化]。我离开 [当前环境],是受到 [诚实 pull 与有边界约束,不贬低原环境] 驱动。下一步选择 [岗位或团队类型],因为它允许我贡献 [有证据的优势],同时验证 [真实成长问题]。」

练习追问。为什么发生那次 pivot;为什么是现在而不是一年前;会放弃什么;当前工作进展好为什么 还离开;还有什么下一步也合理;前合作者会怎样强调不同事实。

陷阱。把 private fact worksheet 变成公开自传。精确 employer、timeline、离开原因和约束都只在 私下填写;只有主动批准的材料才发布。


D7.3 · Ownership、ambiguity 与 prioritization

Ownership 有边界。它是发现无人拥有的问题、确认影响谁、采取可逆的第一步,并建立长期责任;不是 越过每个 owner,也不是一个人无限吸收工作。

面对 ambiguity,展示如何减少不确定性:

  1. 定义决定和 deadline;
  2. 分开可逆与不可逆选择;
  3. 找到 information value 最高的假设;
  4. 采取有边界的一步;
  5. 设 checkpoint 或停止规则。

Prioritization 必须暴露 opportunity cost。「每件事都重要」说明没有做优先级。

D7.3.1 · 描述职责范围外的 ownership

性质。通用练习题。

填写模板。

「我通过 [信号] 发现 [无人负责的问题]。它影响 [stakeholder],但 authority 在 [owner]。我先做 [containment 或取证],再与 [相关人员] 对齐范围和 decision right。 我负责 [有边界的工作],但 [仍属于别人范围的工作] 没有越界。结果是 [结果],长期 改变是 [owner、流程、测试或文档]。」

练习追问

  • 「有人觉得你越界吗?」
  • 「为了腾出时间,你停止了什么?」
  • 「后来由谁长期负责?」

陷阱。英雄离开后系统仍然依赖英雄的故事。

D7.3.2 · 给三个紧急项目排优先级

性质。通用练习题。

回答结构。

「我比较后果、紧急性、可逆性、依赖和信息价值。先保护存在不可逆或严重 downside 的项目,再 unblock 会卡住多个团队的工作,最后推迟可逆优化。我要把『不做什么』明确告诉 stakeholder: [项目] 暂停到 [日期或证据]。如果三项真的都必须立刻做,约束就是 capacity,我会带着 选项升级,而不是静默 overcommit。」

追问。高管不同意、明天优先级又变、自己最喜欢的项目被砍。

陷阱。给了评分框架,却从不说哪个项目会失去资源。

D7.3.3 · 在深度 ambiguity 下行动

性质。通用练习题。

填写模板。

「不清楚的是 [未知量],但必须在 [deadline] 前决定。我把可逆选择 [选择] 与不可逆 选择 [选择] 分开,运行 [小实验或 stakeholder check],设置 [checkpoint],并先做 [有边界动作]。学到 [新证据] 后,我更新了 [决定]。我没有做的是 [没有根据的大承诺]。」

陷阱。把 ambiguity 讲成更加努力工作的故事,而不是减少不确定性的故事。


D7.4 · Conflict、collaboration 与 feedback

冲突答案需要双方都有合理利益。如果对方只是完全不理性,故事几乎无法说明协作能力。要把对方的模型 解释到对方可能认可。

强冲突行为包括:

  • 指出真正决定,而不是人格问题;
  • 询问双方各信任什么证据;
  • 分开价值、事实与 incentive;
  • 建一个可逆测试或 escalation rule;
  • 决定后仍维护关系;
  • 承认对方说对了什么。

D7.4.1 · 描述一次严重技术分歧

性质。通用练习题。

填写模板。

「我们对 [决定] 有分歧。对方最强的担忧是 [steelman];我的担忧是 [担忧]。实际是 双方在优化不同约束:[约束]。我先 [倾听或澄清],再提出 [实验、决策规则或升级路径]。 最后选择 [结果]。对方在 [一点] 上是对的,我因此改变了 [做法的一部分]。之后的关系 可以由 [证据] 说明。」

练习追问

  • 「你在现场原话怎么说?」
  • 「如果对方 authority 更高呢?」
  • 「你有没有升级过?」
  • 「对方会怎样评价你?」

陷阱

  • 分歧结尾总是对方发现你是对的。
  • 情绪或 incentive 明明影响决定,却被完全藏掉。
  • 把礼貌等同于避免困难谈话。

D7.4.2 · 接受很难听的反馈

性质。通用练习题。

回答结构。

「反馈指出 [具体行为与影响]。我的第一反应是 [诚实反应],但我请对方给例子,并向 [来源] 核对是否构成模式。我改变了 [可观察行为],并建立 [测量或 check-in]。改善 证据是 [证据]。仍不同意的部分是 [有边界的分歧],我的处理方式是 [方式]。」

追问。给出精确例子;解释此前为什么没发现;描述一项决定不采纳的反馈。

陷阱。选择伪装成反馈的夸奖,例如「我太在乎工作」。

D7.4.3 · 给能力很强的同事反馈

性质。通用练习题。

填写模板。

「对方很强的一点是 [优点];反复出现的行为是 [可观察行为],影响了 [影响]。我先 确认这是一种模式,而不是一次令人不快的事件。私下用例子说明后,我询问对方看法,并约定 [下一项行为或检查]。我也改变了 [自己对这种互动的贡献]。结果是 [诚实结果,包括尚未完全解决]。」

陷阱。把故事中心放在自己敢说,而不是反馈是否准确、有用。


D7.5 · Failure 与 learning speed

选择这样的失败:

  • 你有实质 agency;
  • 成本真实但可以讨论;
  • 错误具体;
  • 能分开决策质量与结果;
  • 后续行为真的改变。

不要制造干净的 redemption arc。有些后果不会被完全修复。不自我戏剧化地承担它,比把每次失败都 转成胜利更强。

Learning speed 要靠一个 loop 展示:缺口 → 计划 → 反馈 → 改变后的输出。「我学得快」不是证据。

D7.5.1 · 描述一次真实失败

性质。通用练习题。

填写模板。

「我没有做到 [责任]。直接原因是 [自己的决定或遗漏],不只是 [外部因素]。当时我 相信 [假设],其实应该更早检查 [证据]。后果是 [真实成本]。我先做 [修复与担责],再改变 [流程或行为]。后来这项改变发挥作用的真实例子是 [事件]。仍然 没有完全修复的是 [局限]。」

练习追问

  • 「什么时候知道出问题?」
  • 「第一个告诉了谁?」
  • 「后来重复过吗?」
  • 「你的 manager 会怎样定义这次失败?」

陷阱

  • 选择团队失败,自己做过什么始终不可见。
  • 失败太久远或太轻,无法检验当前学习。
  • 以抽象道理结束。

D7.5.2 · 快速学习陌生领域

性质。通用练习题。

回答结构。

「缺口是 [具体能力],deadline 和 output 是 [交付物]。我画 dependency map,找到 [primary source 或专家],并在 [早期日期] 前做出小 artifact,让反馈在我觉得准备好之前 就进来。我记录 unknown,并用 [实现、预测或评审] 检查理解。输出从 [之前] 变成 [之后]。我仍不会声称精通的边界是 [边界]。」

追问。故意不学什么?如何判断来源可信?第一个错误模型是什么?

陷阱。只有阅读清单,没有能产生反馈的 artifact。


D7.6 · Leadership 与 influence

领导力答案要暴露 influence 机制:

  • 技术可信度;
  • 更清楚的决策框架;
  • coalition 或跨职能翻译;
  • 资源分配;
  • 冲突处理;
  • coaching 与 delegation;
  • 为决定承担责任。

高级岗位的输出单位会从个人 artifact 转成让别人做出更好决定的系统。这不表示离开技术细节,而是 选择自己的深度在哪个位置能改变整个系统。

D7.6.1 · 带领项目改变方向

性质。通用练习题。

填写模板。

「原方向是 [方向]。证据 [证据] 让它不再可辩护,但换方向会付出 [成本],并影响 [人员]。我让证据公开可见,邀请最强反方观点,并提出 [新路线与过渡]。在自己的 [authority] 内,我决定 [决定];而 [另一项决定] 仍属于 [owner]。结果是 [结果];人员成本或未解决问题是 [真实成本]。」

追问。谁反对?怎样保护士气?是不是改得太晚?停止了什么?

陷阱。只讲沟通,省略困难的资源分配决定。

D7.6.2 · 帮助另一个人成功

性质。通用练习题。

回答结构。

「对方想达到 [目标],被我观察到的 [缺口] 卡住。我没有接管任务。我们约定 [ownership],我提供 [背景、反馈或机会];看到 [独立性证据] 后逐步撤掉支持。对方的 结果是 [结果]。我发现最初做法 [错误],因此改变了 [coaching 行为]。」

陷阱。把另一个人的故事全部讲成自己的 mentorship。


D7.7 · 不确定性下的伦理与安全

伦理题不能靠一句「安全第一」解决。要展示如何:

  1. 识别所有受影响方,包括不在房间里的人;
  2. 分开法律、policy、技术与道德问题;
  3. 估严重性、概率、可逆性和影响分布;
  4. 保留证据并寻求适当 review;
  5. 选择与不确定性相称的 containment;
  6. 定义什么会改变观点;
  7. 为决定承担责任。

不要假装 trade-off 消失。有时推迟有益系统也造成伤害;有时低概率严重事件主导 expected value; 有时你没有 authority,必须升级。

D7.7.1 · 发布前回应安全担忧

性质。一手材料报告过偶尔出现 safety 或 societal-impact 问题。

填写模板。

「我观察到 [具体担忧],可能影响 [受影响方]。不确定部分是 [未知],但 [某部分] 严重且足够可逆,值得先做 [containment]。我记录证据,通知 [适当 owner 或 review body],并提出 [测试与决策规则]。只有 [条件] 满足时才支持 launch;否则选择 [替代方案]。如果决定与我不同,我会使用 [与角色和法律一致的真实升级 路径]。」

练习追问

  • 「证据很弱。」
  • 「延期有巨大 opportunity cost。」
  • 「Manager 要求 launch。」
  • 「只影响一个边缘小群体。」

陷阱

  • 戏剧化答案,却没有相称动作。
  • 把 policy compliance 当成完整伦理分析。
  • 声称会采取自己实际上不会采取的升级动作。

D7.7.2 · 平衡开放与误用风险

性质。通用研究判断题。

回答结构。

「要把 artifact 拆开:高层发现、评测方法、代码、权重、数据和运行细节具有不同风险与科学价值。 分别估合理误用、边际新增能力、可复现收益、现有可获得性,以及 staged 或 controlled release 是否 有帮助。我的默认不是『开放』或『封闭』,而是在风险保持于可辩护边界内时,选择限制最少的发布,并 配 review 与更新计划。」

追问。谁做决定?怎样避免 security through obscurity?竞争者反正会发布怎么办?

陷阱。给普遍口号,不分析具体 artifact 与 threat model。


D7.8 · 展示跨职能协作

跨职能协作是在不同但合理的 objective function 之间翻译:research 要可识别证据,engineering 要 可靠与可维护,product 要用户价值与时机,legal/security 要风险有边界,operations 要流程能重复运行。

不要只说「我让所有人对齐」,却不说分歧、decision right,以及让协调成为可能的 artifact。

D7.8.1 · 对齐 research、engineering 与 product

性质。通用练习题。

填写模板。

「共同目标是 [目标],但 research 优化 [约束],engineering 优化 [约束], product 优化 [约束]。冲突表现为 [决定]。我建立 [共同指标、interface contract、实验 或 milestone],并澄清谁决定 [哪一层]。最后选择 [选择],明确接受 [成本]。长期 artifact 是 [artifact],未解决张力是 [张力]。」

练习追问

  • 「谁不满意?」
  • 「你让步了什么?」
  • 「怎样防止 research prototype 变成 production debt?」
  • 「生产证据怎样回到 research?」

陷阱。把其他职能只当成要绕过的约束,而不是必要信息来源。

Meta 官方招聘页说,候选人可能会见到 peer、跨职能 partner 和 leader,也应该准备相关经历与提问 [R6]。因此最安全的通用准备不是猜某个价值观关键词,而是为「你怎样和别人共同做决定」 准备真实证据。


D8 · 建 story bank,但不要说得像模板

STAR、CAR 和 CARL 是压缩工具,不是台词。使用任何能帮助你恢复这些内容的标签:

  • 背景:只保留理解张力所需的信息;
  • 责任:你对什么负责,有什么 authority;
  • 决定与动作:替代方案、推理、具体行为与协作;
  • 结果:outcome、证据、成本和未解决部分;
  • 学习:后来真实发生的行为变化,而不是口号。

答案应该像一个人在回忆真实决定,不像运行模板。一个好测试是:你能否离开顺序回答插入问题,然后 不丢故事地返回。

Anthropic 的候选人指南说得非常明确:可以用 AI 润色真实经历,不能创造经历,而且要透明 [R1]。这条规则适用于所有公司。本节故意不写任何完成版个人故事。


D8.1 · 建立八故事矩阵

六到八个故事通常已经足够,只要它们包含不同决定,并能从多个角度观察。不要强迫一个英雄项目回答 所有题。

先只用事件名字填表,再补证据。空格是准备任务,不是允许编造。

ID 核心证据 可回答题型 必须由用户补充的事实
S1 技术深度与关键取舍 最难项目、判断力、规模 精确决定、替代方案、个人角色、测量结果
S2 失败与恢复 错误、失败实验、信念变化 自己的错误、后果、修复、后续行为变化
S3 Ambiguity 下的 ownership 主动性、边界不清、紧急情况 缺失 owner、权限边界、为此停止什么
S4 冲突与分歧 协作、dissent、influence 对方合理担忧、真实互动、最终决定
S5 领导与改变方向 愿景、优先级、delegation 谁决定、资源怎样移动、人员成本
S6 Feedback 与成长 收到或给予反馈、coaching 真实反馈、第一反应、可观察改变
S7 伦理或安全判断 负责发布、升级 受影响方、证据、authority、真实升级路径
S8 跨职能交付 从研究到生产、合作 目标冲突、interface、上线证据、局限

每个故事填写一页 evidence card:

事件与日期:
这个故事真正回答什么题:
我的责任与 authority:
团队和继承的工作:
张力或决定:
考虑过的替代方案:
我依次说了什么、做了什么:
已核实结果与不确定性:
成本与未解决部分:
我会改变什么:
后来行为改变的证据:
保密边界:
帮助恢复记忆的 artifact:

D8.1.1 · 判断两道题能否共用一个故事

性质。通用练习题。

回答结构。

「只有证据焦点不同,才可以共用事件。Ownership 题要突出我怎样发现并界定无人负责的问题;conflict 题要突出对方的模型、我们的互动和决策规则。如果只在结尾换一句道理,就不是两套答案,而是在拉伸 同一段背稿。」

练法。对同一事件分别做两个六十秒答案。标出完全相同的句子;超过一半相同,说明角度没有真正 变化。

陷阱。在同一个 loop 的多场面试中反复用同一故事,却没意识到 interviewer 可能交换记录。

D8.1.2 · 选择一个 failure story

性质。通用练习题。

回答结构。

「我要选自己有 agency、后果真实,而且能指出后续行为改变的故事。『失败』如果只是目标定得高、 别人犯错,或受环境影响而延迟成功,都不使用。无法具体解释的保密事故也不使用。」

练法。对每个候选故事用一句话回答:「我做错了什么?」如果句子没有第一人称动作,就换故事。

D8.1.3 · 建立 career spine 背后的 private evidence card

性质。私下填写表。个人使用前必须完成;不要发布 private answer。

Background 主线:
Pivot 及造成 pivot 的证据:
Why now:
Why leaving / 放弃了什么:
为什么下一步有逻辑:
证明主线的两项选择:
核实每项主张的事实、日期和 artifact:
前合作者可能会怎样用不同措辞描述:
保密边界:

练法。先讲 D7.2.3 的九十秒 spine,再让搭档随机选择一个转折,追问真实证据。如果转折只有润色后 的叙事,就修改或删除。完成后的卡片保持私密。

陷阱。把职业故事说成命中注定。真实 pivot 包含 uncertainty、替代路线,以及停止追求的东西。


D8.2 · 润色语言之前先建追问树

面试官要检验准备表面下面是否还有细节。每个故事都在笔记里回答这些分支,但不把它们写成演讲:

  1. 时间线:紧挨事件前后发生了什么?
  2. 角色:什么是自己的、继承的、委托的、共享的?
  3. 替代方案:还考虑过什么,由谁提出?
  4. 证据:当时知道什么,后来才学到什么?
  5. 互动:原话大意是什么,别人怎样回应?
  6. 反事实:结果或 authority 反转时怎么办?
  7. 成本:时间、信任、质量、机会、算力或用户影响?
  8. 边界:什么仍然不确定或不能公开?
  9. 迁移:后来在哪里使用这条教训?

如果某个分支因为记忆模糊而没有细节,就从文档恢复,或换故事。不要用听起来合理的连接组织填满。

D8.2.1 · 扛住连续三层「为什么」

性质。通用练习题。

追问链。「为什么选 A?」→「为什么这个约束最重要?」→「为什么相信那份证据?」

回答结构。

「第一层说取舍,第二层连到 stakeholder 或系统后果,第三层暴露证据质量和不确定性。如果某一层 真实答案是 authority、习惯或 deadline,就如实说,不要事后补一套技术理论。」

练法。搭档从故事里任选一个动作动词,连续问三次为什么。第三层到达证据、价值或约束,而不是 再次改写第一层,才算通过。

陷阱。把每个「为什么」当成攻击。它往往是在邀请你展示基岩。

D8.2.2 · 回答反事实追问

性质。通用练习题。

题目。「如果实验支持另一个团队,你会怎么办?」

回答结构。

「使用自己声称当时已有的决策规则。如果结果 B 超过 [阈值],我会支持 [另一条路线], 因为我承诺的是 [目标],不是自己的 proposal。Transition cost 会是 [成本],所以当时 准备了 [可逆动作]。如果实际上没有规则,就应该承认当时过程没有现在叙述得这么严谨。」

陷阱。声称另一个结果不可能发生。那会让实验听起来只是一场仪式。


D8.3 · 只把公开 artifact 当成候选故事提示

本仓库公开主页和 bibliography 展示了几项可能的 artifact [R25] [R26]。它们只能建立标题、链接、作者身份和少量已公开的结果 陈述,不能建立用户个人做过什么决定、精确 ownership、失败路线、团队动态或教训。论文作者身份 不等于行为故事。

下面只是待调查库存:

公开网站里的候选 artifact 可以核实的潜在角度 必须由用户补充的缺失事实
CaOPD / calibration-aware on-policy distillation research taste、机制、失败替代方案 精确个人角色、决定性实验、负结果、算力与成本
Agentic Confidence Calibration 新问题定义、评测设计 ownership 划分、关键分歧、指标选择、局限
Agentic Uncertainty Quantification 长时程可靠性、系统设计 直接贡献、失败路线、协作、部署边界
SAC3 hallucination detection 从研究到生产、可测影响 精确部署角色、采用证据、incident 与迭代细节
PhaseEvo / SEE prompt optimization 优化与产品化 本人负责哪个 artifact、取舍、用户反馈、失败
Enterprise deep research multi-agent 与系统设计、跨职能工作 角色、架构决定、生产约束、未解决风险
超算上的大规模分布式学习 规模、事故、基础设施判断 具体项目、硬件与 run 事实、瓶颈、个人动作
DOE Generative-AI-for-Science 工作 领导力、项目组合优先级 具体项目、decision right、团队与资源事实、结果

使用前必须核实:

  • 公开描述仍然准确;
  • 精确 authorship 与 leadership role;
  • 哪些数字允许披露;
  • 事件是否包含题目要求的真实张力;
  • 合作者是否会认可归属公平。

D8.3.1 · 把论文变成 deep-dive 候选

性质。个人填写表。

回答结构。

「不要从论文摘要开始,而要找一个自己直接负责的决定:[决定]。再恢复替代方案、当时可用证据、 失败或意外结果,以及合作者分别负责什么。如果无法从记忆和 artifact 填满这些字段,论文继续留在 库存里,不能成为面试故事。」

个人使用前必须完成;不要发布 private answer。在私下补充决策记录、实验日志、精确 ownership、 披露边界、成本与规模,以及一项论文中没有被润色掉的局限。

D8.3.2 · 把公开 impact 数字变成可辩护证据

性质。个人填写表。

回答结构。

「先核实数字在数什么、时间范围与来源,再窄化自己的因果贡献。采用量不自动等于质量,团队 impact 也不自动等于个人 impact。把数字与机制或独立 outcome 配对,并披露不确定性。如果数字是内部的、 过期的或没有获准公开,就改用定性或相对 baseline 的描述。」

陷阱。重复一个公开数字,却解释不了 denominator。


D8.4 · 让表达自然且可以被打断

不要记句子,只记五个地标:

headline · 张力 · 两项动作 · 结果 · 反思

带打断练习:

  • 从决定开始,不从背景开始;
  • 直接回答追问;
  • 说「我回到结果」,然后真的回去;
  • 任何分支都能压成一句;
  • 问题回答完就停止。

只有在合适且公开时使用姓名,否则使用角色。用外部工具或搭档练习前,移除保密客户、安全、人员与 未发布研究细节。

D8.4.1 · 被打断后恢复

性质。通用练习题。

回答结构。

「先直接回答插入问题:[回答]。它与故事的关系是 [连接]。回到原问题,这项证据让我的 动作从 [之前] 变成 [之后]。」

练法。让搭档在三十秒后随机打断。第一句回答新问题,并在另外三十秒内回到主线,才算通过。

陷阱。追问明明是 interviewer 选择的分支,却说「后面会讲到」。应该跟随对方信号。

D8.4.2 · 审计故事的编造风险

性质。公开使用前必做。

检查表

  • 每个数字都有来源和 denominator。
  • 每个「我」动作确实由自己负责。
  • 每个「我们」结果公平归功团队。
  • 对话要么足够准确,要么明确是意译。
  • 因果措辞不超过证据。
  • 保密细节被删除,而不是换成编造的具体值。
  • 反思有后续行为变化支持。
  • 故事经得住「还有谁在场」和「他们会怎么说」。

陷阱。以为每个单句都听起来合理,故事就安全。真正测试是所有追问之间能否一致。


D9 · 反问、沟通 rubric、模拟面试与复盘

最后十分钟和此前一周的练习服务同一个目的:降低对真实工作的不确定性。好反问用于检验对团队的假设; 好 mock 用于检验对自己 failure mode 的假设。

Silvia Sapora 写过,她会针对下一场面试用 LLM 做 mock,练习题与真实问题有出乎意料的重合;同时她也 强调准备高度针对具体岗位 [R10]。OpenAI 官方招聘活动同样建议提前练职业例子,并展示 解决问题的过程 [R5]。用 mock 工具制造压力和追问,不要让它创造个人内容。


D9.1 · 问真正可能改变决定的问题

从未知量生成问题:

未知 更好的问题 要听的证据
成功 「入职六个月和十二个月时,什么结果会让这次招聘显然成功?」 具体 outcome,不是性格词
工作构成 「上个月团队花时间做了哪些 JD 没写的工作?」 真实工作与广告工作之差
决策权 「讲一个近期 research/engineering 取舍,以及谁做了决定。」 实际 operating model
评测 「研究结果达到什么证据后才会影响产品?」 证据与 handoff
失败 「团队近期停止了哪个项目?什么证据让它停止?」 学习与 sunk-cost 行为
协作 「Research、engineering、product 和 safety 最常在哪些地方有分歧?」 真实 interface
资源 「现在先卡住的是 data、compute、eval、deployment 还是 headcount?」 机会表面
管理 「优先级怎样改变?异议通过什么路径上行?」 心理安全与决策安全
岗位 fit 「哪项优势在这里特别有价值?哪个缺口很难被支持?」 诚实匹配

不要问网站已经直接回答的问题,除非想检验公开说法在实践中怎样运行。可以向多位 interviewer 问同 一个核心未知;回答差异本身就是数据。

D9.1.1 · 向 researcher 了解团队质量

性质。通用练习题。

示例问题

  • 「过去一年团队改变了哪项重要信念?什么证据改变了它?」
  • 「哪项结果离线很有希望,却没有影响 deployment?」
  • 「负结果怎样保存并复用?」
  • 「目前仍然存在的技术分歧是什么?」
  • 「一个项目在这里被采用容易或困难的决定因素是什么?」

追问动作。听到泛泛回答后,请对方给最近的具体例子。

陷阱。问「文化怎么样」,然后接受一组形容词。

D9.1.2 · 向 hiring manager 了解岗位

性质。通用练习题。

示例问题

  • 「你希望我最先负责什么问题?为什么它现在还没有 owner?」
  • 「十二个月后,强 hire 与合格 hire 的区别是什么?」
  • 「我的背景里,你最想雇的是哪一部分?仍在评估的担忧是哪一项?」
  • 「在正式管理职责之前,这个岗位拥有什么 decision authority?」
  • 「从写 JD 到今天,什么已经改变?」

陷阱。把提问时间变成第二次推销。先问、认真听,再更新判断。


D9.2 · 用可观察行为给沟通打分

使用六维 rubric,每题结束后打 0 到 3:

维度 0 1 2 3
Frame 没有决定 只有背景 有决定和假设 新证据出现时正确更新 frame
结构 无法跟随 事实清单 地图与转场清楚 压缩或展开时不丢地图
深度 口号 只有一层技术 机制加证据 扛住三层 why/how
判断 只说看情况 列维度不选择 有选择和取舍 有反转条件与敏感性
校准 bluff 或拒绝 模糊 caveat 区分事实与假设 明确更新置信度
协作 monologue 或防御 偶尔确认 使用 interviewer 信号 共同解决并干净改向

再加两个二元检查:

  • 是否回答字面问题?
  • 回答完整后是否停止?

不要用平均分抹掉一个零。技术很深却始终没回答问题的答案,不是通过的讨论答案。

D9.2.1 · 诊断「清楚但浅」

性质。通用练习题。

回答结构。

「地图有效,但每个分支都停在标签。我会选一句主张,强迫回答机制、证据、替代解释和 failure mode。 下一项练习不是再做完整 mock,而是围绕这个分支连续追问五分钟,不允许添加新顶层话题。」

陷阱。增加类别来显得全面。深度是更长的链,不是更宽的清单。

D9.2.2 · 诊断「很深但跟不上」

性质。通用练习题。

回答结构。

「技术内容存在,但听者找不到决定。我要练 headline-first;预告不超过三个分支;每个分支结束后 checkpoint:『这排除了 data leakage;下一步检验 optimization。』具体练法是先把答案压到三十秒, 再展开。」

陷阱。把所有细节都删掉。修的是导航,不是把答案变浅。


D9.3 · 运行能复现真实轮次的 mock

三个有用形式:

三十分钟 technical discussion

  • 2 分钟:出题与澄清;
  • 15 分钟:深入一个设计或实验分支;
  • 8 分钟:两次改变假想结果;
  • 5 分钟:反馈并重复一次。

四十五分钟 project deep dive

  • 5 分钟:项目版本;
  • 25 分钟:interviewer 选择决定、ownership、失败与证据;
  • 10 分钟:反事实和 future work;
  • 5 分钟:事实缺口与 rubric。

四十五分钟 behavioral round

  • 一次一道,共四题;
  • 每题至少两个追问;
  • interviewer 拒绝一个不匹配故事,要求换例子;
  • 最后才给反馈,保留真实 retrieval 压力。

轮换 interviewer persona:技术同级、怀疑型 researcher、hiring manager、跨职能 partner。Rubric 固定,追问风格变化。

D9.3.1 · 安全地提示 AI mock interviewer

性质。练习模板。

模板

你是一名怀疑但愿意协作的 [岗位] 面试官。
只使用我提供的 JD、round description 和 source material。
每次只问一道题。不要替我写答案,也不要编造我的经历。
听完回答后,选择其中一个主张,连续追问三层。
至少一次改变约束,或提供一个假想结果。
在我说面试结束前不要给反馈。
结束后只按可观察行为打分:framing、结构、技术深度、
判断、校准、协作、是否回答字面问题,以及简洁度。
每项扣分都引用造成判断的原句。

安全规则。删除保密数据和未发布项目细节。Mock 不需要这些内容来测试结构。

陷阱。自己还没尝试 retrieval,就让模型先生成理想答案。Recognition 会取代练习。

D9.3.2 · 用好真人 mock

性质。通用练习题。

回答结构。

「给 interviewer 一页 contract:目标岗位、轮次类型、时长、rubric,以及允许打断。不要给对方 自己准备的答案。请记录他第一次跟丢的位置,以及最强的无证据主张。结束后先追问证据——哪句话或 哪个行为造成这个判断——再讨论建议。」

陷阱。只找已经熟悉自己项目背景的近距离合作者。至少加入一位必须靠你的解释才能理解的人。


D9.4 · 把复盘压成小型错误分类

十分钟内先记录事实,避免记忆重写:

  • 真实题目与追问;
  • 选择了哪个答案,从哪里分支;
  • interviewer 改向或困惑的位置;
  • 没能检索出的事实;
  • 缺证据的主张;
  • 过度自信或无必要道歉;
  • 自己问了什么,收到了什么证据;
  • 精力与时机,但不把感受直接变成绩效判断。

给第一个失败分类:

  • 检索:知道却取不出来;
  • 知识:真的不知道;
  • Framing:解决了错误决定;
  • 深度:追问后只剩标签;
  • 证据:主张超过支持;
  • 沟通:听者丢了地图;
  • 故事匹配:例子没回答题目;
  • 校准:bluff、拒绝推理,或不更新;
  • 后勤:环境、音频、时长或疲劳。

每一类修法不同。读更多无法修 story fit;做更多 mock 也无法补一个缺失技术概念。

D9.4.1 · 把失败答案变成一个 drill

性质。通用练习题。

回答结构。

「把第一个可观察失败写成行为:『我用了两分钟才说目标』,而不是『我紧张』。再选一个有约束的 修复:做五次四十五秒开场,每次必须含决定与 baseline。练完只重复一次原题。如果行为没有改变, 就重新诊断。」

陷阱。每次面试后都建十项改进计划。日志变成另一个逃避练习的地方。

D9.4.2 · 避免过拟合一场面试

性质。通用练习题。

回答结构。

「把一次性题目与重复 failure 分开。只有它出现在即将到来的明确 loop、在可靠来源反复出现,或 暴露基础缺口时,才把新主题加入核心计划;否则放进 wildcard log。但像『没有澄清决定』这样的 process failure,无论原题会不会再来都要修。」

陷阱。围绕情绪上最鲜明的一道题,重建整个学习计划。


D9.5 · 做最终 readiness review

轮次前四十八小时确认:

  • 从 recruiter 处确认精确形式、tool policy、时长和 interviewer 角色;
  • 两个候选项目各有两分钟、五分钟与十五分钟版本;
  • 八张故事卡没有编造的空格;
  • 一篇当前论文或系统能够概括、批评并设计扩展;
  • 一次 system-design 和一次 experiment-design mock;
  • incident 框架可以冷启动说出;
  • 根据 interviewer 类型准备反问;
  • 完成保密信息删除;
  • 睡眠和环境安排好,并对最后时刻扩张设硬停止。

目标不是让自己感觉准备好,而是移除可以预防的 failure mode。

D9.5.1 · 决定最后不学什么

性质。通用练习题。

回答结构。

「停止增加宽泛新主题,只复习 recruiter 明确的 loop、个人故事中的事实缺口,以及 mock 错误短表。 只有新论文或新题能修一个已知且高度可迁移的缺口,才允许进入计划。前一晚,retrieval quality 和 睡眠的价值高过多读一章。」

陷阱。把缓解焦虑误当成提高面试 expected value。


D10 · 只在证据边界内做 lab-specific 准备

公司准备应该是一个 overlay,不是第二种人格。从同一套项目、科学推理与 story bank 出发,再更新:

  • 精确岗位与团队;
  • recruiter 给出的 round list;
  • 官方 tool 与 AI policy;
  • 与团队相关的近期官方工作;
  • 产品 action surface 与风险特征;
  • interviewer 角色;
  • 检验双向 fit 的问题。

使用来源层级:

  1. 针对本人已安排 loop 的 recruiter 指令;
  2. 官方候选人和 careers 指南;
  3. 精确 JD 与团队论文或产品;
  4. 具名一手经历,但只能标成经历,不能标成 policy;
  5. 聚合报告只当弱 prior;
  6. 忽略匿名精确数字、内容农场价值观和题目清单。

Policy 会改变。下面事实检查于 2026-08-13;真实面试前必须重新核对。


D10.1 · 先建立 recruiter packet

用一封简洁信息一次问清:

  • 每轮名称、时长和 interviewer function 是什么?
  • 每轮主要评估什么?
  • 允许哪些工具、语言、editor、whiteboard 或 AI assistant?
  • 项目讨论是 presentation、对话式 deep dive,还是两者都有?
  • 论文是否提前提供?
  • 什么可以预先准备或带入?
  • Loop 是否针对具体岗位或团队调整?
  • 是否现在就应该提出 accommodation 或日程约束?

给回答记录日期。如果公开指南和 recruiter 冲突,就澄清,不要选择自己更喜欢的版本。

D10.1.1 · 不越界地询问精确 loop

性质。通用后勤模板。

模板

「为了针对你们真正想评估的工作准备,可以分享 round 名称、大致时长和每轮主要 signal 吗?我也 想确认 tool/AI policy,项目或论文讨论是否需要预先材料,以及是否有 role-specific guidance。我 理解具体细节可能因 interviewer 而变化。」

陷阱。索要泄漏题。目标是形式与评估 signal。

D10.1.2 · 调和互相冲突的报告

性质。通用练习题。

回答结构。

「对已安排 round,以 recruiter 为准;官方公开指南提供默认值;具名经历只提示可能追问。我不会把 一个人经历过的 OOP、system design 或 values 问题变成公司 policy。应该为 wildcard 留预算,而 不是拼出一套实际上没人经历过的 universal loop。」

陷阱。把互相矛盾报告平均成一套细节丰富、但没有候选人真正经历过的流程。


D10.2 · OpenAI:先按官方流程,再按具体团队

OpenAI 发布了 interview guide。它要求候选人准备讨论工作与学术经历、motivation 和 goal;了解近期 工作,尤其与面试团队相关的部分;并预期由团队决定的 skills-based assessment,例如 pair coding、 take-home 与 technical test。最终面试通常是四到六小时、与四到六个人在一到两天内完成。对工程岗, 它列出设计质量、代码质量、性能和 test coverage;跨轮次则强调沟通、协作,以及展示怎样解决问题 [R4]

OpenAI 官方招聘活动还给出实用沟通建议:表达清楚且有意图;展示过程;主动确认假设;与 interviewer 一起解决而不是进入 monologue;提前准备职业例子;用有思考的问题展示好奇心 [R5]

这些内容支持一种准备方法,支持一份 universal OpenAI question list。

D10.2.1 · 建立 OpenAI discussion overlay

性质。基于官方指南。

填写表

  • 岗位与团队:[已经确认的精确 JD 和当前团队]
  • 近期官方工作:[与岗位直接相关的两项 artifact]
  • 个人连接:[每项 artifact 对应一个真实项目或决定]
  • 项目把手:[ownership、困难选择、失败、证据、规模]
  • 沟通 drill:[画地图、问假设、做选择、设计测试、根据结果更新]
  • 反问:[团队成功、decision right、证据怎样进入 deployment]
  • 需要 recruiter 确认:[形式、工具、presentation、AI policy]

陷阱。把「OpenAI」作为一个整体主题学习,却忽略 JD 和 recruiter call 里真正命名的团队。

D10.2.2 · 不编造 fit 地回答「Why OpenAI」

性质。个人填写表;官方指南确认会讨论 motivation。

回答结构。

「从 [自己反复选择的问题] 开始,用 [自己工作中的真实证据] 支持,再连到 [面试团队近期的官方工作],并说出 [可以贡献的已核实能力]。结尾留下 [想对岗位验证的不确定性]。没有确认过的 scale、人员或研究自由,不能写进答案。」

个人使用前必须完成;不要发布 private answer。在私下补充真实目标岗位与团队、当前官方 artifact、个人证据,以及离开或改变环境的诚实原因。


D10.3 · Anthropic:policy 很明确,按字面遵守

Anthropic 的 candidate AI guidance 规定:

  • application 第一稿由本人写,之后可以用 AI 润色;
  • take-home 默认不用 AI,除非明确允许;
  • 可以用 AI 做公司研究、口头练习和准备反问;
  • live interview 默认不用 AI,除非明确允许;
  • 不能用 AI 创造经历,必须保持真实思考和透明 [R1]

其 careers 页面说,技术面试使用 live coding tool;候选人可查基础信息;面试会问经历、motivation, 并留时间反问。页面还说公司看重能做什么,而不只从哪里学到;researcher 会做 engineering,engineer 也会做 research [R2]

Anthropic 当前公开原则包括:为全球福祉行动、同时看见收益与风险、做有效的简单方案、helpful / honest / harmless,以及 mission first [R3]。要读当前官方原文与实际工作,不要把每个 故事硬塞进 slogan;展示真实决定,其中包括张力与反证。

D10.3.1 · 在 Anthropic 准备中正确使用 AI

性质。官方 policy。

回答结构。

「可以用 AI 解析 JD、制造追问压力、找缺口和批评自己的草稿;底层经历和第一稿必须自己写。删除 保密内容,验证每项事实,并在没有辅助时练习。任何 assessment 或 live round 都按该轮明确指令; 没有说明时,live interview 不用 AI,take-home 也不用。」

陷阱。以为做 AI 的公司一定希望评测时也使用 AI。

D10.3.2 · 准备 Anthropic 的 research–engineering 边界

性质。基于官方 careers 页面。

填写表

「每个项目都同时准备 research claim 与 operational artifact:hypothesis、evidence、实现、 failure、scale 和维护。选择一个简单方法胜过复杂方法的真实例子,再选择一个 safety 或 reliability 改变设计的真实例子。如果没有,就留空,不要从公司 principle 倒推出故事。」

练习追问。简单方法为什么赢、engineering 暴露了什么 research 问题、接受了什么 safety cost、 不同意某项公开方法的哪里。

陷阱。表演公开 principle,而不是用它推理。


D10.4 · Meta:role-specific 材料与 AI policy 才是准绳

Meta 官方 hiring 页面说,面试形式和准备材料按岗位变化;recruiter 与 Career Profile 会提供适用 schedule 和 guide。它还说,部分技术岗位在 CoderPad 内使用授权 AI assistant,外部 AI tool 不允许;适用时,候选人应该在提供的环境练习 [R6]

Meta 有官方 ML initial-interview 页面,描述一次与 engineer 的四十五分钟交流 [R7];ML full-loop 页面描述最多六次、每次四十五分钟的交流 [R8]。这些页面证明官方准备材料存在,不证明所有 research loop 都相同。个人 Career Profile 与 recruiter 仍是权威。

D10.4.1 · 建立 Meta discussion overlay

性质。基于官方指南。

填写表

  • 下载并阅读 Career Profile 中的精确 guide;
  • 列出每场已安排 conversation 及其 signal;
  • 使用公司提供的 practice environment;
  • 分别确认每轮是否授权 AI;
  • policy 未明确前,同时准备有 AI 与无 AI 的 coding/system discussion;
  • 把项目故事映射到技术深度、impact、协作和 role fit;
  • 分别为 peer、cross-functional partner 和 leader 准备反问。

陷阱。把公开页面里的「部分岗位」AI policy 泛化到所有 research interview。

D10.4.2 · 为授权 AI-native round 调整

性质。Meta 官方指南说只适用于部分岗位。

回答结构。

「练精确工具和授权模型,同时保持推理可见。Prompt 前先定义问题与测试;检查生成代码;运行有针对 性的 check;解释接受或拒绝什么。把 assistant 当成不可靠的 collaborator,最终 output 由自己负责。 不使用外部工具。如果该轮没有明确授权 AI,就完全不用 AI 练习。」

追问。模型给出可信但错误代码、tool latency、interviewer 询问 prompt 理由、design discussion 使用 Mermaid。

陷阱。优化 prompt 小技巧,却放弃问题分解、验证与 ownership。


D10.5 · 公司差异必须停在证据边界

能够支持的比较很窄:

实验室 官方支持的准备事实 故意不推断
OpenAI motivation 与 goal、面试团队近期工作、形式可变的 assessment、沟通与协作 universal OOP、项目或 values 题集
Anthropic 明确 AI policy、经历与 motivation、live coding、公开原则、research–engineering 重叠 每位 interviewer 都按 slogan 打分,或存在一套标准 values round
Meta role-specific guide、最多六场 ML full-loop 交流、部分技术岗位授权 AI 所有 ML/RS loop 一样或都允许 AI

具名一手材料可以增加假设,但必须标注。「一位候选人报告遇到 X」诚实;「Lab Y 总会问 X」不诚实。

D10.5.1 · 制作一页 lab brief

性质。必填个人 worksheet。

岗位、级别、团队:
Recruiter 确认的 round 与日期:
官方 tool / AI policy,检查日期:
两项近期团队 artifact:
一个真实认同点:
一个有证据的真实问题或分歧:
最匹配岗位的两个项目:
最可能使用的四个故事:
需要修复的技术缺口:
按 interviewer 类型分类的反问:
仍未确认的事实:

个人使用前必须完成;不要发布 private answer。每一个字段都在私下完成。Generic company brief 无法回答 team-specific loop。

D10.5.2 · Recruiter 改变 loop 时更新 brief

性质。通用练习题。

回答结构。

「把新 schedule 当成证据,不当成麻烦。重新映射准备到真实 round,只保留高迁移工作,把没有支持 的 company lore 移出核心计划。如果出现 wildcard,就使用可复用 discussion frame,而不是现场编 company-specific script。」

陷阱。因为旧计划已经投入很多时间,就继续执行它。


D10.6 · Google DeepMind:以 role-specific packet 为准,不猜固定题库

Google DeepMind 官方 careers 页面给出 typical process,同时明确说精确步骤会随岗位变化,获邀候选人 会收到详细 role-specific preparation。当前 overview 是:

  1. 三十分钟 recruiter call,讨论 background、experience、motivation、候选人问题和下一阶段;
  2. 可能增加 hiring-manager interview,讨论相关 capability 并了解面试团队近期工作;
  3. 两到三场 skills interview,按岗位成功所需 competency 评估,并与潜在 peer 交流;
  4. final interview 会见 Team Lead 与 leadership,包括潜在 manager,从团队目标、future plan、 culture、mission 与 values 的视角继续评估 core skill;
  5. decision 与 offer。

这些内容支持流程准备,不支持固定 Google DeepMind question set [R33]。对个人已安排 loop,recruiter 与 role-specific packet 才是权威。

D10.6.1 · 建立 Google DeepMind discussion overlay

性质。基于官方 careers guidance。

填写表

  • Recruiter call:[九十秒 career spine、为什么现在选该岗位、反问]
  • 可能的 hiring manager:[两个匹配项目、capability 证据、团队未知量]
  • Skills interview:[packet 命名的 competency、每种形式一次 cold mock]
  • Final interview:[团队目标、future research direction、协作与判断故事]
  • 面试团队近期工作:[两项当前官方 artifact]
  • 权威信息:[recruiter 确认的 round、tool、presentation、AI policy 与检查日期]
  • 故意保留的未知:[官方页面没有说明的任何内容]

练习追问。省略 hiring-manager stage;skills packet 与公开复盘不同;final 前团队改变;leadership interviewer 询问准备项目之外的 research direction。

陷阱。把「typical overview」当成保证顺序,或根据 stage name 推断精确 technical、behavioral、 coding 或 values 题。


参考文献

实验室 policy 和面试形式会变化。以下官方页面检查于 2026-08-13;真实面试前,应重新核对 recruiter 指令与当前页面。一手复盘描述的是个人经历,不是普遍公司 policy。

[R1] Anthropic. Guidance on Candidates’ AI Usage. 2025 年 7 月 10 日更新。官方候选人指南

[R2] Anthropic. Careers: How We Hire. 官方 careers 与面试指南

[R3] Anthropic. Company. 官方使命与公开原则

[R4] OpenAI. OpenAI Interview Guide. 官方面试指南

[R5] OpenAI Forum. Careers at the Frontier: Hiring the Future at OpenAI. 官方招聘活动回放。活动页面与文字记录

[R6] Meta Careers. Meta Hiring Process. 官方招聘与 AI 面试指南

[R7] Meta Careers. Preparing for Your Initial Machine Learning Interview. 官方指南入口

[R8] Meta Careers. Preparing for Your Full Loop Machine Learning Interview. 官方指南入口

[R9] Liu, Alisa. Notes on the Industry Job Search. 2026 年 6 月。具名一手复盘

[R10] Sapora, Silvia. ML Job Interviews: The Ultimate Guide. 2026 年 6 月。具名一手复盘

[R11] Zheng-Xin, Yong. Surprising Lessons from My Research Scientist Job Search. 2026 年 6 月 24 日。具名一手复盘

[R12] Lambert, Nathan. Job Hunt as a PhD in AI / ML / RL: How It Actually Happens. 2022 年 7 月。具名候选人一手建议

[R13] Meng, Yuan. MLE Interview 2.0: Research Engineering and Scary Rounds. 2026。具名一手复盘

[R14] Jaiswal, Mimansa. LLM (ML) Job Interviews — Resources. 2024–2025。具名准备记录

[R15] Grigorev, Alexey. AI Engineering Field Guide. 持续更新的 repository;访问于 2026-08-13。可追溯的聚合 field guide

[R16] Huyen, Chip. Introduction to Machine Learning Interviews. 2021。开放面试书

[R17] Bekman, Stas. Machine Learning Engineering Open Book. 开放工程参考

[R18] Google. Rules of Machine Learning: Best Practices for ML Engineering. 官方工程指南

[R19] Breck, Eric, Shanqing Cai, Eric Nielsen, Michael Salib, and D. Sculley. The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction. Proceedings of IEEE Big Data, 2017。DOI: 10.1109/BigData.2017.8258038。Google Research 官方论文页面

[R20] Keshav, S. How to Read a Paper. ACM SIGCOMM Computer Communication Review, 2007。作者手稿

[R21] NeurIPS. Paper Checklist Guidelines. 官方作者检查表

[R22] Kohavi, Ron, Diane Tang, and Ya Xu. Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge University Press, 2020。作者配套网站

[R23] NIST/SEMATECH. Engineering Statistics Handbook. 官方稳定项目页

[R24] Sculley, D., et al. Hidden Technical Debt in Machine Learning Systems. NeurIPS, 2015。论文页面

[R25] Zhang, Jiaxin. Personal Research Homepage. 公开简介与精选工作

[R26] Zhang, Jiaxin. Publications. 公开论文目录

[R27] Anthropic. Scaling Managed Agents: Decoupling the Brain from the Hands. 2026 年 4 月 8 日。官方工程文章

[R28] Anthropic. Effective Harnesses for Long-Running Agents. 2025 年 11 月 26 日。官方工程文章

[R29] Model Context Protocol. Specification. 2026-07-28 版本。官方 specification

[R30] A2A Protocol Project. Agent2Agent Protocol Specification. 1.0.0 版本。官方 specification

[R31] Booth, Harold, William Fisher, Ryan Galluzzo, and Joshua Roberts. Accelerating the Adoption of Software and Artificial Intelligence Agent Identity and Authorization. NIST NCCoE concept paper,2026 年 2 月 5 日。NIST 官方页面

[R32] OpenAI. Computer Use. 官方开发者指南

[R33] Google DeepMind. Careers: Our Interview Process. 访问于 2026-08-13。官方 careers 页面