如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号“圆圆的算法笔记”,更多算法笔记、算法交流,以及世间万物的学习记录~
NLP中,预训练大模型Finetune是一种非常常见的解决问题的范式。利用在海量文本上预训练得到的Bert、GPT等模型,在下游不同任务上分别进行finetune,得到下游任务的模型。然而,这种方式的代价也很大,经常要对所有任务都保存一个完整的task-specific模型,随着预训练模型体积越来越大,这种方式会占用很多存储空间,当下游任务很多的时候要存储大量的预训练模型。同时,为每个任务finetune一个如此庞大的模型,训练资源的消耗也比较大。
为了实现更绿色、经济的NLP预训练模型迁移,近两年来业内提出了很多优化finetune的方法,例如adapter finetune、mask finetune等。最近很火的prompt更是极大减轻了finetune开销,甚至不进行finetune就能应用于下游任务。本文重点介绍近两年几个NLP中finetune优化的经典工作,包括adapter-finetune、side-tuning、mask-finetune以及prefix-finetune等工作。
1. Adapter-tuning
迁移NLP预训练模型的方法主要分为finetune和feature-based。Finetune将原来的模型在下游任务上进行训练,而feature-based方法使用预训练模型产出的词、句子等embedding作为输入,接下游一个独立的模型进行预测。其中finetune的效果往往由于feature-based方法。然而finetune的计算开销要比feature-based大很多,能不能采