跳转至
推理系统手册 求职

作品集、简历与学习计划

推理岗看重"真的做过":一个有数字、有对比、能讲清楚取舍的项目,胜过一长串熟悉的名词。这一章给出几个由浅入深、适合放进简历的项目方向(大多可以直接在本手册的代码上扩展),简历中怎样描述它们,以及一份把四本手册串起来的学习计划。

岗位画像

推理相关的岗位大致分三类,侧重点不同:

方向 日常工作 最看重
推理框架开发 在 vLLM/SGLang 或自研引擎上开发调度、KV 管理、并行、新模型支持 引擎架构的理解、Python/C++ 工程能力、读大型代码库的能力
推理优化 / 算子 写和调优 kernel(注意力、GEMM、MoE、量化),profiling 与性能分析 CUDA/Triton、屋顶线分析、硬件知识
推理平台 / 部署 大规模部署、路由、弹性伸缩、成本优化、SLO 保障 系统设计、容量规划、压测与监控、分布式系统

三类岗位的面试都会考面试题库中的基础题,差别在于深挖的方向。

项目方向

1. 迷你推理引擎的 GPU 版本(框架方向,★ 推荐)

一条现成的路径是跟着手写 mini-sglang一章一章地实现:它的结构、接口与官方 mini-sglang 一致,GPU 上直接使用 FlashInfer、FlashAttention 和 CUDA Graph,下面列出的几项它都已经覆盖,你可以在它的基础上做对比实验。

在本手册的迷你引擎基础上:

  • 把参考实现的注意力换成 FlashInfer 或 FlashAttention 的分页/varlen 接口,一个 kernel 处理整个批次;
  • 加上 CUDA Graph(按 batch 大小分桶录制)和异步调度;
  • 用 NCCL 实现张量并行;
  • 实现一个 OpenAI 兼容的服务并压测;

交付物:代码仓库、在同一模型与负载下与 vLLM 的对比(吞吐、TTFT、TPOT 的差距与原因分析)、一篇技术博客。能说清"我的引擎比 vLLM 慢 30%,时间差在 CPU 开销和 X kernel 上",比声称"比 vLLM 快"可信得多。

2. 融合算子与 kernel 优化(优化方向)

用 Triton 或 CUDA 实现推理中的关键算子,每个都给出正确性测试和屋顶线分析:

  • fused add + RMSNorm、SiLU × up(可附带 FP8 量化输出)、RoPE;
  • 分页 decode attention(支持 GQA,可选 split-KV);
  • W4A16 的 GEMV / GEMM;

参考 CUDA 手册的作品集项目和各算子章节。把自己的 kernel 接进迷你引擎或 vLLM,测端到端的收益,是一个完整的故事。

3. 量化实验(优化方向)

在一个开源模型上系统比较量化方案:RTN、GPTQ、AWQ、SmoothQuant、FP8(不同缩放粒度)、KV Cache 量化,用 lm-evaluation-harness 评测精度,用 vLLM 实测吞吐与延迟;分析"哪些层敏感、为什么"。本手册的量化部署一章是起点。

4. 服务调优报告(平台方向)

选一个模型,在 vLLM 和 SGLang 上部署,用开环压测画出延迟–吞吐曲线,逐个调整关键参数(token 预算、并发上限、前缀缓存、CUDA Graph、量化、投机解码),记录每个参数对 goodput 的影响,最后给出一份"在 X SLO 下,单卡能扛 Y req/s,最优配置是 Z"的报告。这类报告直接对应平台岗位的日常工作。

5. 系统专题原型(进阶)

  • 缓存感知路由器:在多个 vLLM 实例前实现一个路由器,利用 KV 事件或近似的前缀树做路由,对比随机路由的命中率与 TTFT;
  • PD 分离实验:用 vLLM 的 KV connector 搭一个 1P1D 的最小系统,测量 KV 传输开销和 TPOT 抖动的改善;
  • RL rollout 长尾优化:实现 partial rollout,测量利用率的提升(参考 RL 训练中的推理)。

6. 开源贡献

从 good first issue、文档、测试、模型支持开始,逐步到 bug 修复与性能改进。几点建议:

  • 先读项目的贡献指南并遵守。例如 vLLM 明确要求:提 PR 前检查是否已有相同的工作;不接受孤立的琐碎改动;AI 辅助的贡献必须由提交者理解并能为每一行辩护,PR 描述中要说明 AI 的使用情况、测试命令与结果;
  • 修复一个真实的 bug,比十个拼写修正更有价值;
  • 在 issue 和 PR 讨论中学到的设计取舍,本身就是很好的面试素材。

简历怎么写

  • 每个项目写成"做了什么 + 效果数字 + 关键技术":例如"实现分页 KV 与连续批处理的推理引擎,6 个并发请求的总耗时从逐个生成的 4.7 s 降到 1.8 s;profiling 定位到逐请求注意力占 82% 的时间,改用批量 kernel 后单步延迟下降 X%";
  • 数字要有对照:相对什么提升?在什么硬件、模型、负载下?与理论下限差多少?
  • 少写"熟悉",多写"做过":列出读过的源码模块、实现过的组件、解决过的问题;
  • 准备好被追问:简历上的每个数字,面试官都可能问"怎么测的""为什么是这个数""瓶颈在哪"。

精简版学习计划(约 12 周)

完整的安排是 17 周:逐周的学习、练习、产出和验收见冲刺计划,逐章的版本(每章标注必学、推荐、选学,按框架、优化、平台三个方向标出重点,可以记录进度)见学习路线图。时间更紧时,可以按下表压缩到 12 周左右(去掉两个前沿专题和作品 C,面试准备缩短)。

周 内容 产出
1 Python 进阶手册中不熟悉的章节(并发、性能分析、测试) 能熟练写和测试工程代码
2~4 大模型原理手册:基础与数学 → Transformer 解剖 → 推理原理 手写 mini_llm,能做所有估算题
5~7 CUDA 进阶手册:GPU 基础 → 经典算子 → Tensor Core、FlashAttention、量化 GEMV 与工具链 写出几个能跑、有测试的 kernel
8 本手册:从零写推理引擎 迷你引擎跑通
9 本手册:源码导读 能画出 vLLM/SGLang 的请求路径
10 本手册:分布式推理 能手推 TP/EP,说清 PD 分离的取舍
11 本手册:性能工程与进阶专题 会做容量规划;能讲清投机解码、长上下文、结构化输出
9~12 与学习并行:做一个项目(上面的方向 1~4 之一) 仓库 + 报告/博客
12 面试准备:题库、手撕代码、系统设计、模拟面试 能流畅讲出项目与题库中的高频题

这是面向求职的冲刺节奏(每周 15~20 小时,只精读必学章节)。各手册首页的建议用时按从零精读估算,合计约 7~8 个月;时间宽裕时按那个节奏来,走推理优化方向的,CUDA 部分尤其值得多花几周把 kernel 真正写出来。

节奏建议:每天至少跑一段代码或读一段源码,不要只读文字;每学完一章,用章首的自测题检验,答不上来的回头重读;每周写一篇简短的学习笔记,积累下来就是博客和面试素材。

小结

  • 推理岗分框架、优化、平台三个方向,基础题相同,深挖方向不同。
  • 最有价值的项目是"有数字、有对比、能讲清瓶颈"的:迷你引擎 GPU 版、融合算子、量化实验、服务调优报告、系统原型、开源贡献。
  • 简历上的每个数字都要有对照、能经得起追问。
  • 按"Python → 大模型原理 → CUDA → 推理系统 → 项目 → 面试"的顺序,大约 12 周可以系统地走一遍。

发现错误或有更好的写法?在 GitHub 上编辑此页提交问题