加载microsoft/deberta-v3-base出现KeyError: 'deberta-v2'的问题求助
问题:加载DeBERTa-v3模型时触发KeyError: 'deberta-v2'
我正尝试为回归任务微调DeBERTa模型,但使用以下代码加载模型时触发了KeyError错误:
from transformers import AutoConfig, AutoTokenizer, AutoModel ## Model Configurations MODEL_NAME = 'microsoft/deberta-v3-base' config = AutoConfig.from_pretrained(MODEL_NAME) ## Configuration loaded from AutoConfig tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) ## Tokenizer loaded from AutoTokenizer
报错信息如下:
Traceback (most recent call last) <ipython-input-23-62561c3f4e7b> in <module> 3 MODEL_NAME = 'microsoft/deberta-v3-base' 4 ----> 5 config = AutoConfig.from_pretrained(MODEL_NAME) ## Configuration loaded from AutoConfig 6 tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) ## Tokenizer loaded from AutoTokenizer /usr/lib/python3.8/dist-packages/transformers/models/auto/configuration_auto.py in from_pretrained(cls, pretrained_model_name_or_path, **kwargs) 350 351 if "model_type" in config_dict: --> 352 config_class = CONFIG_MAPPING[config_dict["model_type"]] 353 return config_class.from_dict(config_dict, **kwargs) 354 else: KeyError: 'deberta-v2'
当前使用的transformers版本为4.31.0,问题原因如下:
- 4.31.0版本的transformers对DeBERTa-v3的支持存在兼容性缺陷。DeBERTa-v3的配置文件中
model_type字段值为deberta-v2,但该版本的CONFIG_MAPPING字典里没有将deberta-v2映射到对应的DebertaV2Config配置类,导致AutoConfig无法找到匹配的配置类,从而抛出KeyError。 - DeBERTa-v3基于DeBERTa-v2架构开发,但4.31.0版本的transformers尚未完成
deberta-v2与对应配置类的关联适配。
解决建议
- 升级transformers到4.32.0及以上版本,后续版本已修复该映射问题,能正常通过
AutoConfig加载DeBERTa-v3模型。 - 若暂时无法升级版本,可直接指定使用
DebertaV2Config加载配置,修改代码如下:
from transformers import DebertaV2Config, AutoTokenizer, AutoModel MODEL_NAME = 'microsoft/deberta-v3-base' config = DebertaV2Config.from_pretrained(MODEL_NAME) tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
内容的提问来源于stack exchange,提问作者JayJona
相关产品推荐
相关产品推荐

