1 介绍
- PEFT (Parameter-Efficient Fine Tuning) 方法在微调时冻结预训练模型参数,并在其上添加少量可训练的参数(称为适配器)
- 这些适配器被训练用来学习特定任务的信息。
- 这种方法已被证明在内存效率和计算使用上非常高效,同时能产生与完全微调模型相当的结果。
- 使用PEFT训练的适配器通常比完整模型小一个数量级,这使得分享、存储和加载它们变得非常方便。
- 例如,一个OPTForCausalLM模型的适配器权重在Hub上的存储只有约6MB
- 相比之下,完整的模型权重可以达到约700MB。
2 加载 PEFT适配器
2.1 直接from_pretrained加载
- 若要从 Transformers 加载和使用 PEFT 适配器模型,请确保 Hub 存储库或本地目录包含 adapter_config.json 文件和适配器权重
- 然后,可以使用 AutoModel类加载 PEFT 适配器模型
from transformers import AutoModelForCausalLM, AutoTokenizer
peft_model_id = "ybelkada/opt-350m-lora"
model = AutoModelForCausalLM.from_pretrained(peft_model_id)