From fec641ec82fb6772c2a1be6443b712789ea46212 Mon Sep 17 00:00:00 2001 From: hoshi-hiyouga Date: Thu, 6 Feb 2025 12:38:08 +0800 Subject: [PATCH] [misc] allow extra args (#6831) Former-commit-id: 0fd3a5295cb4e08a4e57e860e82103364c28fba8 --- .env.local | 3 ++- src/llamafactory/hparams/parser.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.env.local b/.env.local index 1d8f2a00..aa43a4d7 100644 --- a/.env.local +++ b/.env.local @@ -9,6 +9,7 @@ MAX_CONCURRENT= # general DISABLE_VERSION_CHECK= FORCE_CHECK_IMPORTS= +ALLOW_EXTRA_ARGS= LLAMAFACTORY_VERBOSITY= USE_MODELSCOPE_HUB= USE_OPENMIND_HUB= @@ -32,7 +33,7 @@ GRADIO_SERVER_PORT= GRADIO_ROOT_PATH= GRADIO_IPV6= # setup -ENABLE_SHORT_CONSOLE=1 +ENABLE_SHORT_CONSOLE= # reserved (do not use) LLAMABOARD_ENABLED= LLAMABOARD_WORKDIR= diff --git a/src/llamafactory/hparams/parser.py b/src/llamafactory/hparams/parser.py index 3ffaa1f1..b1c75551 100644 --- a/src/llamafactory/hparams/parser.py +++ b/src/llamafactory/hparams/parser.py @@ -55,6 +55,9 @@ _EVAL_CLS = Tuple[ModelArguments, DataArguments, EvaluationArguments, Finetuning def read_args(args: Optional[Union[Dict[str, Any], List[str]]] = None) -> Union[Dict[str, Any], List[str]]: + r""" + Gets arguments from the command line or a config file. + """ if args is not None: return args @@ -80,7 +83,7 @@ def _parse_args( print(f"Got unknown args, potentially deprecated arguments: {unknown_args}") raise ValueError(f"Some specified arguments are not used by the HfArgumentParser: {unknown_args}") - return (*parsed_args,) + return tuple(parsed_args) def _set_transformers_logging() -> None: @@ -159,17 +162,20 @@ def _check_extra_dependencies( def _parse_train_args(args: Optional[Union[Dict[str, Any], List[str]]] = None) -> _TRAIN_CLS: parser = HfArgumentParser(_TRAIN_ARGS) - return _parse_args(parser, args) + allow_extra_keys = os.getenv("ALLOW_EXTRA_ARGS", "0").lower() in ["true", "1"] + return _parse_args(parser, args, allow_extra_keys=allow_extra_keys) def _parse_infer_args(args: Optional[Union[Dict[str, Any], List[str]]] = None) -> _INFER_CLS: parser = HfArgumentParser(_INFER_ARGS) - return _parse_args(parser, args) + allow_extra_keys = os.getenv("ALLOW_EXTRA_ARGS", "0").lower() in ["true", "1"] + return _parse_args(parser, args, allow_extra_keys=allow_extra_keys) def _parse_eval_args(args: Optional[Union[Dict[str, Any], List[str]]] = None) -> _EVAL_CLS: parser = HfArgumentParser(_EVAL_ARGS) - return _parse_args(parser, args) + allow_extra_keys = os.getenv("ALLOW_EXTRA_ARGS", "0").lower() in ["true", "1"] + return _parse_args(parser, args, allow_extra_keys=allow_extra_keys) def get_ray_args(args: Optional[Union[Dict[str, Any], List[str]]] = None) -> RayArguments: