From 26bbfc084d5197609319f159f8dc5d52d442e676 Mon Sep 17 00:00:00 2001 From: Chengcheng Pei Date: Wed, 25 Sep 2024 12:59:48 -0700 Subject: [PATCH 01/12] 1, log exceptions in details; 2, check processor is None before calling it. Former-commit-id: 0f0a4813db9ca4e9bb5762a781a0a214129284a6 --- src/llamafactory/model/loader.py | 8 ++++++-- src/llamafactory/train/tuner.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/llamafactory/model/loader.py b/src/llamafactory/model/loader.py index 030ce90f..e86e7955 100644 --- a/src/llamafactory/model/loader.py +++ b/src/llamafactory/model/loader.py @@ -82,6 +82,9 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": padding_side="right", **init_kwargs, ) + except Exception as e: + logger.error("Failed to load tokenizer. Error: {}".format(e)) + raise e if model_args.new_special_tokens is not None: num_added_tokens = tokenizer.add_special_tokens( @@ -103,12 +106,13 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": setattr(processor, "video_resolution", model_args.video_resolution) setattr(processor, "video_fps", model_args.video_fps) setattr(processor, "video_maxlen", model_args.video_maxlen) - except Exception: + except Exception as e: + logger.warning("Failed to load processor. Error: {}".format(e)) processor = None # Avoid load tokenizer, see: # https://github.com/huggingface/transformers/blob/v4.40.0/src/transformers/models/auto/processing_auto.py#L324 - if "Processor" not in processor.__class__.__name__: + if processor and "Processor" not in processor.__class__.__name__: processor = None return {"tokenizer": tokenizer, "processor": processor} diff --git a/src/llamafactory/train/tuner.py b/src/llamafactory/train/tuner.py index 9928e7b9..3c8a3b13 100644 --- a/src/llamafactory/train/tuner.py +++ b/src/llamafactory/train/tuner.py @@ -139,5 +139,5 @@ def export_model(args: Optional[Dict[str, Any]] = None) -> None: model_args.export_hub_model_id, token=model_args.hf_hub_token ) - except Exception: - logger.warning("Cannot save tokenizer, please copy the files manually.") + except Exception as e: + logger.warning("Cannot save tokenizer, please copy the files manually. Error: {}".format(e)) From cacafb00383e17f42dba599967db37cfb313bb84 Mon Sep 17 00:00:00 2001 From: Chengcheng Pei Date: Wed, 25 Sep 2024 21:07:51 -0700 Subject: [PATCH 02/12] address comments Former-commit-id: 6311bb2ca266ce156537cfa477202b2904921593 --- src/llamafactory/model/loader.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/llamafactory/model/loader.py b/src/llamafactory/model/loader.py index e86e7955..1fa04e0f 100644 --- a/src/llamafactory/model/loader.py +++ b/src/llamafactory/model/loader.py @@ -83,8 +83,7 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": **init_kwargs, ) except Exception as e: - logger.error("Failed to load tokenizer. Error: {}".format(e)) - raise e + raise OSError("Failed to load tokenizer") from e if model_args.new_special_tokens is not None: num_added_tokens = tokenizer.add_special_tokens( From 35862d19ec68924db9bf6dd34146146d869491a3 Mon Sep 17 00:00:00 2001 From: hiyouga <467089858@qq.com> Date: Sun, 6 Oct 2024 10:33:11 +0800 Subject: [PATCH 03/12] fix #5611 Former-commit-id: 76c813d37c1d945a8bb6d3e4168e15fbe97c7a87 --- src/llamafactory/model/patcher.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/llamafactory/model/patcher.py b/src/llamafactory/model/patcher.py index 06d41af5..126e9723 100644 --- a/src/llamafactory/model/patcher.py +++ b/src/llamafactory/model/patcher.py @@ -110,6 +110,9 @@ def patch_config( if getattr(config, "model_type", None) == "qwen2" and is_trainable and model_args.flash_attn == "fa2": setattr(config, "use_cache", False) # qwen2 does not support use_cache when using flash attn + if "LlavaLlamaForCausalLM" in getattr(config, "architectures", []): + raise ValueError("Please download llava models with hf-compatible format: https://huggingface.co/llava-hf") + # deepspeed zero3 is not compatible with low_cpu_mem_usage init_kwargs["low_cpu_mem_usage"] = model_args.low_cpu_mem_usage and (not is_deepspeed_zero3_enabled()) From 6476507429850e633687197ee26cbdb96a05da6f Mon Sep 17 00:00:00 2001 From: hiyouga <467089858@qq.com> Date: Sun, 6 Oct 2024 10:34:55 +0800 Subject: [PATCH 04/12] fix #5611 Former-commit-id: 3bef07ecf0557999bb0b33b650a778addc8e5b91 --- src/llamafactory/hparams/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llamafactory/hparams/parser.py b/src/llamafactory/hparams/parser.py index fd112607..38ac87fe 100644 --- a/src/llamafactory/hparams/parser.py +++ b/src/llamafactory/hparams/parser.py @@ -57,7 +57,7 @@ def _parse_args(parser: "HfArgumentParser", args: Optional[Dict[str, Any]] = Non if args is not None: return parser.parse_dict(args) - if len(sys.argv) == 2 and sys.argv[1].endswith(".yaml"): + if len(sys.argv) == 2 and (sys.argv[1].endswith(".yaml") or sys.argv[1].endswith(".yml")): return parser.parse_yaml_file(os.path.abspath(sys.argv[1])) if len(sys.argv) == 2 and sys.argv[1].endswith(".json"): From 1f58943b32d86e57a9cb5bff04d295de54ccf1ec Mon Sep 17 00:00:00 2001 From: Johnny Date: Sun, 6 Oct 2024 08:53:55 +0200 Subject: [PATCH 05/12] Update setup.py Former-commit-id: b4de2c84b078194bb6358697fd6815d622843f58 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a80cb81b..041678de 100644 --- a/setup.py +++ b/setup.py @@ -54,7 +54,7 @@ extra_require = { "gptq": ["optimum>=1.17.0", "auto-gptq>=0.5.0"], "awq": ["autoawq"], "aqlm": ["aqlm[gpu]>=1.1.0"], - "vllm": ["vllm>=0.4.3,<=0.6.0"], + "vllm": ["vllm>=0.4.3,<=0.6.4"], "galore": ["galore-torch"], "badam": ["badam>=1.2.1"], "adam-mini": ["adam-mini"], From f9815dd20abb127e793ca5a152f4519dcbacdb6b Mon Sep 17 00:00:00 2001 From: Johnny Date: Sun, 6 Oct 2024 20:34:19 +0200 Subject: [PATCH 06/12] Update parser.py Former-commit-id: f832edc8dc0e2b78c12dc8edd702fe147a0a5292 --- src/llamafactory/hparams/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llamafactory/hparams/parser.py b/src/llamafactory/hparams/parser.py index 38ac87fe..74da0484 100644 --- a/src/llamafactory/hparams/parser.py +++ b/src/llamafactory/hparams/parser.py @@ -123,7 +123,7 @@ def _check_extra_dependencies( require_version("mixture-of-depth>=1.1.6", "To fix: pip install mixture-of-depth>=1.1.6") if model_args.infer_backend == "vllm": - require_version("vllm>=0.4.3,<=0.6.0", "To fix: pip install vllm>=0.4.3,<=0.6.0") + require_version("vllm>=0.4.3,<=0.6.4", "To fix: pip install vllm>=0.4.3,<=0.6.4") if finetuning_args.use_galore: require_version("galore_torch", "To fix: pip install galore_torch") From bc264807ae9ea8e071ea5a3c3cb6db969f314568 Mon Sep 17 00:00:00 2001 From: hiyouga <467089858@qq.com> Date: Mon, 7 Oct 2024 11:31:18 +0800 Subject: [PATCH 07/12] update readme Former-commit-id: 915f25e9b34fc4554fd1198a383f96a2536fec60 --- README.md | 3 +++ README_zh.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index e62a9d47..3359c10d 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ Choose your path: - **Local machine**: Please refer to [usage](#getting-started) - **Documentation (WIP)**: https://llamafactory.readthedocs.io/zh-cn/latest/ +> [!NOTE] +> Except for the above links, all other websites are unauthorized third-party websites. Please carefully use them. + ## Table of Contents - [Features](#features) diff --git a/README_zh.md b/README_zh.md index b5da9785..20e86853 100644 --- a/README_zh.md +++ b/README_zh.md @@ -31,6 +31,9 @@ https://github.com/user-attachments/assets/e6ce34b0-52d5-4f3e-a830-592106c4c272 - **入门教程**:https://zhuanlan.zhihu.com/p/695287607 - **框架文档**:https://llamafactory.readthedocs.io/zh-cn/latest/ +> [!NOTE] +> 除上述链接以外的其他网站均为未经许可的第三方网站,请小心甄别。 + ## 目录 - [项目特色](#项目特色) From 13d73574efb8d6afad11704e83c4cb5d4815d645 Mon Sep 17 00:00:00 2001 From: Johnny Date: Mon, 7 Oct 2024 10:16:53 +0200 Subject: [PATCH 08/12] Update setup.py Former-commit-id: 73d3f93496712edace38711613e14768922d6c96 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 041678de..4dca42af 100644 --- a/setup.py +++ b/setup.py @@ -54,7 +54,7 @@ extra_require = { "gptq": ["optimum>=1.17.0", "auto-gptq>=0.5.0"], "awq": ["autoawq"], "aqlm": ["aqlm[gpu]>=1.1.0"], - "vllm": ["vllm>=0.4.3,<=0.6.4"], + "vllm": ["vllm>=0.4.3,<=0.6.3"], "galore": ["galore-torch"], "badam": ["badam>=1.2.1"], "adam-mini": ["adam-mini"], From 2b69ae0eb2732161c79b482a795ed7303c7432de Mon Sep 17 00:00:00 2001 From: Johnny Date: Mon, 7 Oct 2024 10:17:45 +0200 Subject: [PATCH 09/12] Update parser.py Former-commit-id: 55c449b54aec04e2141bffe75d4016cbac9ef4c5 --- src/llamafactory/hparams/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llamafactory/hparams/parser.py b/src/llamafactory/hparams/parser.py index 74da0484..f62468a4 100644 --- a/src/llamafactory/hparams/parser.py +++ b/src/llamafactory/hparams/parser.py @@ -123,7 +123,7 @@ def _check_extra_dependencies( require_version("mixture-of-depth>=1.1.6", "To fix: pip install mixture-of-depth>=1.1.6") if model_args.infer_backend == "vllm": - require_version("vllm>=0.4.3,<=0.6.4", "To fix: pip install vllm>=0.4.3,<=0.6.4") + require_version("vllm>=0.4.3,<=0.6.3", "To fix: pip install vllm>=0.4.3,<=0.6.3") if finetuning_args.use_galore: require_version("galore_torch", "To fix: pip install galore_torch") From 6e111eb29fc18303662f011590d20513a73c5e8b Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Mon, 7 Oct 2024 16:26:50 +0800 Subject: [PATCH 10/12] Update setup.py Former-commit-id: 4c017fe014b708d79c65eff24329b9c324399461 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4dca42af..f42cf7d1 100644 --- a/setup.py +++ b/setup.py @@ -54,7 +54,7 @@ extra_require = { "gptq": ["optimum>=1.17.0", "auto-gptq>=0.5.0"], "awq": ["autoawq"], "aqlm": ["aqlm[gpu]>=1.1.0"], - "vllm": ["vllm>=0.4.3,<=0.6.3"], + "vllm": ["vllm>=0.4.3,<=0.6.2"], "galore": ["galore-torch"], "badam": ["badam>=1.2.1"], "adam-mini": ["adam-mini"], From bba026a212f1f672bcd2fc0d1e43de75f9ed60a9 Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Mon, 7 Oct 2024 16:27:23 +0800 Subject: [PATCH 11/12] Update parser.py Former-commit-id: e7d291605f184f6ac48429015e15755192d2f274 --- src/llamafactory/hparams/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llamafactory/hparams/parser.py b/src/llamafactory/hparams/parser.py index f62468a4..68a5d2f6 100644 --- a/src/llamafactory/hparams/parser.py +++ b/src/llamafactory/hparams/parser.py @@ -123,7 +123,7 @@ def _check_extra_dependencies( require_version("mixture-of-depth>=1.1.6", "To fix: pip install mixture-of-depth>=1.1.6") if model_args.infer_backend == "vllm": - require_version("vllm>=0.4.3,<=0.6.3", "To fix: pip install vllm>=0.4.3,<=0.6.3") + require_version("vllm>=0.4.3,<=0.6.2", "To fix: pip install vllm>=0.4.3,<=0.6.2") if finetuning_args.use_galore: require_version("galore_torch", "To fix: pip install galore_torch") From b2dc6dc59a95f4f8c52d2642c363fb3ff09b3ab3 Mon Sep 17 00:00:00 2001 From: hiyouga <467089858@qq.com> Date: Tue, 8 Oct 2024 17:48:56 +0800 Subject: [PATCH 12/12] tiny fix Former-commit-id: d8ddd07c2ed14d871fb25743c20265fc99e3e221 --- requirements.txt | 2 +- src/llamafactory/__init__.py | 6 +++--- src/llamafactory/data/template.py | 4 +--- src/llamafactory/extras/misc.py | 2 +- src/llamafactory/model/loader.py | 6 +++--- src/llamafactory/model/model_utils/longlora.py | 2 +- src/llamafactory/model/model_utils/packing.py | 2 +- src/llamafactory/train/tuner.py | 2 +- 8 files changed, 12 insertions(+), 14 deletions(-) diff --git a/requirements.txt b/requirements.txt index e913c58d..69489bec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -transformers>=4.41.2,<=4.45.0 +transformers>=4.41.2,<=4.45.2 datasets>=2.16.0,<=2.21.0 accelerate>=0.30.1,<=0.34.2 peft>=0.11.1,<=0.12.0 diff --git a/src/llamafactory/__init__.py b/src/llamafactory/__init__.py index 5293c512..ffc8c9ad 100644 --- a/src/llamafactory/__init__.py +++ b/src/llamafactory/__init__.py @@ -20,7 +20,7 @@ Level: Dependency graph: main: - transformers>=4.41.2,<=4.45.0 + transformers>=4.41.2,<=4.45.2 datasets>=2.16.0,<=2.21.0 accelerate>=0.30.1,<=0.34.2 peft>=0.11.1,<=0.12.0 @@ -28,9 +28,9 @@ Dependency graph: attention: transformers>=4.42.4 (gemma+fa2) longlora: - transformers>=4.41.2,<=4.45.0 + transformers>=4.41.2,<=4.45.2 packing: - transformers>=4.41.2,<=4.45.0 + transformers>=4.41.2,<=4.45.2 Disable version checking: DISABLE_VERSION_CHECK=1 Enable VRAM recording: RECORD_VRAM=1 diff --git a/src/llamafactory/data/template.py b/src/llamafactory/data/template.py index e832e3ad..bfa987d9 100644 --- a/src/llamafactory/data/template.py +++ b/src/llamafactory/data/template.py @@ -357,9 +357,7 @@ def get_template_and_fix_tokenizer(tokenizer: "PreTrainedTokenizer", data_args: Gets chat template and fixes the tokenizer. """ if data_args.template in ["llava", "paligemma", "qwen2_vl"]: - require_version( - "transformers>=4.45.0.dev0", "To fix: pip install git+https://github.com/huggingface/transformers.git" - ) + require_version("transformers>=4.45.0", "To fix: pip install transformers>=4.45.0") require_version("accelerate>=0.34.0", "To fix: pip install accelerate>=0.34.0") if data_args.template is None: diff --git a/src/llamafactory/extras/misc.py b/src/llamafactory/extras/misc.py index de034ef6..7d0a457a 100644 --- a/src/llamafactory/extras/misc.py +++ b/src/llamafactory/extras/misc.py @@ -79,7 +79,7 @@ def check_dependencies() -> None: if os.environ.get("DISABLE_VERSION_CHECK", "0").lower() in ["true", "1"]: logger.warning("Version checking has been disabled, may lead to unexpected behaviors.") else: - require_version("transformers>=4.41.2,<=4.45.0", "To fix: pip install transformers>=4.41.2,<=4.45.0") + require_version("transformers>=4.41.2,<=4.45.2", "To fix: pip install transformers>=4.41.2,<=4.45.2") require_version("datasets>=2.16.0,<=2.21.0", "To fix: pip install datasets>=2.16.0,<=2.21.0") require_version("accelerate>=0.30.1,<=0.34.2", "To fix: pip install accelerate>=0.30.1,<=0.34.2") require_version("peft>=0.11.1,<=0.12.0", "To fix: pip install peft>=0.11.1,<=0.12.0") diff --git a/src/llamafactory/model/loader.py b/src/llamafactory/model/loader.py index ee09db43..fb71498b 100644 --- a/src/llamafactory/model/loader.py +++ b/src/llamafactory/model/loader.py @@ -83,7 +83,7 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": **init_kwargs, ) except Exception as e: - raise OSError("Failed to load tokenizer") from e + raise OSError("Failed to load tokenizer.") from e if model_args.new_special_tokens is not None: num_added_tokens = tokenizer.add_special_tokens( @@ -100,12 +100,12 @@ def load_tokenizer(model_args: "ModelArguments") -> "TokenizerModule": processor = AutoProcessor.from_pretrained(model_args.model_name_or_path, **init_kwargs) patch_processor(processor, config, tokenizer, model_args) except Exception as e: - logger.warning("Failed to load processor. Error: {}".format(e)) + logger.warning("Processor was not found: {}.".format(e)) processor = None # Avoid load tokenizer, see: # https://github.com/huggingface/transformers/blob/v4.40.0/src/transformers/models/auto/processing_auto.py#L324 - if processor and "Processor" not in processor.__class__.__name__: + if processor is not None and "Processor" not in processor.__class__.__name__: processor = None return {"tokenizer": tokenizer, "processor": processor} diff --git a/src/llamafactory/model/model_utils/longlora.py b/src/llamafactory/model/model_utils/longlora.py index b341653a..e87e5b8b 100644 --- a/src/llamafactory/model/model_utils/longlora.py +++ b/src/llamafactory/model/model_utils/longlora.py @@ -353,7 +353,7 @@ def llama_sdpa_attention_forward( def _apply_llama_patch() -> None: - require_version("transformers>=4.41.2,<=4.45.0", "To fix: pip install transformers>=4.41.2,<=4.45.0") + require_version("transformers>=4.41.2,<=4.45.2", "To fix: pip install transformers>=4.41.2,<=4.45.2") LlamaAttention.forward = llama_attention_forward LlamaFlashAttention2.forward = llama_flash_attention_2_forward LlamaSdpaAttention.forward = llama_sdpa_attention_forward diff --git a/src/llamafactory/model/model_utils/packing.py b/src/llamafactory/model/model_utils/packing.py index d52731b8..2ae3a6ff 100644 --- a/src/llamafactory/model/model_utils/packing.py +++ b/src/llamafactory/model/model_utils/packing.py @@ -114,7 +114,7 @@ def get_unpad_data(attention_mask: "torch.Tensor") -> Tuple["torch.Tensor", "tor def _patch_for_block_diag_attn(model_type: str) -> None: - require_version("transformers>=4.41.2,<=4.45.0", "To fix: pip install transformers>=4.41.2,<=4.45.0") + require_version("transformers>=4.41.2,<=4.45.2", "To fix: pip install transformers>=4.41.2,<=4.45.2") if is_transformers_version_greater_than_4_43(): import transformers.modeling_flash_attention_utils diff --git a/src/llamafactory/train/tuner.py b/src/llamafactory/train/tuner.py index 3c8a3b13..1fd202aa 100644 --- a/src/llamafactory/train/tuner.py +++ b/src/llamafactory/train/tuner.py @@ -140,4 +140,4 @@ def export_model(args: Optional[Dict[str, Any]] = None) -> None: ) except Exception as e: - logger.warning("Cannot save tokenizer, please copy the files manually. Error: {}".format(e)) + logger.warning("Cannot save tokenizer, please copy the files manually: {}.".format(e))