如何让Hugging Face微调模型的config.json关联预训练模型特定修订版
解决微调模型config指向预训练模型主分支的问题
手动修改微调模型的config.json
- 找到微调模型保存目录下的
config.json文件 - 修改两个关键字段:
- 将
_name_or_path的值从microsoft/BiomedVLP-CXR-BERT-specialized改为microsoft/BiomedVLP-CXR-BERT-specialized@6cfc310817fb7d86762d888ced1e3709c57ac578 - 如果存在
revision字段,直接设置为6cfc310817fb7d86762d888ced1e3709c57ac578;如果没有,新增该字段
- 将
保存微调模型时主动修正config参数
在执行模型保存前,手动修改模型config的相关属性,确保保存后的config指向修复后的commit:
from transformers import AutoModel # 加载修复后的预训练模型 base_model = AutoModel.from_pretrained( "microsoft/BiomedVLP-CXR-BERT-specialized", revision="6cfc310817fb7d86762d888ced1e3709c57ac578" ) # 执行你的微调流程... # 修正config参数 base_model.config.revision = "6cfc310817fb7d86762d888ced1e3709c57ac578" base_model.config._name_or_path = "microsoft/BiomedVLP-CXR-BERT-specialized@6cfc310817fb7d86762d888ced1e3709c57ac578" # 保存微调后的模型 base_model.save_pretrained("your-save-path")
加载微调模型时强制指定预训练模型revision
如果不想修改已保存的config,加载时可以强制指定依赖的预训练模型版本:
方法1:使用内部参数指定revision
from transformers import AutoModel model = AutoModel.from_pretrained( "pamessina/CXRFE", trust_remote_code=True, # 强制指定预训练模型的修复版本commit _revision="6cfc310817fb7d86762d888ced1e3709c57ac578" )
方法2:先加载修复后的预训练模型config再加载微调模型
from transformers import AutoConfig, AutoModel # 加载修复后的预训练模型config fixed_config = AutoConfig.from_pretrained( "microsoft/BiomedVLP-CXR-BERT-specialized", revision="6cfc310817fb7d86762d888ced1e3709c57ac578" ) # 传入修复后的config加载微调模型 model = AutoModel.from_pretrained( "pamessina/CXRFE", config=fixed_config )
内容的提问来源于stack exchange,提问作者Pablo Messina
相关产品推荐
相关产品推荐

