From 5e4ef0a0f6eaf0b80eb951a674939d68ab30f6e5 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 12 Dec 2023 14:41:55 +0000 Subject: [PATCH] Better key error for AutoConfig (#27976) * Improve the error printed when loading an unrecognized architecture * Improve the error printed when loading an unrecognized architecture * Raise a ValueError instead because KeyError prints weirdly * make fixup --- src/transformers/models/auto/configuration_auto.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/transformers/models/auto/configuration_auto.py b/src/transformers/models/auto/configuration_auto.py index 9ee67e0a63f..7fade247a81 100755 --- a/src/transformers/models/auto/configuration_auto.py +++ b/src/transformers/models/auto/configuration_auto.py @@ -1095,7 +1095,14 @@ class AutoConfig: config_class.register_for_auto_class() return config_class.from_pretrained(pretrained_model_name_or_path, **kwargs) elif "model_type" in config_dict: - config_class = CONFIG_MAPPING[config_dict["model_type"]] + try: + config_class = CONFIG_MAPPING[config_dict["model_type"]] + except KeyError: + raise ValueError( + f"The checkpoint you are trying to load has model type `{config_dict['model_type']}` " + "but Transformers does not recognize this architecture. This could be because of an " + "issue with the checkpoint, or because your version of Transformers is out of date." + ) return config_class.from_dict(config_dict, **unused_kwargs) else: # Fallback: use pattern matching on the string.