← 知识整理
AI 技术与工程 / 知识整理 · 中文

LLM 微调 / LoRA / RLHF / DPO(跨作者主题综合)

LLM 微调与对齐综合。llm-interview-finetune(19 份 PDF / 微调基础 + PEFT + LoRA 系列 + QLoRA + 增量预训练 + RLHF + PPO + DPO + 显存优化 + 推理 + Prompting + SFT 数据)/ newtype 微调实战 + 王凯 LoRA 应用心得。覆盖全参 vs PEFT、LoRA + QLoRA、RLHF vs DPO、SFT 数据构建、显存优化策略

资料来源:跨来源主题整理 · 本站发布:2026-09-26 · 笔记更新:2026-05-18

AI 工程Agent 工作流模型与评测

何时打开:你要做领域模型 / 微调 chatbot / 搞 RLHF / 选 LoRA 还是全参 / 选 PPO 还是 DPO。本 wiki 把 ai-interview 19 PDF 整理成实战路径。

一句话核心:全参 vs PEFT 看显存 + LoRA 主流 + QLoRA 单卡 65B + PPO 难调 DPO 简单 → 2024 后主流转 DPO + 领域微调用 Base / 指令跟随强用 Chat。

0. 视角说明

主源:LLM 面试 / 微调与强化学习完整专题 19 份 PDF。


1. LLMs 微调基础(8 高频题)

LLM 面试 / 微调与强化学习完整专题 §一:

Q 要点
全参数微调需要多少显存? 模型 fp16 + 梯度 fp16 + Adam 状态(m,v) fp32 + 激活 — 约 16-20x 模型大小
为什么 SFT 之后感觉 LLM 傻了? 灾难遗忘 / SFT 过拟合短模式 / RL 阶段还没来
SFT 指令微调数据如何构建? 多样指令 + 高质回答 + 适量长度 + 拒答样本
领域 Continue PreTrain 数据选取? 领域 70% + 通用 30% 防遗忘
领域训练后通用能力下降怎么缓解? LoRA 增量 + 数据混合 + 渐进式微调
Continue PreTrain 如何学到更多? 高质量数据 + 充分训练 + 不同任务混合
SFT 用 Chat 还是 Base 模型? 领域微调用 Base / 指令跟随能力强用 Chat
领域微调数据输入格式? Alpaca / ShareGPT / Vicuna 指令格式

2. PEFT 参数高效微调

2.1 全参 vs PEFT

方法 优点 缺点
Fine-tune(全参) 效果好 慢 + 贵 + 灾难遗忘
PEFT 快 / 省 / 灾难遗忘小 效果略损

2.2 PEFT 方法对比

方法 思路
Prefix-Tuning 在每层加可训练前缀
P-Tuning input 端加可训练 prompt
Prompt-Tuning 简化版 P-Tuning
LoRA 低秩矩阵分解
AdaLoRA 自适应 LoRA rank
Adapter 插入小模块
IA³ 三向量乘 K/V/FFN

经验:

  • 链家 BELLE 报告:FT > LoRA 略微
  • 但 LoRA 速度 + 显存优势巨大 → 主流选择

3. LoRA 系列(主流)

3.1 LoRA 核心思想

全参更新 → 低秩矩阵分解:

W' = W + ΔW
ΔW = A * B   (A: r×d, B: d×r, r << d)

只训练 A, B 两个小矩阵(参数 << 全参微调)。

3.2 LoRA 特点

特性 说明
训练 只更新 A, B(全参的 0.1-1%)
推理 A*B 可合并到 W,推理零额外开销
多任务 多套 LoRA 切换(swappable adapters)
rank 一般 r=8/16/32,任务越复杂 r 越大

3.3 LoRA 应用层

通常应用在:

  • q_proj / k_proj / v_proj / o_proj(attention)
  • gate_proj / up_proj / down_proj(FFN,新版常加)

经验:加在 FFN 上效果通常 > 只加 attention。


4. QLoRA(单卡 24G 微调 65B)

4.1 核心思想

Q = Quantization。

  • 把基座模型量化到 4-bit(NF4 格式)
  • 在量化模型上做 LoRA
  • 单卡 24GB 微调 65B

4.2 关键技术

技术 作用
NF4(4-bit NormalFloat) 比 fp4 准确度好(为正态分布优化)
Double Quantization 量化常数本身再量化 → 省显存
Paged Optimizer 显存不够时 swap 到 CPU

4.3 QLoRA 训练显存估算

模型 全参 FT LoRA QLoRA
7B 100GB+ 24GB 8GB
13B 200GB+ 40GB 16GB
65B 1TB+ 200GB 24GB

5. 增量预训练(Continue Pretrain)

5.1 什么时候做?

  • 领域知识必须注入(医疗 / 法律 / 金融)
  • 新语言 —— 主模型不支持的语种
  • 新词表 —— 大量领域专有名词

5.2 数据配比

领域数据 70% + 通用数据 30% — 防灾难遗忘

5.3 增量预训练样本拼接

LLM 面试 / 微调与强化学习完整专题 §file_33:

  • Packing —— 多文档拼到同一序列(节省 padding)
  • Document Boundary Token —— <eos> 分隔
  • Attention Mask —— 跨文档不互见(防止 attention 串扰)

5.4 LoRA 二次预训练

LLM 面试 / 微调与强化学习完整专题 §file_34:

  • 用 LoRA 做 Continue Pretrain → 显存友好 + 易回滚
  • 关键:rank 要够大(r=64+),否则学不进领域

6. RLHF / DPO / PPO 路线

6.1 RLHF 整体流程(经典三阶段)

1. SFT(Supervised Fine-tuning)
   ↓
2. RM(Reward Model 训练)
   - 人类对回答打分 / 排序
   - 训练奖励模型
   ↓
3. RL 训练
   - PPO 或变种
   - LLM 策略 vs Reward Model

6.2 RLHF 变种

LLM 面试 / 微调与强化学习完整专题 §file_37:

方法 特点
PPO 标准 RLHF / 难调 / 显存大 / Reward Model + Critic + Actor 4 个模型
DPO(Direct Preference Optimization) 不要 Reward Model / 直接用偏好对训练 / 2024 主流
IPO(Identity Preference Optimization) DPO 改进 / 减少过拟合
KTO(Kahneman-Tversky Optimization) 用单样本反馈 / 不需要成对偏好
GRPO(Group Relative Policy Optimization) DeepSeek 提出 / R1 用 / 减少 Critic 模型
ORPO(Odds Ratio Preference) SFT + 偏好合并一步训
SimPO DPO 改进 / 不要 reference 模型

6.3 PPO 难点

LLM 面试 / 微调与强化学习完整专题 §file_38:

痛点 缓解
4 个模型显存爆炸(Actor + Critic + Reward + Reference) LoRA / ZeRO-3 / 共享参数
超参敏感(KL 系数 / clip 范围) 多次实验 + 早停
Reward Hacking 多 Reward Model ensemble
训练不稳定 gradient clipping + warmup

6.4 为什么 DPO 后来主流?

  • 不需要 Reward Model → 训练流程减半
  • 不需要 RL → 直接监督学习
  • 效果不差 → 多数任务接近 PPO

但 DPO 也有问题:

  • 容易过拟合偏好数据
  • 缺少 online 探索
  • → IPO / SimPO / GRPO 继续改进

7. 训练集 / SFT 数据构建

7.1 SFT 数据来源

LLM 面试 / 微调与强化学习完整专题 §file_40:

来源 特点
人工标注 质量高 / 贵
LLM 蒸馏(GPT-4 / Claude) 快 / 便宜 / 有 License 风险
Self-Instruct LLM 自己生成 → 训自己
Evol-Instruct(WizardLM) 用 LLM 把简单指令变复杂
OASST / OpenAssistant 开源人工标注

7.2 LLM 生成 SFT 数据

LLM 面试 / 微调与强化学习完整专题 §file_41:

关键技巧:

  1. 种子指令多样化(领域 / 难度 / 风格)
  2. 后处理过滤(去重 / 拒答 / safety filter)
  3. 质量分级(EasyData / DataGPT 评分)
  4. 混合人工 + 合成(纯合成易过拟合)

7.3 数据规模经验

阶段 推荐数据量
SFT 10K-100K 高质指令
Continue Pretrain 10-100 亿 token
RLHF/DPO 10K-100K 偏好对

8. 显存优化策略

8.1 显存占用估算

LLM 面试 / 微调与强化学习完整专题 §file_42:

显存 ≈ 模型参数 + 梯度 + 优化器状态 + 激活 + 缓存
项 fp16
参数 2 bytes/param
梯度 2 bytes/param
Adam m+v 8 bytes/param(fp32)
激活 取决于 batch / seq_len

7B 模型全参微调粗估:7B × (2+2+8) = 84 GB + 激活 → 单 A100 80G 不够 → 必须分布式或 PEFT。

8.2 8 大显存优化技巧

LLM 面试 / 微调与强化学习完整专题 §file_43:

  1. Gradient Checkpointing —— 重算激活换显存(2x 时间换 ~50% 显存)
  2. Gradient Accumulation —— 小 batch 模拟大 batch
  3. Mixed Precision(AMP) —— fp16/bf16 训练
  4. Optimizer Offloading —— Adam 状态 swap 到 CPU(DeepSpeed)
  5. ZeRO 1/2/3 —— 分布式分摊优化器 / 梯度 / 参数
  6. LoRA / QLoRA —— PEFT
  7. Flash Attention —— 不存 attention matrix
  8. Sequence Parallelism —— 切 seq 维度

9. 评测面

LLM 面试 / 微调与强化学习完整专题 §file_35:

9.1 自动指标

指标 用途
BLEU / ROUGE / METEOR 翻译 / 摘要(过时)
Perplexity 语言建模(预训练)
Exact Match / F1 QA
Pass@k 代码(HumanEval / MBPP)

9.2 LLM-as-Judge

  • GPT-4 当裁判 —— 主流
  • Arena 模式 —— Pairwise 投票
  • Chatbot Arena ELO —— LMSys 公开榜

9.3 中文 benchmark

名称 覆盖
C-Eval 中文学科
CMMLU 综合中文
GSM8K-zh 中文数学

10. 推理优化

LLM 面试 / 微调与强化学习完整专题 §file_31:

详见 LLM 基础(Transformer / Attention / 三种 PLM)(跨作者主题综合) §9.3:

技术 效果
KV Cache 基线
vLLM PagedAttention 2-3x
Quantization(GPTQ / AWQ / INT4) 1.5-2x 速 / 4x 显存
Speculative Decoding 2-3x
Continuous Batching 2-5x throughput

11. 怎么用 —— 按身份的微调路径

你是谁 主用方法 起点
想做领域 chatbot SFT + LoRA + DPO Base 模型 + 10k 高质指令 + 偏好对
单卡微调 65B QLoRA NF4 + Double Quant + Paged Optimizer
要注入领域知识 Continue Pretrain 70% 领域 + 30% 通用 + LoRA 二次预训练
想做 RLHF 优先 DPO,有钱用 PPO SFT → 偏好对 → DPO
训练显存爆 8 大显存技巧 Gradient Checkpointing + LoRA + ZeRO
要快速评测 LLM-as-Judge GPT-4 裁判 + Chatbot Arena

通用纪律:

  1. 领域微调用 Base 模型(已对齐的 Chat 会冲突)
  2. 领域 70% + 通用 30%(防灾难遗忘)
  3. LoRA 主流 / QLoRA 单卡王炸
  4. PPO 难调 → DPO 主流(2024+)
  5. SFT 不要纯合成数据(易过拟合)
  6. 显存爆先上 Gradient Checkpointing + LoRA

12. 引用清单

来源与关联资料