加载多个LoRA并随时切换
参考Multi Adapter support
要求peft>=0.3.0
用法说明
- 在加载第一个适配器时,可以通过
PeftModel.from_pretrained
方法并指定adapter_name
参数来给它命名。否则,将使用默认的适配器名称default
。 - 要加载另一个适配器,请使用
PeftModel
的load_adapter()
方法,例如:model.load_adapter(peft_model_path, adapter_name)
- 要切换适配器,请使用
PeftModel
的set_adapter()
方法,例如:model.set_adapter(adapter_name)
- 要禁用适配器,请使用上下文管理器
disable_adapter()
,例如:with model.disable_adapter()
- 特别适用于LoRA方法:要合并和卸载当前活动的适配器,以便将LoRA权重添加到基础模型权重中,并将注入的LoRA模型删除以恢复具有添加了LoRA权重的Transformers基础模型的模型,请使用
merge_and_unload()
方法,例如:model = model.merge_and_unload()
例子
from peft import PeftModel
from transformers import LlamaTokenizer