LLM 面试备考
首页/项目深挖

HKGAI LLM — 项目深挖防守稿

项目:香港本土大模型(sovereign LLM)全生命周期研发
时间:2023年12月 – 2024年09月
角色:核心成员(数据工程 / post-training 对齐 / 评测)
技术核心:数据过滤流水线 + Evolve-Instruction 增强 + SFT 分布匹配 + DPO 价值对齐 + HKMMLU 评测体系
面试权重:★★★
来源:CV;未做一手考证
相关知识点:01-fundamentals/02-post-training/data-engineering.md、catastrophic-forgetting.md、01-fundamentals/05-agent-evaluation/benchmarks.md


1. 三十秒叙事#

「香港本土大模型项目,我作为核心成员负责从数据工程 → post-training 对齐 → 评测的全链路。

三块具体工作:数据侧 —— 构建面向香港本地语境的数据处理流水线,低质量样本过滤率 76%,用 BERT 做有害内容过滤、GPT-4 做知识性质量校验;训练侧 —— 设计拟合预训练分布的 SFT 策略,通过在语料里混入 10% 通用数据缓解灾难性遗忘,然后用 DPO 做价值对齐;评测侧 —— 参与构建 HKMMLU,含 4 大类 66 个学科共 26,698 道多选题。」

为什么这么开场:覆盖了 post-training 的三个核心环节,而且每个都有可挖的细节。面试官最可能咬住的是 76% 过滤率(怎么算的?)和 10% 通用数据(为什么是 10%?)—— 这两个你都要有口径。


2. 架构与关键决策#

2.1 数据过滤为什么用两级(BERT + GPT-4)#

两种过滤器的成本结构和能力边界完全不同,组合使用是刻意的设计:

过滤级 用什么 擅长什么 为什么不用另一个
第一级:安全/有害内容 BERT 分类器 涉黄涉暴这类模式明确的判定 这类判定不需要世界知识,用小模型做又快又便宜,可以扛住全量数据的量级
第二级:知识性质量 GPT-4 校验 需要世界知识判断内容是否准确、是否有意义 BERT 没有世界知识,判不了「这段文字内容是否正确」

核心工程思想:先便宜后贵。用轻量模型把明显不合格的廉价地筛掉,只把剩下的送给昂贵的模型。这直接把 GPT-4 的调用量压到可承受范围。

76% 过滤率的含义要说清:这是两级过滤合计的淘汰比例,不是单级。被问到时必须能区分。

2.2 Evolve-Instruction:为什么要做数据增强#

原始语料的指令多样性不足 —— 同一个知识点往往只有一种问法。模型见到的问法单一,泛化就差。

Evolve-Instruction 的做法是在保持语义答案不变的前提下,演化出多种问法(改措辞、加约束、转视角、加难度)。收益是指令多样性提升,让模型学到「同一个知识点的多种提问方式」都该产生正确回答。

要能说清的取舍:增强会引入噪声(演化过程可能改变语义)。所以增强后的数据需要质量回检,不能无脑扩。

2.3 偏好数据用三元组形式#

DPO 的训练输入是 (prompt, chosen, rejected) 三元组。这里的关键设计点是 rejected 的选择:

  • 不能用随机负例(模型学不到有用的偏好方向)
  • 要用有信息量的负例 —— 即"在目标维度上与正例有差异"的回答

对价值对齐场景,「过于空泛」「回避问题」「格式不合规」这类都是有效的 rejected 来源。三元组的质量决定 DPO 的方向,这一点比数据量重要得多。

2.4 SFT 为什么要「拟合预训练分布」#

这是本项目最值得讲的技术判断之一。

问题:SFT 数据量远小于预训练数据。如果 SFT 数据的分布(语言、领域、长度、风格)与预训练数据偏离过大,模型在适配这个新分布时,会改写已有的知识表示 —— 表现为通用能力退化,也就是灾难性遗忘的一种机制。

对策:让 SFT 数据的分布尽量贴近预训练分布,只在必要维度上做偏移。这样模型是在「微调」而不是「覆盖」。

为什么混入 10% 通用数据:把这 10% 通用数据当作锚点 —— 它在训练中持续提醒模型「原来的能力也要保留」,防止所有参数都朝 SFT 数据的方向漂移。这是 replay(回放)思路在 SFT 阶段的应用。

⚠️ 「为什么是 10% 而不是 5% 或 20%」这个问题一定要准备。 诚实的答法:这是一个经验性超参,通过小规模消融实验选定 —— 比例太低锚不住(遗忘仍然明显),太高则 SFT 效果被稀释(目标任务学不好)。能说「这是调出来的,不是推导出来的」,比假装有理论依据更可信。

2.5 DPO 做价值对齐#

在 SFT 之后用 DPO(Direct Preference Optimization) 做价值对齐。选 DPO 而不是 PPO 的理由要说清:

维度 DPO PPO/RLHF
需要奖励模型 不需要 需要单独训练
训练稳定性 高(离线、目标函数简单) 低(在线 RL,超参敏感)
显存占用 低(策略 + 参考模型) 高(策略 + 参考 + 奖励 + 价值网络)
能力边界 只能朝偏好数据覆盖的方向走 能探索偏好数据外的区域

对这个场景(偏好明确、数据可控、算力有限),DPO 是更务实的选择。

2.6 HKMMLU:评测体系怎么建#

构建了 4 大类、66 个学科、26,698 道多选题的区域化评测集。

为什么需要区域化 benchmark:通用 benchmark(如 MMLU)测的是通用知识,测不出模型对本地语境、本地制度、本地常识的掌握。一个模型在 MMLU 上很高,不代表它能正确回答本地相关的问题。

面试要能答的细节:

  • 学科和类别是怎么划分的(按什么维度覆盖)
  • 题目从哪来、怎么保证质量(人工审核?双人标注?)
  • 怎么防止数据污染(模型预训练时见过这些题)

最后一点尤其尖锐 —— 如果被问「你怎么知道模型没见过这些题」,要能讲出去重和留出策略。即使当时做得不完美,能意识到这个问题本身就是加分。


3. 面试官会怎么往下挖#

第一层:澄清#

Q:76% 过滤率是怎么算的?

要点:两级过滤合计淘汰比例(被淘汰样本数 / 总样本数)。要能区分单级贡献,并说明「低质量」的定义标准是什么 —— 这个定义本身决定了这个数字的含义。

Q:你具体负责哪部分?

⚠️ CV 写的是「核心成员」。如实划边界。如果你主导了数据工程和 SFT 策略,就说清;评测部分如果是参与,就说「参与构建」。主动划边界是加分,含糊其辞是减分。

第二层:技术细节#

Q:为什么第一级用 BERT 而不是也用 GPT-4?

要点:成本与能力的匹配。有害内容判定是模式识别任务,不需要世界知识,小模型足够且能扛全量数据的吞吐和成本。全用 GPT-4 在经济上不可行。这是典型的「级联分类器」设计。

Q:SFT 混入 10% 通用数据,这个比例怎么定的?

⚠️ 必问。 答:经验性超参,通过小规模消融实验选定。太低锚不住(遗忘仍明显),太高稀释 SFT 效果。不要编理论依据。

Q:怎么衡量灾难性遗忘?换句话说,你怎么知道模型「变笨了」?

⚠️ 这题非常关键,答不好前功尽弃。 要点:需要留出的通用能力评测集,在 SFT 前后各跑一次,看通用能力的下降幅度。同时用 HKMMLU 看目标能力的上升。两个指标一起看 —— 只看目标能力上升而不看通用能力下降,是典型的「以为自己训好了」。

更高阶的答法:除了评测集,还可以看输出分布的变化(如困惑度在某些通用语料上的漂移)。

Q:Evolve-Instruction 增强后的数据怎么保证语义没被改坏?

要点:增强会引入语义漂移,所以需要质量回检(人工抽检 + 自动一致性校验)。要承认增强是有损操作,不能无脑扩。

Q:DPO 和 SFT 的关系?为什么先 SFT 再 DPO?

要点:SFT 负责能力与格式(让模型能产出合格式的回答),DPO 负责偏好与价值(在两个都合格式的回答里选更符合要求的)。没有 SFT 建立的合理起点,偏好数据里的 chosen/rejected 差异就无从体现。

第三层:评测与严谨性#

Q:HKMMLU 怎么防止数据污染?

⚠️ 最尖锐的一问。 要点:题目去重(与预训练语料比对)、时间切分、以及用改写方式生成不易检索的变体。如果当时没有严格的污染检查 —— 承认它,并说清「如果重做会怎么做」。

Q:26,698 道题的标注质量怎么保证?

要点:学科分类标准、多人标注与仲裁机制、以及抽样复核。要说明错误的标注会直接污染评测结论。

Q:一个模型在 HKMMLU 上分数很高,能说明什么?不能说明什么?

考察评测素养。能说明:在多选题、知识回忆层面对本地内容的覆盖好。不能说明:生成质量、指令遵循、推理能力、安全性、以及在真实对话场景中的表现。多选题 benchmark 的局限必须能主动指出。

第四层:反思#

Q:如果重做这个项目,你会改什么?

建议方向:① 数据污染的检查做得更严格;② 10% 这个比例用更系统的搜索而不是粗调;③ 过滤器的评估本身需要 benchmark(怎么知道 BERT 过滤器判对了?);④ 遗忘的度量应该更细粒度(分能力维度而不是整体)。

Q:合成数据(GPT-4 校验/生成)会不会让模型带上 GPT-4 的偏置?

这是个很深的问题。要点:会 —— 用强模型做数据会引入其分布特征和偏置。缓解方式:人工抽检、用多个来源交叉、以及最终用人工偏好数据校准。能主动提出这个问题非常加分。


4. 线上故障复盘#

米哈游面经:「所有技术点必须绑定业务场景 + 线上问题 + 量化结果」。这一节按 README.md《故障题的四段结构》准备。

⚠️ 下面三类是这套流水线必然会长出来的故障(由设计推导),不是替你编的经历。你要做的是把每一类对应到自己真实遇到的那一次;确实没遇到的,就如实说没遇到,再讲你为它加了什么预防。

这个项目没有「线上服务」意义上的故障 —— 它的故障形态是训练侧与评测侧的静默错误:不报错、指标还好看、但结论是错的。这本身就是一句值得主动说的话。

# 故障类型 现象(先给可观测的表象) 该往哪查 修法与复盘要点
1 过滤器误杀(76% 那一步吃掉了有用的数据) SFT 之后模型在某些学科或语域上明显变弱,但整体指标没掉 按类别统计被淘汰样本的淘汰率;人工抽检被丢弃的样本,看是否成片误杀 分级阈值按类别调整;给过滤器本身建评测集(人工标注的「该留/该丢」样本)。复盘:我们当时只评了过滤后的模型,没有评过滤器 —— 一个不可评测的环节等于不可控
2 DPO 把安全能力以外的能力一起压掉 拒答减少(预期内),但通用问答的流畅度 / 长度也退化 检查 chosen / rejected 的差异维度是否过宽 —— 负例里混进了「质量差」而不只是「该答不答」 收紧负例构造,只保留目标维度差异;SFT 前后 + DPO 前后都跑留出的通用能力集做对照。复盘:偏好数据的负例决定了优化方向,负例选错就是在训另一件事
3 评测集污染导致结论虚高 HKMMLU 涨幅异常大,且与人工抽检的体感不符 与预训练语料比对去重、按时间切分、检查题目是否可被检索到 去重 + 严格留出 + 生成不易检索的改写变体。复盘:「涨幅异常」本身就是信号 —— 正常的能力提升不会那么陡

面试官还会接着问#

Q:你怎么知道数据流水线今天没出问题?

这是「数据侧可观测性」的问题,很多人答不上。可讲的:入库/出库量比、按类别的淘汰率曲线(分布突变比总量下降更早暴露问题)、随机抽样的人工复核队列。要点是承认:数据流水线通常是最缺监控的一环,因为它的产物是文件而不是服务。

Q:这一轮训练完了,你凭什么说比上一版好?

组合证据,不能只看一个数:① 目标能力(HKMMLU)上升;② 通用能力(留出集)不降;③ 人工抽检的体感一致;④ 输出分布没有塌(长度、重复率、拒答率的分布)。只看 ① 就是典型的「以为自己训好了」。


5. 数字口径速查#

数字 口径必须说清
76% 过滤率 两级合计淘汰比例;「低质量」的判定标准;分母是什么(总样本?按 token 还是按条?)
10% 通用数据 经验性超参,消融实验选定;分母是训练语料的总量
26,698 道题 / 66 学科 / 4 大类 注意 CV 用词是「参与构建」—— 如实描述你的角色
DPO 与 SFT 组成两阶段;选 DPO 而非 PPO 的理由是稳定性与成本

⚠️ 76% 和 10% 是最容易被追问的两个数字,务必先想清楚口径再开口。


6. 红线#

不要 claim:

  • ❌ 不要把「核心成员」说成「我一个人做了全部」。这个项目规模大,被问细节时明确说边界是加分。
  • ❌ 不要给「10% 是有理论依据的」这种假解释。
  • ❌ 不要声称 HKMMLU 是公开 benchmark 且只由你构建 —— 如实说参与程度。
  • ❌ 不要声称解决了灾难性遗忘(这是开放问题,只能说「显著缓解」)。

要主动说:

  • ✅ 主动讲「两个指标一起看」(目标能力上升 + 通用能力不降)—— 这体现评测素养。
  • ✅ 主动承认数据污染是这类评测的固有风险。
  • ✅ 主动讲两级过滤的成本思想(先便宜后贵)。
  • ✅ 主动提一个具体的失败复盘(见 §4)。这个项目的故障形态是静默的(不报错、指标还好看、但结论错),能说清这一点本身就是深度。

7. 自测#

1. 你如何证明「混入 10% 通用数据缓解了灾难性遗忘」?需要什么对照组?

答案要点

需要留出的通用能力评测集,在相同 SFT 配置下对比「混入 vs 不混入通用数据」两组:通用能力下降幅度显著更小,同时目标能力(如 HKMMLU)不明显下降,才能支撑结论。只有目标能力上升而没有通用能力的对照,说明不了遗忘被缓解。

2. 为什么数据过滤用 BERT + GPT-4 两级,而不是全用 GPT-4?

答案要点

成本与能力匹配。有害内容判定是模式识别任务,不需要世界知识,轻量分类器即可且能扛全量吞吐;知识性质量校验需要世界知识,必须用强模型。先便宜后贵的级联设计把昂贵模型的调用量压到可承受范围。

3. 面试官问「HKMMLU 的题模型是不是见过」,你怎么答?

答案要点

诚实说明风险并讲缓解措施:与预训练语料做去重比对、时间切分(题目晚于预训练截止)、生成检索不易命中的改写变体。若当时检查不严格,坦承局限并说明重做会如何改进。主动承认是加分,硬说「绝对没有污染」不可信。

4. 模型在 HKMMLU 上分数很高,能推出什么结论?不能推出什么?

答案要点

能推出:对本地知识的覆盖较好(多选题、知识回忆层面)。不能推出:生成质量、指令遵循、多轮对话能力、推理能力、安全性。多选题 benchmark 只覆盖知识回忆这一窄维度,不能代表综合能力。

5. 用 GPT-4 生成/校验数据会带来什么风险?怎么缓解?

答案要点

会把 GPT-4 的分布特征与偏置引入训练数据(风格、价值倾向、错误模式),造成模型行为向教师模型收敛。缓解:人工抽检、多来源交叉、最终用人工偏好数据校准,并对教师模型的输出做独立质量评估而不是默认可信。