我走过 OpenAI data scientist 的面试 loop,岗位是某个 applied team 的 DS。分享拆解,因为不同公司 DS 面试差别很大,而且我找不到 OpenAI 的具体信息。
Phone screen(recruiter,30 分钟): 标准流程。为什么想去 OpenAI、背景概览、时间安排。他们还问我更偏好的 DS 工作类型(inference/stats、ML modeling,或者 analytics/insight)。感觉是真问题,不是套路。
Technical screen(1 小时,跟一个 data scientist): 两部分。
前半:SQL 题。他们给了一个 schema(简化的 events 表和 users 表),让我算 7-day retention,然后改成 30 天的 cohort retention。从 7-day 跳到 30-day cohort 需要窗口函数。他们会看你在跑之前怎么组织 query,不只是输出对不对。SQL 要干净、可读。
后半:stats/probability。一道条件概率题(不是教科书式 Bayes,更偏实战,比如怎么解读 A/B test 结果)。然后讨论如果要检测 time series 的 regime change,我会怎么做。这里不写代码,只是讲思路。
Onsite(4 轮,线上):
第 1 轮:case study。他们描述一个假设的 OpenAI 产品指标下滑:'Monthly active API users dropped 12% MoM. Walk us through how you'd diagnose this.' 经典诊断 case,但会挖得很深:拆解、假设、要拉哪些数据、怎么区分相关和因果。大概 60 分钟。
第 2 轮:ML 概念 + 建模。讲一个你端到端做过的模型:feature engineering、训练方法、评估指标怎么选、怎么处理 class imbalance 或 distribution shift。我讲的是 churn prediction。追问很尖:'why did you pick F1 over AUC-ROC for this,' 'what would you do differently if you had 10x the data.'
第 3 轮:Python coding。不是 LC 风格。更像:给你一份数据集(他们共享了一个类似 CSV 的结构),写代码算 X 并画趋势图。Pandas 熟练很重要,也会看你怎么处理边界情况。
第 4 轮:behavioral。跟 SWE behavioral 类似,偏 values、在 ambiguity 下的判断。
总体难度:大概相当于中档 big tech 的 DS loop。SQL 和 stats 部分不简单,但算公平。case study 更看结构化思考,而不是背 trivia。如果你做过扎实的 DS 面试准备(尤其 case/diagnostic),基本能顶住。