| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import importlib |
| | import inspect |
| | import os |
| | import re |
| |
|
| |
|
| | |
| | |
| | PATH_TO_TRANSFORMERS = "src/transformers" |
| |
|
| |
|
| | |
| | spec = importlib.util.spec_from_file_location( |
| | "transformers", |
| | os.path.join(PATH_TO_TRANSFORMERS, "__init__.py"), |
| | submodule_search_locations=[PATH_TO_TRANSFORMERS], |
| | ) |
| | transformers = spec.loader.load_module() |
| |
|
| | CONFIG_MAPPING = transformers.models.auto.configuration_auto.CONFIG_MAPPING |
| |
|
| | |
| | |
| | _re_checkpoint = re.compile(r"\[(.+?)\]\((https://huggingface\.co/.+?)\)") |
| |
|
| |
|
| | CONFIG_CLASSES_TO_IGNORE_FOR_DOCSTRING_CHECKPOINT_CHECK = { |
| | "CLIPConfigMixin", |
| | "DecisionTransformerConfigMixin", |
| | "EncoderDecoderConfigMixin", |
| | "RagConfigMixin", |
| | "SpeechEncoderDecoderConfigMixin", |
| | "VisionEncoderDecoderConfigMixin", |
| | "VisionTextDualEncoderConfigMixin", |
| | } |
| |
|
| |
|
| | def check_config_docstrings_have_checkpoints(): |
| | configs_without_checkpoint = [] |
| |
|
| | for config_class in list(CONFIG_MAPPING.values()): |
| | checkpoint_found = False |
| |
|
| | |
| | config_source = inspect.getsource(config_class) |
| | checkpoints = _re_checkpoint.findall(config_source) |
| |
|
| | for checkpoint in checkpoints: |
| | |
| | |
| | ckpt_name, ckpt_link = checkpoint |
| |
|
| | |
| | ckpt_link_from_name = f"https://huggingface.co/{ckpt_name}" |
| | if ckpt_link == ckpt_link_from_name: |
| | checkpoint_found = True |
| | break |
| |
|
| | name = config_class.__name__ |
| | if not checkpoint_found and name not in CONFIG_CLASSES_TO_IGNORE_FOR_DOCSTRING_CHECKPOINT_CHECK: |
| | configs_without_checkpoint.append(name) |
| |
|
| | if len(configs_without_checkpoint) > 0: |
| | message = "\n".join(sorted(configs_without_checkpoint)) |
| | raise ValueError(f"The following configurations don't contain any valid checkpoint:\n{message}") |
| |
|
| |
|
| | if __name__ == "__main__": |
| | check_config_docstrings_have_checkpoints() |
| |
|