peft

PEFT 参数高效微调

补充说明

PEFT(Parameter-Efficient Fine-Tuning)提供 LoRA、QLoRA、Prefix Tuning、IA3 等方法,只训练少量参数即可适配大模型。它与 Transformers、TRL、Accelerate 集成。

最常用的是 LoRA:冻结基座模型,在注意力层注入低秩矩阵,训练和存储成本都很低。

常用示例

安装:

pip install peft transformers accelerate

配置 LoRA:

from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=8,
    lora_alpha=16,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)
model = get_peft_model(model, config)
model.print_trainable_parameters()

保存和加载:

model.save_pretrained("./lora-adapter")
from peft import PeftModel
model = PeftModel.from_pretrained(base_model, "./lora-adapter")

合并权重:

merged = model.merge_and_unload()
merged.save_pretrained("./merged-model")

易错点与排错