项目深挖防守稿(Project Defense Drafts)
为什么这块 ROI 最高#
面试里最狠的环节永远是:「讲讲你做过的那个 RAG / Agent 系统」—— 然后往下挖 20 分钟。
通用知识题答错了只是丢一分;项目深挖塌了,面试就结束了。而且项目深挖是唯一一个面试官无法用刷题准备的部分,也是你相对其他候选人最不可替代的地方。
所以本目录不是「项目总结」,是防守稿:预先想好面试官会从哪个角度挖、挖到多深、以及你每一层怎么答。
覆盖范围#
素材来自 CV(~/Documents/resume/changxin-you-cv.en.md,不在本 repo)。
| # | 文件 | 项目 | 技术核心 | 面试权重 |
|---|---|---|---|---|
| 01 | writing-copilot.md |
Writing Copilot | LangGraph 多智能体 + DPO/GRPO 对齐 + HITL | ★★★ |
| 02 | race-bot-hkjc.md |
Race Bot (HKJC) | Text2SQL + 合成数据 + Verl 两阶段训练 | ★★★ |
| 03 | quewi-chatbot.md |
QueWI | AI 网关 + vLLM + 模型路由 + 意图 SFT | ★★★ |
| 04 | hkgai-llm.md |
HKGAI LLM | 数据工程 + SFT/DPO + 评测体系 | ★★★ |
四个项目怎么串成一条线#
面试的前五分钟不是「讲讲你的项目」,是「介绍一下你自己」。这一段没有稿子,但它决定了面试官接下来往哪挖。四篇防守稿各自很强,串不起来就只是四段经历。
主线:造模型 → 用到业务 → 编排成系统 → 沉淀成平台#
| 时间 | 项目 | 在这一层做了什么 | 相对上一层新增的能力 |
|---|---|---|---|
| 2023.12 – 2024.09 | HKGAI LLM | 本土基座:数据过滤 + SFT 分布匹配 + DPO 对齐 + HKMMLU 评测 | 造模型:数据工程、后训练、评测体系 |
| 2024.09 – 2025.02 | Race Bot (HKJC) | 垂类对话机器人:Agentic workflow + 合成数据 + Text2SQL + Verl 两阶段训练 | 用到业务:垂域数据稀缺下自己造数据、自己跑 RL |
| 2024.12 – 2025.05 | Writing Copilot | 政企写作助手:LangGraph 多智能体 + DPO→GRPO + HITL + 实体校对 | 编排成系统:多智能体、对齐策略、人在环中 |
| 2025.04 – 2025.09 | QueWI | 客户 Chatbot 方案:AI 网关 + vLLM 部署 + 模型路由 + 意图 SFT | 沉淀成平台:把前面做过的每件事变成别人能复用的基础设施 |
一句话版本(可以直接说出口):
「我这两年多走的是一条从上往下的线:先在 HKGAI 做本土基座,把数据、后训练、评测这条链路走通;然后到 HKJC 把模型用到真实的垂域业务上,那是我唯一一次自己跑完整 RL 训练的地方;再到 Writing Copilot 用多智能体把复杂交付编排起来;最后在 QueWI 把这些经验沉淀成网关、推理和路由这一层基础设施 —— 让下一个 chatbot 不用再从零建。」
为什么这条线比四个项目本身值钱:它证明你不是「每段都在换方向」,而是每一段都在上一段的产物上加了一层。面试官据此会把追问集中在纵深(你在哪一层最深),而不是怀疑你的稳定性。
四个项目各自唯一能证明的东西#
这四篇不是四个同类项目,是四块不同的证据。面试官如果只挖一个,你要知道那个位置缺了哪块:
| 项目 | 唯一能证明的 | 缺了它会怎样 |
|---|---|---|
| HKGAI LLM | 你真的做过预训练/后训练的数据与评测,不是只会调 API | 被归为「应用层的调用者」 |
| Race Bot (HKJC) | 你跑过完整的 RL 训练链路(Verl + GRPO + 合成数据闭环) | 「RL 只是听说过」 |
| Writing Copilot | 你能设计多智能体编排与对齐策略,并处理 HITL | 「只会用框架画流程图」 |
| QueWI | 你能搭基础设施(网关 / 推理 / 路由)且有成本意识 | 这是 FDE 最看重的一块,缺了最致命 |
两个时间重叠,要先想好怎么说#
Race Bot(2024.09–2025.02)与 Writing Copilot(2024.12–2025.05)重叠两个月;Writing Copilot 与 QueWI(2025.04–2025.09)重叠一个月。面试官会注意到。
应答方向:并行参与、角色不同。说清同时在两个项目里的分工差异(谁是主线、谁是接手/支持),以及你实际投入的比例。不要含糊 —— 时间线对不上是真假判断里最好查的一项。
反面例子:含糊其辞地说「都在做」,面试官会怀疑其中一个是挂名的。
每篇的结构#
- 30 秒叙事 — 开口第一句说什么(面试官会据此决定往哪挖)
- 架构与关键决策 — 你为什么这么做,替代方案是什么
- 面试官会怎么往下挖 — 分层问题清单 + 答案要点(本目录的核心价值)
- 线上故障复盘 — 这套架构必然会长出来的故障、排查路径、复盘话术
- 数字口径 — 指标类问题怎么答才不会被反问倒
- 红线 — 这个项目里不要主动说什么,以及不要 claim 什么
- 自测 — 盖住答案自测
真实性追问:面试官怎么识别「只跑过 demo」#
这一节是本目录的前置层。四篇防守稿解决「答得上」,这一节解决「答得上但不像真做过」。
两篇独立面经把这件事说得很直白:
- DeepSeek 应用后端面经:「八股权重很低,项目真实性权重最高。面试官不怕你不会某个知识点,但一眼就能分辨你是不是只调用过 demo,没有线上大模型服务落地经验。」
- 米哈游 AI 大模型开发面经:「拒绝纯理论背诵,所有技术点必须绑定业务场景 + 线上问题 + 量化结果」「不怕有短板,怕不会复盘、不会迭代」
注意第二句里「线上问题」是被单列出来的一项 —— 它不是「工程能力」的附属品,是独立的考察维度。所以本目录每篇都加了第 4 节。
六种探测手法#
| 探测手法 | 面试官在确认 | 为什么假经历答不上 | 你该怎么答 |
|---|---|---|---|
| 问任何教程里都没有的细节 | 你是自己踩过,还是照着博客搭的 | 教程只写 happy path;真做过的人手里一定有一堆非教科书细节 | 讲一个只有做过才知道的事实:某个默认参数、某个报错的真实原因、某个被文档忽略的边界 |
| 问钱和时间 | 有没有真上过线 | demo 从不需要回答单位成本 | 给结构(哪一步最贵、卡在哪一步);没有数字就说没有数字,不要现编 |
| 问失败 | 会不会复盘 | 只跑通的人对失败没有细节 | 按下节《故障题的四段结构》答,并落到各篇的 §4 线上故障复盘 |
| 问别人负责的那部分 | 是否夸大个人贡献 | 冒领的人会硬答,然后被细节打穿 | 明确划边界:「那块不是我负责,我了解的是……」 |
| 问当时的取舍 | 你是决策者还是执行者 | 没做过决策的人只会复述最终结果 | 说出被否掉的方案和否掉的理由 |
| 追问数字口径 | 数字是不是真的 | 编的数字撑不过三层追问 | 先定义再给数;说不清口径就只讲趋势和方向 |
故障题的四段结构#
被问到「你这个系统出过什么问题」时,按这四段答,不要跳步:
| 段 | 说什么 | 常见错误 |
|---|---|---|
| ① 现象 | 用户或监控先看到什么(表象,不是结论) | 一上来就「因为 XX 有 bug」—— 那是定位结果,不是现象 |
| ② 定位 | 怎么一步步缩小范围,排除了什么 | 只说最终找到的原因,不讲排除过程 —— 而那才是能力 |
| ③ 修法 | 线上先怎么止血 → 之后怎么根治(代码/数据/流程) | 只讲根治不讲止血,说明没在大流量下工作过 |
| ④ 改进 | 这件事让系统多了什么(监控项/评测集/兜底),还剩什么没解决 | 停在「修好了」 |
第 ④ 段是分水岭。 只讲「修好了」是执行者;讲出「因此加了什么机制、现在还留着什么风险」才是负责人 —— 这也正是米哈游那句「不怕有短板,怕不会复盘、不会迭代」真正在筛的东西。
最危险的一类:没有稿可背的问题#
「如果现在给你两周,你会改什么?」「这个系统明天要扛十倍流量,你先动哪一块?」
这类问题背不了稿,因为它考的是你对自己项目的理解是否已经内化成模型。答法只有一条:
从你项目里已知的短板出发,而不是从通用最佳实践出发。
- ❌ 「我会引入 RAG 的混合检索和重排序」—— 这是任何项目都能说的话,等于没答
- ✅ 「我们当时最没底的是压缩环节没有评测,调压缩率全靠试。如果给我两周,我先把这个评测建起来,因为不建它后面所有优化都没有依据」—— 只有做过的人才说得出来
一条原则:不要编#
「真实」本身就是考点。编造会在两个维度同时失分 —— 内容错,且被识别为编。而面试官识别编造的成本很低(见上表最后两行)。
所以四篇里新增的 §4 线上故障复盘给的不是替你编好的经历,而是:
- 这套架构必然会长出来的故障类型(从设计推导,不是虚构事件)
- 每一类的排查路径与复盘话术结构
- 你要做的是把每一类对应到自己真实遇到的那一次
如果某一类你确实没遇到过,如实说没遇到,然后讲「我知道它是这套设计的固有风险,所以我在 X 处加了预防」。这比编一个故障安全得多,而且同样展示了理解深度。
总原则#
- 主动暴露权衡,不要假装一切顺利。说「我们试过 X,失败在 Y,所以换成 Z」比说「我们用了 Z」可信十倍,也更容易把面试官引到你有准备的地方。
- 数字要有口径。「63% → 92%」这种数字一定会被追问:怎么测的、测试集多大、baseline 是什么、会不会过拟合。答不上口径的数字是负资产。
- 区分「我做的」和「团队做的」。你是 5 人团队 lead,讲清楚边界。面试官问细节时你答「那部分不是我负责」是加分,硬答是送命。
这三条解决的是「答得上」。上面那节《真实性追问》解决的是「答得上且像真做过」—— 两者合起来才是完整的防守。四篇正文的第 4 节(线上故障复盘)是后者在项目层面的落地。