来源核对:2026-10-11 · 公开经验与本站自拟练习,不是公司原题或统一招聘标准。

看论文时觉得懂了,打开空白编辑器却写不出来,很常见。先挑一个小模块写一遍,比继续收藏十份清单更容易发现自己缺什么。这页把公开求职复盘里提到的准备方向,接到站内已有的讲解和实现;不要求你每一项都做完。

先看岗位做什么,再决定练多深

RE 是 Research Engineer,MLE 是 Machine Learning Engineer,RS 是 Research Scientist。同一个 title,在不同团队可能做很不一样的事。先看职位描述,再向 recruiter 确认轮次、编码环境、是否允许查文档和使用 AI。不要从“某人没被考过”推导出“这个不用准备”。

目标工作 先准备的内容 再往下练 时间紧时先放一放
RE / MLE,偏模型和训练 算法、ML 实现、训练排错、数据与评估、项目选择 数据与目标、分布式训练、实验设计 每个模型家族的细节
RS,偏研究 已要求的 coding 与实现能力,加上研究问题、证据、个人贡献和后续实验 自己方向的论文、推导与失效条件,不必照搬 LLM 题单 一口气实现所有热门结构
Inference / serving / ML systems 算法、基础编码、生成循环与 cache、显存估算、调度 请求链路与性能诊断,再选一层深入,拿出性能证据 背每个框架的全部类名
通用 SWE 算法、读代码、测试、项目;按通知准备系统设计 Python 与 LeetCode 与工作无关的模型推导

刚准备实习或 new grad,可以先写 MLP、attention、一个训练循环,再讲清一个自己的项目。已有经验的读者,则可以多练性能取舍、故障恢复和跨团队接口。这个顺序是本站的练习建议,不是不同职级的录用门槛。

ML Coding:每次留下一个能检查的结果

每次只挑一行:先写输入输出和最小测试,再实现,最后改一个条件。下面链接里既有短讲解,也有可运行代码;“有章节”不代表关掉页面后就能独立完成。

要实现什么 站内入口 写完至少检查一次
两层 MLP 的 forward / backward 手写模块,配套 interview_kit.py mean loss 的分母;float64 中心差分对照解析梯度,避开 ReLU 拐点
Multi-head causal attention 多头注意力,NumPy 实现 标出 [B,H,T,D];修改未来 token,不能影响更早输出
稳定 softmax 与交叉熵(cross-entropy) softmax 算例、交叉熵 大 logits、被屏蔽的类别、全 mask;不要先取极小概率再取 log
Temperature、top-k、top-p 与 EOS 解码策略、手写实现、生成何时停止 top-p 保留跨过阈值的 token;各序列独立停止,另有长度上限
增量解码与 KV cache 从零实现实验、KV 原理 固定权重、关闭 dropout,同一 token 序列的逐位置 logits 与全前向在容差内一致;先别比较随机采样文本
简化 MoE Router、负载均衡 同一 token 去多个 expert 后怎样加权;门控(gating)归一化、容量限制、空 expert
故意弄错训练循环,再修好 PyTorch 训练循环、数据与目标 label shift、梯度清零、padding loss mask、train/eval 各改一处;观察 loss 与梯度,而不只看能否运行
小型 decoder-only Transformer 从零实现实验、GPT 家族 attention / FFN / 残差 / norm 接起来;先让小 batch 的训练 loss 下降,再检查泛化

最后一行要分清版本:本站 model.py 用的是 RMSNorm、RoPE、GQA 和 SwiGLU,不是 GPT-2。若练 GPT-2 风格,应明确 learned absolute positions、LayerNorm 的 pre-norm 位置、GELU MLP 和最终 LayerNorm;不能只改文件名。可以跟 Karpathy 的 GPT-2 实现视频做,再对照两种结构。本站目前没有第二份完整的 GPT-2 复现代码。

小算法和张量操作,也要能写

五组短练习补的是容易被“大模型题单”挤掉的基本功:

练习 不只检查答案,还检查什么
kNN:循环、向量化、分块 邻居和投票一致;同距离怎么处理;中间张量有多大
二分的两个边界 第一个 ≥ target、最后一个 ≤ target;空数组和重复元素
Broadcasting [B,1] - [B] 为什么变成 [B,B],而不是逐样本误差
任务依赖图 拓扑顺序、环、可同时开始的任务;“提交了”不等于“完成了”
两状态 Markov chain 多步概率、平稳分布、首次到达时间是三个不同问题

算法主线仍在 Python 与 LeetCode。Markov chain 在这里是一个小型概率练习,不重新展开整套 Quant 备考。

能解释机制,比只背术语更有用

主题 可以这样检查理解 继续读
初始化 输入宽度翻倍,为什么权重尺度通常要变?推导用了哪些独立性假设? 激活与初始化
位置编码(positional encoding) 绝对位置与 RoPE 分别怎样进入计算?长度变长,不只改一个 max length 吧? 位置与上下文
PPO / GRPO advantage 来自哪里?同组奖励(reward)全相等时还剩什么信号? PPO 之后、稀疏奖励组、多步 agent 的信用分配(credit assignment)
DP / TP / PP 拆的是样本、层内计算还是层?每种方案在哪儿通信? 分布式训练、框架与训练栈
对比学习(contrastive learning) 正负样本(negative example)怎样构造?换 batch size 后 loss 的归一化有没有变? CLIP、SigLIP

这些是复习问题,不是只适用于某几家公司的考点。做 CV、语音、机器人或其他方向时,换成对应的数据、模型和评价问题;不要拿一份 LLM 清单替代岗位本身。

Inference:从请求讲到 GPU,再讲回来

先读 vLLM / SGLang 的完整 stack,再用同一条请求往下追。练习目标不是背类名,而是能说明:谁持有什么状态,数据交给谁,慢了应该测哪里。

一层层追问 要落到的具体东西
这套服务要服务谁? 输入与输出长度、到达率、TTFT / ITL 目标、质量和预算
请求进来后谁决定下一轮算什么? token 预算、等待队列、KV 容量、取消与抢占
有多少东西放在 GPU 上? 权重、KV、workspace 分账,不是只用参数量乘精度
两个请求共享前缀,复用了什么? token 前缀与模型配置兼容、缓存归属、跨副本命中,以及租户隔离
为什么吞吐高了,体验却差了? 长 prefill 与 decode 争抢;看尾延迟,不只看 tokens/s
GPU 利用率低,先改什么? 分开检查 CPU 输入、队列、执行、HBM 带宽、通信和输出缓冲;先取 trace,再改一个变量
什么时候拆 prefill / decode? 在测出的干扰之外,算上 KV 传输、两端队列与失败恢复成本

准备 inference 方向,至少挑一层准备到能讲细节:调度策略、KV cache 管理,或者你拿得出的性能证据。传统系统设计也别丢;轮次还是要问清楚。

项目、研究讨论和 BQ,别拖到最后

拿一个自己的项目,准备一张表就够开始:问题与 baseline、你的改动、比较过的替代方案、实验结果、还没解决的事。把个人工作与团队成果分开。早期项目和参与较少的论文也重新读一遍;记不清时先查记录,不现场补剧情。Andrey 的复盘里就有被追问旧项目和论文细节的经历。

接着练三种追问,例子由本站自拟:

  • 结果涨了,真是方法有效吗? 固定数据切分和评价集,排查泄漏,报告 seed 波动、算力和调参预算;不要把一次最高分当稳定收益。配合实验与发布。
  • 预算砍半怎么办? 先决定保留哪个假设检验,再缩数据、模型或实验数量,讲清哪些结论因此无法支持。不是所有项目都只能回答“上 LoRA”。
  • 结果与预期相反呢? 区分实现错误、测量问题和假设不成立;给一个能区分它们的后续实验,而不只说继续调参。

BQ 可以准备合作分歧、失败、模糊需求各一个真实故事:当时有哪些选择,你怎么处理,结果与后来改变了什么。不要求把所有经历包装成成功。项目范围与职位有关;校园项目也能讲清责任,不需要编出跨团队领导经历。

免费资料怎么接着用

不必把它们全部刷完。下面分别解决“需要练什么”和“怎样动手”。

资料 适合拿来做什么
Alisa:Notes on the Industry Job Search · 2026-06 PhD 求职视角;把 ML coding、技术讨论和研究讨论区分开,不只准备论文介绍
Evan:从天体物理博士后转行做 ML · 2026-04 转行视角;作者反思会多练工程编码、读别人的代码与 code review
Silvia:ML Job Interviews · 2026-06 ML PhD 的 RS 求职经历;实现和 debugging 清单。她的题目范围不等于所有人的必修课
Andrey:ML/Research Engineer interviews 2025 · 2026-03 发布 复盘的是 2025 年英国 / 远程求职,有经验工程师的视角;别把发布时间当面试发生年份
Stanford CS336 Assignment 1 从学生版接口写实现、接测试;是系统性作业,不是现成答案。正在修课时遵守课程协作规则
Karpathy:Zero to Hero → Let's reproduce GPT-2 (124M) 先练从零实现,再练训练与效率;视频关掉后重新写,比只跟着敲更能发现缺口
TinyZero → verl 有余力再做 RL 实验。TinyZero 已声明不再积极维护,建议新实验用 verl;其 0.5B 结果只描述该模型与设置,不是小模型能力上限

这几篇作者的背景差别很大。我们借用它们发现遗漏,练习、例子和站内组织另写,不搬运公司题目、薪资推断或成功门槛。朋友的个人建议也只能作为补充,不写成某家公司的内部标准。

如果只打算从一件事开始:关掉补全,计时写一个 attention 或 MLP,给它加测试,再解释哪一步最不确定。平时当然可以用 AI 辅助学习;这一遍只是想知道,哪些已经是你自己的能力。

本页术语 6
交叉熵 cross-entropy
分类任务的标准损失,−log 正确类的概率
门控 gating
用可学习权重控制信息写入、保留或输出
位置编码 positional encoding
把「第几个 token」的信息注入表示
奖励 reward
RL 里指导策略更新的标量信号
对比学习 contrastive learning
拉近正样本对、推开负样本对来学习表示
负样本 negative example
被训练目标用来与正样本区分的候选;不一定等价于用户明确不喜欢