做了 NVIDIA 的 MLE loop,岗位在他们的 model training infrastructure 团队。想诚实拆解一下,因为职位描述写得像你得有数值方法 PhD 和 5 年 CUDA kernel tuning 经验。现实更微妙。
coding: 两轮。一轮 leetcode 风格(我抽到图题,medium-hard,和 ML 本身没直接关系)。一轮偏应用:给一份模拟 training run log,让你找 bottleneck。我写了 Python 去解析 log,定位 GPU idle time,并指出 pipeline 哪一段是瓶颈。这种事更像 MLE 真正会做的,所以我觉得挺公平。
ML systems design: 这是最重的一轮。设计一个分布式训练系统,能支撑大规模 LLM pretraining。我讲了:data parallelism vs model parallelism vs pipeline parallelism(特别是 tensor parallel)、gradient checkpointing 的取舍、通信原语(all-reduce,ring vs tree)、checkpoint 策略、容错。他们会追 failure modes:比如 128-GPU 训练跑到第 16 小时,有一张 GPU 挂了怎么办。对这个团队不是理论题。
ML depth: 30 分钟,集中问你最熟的硬知识。我被问了 transformer 内部(attention 复杂度、KV cache)、quantization(INT8/FP8 以及什么情况下精度会崩)、mixed precision training。他们想确认你是真的训练过大模型,而不是只看过文章。
behavioral: 3 个问题:'讲讲一个没做成的模型和你怎么处理的'、'讲讲一次你优化了一个别人都不觉得重要的东西'、'讲讲你怎么处理 research 和 production 的张力'。最后一个在 research-adjacent 的 MLE 岗特别常见。
关于 CUDA: loop 里不要求你写 kernel。但你必须理解 kernel 在干什么,以及性能上限在哪里。如果你解释不清楚为什么 fused attention kernel 比 naive attention 快,你在 ML depth 轮会很难。
我的 offer 在 Santa Clara 档。base 大概 $210k,级别是他们等同于 senior 的 IC,RSUs 才是大头。第一年 total comp 大概 $380k(含 signing)。这个数字是真的,不是夸张,只能说比我想象的高,毕竟职位描述写得那么吓人。