Skip to content

模型微调、LoRA 与蒸馏

这一组问题关注“如何让模型更适合特定任务”,常见于算法、AI 应用工程和大模型平台岗位。

核心知识点

需要掌握:

  • Fine-tuning:用任务数据继续训练模型。
  • SFT:监督微调,使用输入输出样本训练。
  • PEFT:参数高效微调,只训练少量新增参数。
  • LoRA:冻结原模型权重,训练低秩适配矩阵。
  • QLoRA:结合量化进一步降低显存成本。
  • Distillation:用大模型输出训练小模型。
  • 数据质量:微调效果高度依赖数据质量和覆盖面。
  • 评估:微调前后要用固定评估集比较。

模型定制方案选择

知识更新优先 RAG,便于引用和维护
->
格式稳定Prompt 或微调输出风格
->
任务适配SFT / LoRA 学习任务模式
->
低成本部署蒸馏到更小模型

模型微调是什么?

模型微调是在预训练模型基础上,用特定任务或领域数据继续训练,让模型更适合目标场景。

适合场景:

  • 固定格式输出
  • 特定语气或风格
  • 领域任务模式
  • 分类、抽取、改写等稳定任务
  • 小模型能力增强

不适合把频繁变化的知识硬塞进模型。知识更新通常更适合 RAG。

微调和 RAG 怎么选?

优先 RAG 的场景:

  • 知识经常变化
  • 需要引用来源
  • 数据量大且可检索
  • 企业私有知识问答

优先微调的场景:

  • 输出格式固定
  • 模型总是不按要求表达
  • 任务模式稳定
  • 希望降低 prompt 长度
  • 希望小模型具备特定能力

组合方案也很常见:RAG 提供知识,微调让模型更会按业务格式回答。

LoRA 是什么?

LoRA 是 Low-Rank Adaptation,属于参数高效微调方法。

它的思路是:

  • 冻结原模型大部分权重。
  • 在部分层中加入低秩矩阵。
  • 训练这些少量新增参数。
  • 推理时把 LoRA 权重和原模型结合使用。

优点:

  • 训练参数少
  • 显存需求低
  • 多任务适配方便
  • 可以为不同任务保存不同 adapter

LoRA 和全量微调有什么区别?

全量微调会更新模型大量参数,成本高,显存要求高,也更容易破坏原模型能力。

LoRA 只训练少量低秩适配参数,更轻量。

对比:

  • 全量微调:能力强但成本高。
  • LoRA:成本低、部署灵活,适合多数任务适配。
  • Prompt:成本最低,但复杂格式和稳定性可能不足。

QLoRA 是什么?

QLoRA 可以理解为在量化模型基础上进行 LoRA 微调。

它通过降低基础模型存储和计算精度,进一步减少显存占用,让较大模型能在较小硬件上微调。

面试时可以说:QLoRA 解决的是大模型微调的显存成本问题,但量化和训练稳定性也需要关注。

模型蒸馏是什么?

蒸馏是用大模型或强模型作为 teacher,生成训练数据或软标签,再训练一个更小的 student 模型。

目标:

  • 降低推理成本
  • 降低延迟
  • 便于私有化部署
  • 在特定任务上接近大模型效果

常见流程:

  1. 准备任务输入。
  2. 用大模型生成答案或推理过程。
  3. 清洗和过滤数据。
  4. 训练小模型。
  5. 用评估集对比 teacher 和 student。

微调数据怎么准备?

关键原则:

  • 数据要覆盖真实场景。
  • 输入输出格式要稳定。
  • 错误样本要清理。
  • 高质量少量数据通常比大量脏数据更好。
  • 训练集、验证集、测试集要拆开。
  • 要保留难例和边界情况。

数据质量往往比训练技巧更重要。

高频面试题

微调和 RAG 有什么区别?

RAG 是把外部知识检索出来交给模型回答,适合知识经常变化、需要引用来源、企业私有文档问答。微调是改变模型行为或能力,适合固定风格、固定格式、特定任务模式。

面试时可以说:知识问题优先 RAG,行为和格式问题考虑微调,两者也可以组合使用。

LoRA 为什么能降低训练成本?

LoRA 不更新模型全部参数,而是在部分权重旁边加入低秩矩阵,只训练这些新增的小参数。这样显存、训练时间和存储成本都会降低。

它适合在有限资源下做领域适配。缺点是能力提升受基础模型和数据质量限制,不是万能增强。

LoRA 和全量微调怎么选?

LoRA 成本低、训练快、容易保存多个 adapter,适合大多数业务微调。全量微调成本高,但可调整空间更大,适合数据充足、目标明确、预算足够的深度定制。

实际项目通常先用 Prompt、RAG 和 LoRA 验证价值,除非有强需求和足够评估体系,否则不轻易全量微调。

QLoRA 解决什么问题?

QLoRA 通过量化基础模型,进一步降低显存占用,让更大的模型可以在较低硬件资源上微调。它通常结合 LoRA,只训练少量适配参数。

需要注意量化可能带来精度损失,所以要用验证集评估效果,而不是只看训练能跑起来。

蒸馏适合什么场景?

蒸馏适合把大模型能力迁移到小模型,用来降低推理成本、减少延迟或部署到资源受限环境。常见做法是用大模型生成高质量样本或软标签,再训练小模型。

它适合任务边界清晰、输出格式稳定的场景,例如分类、抽取、改写。开放式复杂推理任务蒸馏难度更高。

如何评估微调是否有效?

要先准备固定测试集和业务指标,再比较微调前后的准确率、格式稳定性、人工满意度、拒答率、幻觉率、延迟和成本。

不能只看几个示例效果好。成熟流程应该包含离线评估、人工评审、灰度上线和 bad case 回流。

微调会不会让模型遗忘原有能力?

可能会,这叫灾难性遗忘。尤其是数据单一、训练轮次过多、学习率过大时,模型可能过度拟合新数据,导致通用能力下降。

解决思路包括控制训练强度、混入通用样本、保留验证集、使用 LoRA 等参数高效微调方式,并持续评估通用能力。

微调数据应该怎么构造?

数据要贴近真实业务输入输出,覆盖常见场景、边界场景和失败场景。格式要统一,错误样本要清理,不能把错误答案喂给模型。

如果目标是格式稳定,要提供严格格式样本;如果目标是领域问答,要保证答案可信。数据质量通常比数据数量更重要。

什么时候不应该微调?

知识频繁变化、需要引用来源、数据量很少或问题可以通过 Prompt/RAG/规则解决时,不应该急着微调。

如果没有评估集,也不清楚成功标准,微调只会增加成本和不确定性。面试时可以强调:先定义目标和评估,再决定是否微调。

成熟回答要强调:先明确目标,再选方案。不要为了“看起来高级”而微调,很多业务问题用 RAG、Prompt、规则和评估就能解决。

Built with VitePress and GitHub Pages.