Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 3.18 KB

预训练模型轻量化微调.md

File metadata and controls

64 lines (43 loc) · 3.18 KB

预训练模型的轻量化微调

last modify

背景

从遗忘问题到预训练轻量化微调 - 李rumor

  • 预训练+微调”范式有效的前提是,我们假设模型在海量数据上学到了大量先验知识,而这些知识被存储在模型的参数中;
  • 对整个预训练模型进行微调,意味着会改动这些参数;如果变动太大,那么就可能会带来“灾难性遗忘”的问题;
    • 一个简单的验证方法:“有的时候,大家可以试试学习率大一些跑跑,会发现学几代以后loss就会骤变,这个其实就是重现遗忘最简单的方式。”
    • 不过参数变动不代表知识一定会丢失,大多数情况下,“预训练+微调”依然是有效的;

三种解决思路

  1. Replay: 重播,就是在新任务中,把老的内容复习一遍,能让模型保留住。
    • 虽然实现简单,但是现在的预训练模型和数据都很“重”,成本很大;
  2. Regularization-Based: 在损失函数上应用正则化方法,使新模型和原模型之间的差距不会很大(跟蒸馏的思想很接近)
    • 实现简单,对模型的改动很小;
    • 这个方法有两个问题:1)需要微调整个模型,效率低;2)可能会导致训练目标的偏移,即得到的不是最优解;
  3. Lightweight Finetuning: 轻量化微调,目前比较常见的方法是参数孤立化(Parameter Isolation),即冻住预训练模型,加入新的模块,只微调该模块来避免遗忘的问题。
    • 目前比较主流的方法,兼顾了“遗忘问题”和训练效率;

轻量化微调(Lightweight Finetuning)

  • 目前轻量化微调的主要方法是参数孤立化,即不动预训练模型,而是在预训练模型的基础上增加新的可训练参数

    关键词Parameter IsolationParameter-Efficient

  • 下面介绍三种常见的参数孤立化方法;

Adapter

[1902.00751] Parameter-Efficient Transfer Learning for NLP

LoRA

[2106.09685] LoRA: Low-Rank Adaptation of Large Language Models

Prefix-Tuning

[2101.00190] Prefix-Tuning: Optimizing Continuous Prompts for Generation

其他论文

参考

  • A continual learning survey: Defying forgetting in classification tasks

    从 NLP 领域出发,介绍遗忘存在的本质,并综述了一些比较常见的解决方案