微调方法

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 极低 极低 显存受限环境 显存占用极低,适合小设备 训练速度较慢
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐