From 946b497c3f6e01d158d0504963ef7c26d7868314 Mon Sep 17 00:00:00 2001 From: NanoCode012 Date: Mon, 1 Apr 2024 21:42:52 +0900 Subject: [PATCH] feat: add deepspeed 3 with cpuoffload (#1466) * feat: add deepspeed 3 with cpuoffload * make bf16 explicit, add param only offload variant --------- Co-authored-by: Wing Lian --- .../zero3_bf16_cpuoffload_all.json | 39 +++++++++++++++++++ .../zero3_bf16_cpuoffload_params.json | 35 +++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 deepspeed_configs/zero3_bf16_cpuoffload_all.json create mode 100644 deepspeed_configs/zero3_bf16_cpuoffload_params.json diff --git a/deepspeed_configs/zero3_bf16_cpuoffload_all.json b/deepspeed_configs/zero3_bf16_cpuoffload_all.json new file mode 100644 index 0000000000..72fde6e5f1 --- /dev/null +++ b/deepspeed_configs/zero3_bf16_cpuoffload_all.json @@ -0,0 +1,39 @@ +{ + "zero_optimization": { + "stage": 3, + "offload_optimizer": { + "device": "cpu", + "pin_memory": true + }, + "offload_param": { + "device": "cpu", + "pin_memory": true + }, + "overlap_comm": true, + "contiguous_gradients": true, + "sub_group_size": 0, + "reduce_bucket_size": "auto", + "stage3_prefetch_bucket_size": "auto", + "stage3_param_persistence_threshold": "auto", + "stage3_max_live_parameters": 0, + "stage3_max_reuse_distance": 0, + "stage3_gather_16bit_weights_on_model_save": true + }, + "bf16": { + "enabled": true + }, + "fp16": { + "enabled": "auto", + "auto_cast": false, + "loss_scale": 0, + "initial_scale_power": 32, + "loss_scale_window": 1000, + "hysteresis": 2, + "min_loss_scale": 1 + }, + "gradient_accumulation_steps": "auto", + "gradient_clipping": "auto", + "train_batch_size": "auto", + "train_micro_batch_size_per_gpu": "auto", + "wall_clock_breakdown": false +} diff --git a/deepspeed_configs/zero3_bf16_cpuoffload_params.json b/deepspeed_configs/zero3_bf16_cpuoffload_params.json new file mode 100644 index 0000000000..ca051e03ba --- /dev/null +++ b/deepspeed_configs/zero3_bf16_cpuoffload_params.json @@ -0,0 +1,35 @@ +{ + "zero_optimization": { + "stage": 3, + "offload_param": { + "device": "cpu", + "pin_memory": true + }, + "overlap_comm": true, + "contiguous_gradients": true, + "sub_group_size": 0, + "reduce_bucket_size": "auto", + "stage3_prefetch_bucket_size": "auto", + "stage3_param_persistence_threshold": "auto", + "stage3_max_live_parameters": 0, + "stage3_max_reuse_distance": 0, + "stage3_gather_16bit_weights_on_model_save": true + }, + "bf16": { + "enabled": true + }, + "fp16": { + "enabled": "auto", + "auto_cast": false, + "loss_scale": 0, + "initial_scale_power": 32, + "loss_scale_window": 1000, + "hysteresis": 2, + "min_loss_scale": 1 + }, + "gradient_accumulation_steps": "auto", + "gradient_clipping": "auto", + "train_batch_size": "auto", + "train_micro_batch_size_per_gpu": "auto", + "wall_clock_breakdown": false +}