为什么需要微调?
GPT-4、Claude、Llama 等基础模型经过海量文本预训练后,具备了强大的语言理解与生成能力。但它们是"通才"——对特定领域的专业性不足,对特定任务格式的遵从度不够。
微调(Fine-tuning) 就是用特定领域数据对预训练模型进行二次训练,使其在目标任务上表现更好。
LoRA:低秩适配的优雅解法
LoRA(Low-Rank Adaptation) 是目前最流行的 PEFT 方法。核心思想:预训练模型的权重更新量是低秩的。
不直接更新原始权重矩阵 W,而是引入两个小矩阵 A(d×r)和 B(r×k)的乘积来近似更新量:
W' = W + ΔW = W + BA
其中秩 r ≪ min(d, k)
只有 A 和 B 需要训练,原始权重 W 冻结不变。当 r=8、d=4096 时,参数量从 1670 万压缩到约 65536,减少约 256 倍。
QLoRA:将微调门槛降到消费级显卡
QLoRA 在 LoRA 基础上加入量化:将模型权重从 16-bit 压缩到 4-bit 存储(NF4 格式)。这使得在单张 RTX 3090(24GB 显存)上微调 65B 模型成为可能。
三个关键技术:
- NF4 量化:专为正态分布权重设计的 4-bit 数据类型,减少量化误差
- 双重量化:对量化常数本身再次量化,进一步节省内存
- 分页优化器:使用 NVIDIA 统一内存,在 GPU 内存溢出时自动换页到 CPU
RLHF:让模型符合人类价值观
RLHF(Reinforcement Learning from Human Feedback) 是 ChatGPT、Claude 等对话模型能够"听话"的核心技术,分三个阶段:
- 1监督微调(SFT):收集高质量示范数据,对预训练模型做标准微调
- 2奖励模型训练(RM):让人工标注者对模型的多个输出进行排序,训练能预测人类偏好的打分模型
- 3PPO 强化学习:以奖励模型的分数为信号,用 PPO 算法更新语言模型
RLHF 的本质是将"人类认为好的回答"这一模糊概念,通过奖励模型转化为可优化的数值信号,再通过强化学习让 LLM 朝这个方向进化。
如何选择微调策略?
- 数据量 < 1000 条:优先考虑 Prompt Engineering,微调容易过拟合
- 数据量 1000~100K 条,资源有限:QLoRA 首选,性价比最高
- 数据量充足,追求极致性能:全参数微调或大 rank 的 LoRA
- 需要对齐价值观和行为风格:RLHF 或 DPO(Direct Preference Optimization)