首先,我们要明确Fine Tuning和Prompt Tuning的目的,都是为了让预训练的模型能够应用于下游任务。Fine Tuning侧重于改变模型中的参数或结构,Prompt tuning则是改变
经典的Fine Tuning技术是用少量特定领域的数据再去训练已经预训练过的模型,从而实现在特定领域表现更好。这个过程小幅度地更新了原本的模型参数,因此称之为微调。这种全部参数都要调整的技术也叫做FFT。
调整全部参数需要的资源和算力还是太多了,因此Parameter-Efficient Fine Tuning(PEFT)出现了。PEFT是只调整模型的一小部分参数来适应下游任务。具体实现方法有很多种,如冻结一些层的参数,在原网络中添加一个小型网络Adapter以适应任务(Adapter Training),训练一个小的网络模拟大模型的行为(distillation,知识蒸馏),从原始大模型开始fine Tuning,逐渐减少参数数量(progressive shrinking,渐进收缩)等等方法。
Prompt Tuning则不会改模型的参数和结构,其重点在于在调整原输入,加上一些模板或提示,使得大模型可以输出目标任务所需的输出。如对于一个预训练好的填词大模型,我想要实现的下游任务是文本情感分析,那么对于每个输入,我可以在后面加上“it was __(这里是大模型需要补充的词)”。具体例子如“I like eating apples”变为“I like eating apples, it was great.”大模型补充上了great,我们即可知道这句话为积极意义。