ADD: warning hub model (#1301)
Browse files* update warning for save_strategy
* update
* clean up
* update
* Update test_validation.py
* fix validation step
* update
* test_validation
* update
* fix
* fix
---------
Co-authored-by: NanoCode012 <kevinvong@rocketmail.com>
src/axolotl/utils/config/__init__.py
CHANGED
@@ -383,9 +383,9 @@ def legacy_validate_config(cfg):
|
|
383 |
"push_to_hub_model_id is deprecated. Please use hub_model_id instead."
|
384 |
)
|
385 |
|
386 |
-
if cfg.hub_model_id and
|
387 |
LOG.warning(
|
388 |
-
"hub_model_id is set without any models being saved. To save a model, set
|
389 |
)
|
390 |
|
391 |
if cfg.gptq and cfg.revision_of_model:
|
@@ -448,10 +448,14 @@ def legacy_validate_config(cfg):
|
|
448 |
raise ValueError(
|
449 |
"save_steps and saves_per_epoch are mutually exclusive and cannot be used together."
|
450 |
)
|
451 |
-
if cfg.
|
452 |
raise ValueError(
|
453 |
"save_strategy must be empty or set to `steps` when used with saves_per_epoch."
|
454 |
)
|
|
|
|
|
|
|
|
|
455 |
if cfg.evals_per_epoch and cfg.eval_steps:
|
456 |
raise ValueError(
|
457 |
"eval_steps and evals_per_epoch are mutually exclusive and cannot be used together."
|
@@ -464,11 +468,6 @@ def legacy_validate_config(cfg):
|
|
464 |
raise ValueError(
|
465 |
"evaluation_strategy must be empty or set to `steps` when used with evals_per_epoch."
|
466 |
)
|
467 |
-
if cfg.save_strategy and cfg.save_steps and cfg.save_strategy != "steps":
|
468 |
-
raise ValueError(
|
469 |
-
"save_strategy and save_steps mismatch. Please set save_strategy to 'steps' or remove save_steps."
|
470 |
-
)
|
471 |
-
|
472 |
if (
|
473 |
cfg.evaluation_strategy
|
474 |
and cfg.eval_steps
|
|
|
383 |
"push_to_hub_model_id is deprecated. Please use hub_model_id instead."
|
384 |
)
|
385 |
|
386 |
+
if cfg.hub_model_id and cfg.save_strategy not in ["steps", "epoch", None]:
|
387 |
LOG.warning(
|
388 |
+
"hub_model_id is set without any models being saved. To save a model, set save_strategy to steps, epochs or leave empty."
|
389 |
)
|
390 |
|
391 |
if cfg.gptq and cfg.revision_of_model:
|
|
|
448 |
raise ValueError(
|
449 |
"save_steps and saves_per_epoch are mutually exclusive and cannot be used together."
|
450 |
)
|
451 |
+
if cfg.save_strategy and cfg.saves_per_epoch and cfg.save_strategy != "steps":
|
452 |
raise ValueError(
|
453 |
"save_strategy must be empty or set to `steps` when used with saves_per_epoch."
|
454 |
)
|
455 |
+
if cfg.save_strategy and cfg.save_steps and cfg.save_strategy != "steps":
|
456 |
+
raise ValueError(
|
457 |
+
"save_strategy and save_steps mismatch. Please set save_strategy to 'steps' or remove save_steps."
|
458 |
+
)
|
459 |
if cfg.evals_per_epoch and cfg.eval_steps:
|
460 |
raise ValueError(
|
461 |
"eval_steps and evals_per_epoch are mutually exclusive and cannot be used together."
|
|
|
468 |
raise ValueError(
|
469 |
"evaluation_strategy must be empty or set to `steps` when used with evals_per_epoch."
|
470 |
)
|
|
|
|
|
|
|
|
|
|
|
471 |
if (
|
472 |
cfg.evaluation_strategy
|
473 |
and cfg.eval_steps
|
src/axolotl/utils/config/models/input/v0_4_1/__init__.py
CHANGED
@@ -780,11 +780,11 @@ class AxolotlInputConfig(
|
|
780 |
@model_validator(mode="before")
|
781 |
@classmethod
|
782 |
def check_push_save(cls, data):
|
783 |
-
if data.get("hub_model_id") and
|
784 |
-
data.get("
|
785 |
):
|
786 |
LOG.warning(
|
787 |
-
"hub_model_id is set without any models being saved. To save a model, set
|
788 |
)
|
789 |
return data
|
790 |
|
|
|
780 |
@model_validator(mode="before")
|
781 |
@classmethod
|
782 |
def check_push_save(cls, data):
|
783 |
+
if data.get("hub_model_id") and (
|
784 |
+
data.get("save_strategy") not in ["steps", "epoch", None]
|
785 |
):
|
786 |
LOG.warning(
|
787 |
+
"hub_model_id is set without any models being saved. To save a model, set save_strategy."
|
788 |
)
|
789 |
return data
|
790 |
|
tests/test_validation.py
CHANGED
@@ -1067,17 +1067,51 @@ class TestValidation(BaseValidation):
|
|
1067 |
):
|
1068 |
validate_config(cfg)
|
1069 |
|
1070 |
-
def
|
1071 |
-
cfg = DictDefault({"hub_model_id": "test"}) | minimal_cfg
|
1072 |
|
1073 |
with self._caplog.at_level(logging.WARNING):
|
1074 |
validate_config(cfg)
|
1075 |
-
assert (
|
1076 |
-
|
1077 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1078 |
|
1079 |
-
|
1080 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1081 |
|
1082 |
with self._caplog.at_level(logging.WARNING):
|
1083 |
validate_config(cfg)
|
|
|
1067 |
):
|
1068 |
validate_config(cfg)
|
1069 |
|
1070 |
+
def test_hub_model_id_save_value_warns_save_stragey_no(self, minimal_cfg):
|
1071 |
+
cfg = DictDefault({"hub_model_id": "test", "save_strategy": "no"}) | minimal_cfg
|
1072 |
|
1073 |
with self._caplog.at_level(logging.WARNING):
|
1074 |
validate_config(cfg)
|
1075 |
+
assert len(self._caplog.records) == 1
|
1076 |
+
|
1077 |
+
def test_hub_model_id_save_value_warns_random_value(self, minimal_cfg):
|
1078 |
+
cfg = (
|
1079 |
+
DictDefault({"hub_model_id": "test", "save_strategy": "test"}) | minimal_cfg
|
1080 |
+
)
|
1081 |
+
|
1082 |
+
with self._caplog.at_level(logging.WARNING):
|
1083 |
+
validate_config(cfg)
|
1084 |
+
assert len(self._caplog.records) == 1
|
1085 |
+
|
1086 |
+
def test_hub_model_id_save_value_steps(self, minimal_cfg):
|
1087 |
+
cfg = (
|
1088 |
+
DictDefault({"hub_model_id": "test", "save_strategy": "steps"})
|
1089 |
+
| minimal_cfg
|
1090 |
+
)
|
1091 |
+
|
1092 |
+
with self._caplog.at_level(logging.WARNING):
|
1093 |
+
validate_config(cfg)
|
1094 |
+
assert len(self._caplog.records) == 0
|
1095 |
+
|
1096 |
+
def test_hub_model_id_save_value_epochs(self, minimal_cfg):
|
1097 |
+
cfg = (
|
1098 |
+
DictDefault({"hub_model_id": "test", "save_strategy": "epoch"})
|
1099 |
+
| minimal_cfg
|
1100 |
+
)
|
1101 |
|
1102 |
+
with self._caplog.at_level(logging.WARNING):
|
1103 |
+
validate_config(cfg)
|
1104 |
+
assert len(self._caplog.records) == 0
|
1105 |
+
|
1106 |
+
def test_hub_model_id_save_value_none(self, minimal_cfg):
|
1107 |
+
cfg = DictDefault({"hub_model_id": "test", "save_strategy": None}) | minimal_cfg
|
1108 |
+
|
1109 |
+
with self._caplog.at_level(logging.WARNING):
|
1110 |
+
validate_config(cfg)
|
1111 |
+
assert len(self._caplog.records) == 0
|
1112 |
+
|
1113 |
+
def test_hub_model_id_save_value_no_set_save_strategy(self, minimal_cfg):
|
1114 |
+
cfg = DictDefault({"hub_model_id": "test"}) | minimal_cfg
|
1115 |
|
1116 |
with self._caplog.at_level(logging.WARNING):
|
1117 |
validate_config(cfg)
|