一位华盛顿大学NLP博士的OpenAI求职复盘:57场面试之后
原文作者:Alisa Liu
原文:Notes on the Industry Job Search
链接:https://alisawuffles.github.io/blog/job-search/
本文是对原文的中文整理与转述,保留作者的核心经验、结构和原始配图,方便中文读者参考。
对很多博士生来说,找工作像一顶“分院帽”:师兄师姐突然消失几个月,然后带着已经决定好的命运重新出现。即使身边的朋友陆续毕业、入职,旁观者也很难真正知道他们经历了什么。
Alisa Liu 在 6 年 NLP 博士快结束时,开始申请 Research Scientist / Member of Technical Staff 这类工业界岗位。她来自华盛顿大学,博士期间主要做 NLP,后两年逐渐形成了一个更稳定的研究主线:tokenization。
这篇复盘最值得中文读者参考的地方在于:它不是“我很强所以我拿到了 offer”的爽文,而是把求职拆成了一个更真实的系统工程:面试安排、技术准备、networking、谈薪、情绪压力,每一块都很重。
一、时间线:11 家公司,57 场面试
作者总共面试了 11 家公司,经历了 57 场正式面试。图中灰色图标代表面试,彩色圆点代表结果。
其中:
ghosted:招聘方没有继续告知结果或下一步。withdrawn:作者在拿到更感兴趣的 offer 后,礼貌地退出了部分流程。- 图中没有画出的,还有 46 次 recruiter call、16 次 offer 后沟通,以及大量非正式 networking。
这张图的冲击感很强:所谓“拿到 OpenAI offer”,背后不是几场轻松聊天,而是一段持续数月、强度极高的筛选过程。
面试顺序怎么排?
常见建议是:先用几家公司练手,再把真正想去的公司集中安排,让 offer 尽量在同一时间出现,方便谈薪。
作者认为这个建议大体正确,但要补充三点:
- 练手机会有用,但体力是有限的。不要把自己在最想去的公司面前耗空。
- 外部因素很重要。公司是否有 headcount、哪些团队正在招人,有时比“我准备好了没有”更关键。
- offer deadline 通常有弹性。招聘方知道候选人还有其他流程,但也要警惕少数“爆炸 offer”,也就是给很短时间逼你签字的 offer。
第一场面试怎么来?
作者的建议很朴素:博士期间尽量做出好工作,多交朋友,多合作。
很多时候,第一场面试不是靠冷投来的,而是需要公司内部有人愿意为你背书。会议社交、合作、networking event 都是在提前铺路。当然,这并不意味着所有人都要强迫自己变成社牛。作者也承认这件事对她并不容易,所以要照顾自己的能量和舒适区。
一个很真实的点是:找工作会迫使你重新联系很多几年没说过话的人。这并不奇怪,也并不尴尬,反而是这个过程里意外美好的一部分。
二、面试类型:研究经历帮你进门,技术能力决定结果
作者总结,工业界 AI 岗位的面试大致分为以下几类。整体来看,研究经历可能帮你拿到面试,但真正被反复考察的是技术能力和知识宽度。
1. ML Coding
这是最常见的类型。
题目可能要求你实现某个模型架构、解码策略、传统机器学习算法,甚至一些更有创造性的东西。熟练使用 PyTorch 基本是必需项。少数情况下会要求只用 numpy,比如从零写 backward pass,但通常不要求你对 numpy 语法特别熟。
重点不是“会不会调库”,而是你是否真的理解模型和训练过程。
2. General Coding
基本就是 LeetCode,但有时会带一些额外变化。
作者建议不要轻视这部分,因为算法和数据结构的基本概念也经常会出现在 ML coding 里。基础越扎实,面试时越不容易在边界条件和复杂度上翻车。
3. Technical Discussion
这类面试不写代码,但依然非常技术。
一种形式是围绕某个问题深入讨论:比如如何设计实验回答一个研究问题,如何完成一个目标,如何解释某个假设结果,并设计下一步实验。
另一种形式更像快速问答,例如:
- positional encoding 有哪些方式?
- 什么是 5D parallelism?
- PPO 和 GRPO 有什么区别?
前者考察你如何思考,后者考察你对领域知识的覆盖面。
4. Research Discussion
这是博士生相对熟悉的环节。
面试官通常会让你先讲一个过去的项目,然后围绕这个项目追问。他们也可能问你 CV 上其他论文。
准备这类讨论时,不只是复述“我做了什么”,更要想清楚:
- 为什么当时选择这个问题?
- 过程中形成了哪些 insight 和观点?
- 你认为未来哪些方向值得做?
- 这个研究如何和目标岗位相关?
作者还提到一个实用技巧:根据不同岗位调整 research pitch。面试官也会疲惫,如果你能命中他们关心的关键词,他们更容易相信你的背景和岗位相关。
5. Behavioral Interview
这类就是标准行为面试,只是偶尔会问 AI safety 或社会影响相关问题。
作者踩过一次坑:她以为自己显然是一个“行为良好”的人,所以没怎么准备,结果面对非常简单的问题时大脑空白。最后面试官直接说:“你没有回答这个问题。”
她的建议是:提前列出博士期间有代表性的故事,把它们映射到常见行为问题上。面试时你需要快速提取合适案例,而不是现场从模糊记忆里硬挖。
6. Math Interview
有些公司会有数学面试,从有趣的逻辑题到严肃的纸笔推导都有。
建议复习三块:
- 概率论
- 线性代数
- 微积分
7. Job Talk
工业界 job talk 和学术 job talk 不太一样,通常更短,也更聚焦在一篇论文或一个方向上。
作者的 job talk 主要围绕 tokenizer 展开:重点讲一篇一作工作,再简要串联几篇二作和正在进行的工作。因为这些项目之间联系很自然,所以整体叙事比较顺。
三、准备:找工作本身就是一份全职工作
作者非常直接地说:没有什么比认真准备面试更值得投入时间。
她把这个过程形容得像回到本科:
- 做笔记
- 画图
- 刷题
- 在咖啡馆坐一整天
- 反复确认自己是否真正理解 ML 基础概念
技术面试很难,而且它考察的很多技能,并不会因为你平时做研究就自然具备。对作者和她交流过的大多数人来说,找工作本身就是一份 full-time job。
推荐的准备方式
作者从 Stanford 的 Language Modeling from Scratch 课程开始,系统梳理语言模型相关知识。这个课程帮助她把很多零散概念放进一个完整框架里。
之后,她会针对一个个概念深入学习:读博客、读论文、和 ChatGPT / Claude 讨论、从零实现核心模块。
她特别强调课程里的 Homework 1:实现和调试 transformer。因为这类题在面试中出现频率很高,把它练成肌肉记忆非常划算。
还有一个重要提醒:练习 coding 时要完全关闭 AI 辅助。否则你会低估自己对 AI 的依赖,而真实面试环境不会给你这个条件。
每场面试都需要定制准备
不同公司、不同岗位的面试范围都不一样。你可以从以下信息推断重点:
- 面试说明
- 公司关注的技术方向
- recruiter 给出的 hint
- 公司面试风格的口碑
作者说,在密集面试期间,她感觉自己不断把知识装进大脑、再换出去,让最相关的知识在某场面试前保持新鲜。
她用了一个很形象的比喻:每场面试都是一门略有不同的数学课或 CS 课,你没去上过课,现在只有 3 天时间抱佛脚准备期中考试。
面试当天:睡眠比临时抱佛脚更重要
作者第一场技术面试前只睡了 2 小时,因为她熬夜塞了很多 LLM inference 的细节。结果这些临时知识一个都没考到,反而因为大脑转不动,在一个 off-by-one bug 上卡了 10 分钟。
所以她的建议很简单:面试前一晚睡够。
面试后,也要立刻记录笔记。后续复盘和准备都会用到。
准备面试的副作用:你会真的变强
作者认为,准备面试给她带来了非常大的副收益。
知识面变宽之后,她作为研究者的自信也提高了。以前她可能担心对话中暴露知识盲区,现在更能接受自己不知道,也更愿意继续讨论。
她甚至觉得,如果自己在博士早期就做过这类系统学习,可能会更早拓宽能思考的问题空间,也会主动寻求更多技术讨论。
更意外的是,这些学习直接提升了她当前项目的效率。她能想到以前想不到的技术方案,也能做更多真正技术性的工作。
四、谈薪:拿到 offer 以后,工作还远没结束
作者原本以为拿到 offer 就差不多结束了,但实际并不是。
offer 之后还有一段可能很长的阶段:了解不同选择、和未来同事或 manager 聊天、参加 lunch visit、和 recruiter 多轮沟通、处理大量邮件。
她最核心的观点是:谈判很难,但不谈判是在亏待自己。
博士训练并不会教你谈判。和 recruiter 相比,候选人在市场信息和谈判技巧上都处于劣势。你可能觉得:“我已经很满意了,钱不是最重要的。”这当然说明你知道自己的价值观,但初始 offer 本来就通常预留了谈判空间。
有 recruiter 甚至会直接说:“我不期待你接受我们的 first offer。”
作者说,在这个阶段投入几周精力,字面意义上可能等价于初始 offer 下几年的工作收益。
具体怎么做?
她强烈建议依靠朋友:
- 学习如何和 recruiter 互动
- 获取更多薪资和 offer 数据点
- 校准自己的 ask 是否合理
- 演练关键通话
每次 recruiter call 前,她都会写下:
- 哪些信息愿意透露
- 哪些信息不愿意透露
- 哪些句子可以逐字说出来
- 对方可能问什么
- 对方可能如何施压
- 自己如何既舒服又坚定地回应
这很耗时间,但值得。
五、情绪管理:没有人真的轻松
这篇文章最打动人的部分,不是技术准备,而是作者对求职情绪的诚实描述。
她说,文章前面写了很多具体事项,但真实经历中很大一部分是在管理情绪。
求职会带来很多社会比较:
- 你会忍不住和同辈比较。
- 每个人都对你该去哪有意见。
- 别人会异常关心你的人生进展。
- 你要在信息不完整的情况下做巨大决策。
- 一些看似很小、没有标准答案的选择,比如什么时候联系谁,可能产生很大影响。
她坦言,自己有好几个月都处在压力很大、很痛苦、生活其他部分无法正常运转的状态。
所以,如果你也处在类似阶段,并没有感到快乐,至少要知道:你不是一个人。
六、最后:珍惜博士阶段,也认真准备下一步
作者最后写到,她已经朝博士结束一路狂奔了好几个月,真正走到结尾时,却非常难过要离开这一章人生。
博士阶段很特殊:你的工作就是产生好想法、执行它们、学习并成长为研究者,而不用立刻担心“现实工作”。
她希望这篇文章能帮助后来者提前做好心理准备,但也希望大家不要因为工业界求职压力,而忘记珍惜博士阶段本身。
这两件事也许并不冲突。作者发现,自己做得最好的工作,往往来自真正觉得有趣、并追逐那些脑子里挥之不去的问题。
附:原文提到的学习资源
- LeetCode 75 / Neetcode Blind 75
- Stanford CS336: Language Modeling from Scratch
- Self-Attention & Transformers
- The Illustrated GPT-2
- Backpropagation
- Introduction to Policy Gradient for LMs
- Lightweight Guide to understanding GRPO and RL principles
- How to Scale Your Model
给中文读者的几个 takeaway
如果只提炼成几句话,我会这么总结:
- 研究经历是入场券,技术能力是主战场。尤其是 ML coding、PyTorch、transformer 从零实现。
- 求职不是投简历,而是项目管理。时间线、体力、公司节奏、headcount、offer deadline 都要管理。
- Networking 不是功利社交,而是长期信用的显性化。平时合作和朋友关系,会在关键时刻帮你打开门。
- Behavioral 和谈薪都需要准备。不要以为“我人不错”“我不看钱”就可以跳过。
- 找工作很消耗人。如果你焦虑、比较、失眠、效率下降,这并不说明你不够强,只说明这个过程本来就难。
这篇面经最有价值的地方,是把顶级 AI 公司求职从一个神秘结果,还原成了一个可以拆解、可以准备、但依然非常考验人的过程。
CS336 语言模型从零构建知识地图:一张图拆开 Stanford LLM 训练课
AI入门第一课:装App和填API Key