add ds config to webui
Former-commit-id: 66d72b263d36dc81de9f6152077663b613035977
This commit is contained in:
@@ -8,6 +8,7 @@ from yaml import safe_dump
|
||||
from ..extras.constants import RUNNING_LOG, TRAINER_CONFIG, TRAINER_LOG
|
||||
from ..extras.packages import is_gradio_available, is_matplotlib_available
|
||||
from ..extras.ploting import gen_loss_plot
|
||||
from .common import DEFAULT_CACHE_DIR
|
||||
from .locales import ALERTS
|
||||
|
||||
|
||||
@@ -103,3 +104,63 @@ def save_cmd(args: Dict[str, Any]) -> str:
|
||||
safe_dump(clean_cmd(args), f)
|
||||
|
||||
return os.path.join(output_dir, TRAINER_CONFIG)
|
||||
|
||||
|
||||
def save_ds_config() -> None:
|
||||
os.makedirs(DEFAULT_CACHE_DIR, exist_ok=True)
|
||||
ds_config = {
|
||||
"train_batch_size": "auto",
|
||||
"train_micro_batch_size_per_gpu": "auto",
|
||||
"gradient_accumulation_steps": "auto",
|
||||
"gradient_clipping": "auto",
|
||||
"zero_allow_untested_optimizer": True,
|
||||
"fp16": {
|
||||
"enabled": "auto",
|
||||
"loss_scale": 0,
|
||||
"loss_scale_window": 1000,
|
||||
"initial_scale_power": 16,
|
||||
"hysteresis": 2,
|
||||
"min_loss_scale": 1,
|
||||
},
|
||||
"bf16": {"enabled": "auto"},
|
||||
}
|
||||
offload_config = {
|
||||
"device": "cpu",
|
||||
"pin_memory": True,
|
||||
}
|
||||
ds_config["zero_optimization"] = {
|
||||
"stage": 2,
|
||||
"allgather_partitions": True,
|
||||
"allgather_bucket_size": 5e8,
|
||||
"overlap_comm": True,
|
||||
"reduce_scatter": True,
|
||||
"reduce_bucket_size": 5e8,
|
||||
"contiguous_gradients": True,
|
||||
"round_robin_gradients": True,
|
||||
}
|
||||
with open(os.path.join(DEFAULT_CACHE_DIR, "ds_z2_config.json"), "w", encoding="utf-8") as f:
|
||||
json.dump(ds_config, f, indent=2)
|
||||
|
||||
ds_config["zero_optimization"]["offload_optimizer"] = offload_config
|
||||
with open(os.path.join(DEFAULT_CACHE_DIR, "ds_z2_offload_config.json"), "w", encoding="utf-8") as f:
|
||||
json.dump(ds_config, f, indent=2)
|
||||
|
||||
ds_config["zero_optimization"] = {
|
||||
"stage": 3,
|
||||
"overlap_comm": True,
|
||||
"contiguous_gradients": True,
|
||||
"sub_group_size": 1e9,
|
||||
"reduce_bucket_size": "auto",
|
||||
"stage3_prefetch_bucket_size": "auto",
|
||||
"stage3_param_persistence_threshold": "auto",
|
||||
"stage3_max_live_parameters": 1e9,
|
||||
"stage3_max_reuse_distance": 1e9,
|
||||
"stage3_gather_16bit_weights_on_model_save": True,
|
||||
}
|
||||
with open(os.path.join(DEFAULT_CACHE_DIR, "ds_z3_config.json"), "w", encoding="utf-8") as f:
|
||||
json.dump(ds_config, f, indent=2)
|
||||
|
||||
ds_config["zero_optimization"]["offload_optimizer"] = offload_config
|
||||
ds_config["zero_optimization"]["offload_param"] = offload_config
|
||||
with open(os.path.join(DEFAULT_CACHE_DIR, "ds_z3_offload_config.json"), "w", encoding="utf-8") as f:
|
||||
json.dump(ds_config, f, indent=2)
|
||||
|
||||
Reference in New Issue
Block a user