You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PEFT模型初始化:PeftModel.from_pretrained与get_peft_model的差异

两种PEFT模型初始化方式的核心差异

适用场景

  • PeftModel.from_pretrained(model, peft_model_id, ...):专门用来加载已训练完成的PEFT权重——不管是你自己之前微调好的,还是别人分享的LoRA/Adapter权重,用这个方法把它们挂载到基础模型上,直接就能用或者继续微调。
  • get_peft_model(model, peft_config):用来搭建全新的PEFT训练结构——给基础模型添加PEFT可训练组件(比如LoRA层),此时PEFT权重是随机初始化的,必须经过训练才能生效,用于启动新的微调任务。

输入要求

  • PeftModel.from_pretrained需要传入peft_model_id:可以是本地保存PEFT权重的路径,也可以是模型仓库的PEFT模型ID,这个路径/ID里必须包含训练好的权重文件(比如adapter_model.bin)和配置文件(adapter_config.json)。另外还支持device_map、max_memory这类加载时的设备分配参数。
  • get_peft_model需要传入peft_config:比如LoraConfig、IA3Config这类配置类,里面定义了PEFT的类型、要修改的目标层、秩大小等训练参数,框架会根据这个配置给基础模型注入对应的可训练模块。

后续使用逻辑

  • 用PeftModel.from_pretrained加载后的模型:直接就能做推理,也可以在已有PEFT权重的基础上继续微调。
  • 用get_peft_model初始化后的模型:必须先进行训练,否则PEFT模块是随机权重,推理效果和原始基础模型没区别甚至更差。

内部实现

  • PeftModel.from_pretrained:先解析PEFT配置文件,然后把预训练好的PEFT权重加载到对应层,基础模型的权重默认保持不动。
  • get_peft_model:根据配置动态修改基础模型结构,注入PEFT可训练模块,并且默认把基础模型的参数设为不可训练,只让PEFT模块的参数参与训练。

内容的提问来源于stack exchange,提问作者EkoMickA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:51:07