Delta Tuning学习知识
本博客记录我学习B站【清华NLP】课程中的内容与想法,这是本系列第二篇,后续可能还会有更新。
文章目录
Delta Tuning介绍
- Prompt Learning对于位置任务不太适用,但是认为可以用于多模态。也就是图片与文本理解。
- Delta Tuning核心思想:绝大多数参数不变,只微调一小部分模型,优化特别少参数。也就是把解决任务抽象为一小部分参数(Delta Objects)。
有了预训练大模型,这类方法才有用。
分类:Addition,增量式;Specification,指定式;Reparameterization,重参数化式(现在超级常用的LoRA)。
提示:以下是本篇文章正文内容,下面案例可供参考
一、增量式tuning
代表方法1:Adapters
代表方法1:Adapters
事实上,Adapter就是简单的MLP,双层神经网络,实现上投影与下投影,输入维度与输出相同。
在Transformer架构中加入两个Adapter,只训练Adapter部分,大模型效果可能会更好。
后续改进工作还有把Adapter放在主模型外的,反向传播时不需要经过backbone,更省计算。且进行降维之后还减少内存占用。
代表方法2:Prefix-Tuning
soft token:可以理解为模型试图学习或优化的可微调的词嵌入
Prefix-Tuning在每个隐藏层中加入soft token进行优化
代表方法3:Prompting
只在输入层加入soft prompts
二、指定式tuning
代表方法:BitFit
做法:只微调transformer中的偏移(bias),简单任务上能达到和全参数效果差不多。
三、重参数化式tuning
核心思想:模型优化可以用很小的代价完成。
代表方法1:Instrinsic Prompt Tuning
假设:优化的过程可以在低维子空间进行,许多任务中有公共子空间。
代表方法2:LoRA
不认为模型是低维,而是认为本质是低秩的,可以强行的做低秩分解,节省计算量。LoRA冻结预训练模型的权重,并在每个Transformer块中加入分解的可训练层(称为秩分解矩阵)。
总结
可以找一种更好的方法,因为所有的delta tuning都可以认为是在更小的空间去寻找答案。模型特别大的时候可能结构的重要性会下降,delta tuning在超大模型中会发挥的超级好。