⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

6.2 微调:让 LLM 适配你的任务

核心问题: 什么时候用微调?LoRA 是什么?微调和对齐有什么区别?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明


微调在 LLM 流程中的位置

第5章介绍了对齐(SFT/RLHF),这里的微调在目标上不同,但技术上都是对预训练模型进行监督学习:

预训练(大规模无标注文本)
    ↓ 学到通用语言能力
对齐 SFT(指令-回答对)         ← 第5章:让模型学会对话格式和指令遵循
    ↓ + RLHF 等偏好对齐步骤
通用助手(ChatGPT/Claude)      ← 实际还包括 RLHF 等后续步骤,此处简化
    ↓ 微调(任务特定数据)       ← 本节:让助手适配特定任务
专用模型(医疗问答/代码生成/客服)

区别:

  • 对齐 SFT(指令微调):让模型学会"作为助手"的行为模式——对话格式、指令遵循、拒绝有害请求
  • 任务微调(本节):在通用助手基础上,注入特定领域的知识和输出格式——学会输出 JSON 格式的医疗诊断、符合团队规范的代码片段

两者技术上相同(都是监督微调),目的不同:前者改变行为模式,后者适配具体任务。


为什么需要微调

通用 LLM 在特定任务上的局限:

问题例子微调的解法
输出格式不稳定医疗报告需要固定结构用格式化样本训练
领域知识不足法律条文、专业术语注入领域数据
风格不匹配企业客服需要特定语气用风格样本训练
推理成本高简单任务用大模型浪费微调小模型达到同等效果

全量微调 vs 参数高效微调

全量微调(Full Fine-tuning)

更新模型所有参数。

问题: GPT-3 有 1750 亿参数,全量微调需要数百张 GPU,成本极高。而且容易灾难性遗忘——模型在新任务上变好,但原有能力下降。

LoRA(Low-Rank Adaptation)

不直接修改原始权重,而是在旁边加一个低秩"适配器",只训练约 0.1-1% 的参数。在许多格式、风格和领域适配任务上,LoRA 能以较低成本取得接近全量微调的效果。原理和数学推导见 第5章 5.4 微调

其他 PEFT 方法

  • Prefix Tuning:在输入前加可学习的"前缀向量"
  • Adapter:在 Transformer 层之间插入小型适配模块
  • QLoRA:LoRA + 量化,进一步降低显存需求,消费级 GPU 可运行

详见 扩展:微调工程实践


微调需要多少数据

任务类型最少数据量推荐数据量
格式/风格调整50-200 条500-2000 条
领域知识注入500-1000 条5000+ 条
全新能力1000+ 条10000+ 条

数据质量很关键:少量高质量、覆盖边界情况的样本,通常比大量重复或噪声样本更有价值。


何时用微调 vs RAG vs Prompt

任务需求

    ├─ 需要最新/外部知识?
    │       ↓ 是 → RAG(检索增强)

    ├─ 需要特定格式/风格/领域能力?
    │       ↓ 是 → 微调(LoRA)

    ├─ 通用任务,模型能力足够?
    │       ↓ 是 → Prompt 工程

    └─ 知识 + 格式都需要?
            ↓ → RAG + 微调(组合使用)

实践建议: 先用 Prompt 工程验证任务可行性;如果问题来自知识缺失,优先考虑 RAG;如果问题来自固定格式、风格或行为不稳定,再考虑微调。微调的成本(数据标注 + 训练 + 评估)只有在瓶颈明确时才值得投入。


代码实验

LoRA Parameters

图6.2:7B 模型全量微调 vs LoRA 不同 rank 的可训练参数量对比。左图为绝对参数量(对数坐标),右图为参数占比。LoRA r=8 时参数量仅为全量微调的 0.05%。

参考: LoRA 矩阵分解原理图见第5章实验5.4a(code/ch05_llm_basics/lora_visualization.py)。

代码文件: code/ch06_llm_applications/finetuning_demo.py
运行方式: python code/ch06_llm_applications/finetuning_demo.py


本节小结

  • 任务微调对齐 SFT 是不同阶段:前者适配任务,后者改变行为模式
  • LoRA 通过低秩分解大幅降低微调成本,适合格式、风格和领域适配
  • 微调适合:输出格式固定、领域知识专业、风格要求严格的场景
  • 选择策略:Prompt 验证可行性,RAG 解决知识更新,微调解决行为适配,按瓶颈升级

下一节: 6.3 RAG(检索增强生成)扩展阅读: 微调工程实践(数据格式、工具选型、训练配置)

本教程采用 CC BY-NC-SA 4.0 许可协议