From b10333dafbc344b3a54e4e6556bfd61fb76b60bc Mon Sep 17 00:00:00 2001 From: Yaowei Zheng Date: Wed, 25 Jun 2025 19:43:00 +0800 Subject: [PATCH] [model] do not force load processor (#8457) --- requirements.txt | 2 +- src/llamafactory/extras/misc.py | 2 +- src/llamafactory/model/loader.py | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8206464f..917a51d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ transformers>=4.45.0,<=4.52.4,!=4.46.*,!=4.47.*,!=4.48.0,!=4.52.0; sys_platform != 'darwin' transformers>=4.45.0,<=4.51.3,!=4.46.*,!=4.47.*,!=4.48.0,!=4.52.0; sys_platform == 'darwin' datasets>=2.16.0,<=3.6.0 -accelerate>=0.34.0,<=1.7.0 +accelerate>=1.3.0,<=1.7.0 peft>=0.14.0,<=0.15.2 trl>=0.8.6,<=0.9.6 tokenizers>=0.19.0,<=0.21.1 diff --git a/src/llamafactory/extras/misc.py b/src/llamafactory/extras/misc.py index 35b508ff..152961cc 100644 --- a/src/llamafactory/extras/misc.py +++ b/src/llamafactory/extras/misc.py @@ -98,7 +98,7 @@ def check_dependencies() -> None: "transformers>=4.45.0,<=4.52.4,!=4.46.0,!=4.46.1,!=4.46.2,!=4.46.3,!=4.47.0,!=4.47.1,!=4.48.0,!=4.52.0" ) check_version("datasets>=2.16.0,<=3.6.0") - check_version("accelerate>=0.34.0,<=1.7.0") + check_version("accelerate>=1.3.0,<=1.7.0") check_version("peft>=0.14.0,<=0.15.2") check_version("trl>=0.8.6,<=0.9.6") if is_transformers_version_greater_than("4.46.0") and not is_transformers_version_greater_than("4.48.1"): diff --git a/src/llamafactory/model/loader.py b/src/llamafactory/model/loader.py index 7ed4230a..7c0ce2f4 100644 --- a/src/llamafactory/model/loader.py +++ b/src/llamafactory/model/loader.py @@ -111,9 +111,8 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": **init_kwargs, ) except Exception as e: - raise OSError("Failed to load processor.") from e - - patch_processor(processor, tokenizer, model_args) + logger.info_rank0(f"Failed to load processor: {e}.") + processor = None # Avoid load tokenizer, see: # https://github.com/huggingface/transformers/blob/v4.40.0/src/transformers/models/auto/processing_auto.py#L324 @@ -121,6 +120,9 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": logger.debug("The loaded processor is not an instance of Processor. Dropping it.") processor = None + if processor is not None: + patch_processor(processor, tokenizer, model_args) + return {"tokenizer": tokenizer, "processor": processor}