原文地址
思考题
问题1:什么是Adapter?(解决)
答案:Adapter是轻量级微调+模块化设计,具体体现在只增加少量的参数,但是不改变原始模型的主干结构。
问题2:Adapter的结构是怎么样的?具体细节是什么样的?(解决)
答案:
如图中,结构1是Adapter加入的位置,如图2是Adapter的具体细节,不加以赘述
问题3:怎么用一个模型就能够完成很多种任务?(解决)
答案:
方法1:按照任务顺序微调,这样会出现灾难性遗忘
方法2:多任务共同学习,学习到知识的多样性,无法平衡数据集相差很大的任务
方法3:如果想要把来自多个任务的知识结合起来,是否可以考虑把多个任务的Adapter的参数结合起来,于是就有了AdapterFusion
问题4:AdapterFusion的技术原理和技术细节是怎么样的?(解决)
答案:技术原理:知识提取阶段:通过不同的Adapter层微调不同的任务
知识融合阶段:将预训练的参数和不同的adapter层的参数融合起来
如下图所示:
两阶段的技术细节:
对于第一阶段:可以采用n个任务独立微调n次,然后组合的方式,也可以选择多任务组合微调的方式(推荐单任务微调,这次微调是微调单任务adapter层的参数)
对于第二阶段:为了避免新的任务对于多任务微调后结果的再次微调导致的灾难性遗忘,将n个任务参数和预训练参数固定,然后再次根据新的任务来微调Adapterfusion的参数(这次微调是为了调整组合Adapterfusion层的参数)
问题5:什么是Adapter Drop?(解决)
答案:Adapter Drop是为了推理加速,因为在Adapter fusion中加入了大量的参数,在模型推理过程中,会变慢,所以就随机地丢弃Transformer较低的层来加速推理。
问题6:本章讲了什么?结构是什么样的?(解决)
讲了Adapter,Adapterfusion和Adapter Drop,结构:技术是什么,技术原理是什么,作用是什么