【LLM】微调方法对比
不同应用场景的大模型微调方法选择。
·
微调方法
1. Prefix Tuning
- 核心:在每个Transformer层前插入虚拟token作为任务前缀。
- 特点:
- 占用序列长度,计算开销较高。
- 线性插值逻辑复杂,实现难度较大。
2. Prompt Tuning
- 核心:仅在输入层添加可学习的虚拟token(软提示)。
- 特点:
- 参数量小,显存消耗低。
- 适合简单文本理解任务(如分类),但对序列标注任务(如实体识别)效果有限。
3. P-Tuning
- 核心:将Prompt转化为可学习的Embedding层,通过双向LSTM + MLP建模token依赖关系。
- 特点:
- 虚拟token位置灵活(非固定前缀)。
- 引入Prompt编码器加速收敛,效果优于Prompt Tuning。
4. P-Tuning v2
- 核心:在每层Transformer中加入任务专属prompt token,支持多任务学习与动态提示长度。
- 特点:
- 支持复杂序列标注任务(如机器翻译)。
- 移除冗余结构(如LSTM/MLP),提升效率。
- 解决小模型微调效果差的问题。
5. Adapter Tuning
- 核心:在每层Transformer中嵌入Adapter模块,仅微调新增参数。
- 特点:
- 原模型参数固定,训练稳定性高。
- 推理时增加额外计算延迟。
6. LoRA
- 核心:通过低秩矩阵分解模拟参数变化,间接训练大模型。
- 特点:
- 参数量极小(如0.1%原始参数量)。
- 推理延迟可忽略,支持任务间快速切换。
- 实现简单,效果稳定。
7. QLoRA
- 核心:将预训练模型量化至4bit,添加低秩适配器进行微调。
- 特点:
- 显存需求极低(适合消费级GPU)。
- 训练速度略慢于LoRA,但精度损失可控。
总结对比
| 方法 | 参数量 | 显存消耗 | 适用场景 | 优势 | 局限 |
|---|---|---|---|---|---|
| Prefix Tuning | 高 | 高 | 复杂任务 | 结构完整,灵活性高 | 计算开销大 |
| Prompt Tuning | 低 | 低 | 简单文本理解 | 实现简单,资源友好 | 序列标注效果差 |
| P-Tuning | 中 | 中 | 中等复杂任务 | 收敛快,效果好 | 结构稍复杂 |
| P-Tuning v2 | 中 | 中 | 复杂序列标注 | 支持多任务,效率高 | 依赖多任务设计 |
| Adapter Tuning | 低 | 低 | 稳定性要求高的场景 | 训练稳定,兼容性强 | 推理延迟增加 |
| LoRA | 极低 | 极低 | 快速任务切换 | 推理高效,通用性强 | 依赖低秩假设 |
| QLoRA | 极低 | 极低 | 显存受限环境 | 显存占用极低,适合小设备 | 训练速度较慢 |
更多推荐



所有评论(0)