Skip to content
阅读进度0%
知识库待复核

训练微调面试题

区分 SFT、LoRA、DPO 与 RLHF,讲清数据拆分、显存成本和模型回归的面试回答。

我的学习与文章检索 →
学习记录仅保存在当前浏览器,可随时取消标记。

训练微调面试题 ​

从一个可测问题开始:基座模型在指定格式抽取任务中经常漏字段。先确认失败类型,再讨论训练目标、数据、适配方式和上线评估。

核心问题 ​

1. Base、Instruct、Chat 模型有什么区别? ​

Base 通常侧重预训练语言建模目标;Instruct/Chat 通常经过指令或对话方向的后训练。名称不是统一能力保证,应检查模型卡、训练说明、聊天模板和实际任务表现。不能只换模型名,仍沿用另一模型的特殊 token 和对话拼接方式。

追问:模型输出乱码或复述提示,先检查 tokenizer、chat template、停止条件和输入格式,再怀疑训练算法。参见 SFT。

2. 什么时候选 Prompt、RAG 或微调? ​

失败类型优先尝试为什么
指令或字段含义不清改任务定义、示例和输出校验先排除需求和接口问题
需要经常更新的事实或引用检索与工具外部证据可更新、可追溯
固定任务的行为不稳定在明确基线上评估 SFT用示范数据学习目标行为
多个可接受回答之间有稳定偏好评估偏好优化数据要表达清楚比较标准
延迟高、显存不足推理和部署分析不一定需要重新训练

这些方法可以组合。SFT 是训练目标/流程,LoRA 是参数更新方式,二者不是互斥选项;DPO 也可以使用 LoRA。

3. LoRA 为什么省资源,省的是哪些资源? ​

对一个形状为 d × k 的权重矩阵,用 B(d × r)A(r × k) 表示低秩增量,增加的可训练参数量为 r(d+k)。冻结基座后,通常能减少梯度和优化器状态的存储,但仍需加载基座,训练还要保存激活。实际显存受序列长度、batch、精度和目标层影响。

QLoRA 主要通过量化冻结基座进一步节省存储,并不意味着相同 rank 下 LoRA 参数更少。低 rank 也不保证与全量微调等效。依据见 LoRA 原论文、QLoRA 原论文 和 站内详解。

4. DPO 与基于奖励模型的 RLHF 有何不同? ​

典型的奖励模型 + PPO 路线先学习偏好评分,再使用奖励和约束优化策略。标准 DPO 从同一输入的 chosen/rejected 偏好对出发,利用策略与参考策略的相对概率构造目标,训练流程中无需单独拟合一个显式奖励模型或运行 PPO。

这不等于 DPO 不需要高质量偏好数据,也不等于必然优于其他对齐方法。标注不一致、长度偏差和任务分布偏移都会影响结果。参考 DPO 原论文;概念展开见 RLHF 与 DPO。

5. loss 下降,为什么任务效果还会变差? ​

训练 loss 衡量的是当前训练目标,未必等同业务成功。重复样本、评估泄漏、格式 token 占比、过拟合、错误的标签 mask,都会让曲线与实际能力脱节。

先按文档、用户或任务来源拆分训练/验证/测试集,再固定模板和解码配置比较基座、SFT 与后续对齐模型。测试集用于最终报告,不反复用于选超参;通用能力和安全回归与目标任务一起检查。参见 训练数据 和 模型评估。

追问角度 ​

  • 显存不足:区分权重、梯度、优化器状态和激活,不直接声称“换 LoRA 就一定能跑”。
  • 偏好数据:同一输入是否可比,chosen 是否真的正确,是否控制顺序和长度偏差?
  • 部署回归:合并 adapter、量化或改变 chat template 后,是否重跑相同评估集?

示例回答骨架 ​

“我会先用固定样本比较提示和结构化输出基线。若目标行为仍不稳定,再准备独立拆分的示范数据做 SFT,并视资源选择 LoRA。训练时监控验证集,最终比较字段准确性、格式通过率、旧任务退化和推理成本。新模型只有在这些指标符合预设标准时才进入灰度。”

自测 ​

给定 d=k=4096, r=8,计算单个矩阵的 LoRA 可训练参数与原矩阵参数量,并解释为什么这个比例不能直接等同“训练显存节省比例”。

基于 VitePress 构建