注入少量可学习的向量参数: 注入适配器IA3
- 简介:IA3通过学习向量来对激活层加权进行缩放,从而获得更强的性能,同时仅引入相对少量的新参数。它的诞生背景是为了改进LoRA,与LoRA不同的是,IA3直接处理学习向量,而不是学习低秩权重矩阵,这使得可训练参数的数量更少,并且原始的预训练权重保持冻结状态,方便构建多个轻量级、便携式的模型用于不同下游任务,其性能与完全微调的模型相当,且不会增加推理延迟.
- 使用方法:首先实例化基本模型,然后创建一个IA3Config配置对象,在其中定义IA3特定的参数,如任务类型、目标模块等。接着,使用get_peft_model()函数包装基础模型以获得可训练的PeftModel,最后像平常训练基础模型一样训练PeftModel即可.
- 举例:对于一个机器翻译任务,使用T5模型作为基础模型,采用IA3微调方法。创建IA3Config配置,指定任务类型为SEQ_2_SEQ_LM,目标模块为(“k”, “v”, “wo”),然后包装T5模型得到可训练的PeftModel