大模型通过预训练从海量文本中学习语言的一般规律和世界知识,再通过微调(Fine-tuning)在预训练基础上用特定领域数据进一步适配。
全量微调、LoRA、Prefix Tuning、P-Tuning
这几种都是大模型微调的主流方法,核心区别在于更新多少参数以及如何更新。简单来说,全量微调是“大动干戈”,后面三种都属于“参数高效微调”(PEFT),只训练少量参数,省资源、速度快。
全量微调(Full Fine-tuning)
- 原理:对预训练模型的所有参数进行更新,让整个模型适应下游任务。
- 优点:理论上性能上限最高,能充分挖掘模型潜力,适合数据充足、追求极致效果的场景。
- 缺点:显存和算力开销巨大(如GPT-3 175B全量微调需约2.3TB显存),训练时间长,小数据下容易过拟合,每个任务都要保存一份完整模型副本。
- 适用场景:数据量大(10万+样本)、算力充足、任务复杂且对精度要求极高的场景(如医疗诊断、金融风控)。
LoRA(Low-Rank Adaptation)
- 原理:冻结原模型权重,在权重矩阵旁添加两个低秩小矩阵(如A和B),只训练这两个小矩阵,训练完把结果合并回原权重。
- 优点:可训练参数从几十万级降到几千几万级,显存占用极低,单卡可训练70B甚至175B模型,且即插即用、方便切换任务。
- 缺点:低秩近似会引入一定误差,在需要细粒度理解的复杂任务上性能可能不及全量微调。
- 适用场景:资源有限、需要快速迭代或多任务适配的场景,是目前工业界最常用的方法之一。
Prefix Tuning(前缀微调)
- 原理:在Transformer每一层的输入前添加一组可学习的“虚拟前缀”向量(Prefix),参与注意力计算,引导模型适配任务。只训练前缀参数,模型主体冻结。
- 优点:无需修改模型内部结构,仅需训练少量前缀向量,适合多任务学习(不同任务可保存不同前缀),在生成任务上性能接近全量微调。
- 缺点:会增加输入序列长度,带来额外计算和推理开销;前缀长度选择对性能影响较大。
- 适用场景:文本生成类任务(如对话、摘要、机器翻译),适配GPT、BART、T5等自回归或编码器-解码器模型。
P-Tuning(提示微调)
- 原理:在输入嵌入层(P-Tuning v1)或每一层(P-Tuning v2)插入可训练的“软提示”(Soft Prompt)向量,通过LSTM或MLP编码器生成提示嵌入,引导模型理解任务。
- 优点:相比Prefix Tuning更灵活,提示可插入输入任意位置;P-Tuning v2 在每层加入提示,性能可接近全量微调,且解决了Prompt Tuning在小模型上效果差的问题。
- 缺点:P-Tuning v1仅优化输入层,效果有限;v2实现复杂度更高,对提示长度等超参数敏感。
- 适用场景:自然语言理解(NLU)任务(如文本分类、情感分析、命名实体识别),P-Tuning v2 在多类NLU基准上表现优异。
总结与选择建议
表格
| 方法 | 更新参数位置 | 参数量 | 典型任务 | 资源需求 |
|---|---|---|---|---|
| 全量微调 | 所有层所有参数 | 100% | 复杂任务、追求极致性能 | 极高 |
| LoRA | 权重矩阵旁的低秩矩阵 | 约0.01%-1% | 通用,工业界首选 | 低 |
| Prefix Tuning | 每层输入前缀 | 约0.1%-3% | 文本生成(NLG) | 低 |
| P-Tuning | 输入层或每层软提示 | 约0.1%-3% | 文本理解(NLU) | 低 |
选型参考:
- 算力和数据充足、追求最高性能 → 全量微调。
- 资源有限、需要快速迭代或多任务适配 → LoRA。
- 生成类任务(对话、摘要) → Prefix Tuning 或 P-Tuning v2。
- 理解类任务(分类、实体识别) → P-Tuning v2。
模型微调之后还有一步”对齐“,让模型输出符合人类期望。RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)通过人类反馈来优化模型行为——判断”RLHF 不需要人类参与”为错误,它恰恰以人类反馈为核心。DPO(Direct Preference Optimization,直接偏好优化)则是更轻量的对齐方式。
微调和对齐是大模型训练中两个不同阶段:微调让模型“学会做事”,对齐让模型“做得符合人类期望和价值观”。可以简单理解为:微调是教技能,对齐是教做人。
两者在目标、数据、方法上都有明显差异:
🎯 目标不同
- 微调:让模型学会特定任务、领域或交互方式,比如写法律合同、做客服问答、按指定格式输出。
- 对齐:让模型输出符合人类偏好和价值观,减少有害、偏见、幻觉内容,做到有用(Helpful)、诚实(Honest)、无害(Harmless)。
📊 数据不同
- 微调:使用高质量的“问题-答案”对(Instruction-Response),数据量从数千到数百万条不等,针对性越强越好。
- 对齐:使用人类偏好数据,比如“回答A比回答B好”的成对比较数据,通常需要数万到数十万条偏好对。
🔧 方法不同
- 微调:包括全参数微调(更新所有参数)和参数高效微调(PEFT),常用方法有 LoRA、Adapter、Prefix-Tuning 等。
- 对齐:经典方法有 RLHF(基于人类反馈的强化学习)、DPO(直接偏好优化)、KTO、Constitutional AI 等。
⚠️ 需要澄清的几点
- 两者有重叠:很多资料会把监督微调(SFT)也归入对齐的广义范畴,工程上常按“预训练→微调→对齐”三阶段划分,方便理解。
- 是否必须对齐看场景:如果模型在特定封闭任务上效果达标、没有明显不良行为,可以不进行对齐;但通用对话模型几乎一定会做对齐,因为开放场景不可控因素太多。
- 算力开销差异大:微调通常占大模型总训练算力的 1%-5%,对齐不到 1%,但工程稳定性要求极高。
简单说,微调决定模型“会不会做”,对齐决定模型“能不能好好做”。