classAutoModel:"""The base `AutoModel` class. Usage: ```python auto_model = AutoModel() model = auto_model.from_name("my_name") model = auto_model.from_pretrained("my_name") model = auto_model.from_pretrained("my_name", my_config) ``` """names_to_configs:Dict[str,Callable[[],Config]]"""Holds the map from name to config type"""@classmethoddefget_config_from_name(cls,name:str)->Config:returncls.names_to_configs[name]()@classmethoddeffrom_name(cls,name:str):ifnamenotincls.names_to_configs:suggestions=difflib.get_close_matches(name,cls.names_to_configs.keys())msg=f'Model "{name}" does not exists.'iflen(suggestions)>0:msg+=f' Did you mean "{suggestions[0]}?"'raiseKeyError(msg)config=cls.names_to_configs[name]()returnconfig.build()@classmethoddeffrom_pretrained(cls,name:str,config:Optional[Config]=None,storage:Storage=None)->nn.Module:storage=LocalStorage()ifstorageisNoneelsestoragestate_dict,loaded_config=storage.get(name)config=loaded_configifconfigisNoneelseconfigmodel=config.build()try:model.load_state_dict(state_dict)exceptRuntimeErrorase:logger.warning(str(e))logger.info(f"Loaded pretrained weights for {name}.")returnmodel,config