diff --git a/save_lora_instruct_r8_4e4_s11_1/README.md b/save_lora_instruct_r8_4e4_s11_1/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..de1815edef45e5002cf61ce6d1a96946f22bc585 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b877725910cf2bc993f85d0284ffc64a6a01cabf19935b768e3986df210dc2c2 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..1c734a526953262942cdc6004d1f8187864a13de --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:148b651127bad36ecafe1696dd4410a4dbc7f78c3d1729012f246f0217678672 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..38a0438cc33556d9033f1cb028d0b252e04f37ea --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc73040c87dbff03438699f1812dbe80616e5733495eebe76f36c37042b2f749 +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..42142fb8a4b308dfee3a8da93d3c34995b4e5754 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/global_step1500/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e9748c0d074063aa0be54e4a8a370e66d0671ca8867acc5ce413e208beb76bd +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/latest new file mode 100644 index 0000000000000000000000000000000000000000..c56ff7708f44fb7928fea2f70d6d7342ce0d5b67 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/latest @@ -0,0 +1 @@ +global_step1500 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..92f7ec3f5fcd7d29feb614b2c27dbc5978c31643 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb1ba1ceb33f795be7ee4e07148f4508e4f6b4ae91adf50fdaf1077b1ae47da8 +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..3abd97e72b383f0f0f503613a6f4febdf1ef720e --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5f4641faf2b17520c52e00d1eae4553db1b75e4c42cd080785063e0d358be92 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..d5e6ec4f9ed0757ed198623a00358892d23a2970 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/trainer_state.json @@ -0,0 +1,1821 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 0.598746374777809, + "eval_steps": 500, + "global_step": 1500, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 6.041910864582279e+18, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-1500/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d8b05cc9e32ed956e9ea408c982222d498246a2e --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9671d2c504106bbfaae3fa086e35ace2d4b25fbf85e5c7020f54b5677be0e97e +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..11e1dbfb1cf477030e7ae35c18d518247581c4c5 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3933686a0f0a60d101b1032c5bef91c6fceaa0fe41c7f40320e09c7faa2cec0c +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..4aab6acda7f4d6885ffff8571c12cf196a7a2a6d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/global_step2000/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4e1ac50aa58a138b91832747cb96f8f87afd194acf2a86a3da4b96105025c18 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/latest new file mode 100644 index 0000000000000000000000000000000000000000..2a79fdc19587e6bc9de060e90633f3a151b04516 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/latest @@ -0,0 +1 @@ +global_step2000 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..01fa155317818024b84adfe6fb7f4c798d9d4aea --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:120654c40ab07680b6e25c6f415f868d33c21d42ff816d413cf88a5c5793ca4b +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..c2ccfb5890d7e3542e533ddfb0eb43acfd5be0ac --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26d324026b4b66cd9b8553682d39e90a564b56f31b1a487c65e1e5128f325560 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..c1537ff4ae520118b2106046131c76abd6a73664 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/trainer_state.json @@ -0,0 +1,2421 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 0.7983284997037453, + "eval_steps": 500, + "global_step": 2000, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 8.056468541093708e+18, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2000/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..9a8e8e08cb2fdcae1d7e84bb020d23f4adacaf97 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b416d3e258a582396075c05428bff40bfdfca1eb90c49c8d3772f778275bc31 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..4a67da1db278844423a6f66a10380ee6bc3ff710 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcdc9e140d08d1a6a769adf0c31faed7eb8110dc4b7f6518a08d49a23e02294f +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..ff84619d49a0d06eb54edc4e0cd940c1aa889c6f --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/global_step2500/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f60f73c4622f20dc7ff3cfbb9b219fee35bf8134a14b777c6845e321c049fb20 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/latest new file mode 100644 index 0000000000000000000000000000000000000000..98f8bed9a5485ee900d9931cc06950de69499848 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/latest @@ -0,0 +1 @@ +global_step2500 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..3ff6036981fc298701f8a4118eb1ee4fa3ed5ed9 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f825f29d46d68de12985e875822b27efaac55bdba6c419fb26c2f1eb068aef1 +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..4965c72bdc2e64c92c4eeb3bf75848b7450ca9b7 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a13f4f8ba2e5988cc6fd82905cf4ea363a21a822e658eabdc1f337bcaed20957 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..281356506addcbaced4ceae9ff7203986b9632ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/trainer_state.json @@ -0,0 +1,3021 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 0.9979106246296816, + "eval_steps": 500, + "global_step": 2500, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 1.006726589213311e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-2500/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..775923bf0bd1c9577c6a08f80aa14f7526834f85 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:594b67f8ef6310c9ff1be2eeb1ef6e747610cd7066b4afb6e1565107960ae791 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..55f87d7d12dc94ca31f0c283745b4eaf01ec74b5 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9040a90f5d8818966640769ae8b1972e8162567456b23ae9d6b84ef4032e980b +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..9537a96faa8b9d2be2d4f29def191b3480009c8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/global_step3000/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fea4b1fe3e6d7ecadb081b903d9a5b6f21d8dd89b942f105211beee91c283886 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/latest new file mode 100644 index 0000000000000000000000000000000000000000..1d7ba373feda3875a77d01589035020625a7c98e --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/latest @@ -0,0 +1 @@ +global_step3000 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..f1f38b432152408d45b0c895c52796e871121939 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:602ff114cd2710380875f9cf15b09f6fc6a211d90bdfc8416e511f12377a1bd9 +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..e0eea47dbae72c2fb0001a43c6485e5fd4dea837 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:083abc970a85acd0fe0036aee21d5b5cee2ceb437d75185f43bb0e09b5a91147 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..6e5b8b8d49a2d55febe572e2701178bdd9a18e3c --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/trainer_state.json @@ -0,0 +1,3621 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 1.197492749555618, + "eval_steps": 500, + "global_step": 3000, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020617283950617282, + "loss": 0.7309, + "step": 2505 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020576131687242798, + "loss": 0.6628, + "step": 2510 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020534979423868314, + "loss": 0.656, + "step": 2515 + }, + { + "epoch": 1.01, + "learning_rate": 0.0002049382716049383, + "loss": 0.6737, + "step": 2520 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020452674897119343, + "loss": 0.6903, + "step": 2525 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020411522633744856, + "loss": 0.6674, + "step": 2530 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020370370370370372, + "loss": 0.6507, + "step": 2535 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020329218106995885, + "loss": 0.6948, + "step": 2540 + }, + { + "epoch": 1.02, + "learning_rate": 0.000202880658436214, + "loss": 0.6662, + "step": 2545 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020246913580246917, + "loss": 0.6624, + "step": 2550 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020205761316872427, + "loss": 0.6791, + "step": 2555 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020164609053497943, + "loss": 0.7088, + "step": 2560 + }, + { + "epoch": 1.02, + "learning_rate": 0.0002012345679012346, + "loss": 0.6796, + "step": 2565 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020082304526748975, + "loss": 0.6601, + "step": 2570 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020041152263374485, + "loss": 0.6865, + "step": 2575 + }, + { + "epoch": 1.03, + "learning_rate": 0.0002, + "loss": 0.6725, + "step": 2580 + }, + { + "epoch": 1.03, + "learning_rate": 0.00019958847736625514, + "loss": 0.6743, + "step": 2585 + }, + { + "epoch": 1.03, + "learning_rate": 0.0001991769547325103, + "loss": 0.6395, + "step": 2590 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019876543209876543, + "loss": 0.6522, + "step": 2595 + }, + { + "epoch": 1.04, + "learning_rate": 0.0001983539094650206, + "loss": 0.6868, + "step": 2600 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019794238683127572, + "loss": 0.6861, + "step": 2605 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019753086419753085, + "loss": 0.6843, + "step": 2610 + }, + { + "epoch": 1.04, + "learning_rate": 0.000197119341563786, + "loss": 0.6732, + "step": 2615 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019670781893004114, + "loss": 0.6676, + "step": 2620 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001962962962962963, + "loss": 0.6782, + "step": 2625 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019588477366255146, + "loss": 0.6937, + "step": 2630 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001954732510288066, + "loss": 0.6823, + "step": 2635 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019506172839506175, + "loss": 0.6839, + "step": 2640 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019465020576131688, + "loss": 0.6351, + "step": 2645 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019423868312757204, + "loss": 0.7157, + "step": 2650 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019382716049382717, + "loss": 0.6591, + "step": 2655 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019341563786008233, + "loss": 0.6826, + "step": 2660 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019300411522633746, + "loss": 0.6732, + "step": 2665 + }, + { + "epoch": 1.07, + "learning_rate": 0.0001925925925925926, + "loss": 0.6795, + "step": 2670 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019218106995884775, + "loss": 0.6845, + "step": 2675 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019176954732510288, + "loss": 0.649, + "step": 2680 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019135802469135804, + "loss": 0.6684, + "step": 2685 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019094650205761317, + "loss": 0.6712, + "step": 2690 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019053497942386833, + "loss": 0.6665, + "step": 2695 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019012345679012346, + "loss": 0.6426, + "step": 2700 + }, + { + "epoch": 1.08, + "learning_rate": 0.0001897119341563786, + "loss": 0.6561, + "step": 2705 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018930041152263375, + "loss": 0.6664, + "step": 2710 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018888888888888888, + "loss": 0.6746, + "step": 2715 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018847736625514404, + "loss": 0.6497, + "step": 2720 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018806584362139917, + "loss": 0.6811, + "step": 2725 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018765432098765433, + "loss": 0.6608, + "step": 2730 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018724279835390946, + "loss": 0.6655, + "step": 2735 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018683127572016462, + "loss": 0.7014, + "step": 2740 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018641975308641978, + "loss": 0.6889, + "step": 2745 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001860082304526749, + "loss": 0.6805, + "step": 2750 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018559670781893007, + "loss": 0.6629, + "step": 2755 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001851851851851852, + "loss": 0.6593, + "step": 2760 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018477366255144033, + "loss": 0.6902, + "step": 2765 + }, + { + "epoch": 1.11, + "learning_rate": 0.0001843621399176955, + "loss": 0.6777, + "step": 2770 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018395061728395062, + "loss": 0.7127, + "step": 2775 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018353909465020578, + "loss": 0.6551, + "step": 2780 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018312757201646091, + "loss": 0.6703, + "step": 2785 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018271604938271605, + "loss": 0.6776, + "step": 2790 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001823045267489712, + "loss": 0.6574, + "step": 2795 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018189300411522634, + "loss": 0.7154, + "step": 2800 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001814814814814815, + "loss": 0.6749, + "step": 2805 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018106995884773663, + "loss": 0.695, + "step": 2810 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018065843621399178, + "loss": 0.6685, + "step": 2815 + }, + { + "epoch": 1.13, + "learning_rate": 0.00018024691358024692, + "loss": 0.642, + "step": 2820 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017983539094650205, + "loss": 0.6873, + "step": 2825 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001794238683127572, + "loss": 0.6506, + "step": 2830 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017901234567901234, + "loss": 0.6695, + "step": 2835 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001786008230452675, + "loss": 0.651, + "step": 2840 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017818930041152265, + "loss": 0.6585, + "step": 2845 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017777777777777779, + "loss": 0.6717, + "step": 2850 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017736625514403294, + "loss": 0.6524, + "step": 2855 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017695473251028808, + "loss": 0.6679, + "step": 2860 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017654320987654323, + "loss": 0.6719, + "step": 2865 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017613168724279837, + "loss": 0.6662, + "step": 2870 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017572016460905352, + "loss": 0.6624, + "step": 2875 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017530864197530866, + "loss": 0.69, + "step": 2880 + }, + { + "epoch": 1.15, + "learning_rate": 0.0001748971193415638, + "loss": 0.6629, + "step": 2885 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017448559670781895, + "loss": 0.6566, + "step": 2890 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017407407407407408, + "loss": 0.6711, + "step": 2895 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017366255144032924, + "loss": 0.6995, + "step": 2900 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017325102880658437, + "loss": 0.6597, + "step": 2905 + }, + { + "epoch": 1.16, + "learning_rate": 0.0001728395061728395, + "loss": 0.6685, + "step": 2910 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017242798353909466, + "loss": 0.6649, + "step": 2915 + }, + { + "epoch": 1.17, + "learning_rate": 0.0001720164609053498, + "loss": 0.6824, + "step": 2920 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017160493827160495, + "loss": 0.6484, + "step": 2925 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017119341563786008, + "loss": 0.6693, + "step": 2930 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017078189300411524, + "loss": 0.629, + "step": 2935 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017037037037037037, + "loss": 0.6588, + "step": 2940 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016995884773662553, + "loss": 0.6771, + "step": 2945 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016954732510288066, + "loss": 0.6773, + "step": 2950 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016913580246913582, + "loss": 0.6307, + "step": 2955 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016872427983539098, + "loss": 0.6809, + "step": 2960 + }, + { + "epoch": 1.18, + "learning_rate": 0.0001683127572016461, + "loss": 0.6748, + "step": 2965 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016790123456790124, + "loss": 0.6708, + "step": 2970 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001674897119341564, + "loss": 0.6754, + "step": 2975 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016707818930041153, + "loss": 0.6676, + "step": 2980 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001666666666666667, + "loss": 0.6662, + "step": 2985 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016625514403292182, + "loss": 0.6933, + "step": 2990 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016584362139917695, + "loss": 0.6879, + "step": 2995 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001654320987654321, + "loss": 0.6979, + "step": 3000 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 1.2080552599774822e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3000/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..f89ea5d2160acff4f98900c4f172b32ba552d0e3 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:314c9406340ddc3077b70bbc3d2fcace468611bc56918c2090fee77bedbe7876 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..100618f078eb7dcf69b09f54c6815cc20d45e5e4 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a01ec991d722549ef74ff1b551f8baf8e673b8788975babfdc3dc3bab0fd8908 +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..0756adb042329172121ed89ae3a77bcad43a6a14 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/global_step3500/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d55e7f8f4a437e9a67462a1293e67ab2b03a41ad52e2af8435d871550cb074 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/latest new file mode 100644 index 0000000000000000000000000000000000000000..f3af93198d9ca215e3991f85bf3781ae5dfe71f3 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/latest @@ -0,0 +1 @@ +global_step3500 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..f6488135afbf0a2ed40e30a80b4bac42b6c3ada7 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a416fef4baf7da791f4aa05f7e025ca652472141670ffd3e3487a4df1f3a1fc +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..3305ecffef79efafcf2556476aee087eb925f213 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff5ee0320ce9d7ad88f792008c95002cf68f7ec2fcb536ba4176be364a3f1bf4 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..73adea684d787b62623da855a706bcc21acdf834 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/trainer_state.json @@ -0,0 +1,4221 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 1.3970748744815542, + "eval_steps": 500, + "global_step": 3500, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020617283950617282, + "loss": 0.7309, + "step": 2505 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020576131687242798, + "loss": 0.6628, + "step": 2510 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020534979423868314, + "loss": 0.656, + "step": 2515 + }, + { + "epoch": 1.01, + "learning_rate": 0.0002049382716049383, + "loss": 0.6737, + "step": 2520 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020452674897119343, + "loss": 0.6903, + "step": 2525 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020411522633744856, + "loss": 0.6674, + "step": 2530 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020370370370370372, + "loss": 0.6507, + "step": 2535 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020329218106995885, + "loss": 0.6948, + "step": 2540 + }, + { + "epoch": 1.02, + "learning_rate": 0.000202880658436214, + "loss": 0.6662, + "step": 2545 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020246913580246917, + "loss": 0.6624, + "step": 2550 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020205761316872427, + "loss": 0.6791, + "step": 2555 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020164609053497943, + "loss": 0.7088, + "step": 2560 + }, + { + "epoch": 1.02, + "learning_rate": 0.0002012345679012346, + "loss": 0.6796, + "step": 2565 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020082304526748975, + "loss": 0.6601, + "step": 2570 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020041152263374485, + "loss": 0.6865, + "step": 2575 + }, + { + "epoch": 1.03, + "learning_rate": 0.0002, + "loss": 0.6725, + "step": 2580 + }, + { + "epoch": 1.03, + "learning_rate": 0.00019958847736625514, + "loss": 0.6743, + "step": 2585 + }, + { + "epoch": 1.03, + "learning_rate": 0.0001991769547325103, + "loss": 0.6395, + "step": 2590 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019876543209876543, + "loss": 0.6522, + "step": 2595 + }, + { + "epoch": 1.04, + "learning_rate": 0.0001983539094650206, + "loss": 0.6868, + "step": 2600 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019794238683127572, + "loss": 0.6861, + "step": 2605 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019753086419753085, + "loss": 0.6843, + "step": 2610 + }, + { + "epoch": 1.04, + "learning_rate": 0.000197119341563786, + "loss": 0.6732, + "step": 2615 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019670781893004114, + "loss": 0.6676, + "step": 2620 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001962962962962963, + "loss": 0.6782, + "step": 2625 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019588477366255146, + "loss": 0.6937, + "step": 2630 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001954732510288066, + "loss": 0.6823, + "step": 2635 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019506172839506175, + "loss": 0.6839, + "step": 2640 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019465020576131688, + "loss": 0.6351, + "step": 2645 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019423868312757204, + "loss": 0.7157, + "step": 2650 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019382716049382717, + "loss": 0.6591, + "step": 2655 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019341563786008233, + "loss": 0.6826, + "step": 2660 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019300411522633746, + "loss": 0.6732, + "step": 2665 + }, + { + "epoch": 1.07, + "learning_rate": 0.0001925925925925926, + "loss": 0.6795, + "step": 2670 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019218106995884775, + "loss": 0.6845, + "step": 2675 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019176954732510288, + "loss": 0.649, + "step": 2680 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019135802469135804, + "loss": 0.6684, + "step": 2685 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019094650205761317, + "loss": 0.6712, + "step": 2690 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019053497942386833, + "loss": 0.6665, + "step": 2695 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019012345679012346, + "loss": 0.6426, + "step": 2700 + }, + { + "epoch": 1.08, + "learning_rate": 0.0001897119341563786, + "loss": 0.6561, + "step": 2705 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018930041152263375, + "loss": 0.6664, + "step": 2710 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018888888888888888, + "loss": 0.6746, + "step": 2715 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018847736625514404, + "loss": 0.6497, + "step": 2720 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018806584362139917, + "loss": 0.6811, + "step": 2725 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018765432098765433, + "loss": 0.6608, + "step": 2730 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018724279835390946, + "loss": 0.6655, + "step": 2735 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018683127572016462, + "loss": 0.7014, + "step": 2740 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018641975308641978, + "loss": 0.6889, + "step": 2745 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001860082304526749, + "loss": 0.6805, + "step": 2750 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018559670781893007, + "loss": 0.6629, + "step": 2755 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001851851851851852, + "loss": 0.6593, + "step": 2760 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018477366255144033, + "loss": 0.6902, + "step": 2765 + }, + { + "epoch": 1.11, + "learning_rate": 0.0001843621399176955, + "loss": 0.6777, + "step": 2770 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018395061728395062, + "loss": 0.7127, + "step": 2775 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018353909465020578, + "loss": 0.6551, + "step": 2780 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018312757201646091, + "loss": 0.6703, + "step": 2785 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018271604938271605, + "loss": 0.6776, + "step": 2790 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001823045267489712, + "loss": 0.6574, + "step": 2795 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018189300411522634, + "loss": 0.7154, + "step": 2800 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001814814814814815, + "loss": 0.6749, + "step": 2805 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018106995884773663, + "loss": 0.695, + "step": 2810 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018065843621399178, + "loss": 0.6685, + "step": 2815 + }, + { + "epoch": 1.13, + "learning_rate": 0.00018024691358024692, + "loss": 0.642, + "step": 2820 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017983539094650205, + "loss": 0.6873, + "step": 2825 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001794238683127572, + "loss": 0.6506, + "step": 2830 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017901234567901234, + "loss": 0.6695, + "step": 2835 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001786008230452675, + "loss": 0.651, + "step": 2840 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017818930041152265, + "loss": 0.6585, + "step": 2845 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017777777777777779, + "loss": 0.6717, + "step": 2850 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017736625514403294, + "loss": 0.6524, + "step": 2855 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017695473251028808, + "loss": 0.6679, + "step": 2860 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017654320987654323, + "loss": 0.6719, + "step": 2865 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017613168724279837, + "loss": 0.6662, + "step": 2870 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017572016460905352, + "loss": 0.6624, + "step": 2875 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017530864197530866, + "loss": 0.69, + "step": 2880 + }, + { + "epoch": 1.15, + "learning_rate": 0.0001748971193415638, + "loss": 0.6629, + "step": 2885 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017448559670781895, + "loss": 0.6566, + "step": 2890 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017407407407407408, + "loss": 0.6711, + "step": 2895 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017366255144032924, + "loss": 0.6995, + "step": 2900 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017325102880658437, + "loss": 0.6597, + "step": 2905 + }, + { + "epoch": 1.16, + "learning_rate": 0.0001728395061728395, + "loss": 0.6685, + "step": 2910 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017242798353909466, + "loss": 0.6649, + "step": 2915 + }, + { + "epoch": 1.17, + "learning_rate": 0.0001720164609053498, + "loss": 0.6824, + "step": 2920 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017160493827160495, + "loss": 0.6484, + "step": 2925 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017119341563786008, + "loss": 0.6693, + "step": 2930 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017078189300411524, + "loss": 0.629, + "step": 2935 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017037037037037037, + "loss": 0.6588, + "step": 2940 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016995884773662553, + "loss": 0.6771, + "step": 2945 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016954732510288066, + "loss": 0.6773, + "step": 2950 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016913580246913582, + "loss": 0.6307, + "step": 2955 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016872427983539098, + "loss": 0.6809, + "step": 2960 + }, + { + "epoch": 1.18, + "learning_rate": 0.0001683127572016461, + "loss": 0.6748, + "step": 2965 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016790123456790124, + "loss": 0.6708, + "step": 2970 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001674897119341564, + "loss": 0.6754, + "step": 2975 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016707818930041153, + "loss": 0.6676, + "step": 2980 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001666666666666667, + "loss": 0.6662, + "step": 2985 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016625514403292182, + "loss": 0.6933, + "step": 2990 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016584362139917695, + "loss": 0.6879, + "step": 2995 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001654320987654321, + "loss": 0.6979, + "step": 3000 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016502057613168724, + "loss": 0.657, + "step": 3005 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001646090534979424, + "loss": 0.6704, + "step": 3010 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016419753086419753, + "loss": 0.6394, + "step": 3015 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001637860082304527, + "loss": 0.6594, + "step": 3020 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016337448559670782, + "loss": 0.6584, + "step": 3025 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016296296296296295, + "loss": 0.6593, + "step": 3030 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001625514403292181, + "loss": 0.6538, + "step": 3035 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016213991769547324, + "loss": 0.6572, + "step": 3040 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001617283950617284, + "loss": 0.6999, + "step": 3045 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016131687242798353, + "loss": 0.6658, + "step": 3050 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001609053497942387, + "loss": 0.6809, + "step": 3055 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016049382716049385, + "loss": 0.6685, + "step": 3060 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016008230452674898, + "loss": 0.6532, + "step": 3065 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015967078189300414, + "loss": 0.6644, + "step": 3070 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015925925925925927, + "loss": 0.6721, + "step": 3075 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015884773662551443, + "loss": 0.6569, + "step": 3080 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015843621399176956, + "loss": 0.6832, + "step": 3085 + }, + { + "epoch": 1.23, + "learning_rate": 0.0001580246913580247, + "loss": 0.6721, + "step": 3090 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015761316872427985, + "loss": 0.6532, + "step": 3095 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015720164609053498, + "loss": 0.6955, + "step": 3100 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015679012345679014, + "loss": 0.6853, + "step": 3105 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015637860082304527, + "loss": 0.6943, + "step": 3110 + }, + { + "epoch": 1.24, + "learning_rate": 0.0001559670781893004, + "loss": 0.6815, + "step": 3115 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015555555555555556, + "loss": 0.6972, + "step": 3120 + }, + { + "epoch": 1.25, + "learning_rate": 0.0001551440329218107, + "loss": 0.6959, + "step": 3125 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015473251028806585, + "loss": 0.6795, + "step": 3130 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015432098765432098, + "loss": 0.6352, + "step": 3135 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015390946502057614, + "loss": 0.6601, + "step": 3140 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015349794238683127, + "loss": 0.676, + "step": 3145 + }, + { + "epoch": 1.26, + "learning_rate": 0.0001530864197530864, + "loss": 0.6352, + "step": 3150 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015267489711934156, + "loss": 0.6434, + "step": 3155 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015226337448559672, + "loss": 0.673, + "step": 3160 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015185185185185185, + "loss": 0.6963, + "step": 3165 + }, + { + "epoch": 1.27, + "learning_rate": 0.000151440329218107, + "loss": 0.6643, + "step": 3170 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015102880658436214, + "loss": 0.6757, + "step": 3175 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001506172839506173, + "loss": 0.6681, + "step": 3180 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015020576131687243, + "loss": 0.6935, + "step": 3185 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001497942386831276, + "loss": 0.6894, + "step": 3190 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014938271604938272, + "loss": 0.64, + "step": 3195 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014897119341563788, + "loss": 0.6481, + "step": 3200 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014855967078189301, + "loss": 0.6644, + "step": 3205 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014814814814814815, + "loss": 0.6358, + "step": 3210 + }, + { + "epoch": 1.28, + "learning_rate": 0.0001477366255144033, + "loss": 0.6678, + "step": 3215 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014732510288065844, + "loss": 0.6755, + "step": 3220 + }, + { + "epoch": 1.29, + "learning_rate": 0.0001469135802469136, + "loss": 0.6486, + "step": 3225 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014650205761316873, + "loss": 0.666, + "step": 3230 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014609053497942386, + "loss": 0.6689, + "step": 3235 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014567901234567902, + "loss": 0.6737, + "step": 3240 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014526748971193415, + "loss": 0.6659, + "step": 3245 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001448559670781893, + "loss": 0.6744, + "step": 3250 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014444444444444444, + "loss": 0.648, + "step": 3255 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001440329218106996, + "loss": 0.6455, + "step": 3260 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014362139917695473, + "loss": 0.659, + "step": 3265 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014320987654320989, + "loss": 0.6519, + "step": 3270 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014279835390946504, + "loss": 0.6972, + "step": 3275 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014238683127572018, + "loss": 0.6592, + "step": 3280 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014197530864197534, + "loss": 0.6757, + "step": 3285 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014156378600823047, + "loss": 0.6684, + "step": 3290 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001411522633744856, + "loss": 0.6754, + "step": 3295 + }, + { + "epoch": 1.32, + "learning_rate": 0.00014074074074074076, + "loss": 0.6738, + "step": 3300 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001403292181069959, + "loss": 0.683, + "step": 3305 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013991769547325105, + "loss": 0.6434, + "step": 3310 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013950617283950618, + "loss": 0.6416, + "step": 3315 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013909465020576134, + "loss": 0.6687, + "step": 3320 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013868312757201647, + "loss": 0.6663, + "step": 3325 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001382716049382716, + "loss": 0.7113, + "step": 3330 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013786008230452676, + "loss": 0.6625, + "step": 3335 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001374485596707819, + "loss": 0.6593, + "step": 3340 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013703703703703705, + "loss": 0.6707, + "step": 3345 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013662551440329218, + "loss": 0.6567, + "step": 3350 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001362139917695473, + "loss": 0.6622, + "step": 3355 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013580246913580247, + "loss": 0.6849, + "step": 3360 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001353909465020576, + "loss": 0.657, + "step": 3365 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013497942386831276, + "loss": 0.6452, + "step": 3370 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013456790123456792, + "loss": 0.6486, + "step": 3375 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013415637860082305, + "loss": 0.6737, + "step": 3380 + }, + { + "epoch": 1.35, + "learning_rate": 0.0001337448559670782, + "loss": 0.6793, + "step": 3385 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013333333333333334, + "loss": 0.6869, + "step": 3390 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001329218106995885, + "loss": 0.6594, + "step": 3395 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013251028806584363, + "loss": 0.6793, + "step": 3400 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001320987654320988, + "loss": 0.6879, + "step": 3405 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013168724279835392, + "loss": 0.695, + "step": 3410 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013127572016460905, + "loss": 0.6648, + "step": 3415 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001308641975308642, + "loss": 0.6162, + "step": 3420 + }, + { + "epoch": 1.37, + "learning_rate": 0.00013045267489711934, + "loss": 0.642, + "step": 3425 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001300411522633745, + "loss": 0.6618, + "step": 3430 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012962962962962963, + "loss": 0.6535, + "step": 3435 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012921810699588476, + "loss": 0.6664, + "step": 3440 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012880658436213992, + "loss": 0.6427, + "step": 3445 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012839506172839505, + "loss": 0.6584, + "step": 3450 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001279835390946502, + "loss": 0.657, + "step": 3455 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012757201646090534, + "loss": 0.6494, + "step": 3460 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001271604938271605, + "loss": 0.6553, + "step": 3465 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012674897119341563, + "loss": 0.6755, + "step": 3470 + }, + { + "epoch": 1.39, + "learning_rate": 0.0001263374485596708, + "loss": 0.6599, + "step": 3475 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012592592592592592, + "loss": 0.6564, + "step": 3480 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012551440329218108, + "loss": 0.6526, + "step": 3485 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012510288065843624, + "loss": 0.6439, + "step": 3490 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012469135802469137, + "loss": 0.6459, + "step": 3495 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001242798353909465, + "loss": 0.6573, + "step": 3500 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 1.408889273989464e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-3500/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d22cdd621e83ad395e1af5a384543e7b971d6fd1 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48e8835db17842835998b647d89832f3dd74b64f3e14569bf96e13e047ce0e17 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..d9583b2b269c306c15397f4eb5a853611322d895 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2da2f2f38b4229ce7515afd86b1a7684301d4c246b47946cb32ee1de4d9dcb77 +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..b688ff0b9782b36367863a7bfb3018756f3348a5 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/global_step4000/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d88c8e43b34628c750fad5bfea01690f590647573fb44741fe6ef91ac06d0ba2 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/latest new file mode 100644 index 0000000000000000000000000000000000000000..641c40ce8d5e05e04a0840d69bcc5fac045a3fbd --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/latest @@ -0,0 +1 @@ +global_step4000 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..c1f34143f345a3a07de72bbfc65ff1e6940c3c90 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d71993ac3ca0024cc1313d07edd34ca691097104341c6887989afddf4094c8c +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..a7dac2f28452436c134cb7ce69619bc8006d61a4 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dec7d2e204bbbd2ca4a34cd64f61177e1ab182018d934964c88d53bde6725f70 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..b088350b021852f4743bd90cdd4e8b93d166032f --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/trainer_state.json @@ -0,0 +1,4821 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 1.5966569994074906, + "eval_steps": 500, + "global_step": 4000, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020617283950617282, + "loss": 0.7309, + "step": 2505 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020576131687242798, + "loss": 0.6628, + "step": 2510 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020534979423868314, + "loss": 0.656, + "step": 2515 + }, + { + "epoch": 1.01, + "learning_rate": 0.0002049382716049383, + "loss": 0.6737, + "step": 2520 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020452674897119343, + "loss": 0.6903, + "step": 2525 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020411522633744856, + "loss": 0.6674, + "step": 2530 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020370370370370372, + "loss": 0.6507, + "step": 2535 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020329218106995885, + "loss": 0.6948, + "step": 2540 + }, + { + "epoch": 1.02, + "learning_rate": 0.000202880658436214, + "loss": 0.6662, + "step": 2545 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020246913580246917, + "loss": 0.6624, + "step": 2550 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020205761316872427, + "loss": 0.6791, + "step": 2555 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020164609053497943, + "loss": 0.7088, + "step": 2560 + }, + { + "epoch": 1.02, + "learning_rate": 0.0002012345679012346, + "loss": 0.6796, + "step": 2565 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020082304526748975, + "loss": 0.6601, + "step": 2570 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020041152263374485, + "loss": 0.6865, + "step": 2575 + }, + { + "epoch": 1.03, + "learning_rate": 0.0002, + "loss": 0.6725, + "step": 2580 + }, + { + "epoch": 1.03, + "learning_rate": 0.00019958847736625514, + "loss": 0.6743, + "step": 2585 + }, + { + "epoch": 1.03, + "learning_rate": 0.0001991769547325103, + "loss": 0.6395, + "step": 2590 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019876543209876543, + "loss": 0.6522, + "step": 2595 + }, + { + "epoch": 1.04, + "learning_rate": 0.0001983539094650206, + "loss": 0.6868, + "step": 2600 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019794238683127572, + "loss": 0.6861, + "step": 2605 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019753086419753085, + "loss": 0.6843, + "step": 2610 + }, + { + "epoch": 1.04, + "learning_rate": 0.000197119341563786, + "loss": 0.6732, + "step": 2615 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019670781893004114, + "loss": 0.6676, + "step": 2620 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001962962962962963, + "loss": 0.6782, + "step": 2625 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019588477366255146, + "loss": 0.6937, + "step": 2630 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001954732510288066, + "loss": 0.6823, + "step": 2635 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019506172839506175, + "loss": 0.6839, + "step": 2640 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019465020576131688, + "loss": 0.6351, + "step": 2645 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019423868312757204, + "loss": 0.7157, + "step": 2650 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019382716049382717, + "loss": 0.6591, + "step": 2655 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019341563786008233, + "loss": 0.6826, + "step": 2660 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019300411522633746, + "loss": 0.6732, + "step": 2665 + }, + { + "epoch": 1.07, + "learning_rate": 0.0001925925925925926, + "loss": 0.6795, + "step": 2670 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019218106995884775, + "loss": 0.6845, + "step": 2675 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019176954732510288, + "loss": 0.649, + "step": 2680 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019135802469135804, + "loss": 0.6684, + "step": 2685 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019094650205761317, + "loss": 0.6712, + "step": 2690 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019053497942386833, + "loss": 0.6665, + "step": 2695 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019012345679012346, + "loss": 0.6426, + "step": 2700 + }, + { + "epoch": 1.08, + "learning_rate": 0.0001897119341563786, + "loss": 0.6561, + "step": 2705 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018930041152263375, + "loss": 0.6664, + "step": 2710 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018888888888888888, + "loss": 0.6746, + "step": 2715 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018847736625514404, + "loss": 0.6497, + "step": 2720 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018806584362139917, + "loss": 0.6811, + "step": 2725 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018765432098765433, + "loss": 0.6608, + "step": 2730 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018724279835390946, + "loss": 0.6655, + "step": 2735 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018683127572016462, + "loss": 0.7014, + "step": 2740 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018641975308641978, + "loss": 0.6889, + "step": 2745 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001860082304526749, + "loss": 0.6805, + "step": 2750 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018559670781893007, + "loss": 0.6629, + "step": 2755 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001851851851851852, + "loss": 0.6593, + "step": 2760 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018477366255144033, + "loss": 0.6902, + "step": 2765 + }, + { + "epoch": 1.11, + "learning_rate": 0.0001843621399176955, + "loss": 0.6777, + "step": 2770 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018395061728395062, + "loss": 0.7127, + "step": 2775 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018353909465020578, + "loss": 0.6551, + "step": 2780 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018312757201646091, + "loss": 0.6703, + "step": 2785 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018271604938271605, + "loss": 0.6776, + "step": 2790 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001823045267489712, + "loss": 0.6574, + "step": 2795 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018189300411522634, + "loss": 0.7154, + "step": 2800 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001814814814814815, + "loss": 0.6749, + "step": 2805 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018106995884773663, + "loss": 0.695, + "step": 2810 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018065843621399178, + "loss": 0.6685, + "step": 2815 + }, + { + "epoch": 1.13, + "learning_rate": 0.00018024691358024692, + "loss": 0.642, + "step": 2820 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017983539094650205, + "loss": 0.6873, + "step": 2825 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001794238683127572, + "loss": 0.6506, + "step": 2830 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017901234567901234, + "loss": 0.6695, + "step": 2835 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001786008230452675, + "loss": 0.651, + "step": 2840 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017818930041152265, + "loss": 0.6585, + "step": 2845 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017777777777777779, + "loss": 0.6717, + "step": 2850 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017736625514403294, + "loss": 0.6524, + "step": 2855 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017695473251028808, + "loss": 0.6679, + "step": 2860 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017654320987654323, + "loss": 0.6719, + "step": 2865 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017613168724279837, + "loss": 0.6662, + "step": 2870 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017572016460905352, + "loss": 0.6624, + "step": 2875 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017530864197530866, + "loss": 0.69, + "step": 2880 + }, + { + "epoch": 1.15, + "learning_rate": 0.0001748971193415638, + "loss": 0.6629, + "step": 2885 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017448559670781895, + "loss": 0.6566, + "step": 2890 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017407407407407408, + "loss": 0.6711, + "step": 2895 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017366255144032924, + "loss": 0.6995, + "step": 2900 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017325102880658437, + "loss": 0.6597, + "step": 2905 + }, + { + "epoch": 1.16, + "learning_rate": 0.0001728395061728395, + "loss": 0.6685, + "step": 2910 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017242798353909466, + "loss": 0.6649, + "step": 2915 + }, + { + "epoch": 1.17, + "learning_rate": 0.0001720164609053498, + "loss": 0.6824, + "step": 2920 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017160493827160495, + "loss": 0.6484, + "step": 2925 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017119341563786008, + "loss": 0.6693, + "step": 2930 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017078189300411524, + "loss": 0.629, + "step": 2935 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017037037037037037, + "loss": 0.6588, + "step": 2940 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016995884773662553, + "loss": 0.6771, + "step": 2945 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016954732510288066, + "loss": 0.6773, + "step": 2950 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016913580246913582, + "loss": 0.6307, + "step": 2955 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016872427983539098, + "loss": 0.6809, + "step": 2960 + }, + { + "epoch": 1.18, + "learning_rate": 0.0001683127572016461, + "loss": 0.6748, + "step": 2965 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016790123456790124, + "loss": 0.6708, + "step": 2970 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001674897119341564, + "loss": 0.6754, + "step": 2975 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016707818930041153, + "loss": 0.6676, + "step": 2980 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001666666666666667, + "loss": 0.6662, + "step": 2985 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016625514403292182, + "loss": 0.6933, + "step": 2990 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016584362139917695, + "loss": 0.6879, + "step": 2995 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001654320987654321, + "loss": 0.6979, + "step": 3000 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016502057613168724, + "loss": 0.657, + "step": 3005 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001646090534979424, + "loss": 0.6704, + "step": 3010 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016419753086419753, + "loss": 0.6394, + "step": 3015 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001637860082304527, + "loss": 0.6594, + "step": 3020 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016337448559670782, + "loss": 0.6584, + "step": 3025 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016296296296296295, + "loss": 0.6593, + "step": 3030 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001625514403292181, + "loss": 0.6538, + "step": 3035 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016213991769547324, + "loss": 0.6572, + "step": 3040 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001617283950617284, + "loss": 0.6999, + "step": 3045 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016131687242798353, + "loss": 0.6658, + "step": 3050 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001609053497942387, + "loss": 0.6809, + "step": 3055 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016049382716049385, + "loss": 0.6685, + "step": 3060 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016008230452674898, + "loss": 0.6532, + "step": 3065 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015967078189300414, + "loss": 0.6644, + "step": 3070 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015925925925925927, + "loss": 0.6721, + "step": 3075 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015884773662551443, + "loss": 0.6569, + "step": 3080 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015843621399176956, + "loss": 0.6832, + "step": 3085 + }, + { + "epoch": 1.23, + "learning_rate": 0.0001580246913580247, + "loss": 0.6721, + "step": 3090 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015761316872427985, + "loss": 0.6532, + "step": 3095 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015720164609053498, + "loss": 0.6955, + "step": 3100 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015679012345679014, + "loss": 0.6853, + "step": 3105 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015637860082304527, + "loss": 0.6943, + "step": 3110 + }, + { + "epoch": 1.24, + "learning_rate": 0.0001559670781893004, + "loss": 0.6815, + "step": 3115 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015555555555555556, + "loss": 0.6972, + "step": 3120 + }, + { + "epoch": 1.25, + "learning_rate": 0.0001551440329218107, + "loss": 0.6959, + "step": 3125 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015473251028806585, + "loss": 0.6795, + "step": 3130 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015432098765432098, + "loss": 0.6352, + "step": 3135 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015390946502057614, + "loss": 0.6601, + "step": 3140 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015349794238683127, + "loss": 0.676, + "step": 3145 + }, + { + "epoch": 1.26, + "learning_rate": 0.0001530864197530864, + "loss": 0.6352, + "step": 3150 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015267489711934156, + "loss": 0.6434, + "step": 3155 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015226337448559672, + "loss": 0.673, + "step": 3160 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015185185185185185, + "loss": 0.6963, + "step": 3165 + }, + { + "epoch": 1.27, + "learning_rate": 0.000151440329218107, + "loss": 0.6643, + "step": 3170 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015102880658436214, + "loss": 0.6757, + "step": 3175 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001506172839506173, + "loss": 0.6681, + "step": 3180 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015020576131687243, + "loss": 0.6935, + "step": 3185 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001497942386831276, + "loss": 0.6894, + "step": 3190 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014938271604938272, + "loss": 0.64, + "step": 3195 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014897119341563788, + "loss": 0.6481, + "step": 3200 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014855967078189301, + "loss": 0.6644, + "step": 3205 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014814814814814815, + "loss": 0.6358, + "step": 3210 + }, + { + "epoch": 1.28, + "learning_rate": 0.0001477366255144033, + "loss": 0.6678, + "step": 3215 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014732510288065844, + "loss": 0.6755, + "step": 3220 + }, + { + "epoch": 1.29, + "learning_rate": 0.0001469135802469136, + "loss": 0.6486, + "step": 3225 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014650205761316873, + "loss": 0.666, + "step": 3230 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014609053497942386, + "loss": 0.6689, + "step": 3235 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014567901234567902, + "loss": 0.6737, + "step": 3240 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014526748971193415, + "loss": 0.6659, + "step": 3245 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001448559670781893, + "loss": 0.6744, + "step": 3250 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014444444444444444, + "loss": 0.648, + "step": 3255 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001440329218106996, + "loss": 0.6455, + "step": 3260 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014362139917695473, + "loss": 0.659, + "step": 3265 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014320987654320989, + "loss": 0.6519, + "step": 3270 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014279835390946504, + "loss": 0.6972, + "step": 3275 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014238683127572018, + "loss": 0.6592, + "step": 3280 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014197530864197534, + "loss": 0.6757, + "step": 3285 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014156378600823047, + "loss": 0.6684, + "step": 3290 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001411522633744856, + "loss": 0.6754, + "step": 3295 + }, + { + "epoch": 1.32, + "learning_rate": 0.00014074074074074076, + "loss": 0.6738, + "step": 3300 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001403292181069959, + "loss": 0.683, + "step": 3305 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013991769547325105, + "loss": 0.6434, + "step": 3310 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013950617283950618, + "loss": 0.6416, + "step": 3315 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013909465020576134, + "loss": 0.6687, + "step": 3320 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013868312757201647, + "loss": 0.6663, + "step": 3325 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001382716049382716, + "loss": 0.7113, + "step": 3330 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013786008230452676, + "loss": 0.6625, + "step": 3335 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001374485596707819, + "loss": 0.6593, + "step": 3340 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013703703703703705, + "loss": 0.6707, + "step": 3345 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013662551440329218, + "loss": 0.6567, + "step": 3350 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001362139917695473, + "loss": 0.6622, + "step": 3355 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013580246913580247, + "loss": 0.6849, + "step": 3360 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001353909465020576, + "loss": 0.657, + "step": 3365 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013497942386831276, + "loss": 0.6452, + "step": 3370 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013456790123456792, + "loss": 0.6486, + "step": 3375 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013415637860082305, + "loss": 0.6737, + "step": 3380 + }, + { + "epoch": 1.35, + "learning_rate": 0.0001337448559670782, + "loss": 0.6793, + "step": 3385 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013333333333333334, + "loss": 0.6869, + "step": 3390 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001329218106995885, + "loss": 0.6594, + "step": 3395 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013251028806584363, + "loss": 0.6793, + "step": 3400 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001320987654320988, + "loss": 0.6879, + "step": 3405 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013168724279835392, + "loss": 0.695, + "step": 3410 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013127572016460905, + "loss": 0.6648, + "step": 3415 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001308641975308642, + "loss": 0.6162, + "step": 3420 + }, + { + "epoch": 1.37, + "learning_rate": 0.00013045267489711934, + "loss": 0.642, + "step": 3425 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001300411522633745, + "loss": 0.6618, + "step": 3430 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012962962962962963, + "loss": 0.6535, + "step": 3435 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012921810699588476, + "loss": 0.6664, + "step": 3440 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012880658436213992, + "loss": 0.6427, + "step": 3445 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012839506172839505, + "loss": 0.6584, + "step": 3450 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001279835390946502, + "loss": 0.657, + "step": 3455 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012757201646090534, + "loss": 0.6494, + "step": 3460 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001271604938271605, + "loss": 0.6553, + "step": 3465 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012674897119341563, + "loss": 0.6755, + "step": 3470 + }, + { + "epoch": 1.39, + "learning_rate": 0.0001263374485596708, + "loss": 0.6599, + "step": 3475 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012592592592592592, + "loss": 0.6564, + "step": 3480 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012551440329218108, + "loss": 0.6526, + "step": 3485 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012510288065843624, + "loss": 0.6439, + "step": 3490 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012469135802469137, + "loss": 0.6459, + "step": 3495 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001242798353909465, + "loss": 0.6573, + "step": 3500 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012386831275720166, + "loss": 0.6773, + "step": 3505 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001234567901234568, + "loss": 0.68, + "step": 3510 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012304526748971195, + "loss": 0.6615, + "step": 3515 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012263374485596708, + "loss": 0.6886, + "step": 3520 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012222222222222224, + "loss": 0.667, + "step": 3525 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012181069958847737, + "loss": 0.677, + "step": 3530 + }, + { + "epoch": 1.41, + "learning_rate": 0.0001213991769547325, + "loss": 0.6709, + "step": 3535 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012098765432098766, + "loss": 0.6258, + "step": 3540 + }, + { + "epoch": 1.42, + "learning_rate": 0.0001205761316872428, + "loss": 0.6795, + "step": 3545 + }, + { + "epoch": 1.42, + "learning_rate": 0.00012016460905349795, + "loss": 0.6673, + "step": 3550 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011975308641975308, + "loss": 0.6708, + "step": 3555 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011934156378600823, + "loss": 0.6466, + "step": 3560 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011893004115226339, + "loss": 0.6339, + "step": 3565 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011851851851851852, + "loss": 0.6838, + "step": 3570 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011810699588477368, + "loss": 0.6179, + "step": 3575 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011769547325102881, + "loss": 0.6357, + "step": 3580 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011728395061728397, + "loss": 0.6807, + "step": 3585 + }, + { + "epoch": 1.43, + "learning_rate": 0.0001168724279835391, + "loss": 0.6365, + "step": 3590 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011646090534979423, + "loss": 0.6518, + "step": 3595 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011604938271604939, + "loss": 0.6467, + "step": 3600 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011563786008230452, + "loss": 0.6537, + "step": 3605 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011522633744855968, + "loss": 0.6324, + "step": 3610 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011481481481481482, + "loss": 0.6826, + "step": 3615 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011440329218106996, + "loss": 0.6643, + "step": 3620 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011399176954732511, + "loss": 0.6464, + "step": 3625 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011358024691358025, + "loss": 0.6601, + "step": 3630 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001131687242798354, + "loss": 0.6596, + "step": 3635 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011275720164609054, + "loss": 0.72, + "step": 3640 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001123456790123457, + "loss": 0.7157, + "step": 3645 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011193415637860083, + "loss": 0.6641, + "step": 3650 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011152263374485596, + "loss": 0.6631, + "step": 3655 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011111111111111112, + "loss": 0.6454, + "step": 3660 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011069958847736626, + "loss": 0.6957, + "step": 3665 + }, + { + "epoch": 1.46, + "learning_rate": 0.0001102880658436214, + "loss": 0.6535, + "step": 3670 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010987654320987655, + "loss": 0.6675, + "step": 3675 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010946502057613168, + "loss": 0.6458, + "step": 3680 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010905349794238684, + "loss": 0.6507, + "step": 3685 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010864197530864197, + "loss": 0.6818, + "step": 3690 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010823045267489713, + "loss": 0.6752, + "step": 3695 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010781893004115226, + "loss": 0.6645, + "step": 3700 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010740740740740742, + "loss": 0.6414, + "step": 3705 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010699588477366255, + "loss": 0.675, + "step": 3710 + }, + { + "epoch": 1.48, + "learning_rate": 0.0001065843621399177, + "loss": 0.6597, + "step": 3715 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010617283950617284, + "loss": 0.6637, + "step": 3720 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010576131687242799, + "loss": 0.664, + "step": 3725 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010534979423868315, + "loss": 0.6638, + "step": 3730 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010493827160493828, + "loss": 0.6413, + "step": 3735 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010452674897119341, + "loss": 0.6242, + "step": 3740 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010411522633744857, + "loss": 0.6653, + "step": 3745 + }, + { + "epoch": 1.5, + "learning_rate": 0.0001037037037037037, + "loss": 0.6947, + "step": 3750 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010329218106995886, + "loss": 0.6801, + "step": 3755 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010288065843621399, + "loss": 0.671, + "step": 3760 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010246913580246915, + "loss": 0.6505, + "step": 3765 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010205761316872428, + "loss": 0.6738, + "step": 3770 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010164609053497942, + "loss": 0.6478, + "step": 3775 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010123456790123458, + "loss": 0.6652, + "step": 3780 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010082304526748971, + "loss": 0.6456, + "step": 3785 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010041152263374487, + "loss": 0.6509, + "step": 3790 + }, + { + "epoch": 1.51, + "learning_rate": 0.0001, + "loss": 0.6623, + "step": 3795 + }, + { + "epoch": 1.52, + "learning_rate": 9.958847736625515e-05, + "loss": 0.6727, + "step": 3800 + }, + { + "epoch": 1.52, + "learning_rate": 9.91769547325103e-05, + "loss": 0.676, + "step": 3805 + }, + { + "epoch": 1.52, + "learning_rate": 9.876543209876543e-05, + "loss": 0.6662, + "step": 3810 + }, + { + "epoch": 1.52, + "learning_rate": 9.835390946502057e-05, + "loss": 0.6767, + "step": 3815 + }, + { + "epoch": 1.52, + "learning_rate": 9.794238683127573e-05, + "loss": 0.6278, + "step": 3820 + }, + { + "epoch": 1.53, + "learning_rate": 9.753086419753087e-05, + "loss": 0.6769, + "step": 3825 + }, + { + "epoch": 1.53, + "learning_rate": 9.711934156378602e-05, + "loss": 0.667, + "step": 3830 + }, + { + "epoch": 1.53, + "learning_rate": 9.670781893004116e-05, + "loss": 0.6392, + "step": 3835 + }, + { + "epoch": 1.53, + "learning_rate": 9.62962962962963e-05, + "loss": 0.6479, + "step": 3840 + }, + { + "epoch": 1.53, + "learning_rate": 9.588477366255144e-05, + "loss": 0.6958, + "step": 3845 + }, + { + "epoch": 1.54, + "learning_rate": 9.547325102880659e-05, + "loss": 0.6636, + "step": 3850 + }, + { + "epoch": 1.54, + "learning_rate": 9.506172839506173e-05, + "loss": 0.6722, + "step": 3855 + }, + { + "epoch": 1.54, + "learning_rate": 9.465020576131688e-05, + "loss": 0.6688, + "step": 3860 + }, + { + "epoch": 1.54, + "learning_rate": 9.423868312757202e-05, + "loss": 0.6814, + "step": 3865 + }, + { + "epoch": 1.54, + "learning_rate": 9.382716049382717e-05, + "loss": 0.679, + "step": 3870 + }, + { + "epoch": 1.55, + "learning_rate": 9.341563786008231e-05, + "loss": 0.6536, + "step": 3875 + }, + { + "epoch": 1.55, + "learning_rate": 9.300411522633746e-05, + "loss": 0.6783, + "step": 3880 + }, + { + "epoch": 1.55, + "learning_rate": 9.25925925925926e-05, + "loss": 0.6424, + "step": 3885 + }, + { + "epoch": 1.55, + "learning_rate": 9.218106995884775e-05, + "loss": 0.6695, + "step": 3890 + }, + { + "epoch": 1.55, + "learning_rate": 9.176954732510289e-05, + "loss": 0.6941, + "step": 3895 + }, + { + "epoch": 1.56, + "learning_rate": 9.135802469135802e-05, + "loss": 0.6887, + "step": 3900 + }, + { + "epoch": 1.56, + "learning_rate": 9.094650205761317e-05, + "loss": 0.6789, + "step": 3905 + }, + { + "epoch": 1.56, + "learning_rate": 9.053497942386831e-05, + "loss": 0.6819, + "step": 3910 + }, + { + "epoch": 1.56, + "learning_rate": 9.012345679012346e-05, + "loss": 0.6571, + "step": 3915 + }, + { + "epoch": 1.56, + "learning_rate": 8.97119341563786e-05, + "loss": 0.6527, + "step": 3920 + }, + { + "epoch": 1.57, + "learning_rate": 8.930041152263375e-05, + "loss": 0.6656, + "step": 3925 + }, + { + "epoch": 1.57, + "learning_rate": 8.888888888888889e-05, + "loss": 0.6551, + "step": 3930 + }, + { + "epoch": 1.57, + "learning_rate": 8.847736625514404e-05, + "loss": 0.6502, + "step": 3935 + }, + { + "epoch": 1.57, + "learning_rate": 8.806584362139918e-05, + "loss": 0.6458, + "step": 3940 + }, + { + "epoch": 1.57, + "learning_rate": 8.765432098765433e-05, + "loss": 0.6617, + "step": 3945 + }, + { + "epoch": 1.58, + "learning_rate": 8.724279835390947e-05, + "loss": 0.6444, + "step": 3950 + }, + { + "epoch": 1.58, + "learning_rate": 8.683127572016462e-05, + "loss": 0.6629, + "step": 3955 + }, + { + "epoch": 1.58, + "learning_rate": 8.641975308641975e-05, + "loss": 0.6683, + "step": 3960 + }, + { + "epoch": 1.58, + "learning_rate": 8.60082304526749e-05, + "loss": 0.6483, + "step": 3965 + }, + { + "epoch": 1.58, + "learning_rate": 8.559670781893004e-05, + "loss": 0.6623, + "step": 3970 + }, + { + "epoch": 1.59, + "learning_rate": 8.518518518518518e-05, + "loss": 0.6491, + "step": 3975 + }, + { + "epoch": 1.59, + "learning_rate": 8.477366255144033e-05, + "loss": 0.6394, + "step": 3980 + }, + { + "epoch": 1.59, + "learning_rate": 8.436213991769549e-05, + "loss": 0.6494, + "step": 3985 + }, + { + "epoch": 1.59, + "learning_rate": 8.395061728395062e-05, + "loss": 0.6516, + "step": 3990 + }, + { + "epoch": 1.59, + "learning_rate": 8.353909465020576e-05, + "loss": 0.6664, + "step": 3995 + }, + { + "epoch": 1.6, + "learning_rate": 8.312757201646091e-05, + "loss": 0.6822, + "step": 4000 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 1.6102337306911834e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4000/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..324c20eb80314fcedcf477c1faf2e4b5e453a99d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02dd3c890f7e84fb98dbbc4305c2013226f5e34d5dd720f332ab2adf38b69ba2 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..6b2558835aa3ace7253ac23b5e00b835c9738428 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:776e6554eef8fdd2f76b83cd0dd293946635373180354bb1b8ba990b8d023990 +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..dad6ae5db7face15f62813a4ee50348ae04b5c53 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/global_step4500/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:244329fee9472820bef1df66785a200ead14a1a637e42f4c7de2a518cf2743e2 +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/latest new file mode 100644 index 0000000000000000000000000000000000000000..982b8ddd9a759078550e0894b3ed06c6084c9e9c --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/latest @@ -0,0 +1 @@ +global_step4500 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..9ca0f22355d7c99215c54c6fb7472555b5e6c9b3 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7224daa5bbdc8c06383cff73437e9cd9d12f97c9793d5c00d39be052a9142c9c +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..d0272ae81a71d8378677b37dd7b4e335fae7b9f6 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:250f876d4d8087a170bed36e61e55ad2b2da3497e02d544cdd03167f9e3a5f54 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..aa4df3cb59d6aae0347fc51b091f6004bf382bba --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/trainer_state.json @@ -0,0 +1,5421 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 1.796239124333427, + "eval_steps": 500, + "global_step": 4500, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020617283950617282, + "loss": 0.7309, + "step": 2505 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020576131687242798, + "loss": 0.6628, + "step": 2510 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020534979423868314, + "loss": 0.656, + "step": 2515 + }, + { + "epoch": 1.01, + "learning_rate": 0.0002049382716049383, + "loss": 0.6737, + "step": 2520 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020452674897119343, + "loss": 0.6903, + "step": 2525 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020411522633744856, + "loss": 0.6674, + "step": 2530 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020370370370370372, + "loss": 0.6507, + "step": 2535 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020329218106995885, + "loss": 0.6948, + "step": 2540 + }, + { + "epoch": 1.02, + "learning_rate": 0.000202880658436214, + "loss": 0.6662, + "step": 2545 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020246913580246917, + "loss": 0.6624, + "step": 2550 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020205761316872427, + "loss": 0.6791, + "step": 2555 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020164609053497943, + "loss": 0.7088, + "step": 2560 + }, + { + "epoch": 1.02, + "learning_rate": 0.0002012345679012346, + "loss": 0.6796, + "step": 2565 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020082304526748975, + "loss": 0.6601, + "step": 2570 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020041152263374485, + "loss": 0.6865, + "step": 2575 + }, + { + "epoch": 1.03, + "learning_rate": 0.0002, + "loss": 0.6725, + "step": 2580 + }, + { + "epoch": 1.03, + "learning_rate": 0.00019958847736625514, + "loss": 0.6743, + "step": 2585 + }, + { + "epoch": 1.03, + "learning_rate": 0.0001991769547325103, + "loss": 0.6395, + "step": 2590 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019876543209876543, + "loss": 0.6522, + "step": 2595 + }, + { + "epoch": 1.04, + "learning_rate": 0.0001983539094650206, + "loss": 0.6868, + "step": 2600 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019794238683127572, + "loss": 0.6861, + "step": 2605 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019753086419753085, + "loss": 0.6843, + "step": 2610 + }, + { + "epoch": 1.04, + "learning_rate": 0.000197119341563786, + "loss": 0.6732, + "step": 2615 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019670781893004114, + "loss": 0.6676, + "step": 2620 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001962962962962963, + "loss": 0.6782, + "step": 2625 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019588477366255146, + "loss": 0.6937, + "step": 2630 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001954732510288066, + "loss": 0.6823, + "step": 2635 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019506172839506175, + "loss": 0.6839, + "step": 2640 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019465020576131688, + "loss": 0.6351, + "step": 2645 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019423868312757204, + "loss": 0.7157, + "step": 2650 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019382716049382717, + "loss": 0.6591, + "step": 2655 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019341563786008233, + "loss": 0.6826, + "step": 2660 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019300411522633746, + "loss": 0.6732, + "step": 2665 + }, + { + "epoch": 1.07, + "learning_rate": 0.0001925925925925926, + "loss": 0.6795, + "step": 2670 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019218106995884775, + "loss": 0.6845, + "step": 2675 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019176954732510288, + "loss": 0.649, + "step": 2680 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019135802469135804, + "loss": 0.6684, + "step": 2685 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019094650205761317, + "loss": 0.6712, + "step": 2690 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019053497942386833, + "loss": 0.6665, + "step": 2695 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019012345679012346, + "loss": 0.6426, + "step": 2700 + }, + { + "epoch": 1.08, + "learning_rate": 0.0001897119341563786, + "loss": 0.6561, + "step": 2705 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018930041152263375, + "loss": 0.6664, + "step": 2710 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018888888888888888, + "loss": 0.6746, + "step": 2715 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018847736625514404, + "loss": 0.6497, + "step": 2720 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018806584362139917, + "loss": 0.6811, + "step": 2725 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018765432098765433, + "loss": 0.6608, + "step": 2730 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018724279835390946, + "loss": 0.6655, + "step": 2735 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018683127572016462, + "loss": 0.7014, + "step": 2740 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018641975308641978, + "loss": 0.6889, + "step": 2745 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001860082304526749, + "loss": 0.6805, + "step": 2750 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018559670781893007, + "loss": 0.6629, + "step": 2755 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001851851851851852, + "loss": 0.6593, + "step": 2760 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018477366255144033, + "loss": 0.6902, + "step": 2765 + }, + { + "epoch": 1.11, + "learning_rate": 0.0001843621399176955, + "loss": 0.6777, + "step": 2770 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018395061728395062, + "loss": 0.7127, + "step": 2775 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018353909465020578, + "loss": 0.6551, + "step": 2780 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018312757201646091, + "loss": 0.6703, + "step": 2785 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018271604938271605, + "loss": 0.6776, + "step": 2790 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001823045267489712, + "loss": 0.6574, + "step": 2795 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018189300411522634, + "loss": 0.7154, + "step": 2800 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001814814814814815, + "loss": 0.6749, + "step": 2805 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018106995884773663, + "loss": 0.695, + "step": 2810 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018065843621399178, + "loss": 0.6685, + "step": 2815 + }, + { + "epoch": 1.13, + "learning_rate": 0.00018024691358024692, + "loss": 0.642, + "step": 2820 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017983539094650205, + "loss": 0.6873, + "step": 2825 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001794238683127572, + "loss": 0.6506, + "step": 2830 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017901234567901234, + "loss": 0.6695, + "step": 2835 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001786008230452675, + "loss": 0.651, + "step": 2840 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017818930041152265, + "loss": 0.6585, + "step": 2845 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017777777777777779, + "loss": 0.6717, + "step": 2850 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017736625514403294, + "loss": 0.6524, + "step": 2855 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017695473251028808, + "loss": 0.6679, + "step": 2860 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017654320987654323, + "loss": 0.6719, + "step": 2865 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017613168724279837, + "loss": 0.6662, + "step": 2870 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017572016460905352, + "loss": 0.6624, + "step": 2875 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017530864197530866, + "loss": 0.69, + "step": 2880 + }, + { + "epoch": 1.15, + "learning_rate": 0.0001748971193415638, + "loss": 0.6629, + "step": 2885 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017448559670781895, + "loss": 0.6566, + "step": 2890 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017407407407407408, + "loss": 0.6711, + "step": 2895 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017366255144032924, + "loss": 0.6995, + "step": 2900 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017325102880658437, + "loss": 0.6597, + "step": 2905 + }, + { + "epoch": 1.16, + "learning_rate": 0.0001728395061728395, + "loss": 0.6685, + "step": 2910 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017242798353909466, + "loss": 0.6649, + "step": 2915 + }, + { + "epoch": 1.17, + "learning_rate": 0.0001720164609053498, + "loss": 0.6824, + "step": 2920 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017160493827160495, + "loss": 0.6484, + "step": 2925 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017119341563786008, + "loss": 0.6693, + "step": 2930 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017078189300411524, + "loss": 0.629, + "step": 2935 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017037037037037037, + "loss": 0.6588, + "step": 2940 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016995884773662553, + "loss": 0.6771, + "step": 2945 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016954732510288066, + "loss": 0.6773, + "step": 2950 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016913580246913582, + "loss": 0.6307, + "step": 2955 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016872427983539098, + "loss": 0.6809, + "step": 2960 + }, + { + "epoch": 1.18, + "learning_rate": 0.0001683127572016461, + "loss": 0.6748, + "step": 2965 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016790123456790124, + "loss": 0.6708, + "step": 2970 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001674897119341564, + "loss": 0.6754, + "step": 2975 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016707818930041153, + "loss": 0.6676, + "step": 2980 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001666666666666667, + "loss": 0.6662, + "step": 2985 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016625514403292182, + "loss": 0.6933, + "step": 2990 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016584362139917695, + "loss": 0.6879, + "step": 2995 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001654320987654321, + "loss": 0.6979, + "step": 3000 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016502057613168724, + "loss": 0.657, + "step": 3005 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001646090534979424, + "loss": 0.6704, + "step": 3010 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016419753086419753, + "loss": 0.6394, + "step": 3015 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001637860082304527, + "loss": 0.6594, + "step": 3020 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016337448559670782, + "loss": 0.6584, + "step": 3025 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016296296296296295, + "loss": 0.6593, + "step": 3030 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001625514403292181, + "loss": 0.6538, + "step": 3035 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016213991769547324, + "loss": 0.6572, + "step": 3040 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001617283950617284, + "loss": 0.6999, + "step": 3045 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016131687242798353, + "loss": 0.6658, + "step": 3050 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001609053497942387, + "loss": 0.6809, + "step": 3055 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016049382716049385, + "loss": 0.6685, + "step": 3060 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016008230452674898, + "loss": 0.6532, + "step": 3065 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015967078189300414, + "loss": 0.6644, + "step": 3070 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015925925925925927, + "loss": 0.6721, + "step": 3075 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015884773662551443, + "loss": 0.6569, + "step": 3080 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015843621399176956, + "loss": 0.6832, + "step": 3085 + }, + { + "epoch": 1.23, + "learning_rate": 0.0001580246913580247, + "loss": 0.6721, + "step": 3090 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015761316872427985, + "loss": 0.6532, + "step": 3095 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015720164609053498, + "loss": 0.6955, + "step": 3100 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015679012345679014, + "loss": 0.6853, + "step": 3105 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015637860082304527, + "loss": 0.6943, + "step": 3110 + }, + { + "epoch": 1.24, + "learning_rate": 0.0001559670781893004, + "loss": 0.6815, + "step": 3115 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015555555555555556, + "loss": 0.6972, + "step": 3120 + }, + { + "epoch": 1.25, + "learning_rate": 0.0001551440329218107, + "loss": 0.6959, + "step": 3125 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015473251028806585, + "loss": 0.6795, + "step": 3130 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015432098765432098, + "loss": 0.6352, + "step": 3135 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015390946502057614, + "loss": 0.6601, + "step": 3140 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015349794238683127, + "loss": 0.676, + "step": 3145 + }, + { + "epoch": 1.26, + "learning_rate": 0.0001530864197530864, + "loss": 0.6352, + "step": 3150 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015267489711934156, + "loss": 0.6434, + "step": 3155 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015226337448559672, + "loss": 0.673, + "step": 3160 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015185185185185185, + "loss": 0.6963, + "step": 3165 + }, + { + "epoch": 1.27, + "learning_rate": 0.000151440329218107, + "loss": 0.6643, + "step": 3170 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015102880658436214, + "loss": 0.6757, + "step": 3175 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001506172839506173, + "loss": 0.6681, + "step": 3180 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015020576131687243, + "loss": 0.6935, + "step": 3185 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001497942386831276, + "loss": 0.6894, + "step": 3190 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014938271604938272, + "loss": 0.64, + "step": 3195 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014897119341563788, + "loss": 0.6481, + "step": 3200 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014855967078189301, + "loss": 0.6644, + "step": 3205 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014814814814814815, + "loss": 0.6358, + "step": 3210 + }, + { + "epoch": 1.28, + "learning_rate": 0.0001477366255144033, + "loss": 0.6678, + "step": 3215 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014732510288065844, + "loss": 0.6755, + "step": 3220 + }, + { + "epoch": 1.29, + "learning_rate": 0.0001469135802469136, + "loss": 0.6486, + "step": 3225 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014650205761316873, + "loss": 0.666, + "step": 3230 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014609053497942386, + "loss": 0.6689, + "step": 3235 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014567901234567902, + "loss": 0.6737, + "step": 3240 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014526748971193415, + "loss": 0.6659, + "step": 3245 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001448559670781893, + "loss": 0.6744, + "step": 3250 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014444444444444444, + "loss": 0.648, + "step": 3255 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001440329218106996, + "loss": 0.6455, + "step": 3260 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014362139917695473, + "loss": 0.659, + "step": 3265 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014320987654320989, + "loss": 0.6519, + "step": 3270 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014279835390946504, + "loss": 0.6972, + "step": 3275 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014238683127572018, + "loss": 0.6592, + "step": 3280 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014197530864197534, + "loss": 0.6757, + "step": 3285 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014156378600823047, + "loss": 0.6684, + "step": 3290 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001411522633744856, + "loss": 0.6754, + "step": 3295 + }, + { + "epoch": 1.32, + "learning_rate": 0.00014074074074074076, + "loss": 0.6738, + "step": 3300 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001403292181069959, + "loss": 0.683, + "step": 3305 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013991769547325105, + "loss": 0.6434, + "step": 3310 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013950617283950618, + "loss": 0.6416, + "step": 3315 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013909465020576134, + "loss": 0.6687, + "step": 3320 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013868312757201647, + "loss": 0.6663, + "step": 3325 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001382716049382716, + "loss": 0.7113, + "step": 3330 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013786008230452676, + "loss": 0.6625, + "step": 3335 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001374485596707819, + "loss": 0.6593, + "step": 3340 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013703703703703705, + "loss": 0.6707, + "step": 3345 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013662551440329218, + "loss": 0.6567, + "step": 3350 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001362139917695473, + "loss": 0.6622, + "step": 3355 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013580246913580247, + "loss": 0.6849, + "step": 3360 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001353909465020576, + "loss": 0.657, + "step": 3365 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013497942386831276, + "loss": 0.6452, + "step": 3370 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013456790123456792, + "loss": 0.6486, + "step": 3375 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013415637860082305, + "loss": 0.6737, + "step": 3380 + }, + { + "epoch": 1.35, + "learning_rate": 0.0001337448559670782, + "loss": 0.6793, + "step": 3385 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013333333333333334, + "loss": 0.6869, + "step": 3390 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001329218106995885, + "loss": 0.6594, + "step": 3395 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013251028806584363, + "loss": 0.6793, + "step": 3400 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001320987654320988, + "loss": 0.6879, + "step": 3405 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013168724279835392, + "loss": 0.695, + "step": 3410 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013127572016460905, + "loss": 0.6648, + "step": 3415 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001308641975308642, + "loss": 0.6162, + "step": 3420 + }, + { + "epoch": 1.37, + "learning_rate": 0.00013045267489711934, + "loss": 0.642, + "step": 3425 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001300411522633745, + "loss": 0.6618, + "step": 3430 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012962962962962963, + "loss": 0.6535, + "step": 3435 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012921810699588476, + "loss": 0.6664, + "step": 3440 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012880658436213992, + "loss": 0.6427, + "step": 3445 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012839506172839505, + "loss": 0.6584, + "step": 3450 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001279835390946502, + "loss": 0.657, + "step": 3455 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012757201646090534, + "loss": 0.6494, + "step": 3460 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001271604938271605, + "loss": 0.6553, + "step": 3465 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012674897119341563, + "loss": 0.6755, + "step": 3470 + }, + { + "epoch": 1.39, + "learning_rate": 0.0001263374485596708, + "loss": 0.6599, + "step": 3475 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012592592592592592, + "loss": 0.6564, + "step": 3480 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012551440329218108, + "loss": 0.6526, + "step": 3485 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012510288065843624, + "loss": 0.6439, + "step": 3490 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012469135802469137, + "loss": 0.6459, + "step": 3495 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001242798353909465, + "loss": 0.6573, + "step": 3500 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012386831275720166, + "loss": 0.6773, + "step": 3505 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001234567901234568, + "loss": 0.68, + "step": 3510 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012304526748971195, + "loss": 0.6615, + "step": 3515 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012263374485596708, + "loss": 0.6886, + "step": 3520 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012222222222222224, + "loss": 0.667, + "step": 3525 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012181069958847737, + "loss": 0.677, + "step": 3530 + }, + { + "epoch": 1.41, + "learning_rate": 0.0001213991769547325, + "loss": 0.6709, + "step": 3535 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012098765432098766, + "loss": 0.6258, + "step": 3540 + }, + { + "epoch": 1.42, + "learning_rate": 0.0001205761316872428, + "loss": 0.6795, + "step": 3545 + }, + { + "epoch": 1.42, + "learning_rate": 0.00012016460905349795, + "loss": 0.6673, + "step": 3550 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011975308641975308, + "loss": 0.6708, + "step": 3555 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011934156378600823, + "loss": 0.6466, + "step": 3560 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011893004115226339, + "loss": 0.6339, + "step": 3565 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011851851851851852, + "loss": 0.6838, + "step": 3570 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011810699588477368, + "loss": 0.6179, + "step": 3575 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011769547325102881, + "loss": 0.6357, + "step": 3580 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011728395061728397, + "loss": 0.6807, + "step": 3585 + }, + { + "epoch": 1.43, + "learning_rate": 0.0001168724279835391, + "loss": 0.6365, + "step": 3590 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011646090534979423, + "loss": 0.6518, + "step": 3595 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011604938271604939, + "loss": 0.6467, + "step": 3600 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011563786008230452, + "loss": 0.6537, + "step": 3605 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011522633744855968, + "loss": 0.6324, + "step": 3610 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011481481481481482, + "loss": 0.6826, + "step": 3615 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011440329218106996, + "loss": 0.6643, + "step": 3620 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011399176954732511, + "loss": 0.6464, + "step": 3625 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011358024691358025, + "loss": 0.6601, + "step": 3630 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001131687242798354, + "loss": 0.6596, + "step": 3635 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011275720164609054, + "loss": 0.72, + "step": 3640 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001123456790123457, + "loss": 0.7157, + "step": 3645 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011193415637860083, + "loss": 0.6641, + "step": 3650 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011152263374485596, + "loss": 0.6631, + "step": 3655 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011111111111111112, + "loss": 0.6454, + "step": 3660 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011069958847736626, + "loss": 0.6957, + "step": 3665 + }, + { + "epoch": 1.46, + "learning_rate": 0.0001102880658436214, + "loss": 0.6535, + "step": 3670 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010987654320987655, + "loss": 0.6675, + "step": 3675 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010946502057613168, + "loss": 0.6458, + "step": 3680 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010905349794238684, + "loss": 0.6507, + "step": 3685 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010864197530864197, + "loss": 0.6818, + "step": 3690 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010823045267489713, + "loss": 0.6752, + "step": 3695 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010781893004115226, + "loss": 0.6645, + "step": 3700 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010740740740740742, + "loss": 0.6414, + "step": 3705 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010699588477366255, + "loss": 0.675, + "step": 3710 + }, + { + "epoch": 1.48, + "learning_rate": 0.0001065843621399177, + "loss": 0.6597, + "step": 3715 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010617283950617284, + "loss": 0.6637, + "step": 3720 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010576131687242799, + "loss": 0.664, + "step": 3725 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010534979423868315, + "loss": 0.6638, + "step": 3730 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010493827160493828, + "loss": 0.6413, + "step": 3735 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010452674897119341, + "loss": 0.6242, + "step": 3740 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010411522633744857, + "loss": 0.6653, + "step": 3745 + }, + { + "epoch": 1.5, + "learning_rate": 0.0001037037037037037, + "loss": 0.6947, + "step": 3750 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010329218106995886, + "loss": 0.6801, + "step": 3755 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010288065843621399, + "loss": 0.671, + "step": 3760 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010246913580246915, + "loss": 0.6505, + "step": 3765 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010205761316872428, + "loss": 0.6738, + "step": 3770 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010164609053497942, + "loss": 0.6478, + "step": 3775 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010123456790123458, + "loss": 0.6652, + "step": 3780 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010082304526748971, + "loss": 0.6456, + "step": 3785 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010041152263374487, + "loss": 0.6509, + "step": 3790 + }, + { + "epoch": 1.51, + "learning_rate": 0.0001, + "loss": 0.6623, + "step": 3795 + }, + { + "epoch": 1.52, + "learning_rate": 9.958847736625515e-05, + "loss": 0.6727, + "step": 3800 + }, + { + "epoch": 1.52, + "learning_rate": 9.91769547325103e-05, + "loss": 0.676, + "step": 3805 + }, + { + "epoch": 1.52, + "learning_rate": 9.876543209876543e-05, + "loss": 0.6662, + "step": 3810 + }, + { + "epoch": 1.52, + "learning_rate": 9.835390946502057e-05, + "loss": 0.6767, + "step": 3815 + }, + { + "epoch": 1.52, + "learning_rate": 9.794238683127573e-05, + "loss": 0.6278, + "step": 3820 + }, + { + "epoch": 1.53, + "learning_rate": 9.753086419753087e-05, + "loss": 0.6769, + "step": 3825 + }, + { + "epoch": 1.53, + "learning_rate": 9.711934156378602e-05, + "loss": 0.667, + "step": 3830 + }, + { + "epoch": 1.53, + "learning_rate": 9.670781893004116e-05, + "loss": 0.6392, + "step": 3835 + }, + { + "epoch": 1.53, + "learning_rate": 9.62962962962963e-05, + "loss": 0.6479, + "step": 3840 + }, + { + "epoch": 1.53, + "learning_rate": 9.588477366255144e-05, + "loss": 0.6958, + "step": 3845 + }, + { + "epoch": 1.54, + "learning_rate": 9.547325102880659e-05, + "loss": 0.6636, + "step": 3850 + }, + { + "epoch": 1.54, + "learning_rate": 9.506172839506173e-05, + "loss": 0.6722, + "step": 3855 + }, + { + "epoch": 1.54, + "learning_rate": 9.465020576131688e-05, + "loss": 0.6688, + "step": 3860 + }, + { + "epoch": 1.54, + "learning_rate": 9.423868312757202e-05, + "loss": 0.6814, + "step": 3865 + }, + { + "epoch": 1.54, + "learning_rate": 9.382716049382717e-05, + "loss": 0.679, + "step": 3870 + }, + { + "epoch": 1.55, + "learning_rate": 9.341563786008231e-05, + "loss": 0.6536, + "step": 3875 + }, + { + "epoch": 1.55, + "learning_rate": 9.300411522633746e-05, + "loss": 0.6783, + "step": 3880 + }, + { + "epoch": 1.55, + "learning_rate": 9.25925925925926e-05, + "loss": 0.6424, + "step": 3885 + }, + { + "epoch": 1.55, + "learning_rate": 9.218106995884775e-05, + "loss": 0.6695, + "step": 3890 + }, + { + "epoch": 1.55, + "learning_rate": 9.176954732510289e-05, + "loss": 0.6941, + "step": 3895 + }, + { + "epoch": 1.56, + "learning_rate": 9.135802469135802e-05, + "loss": 0.6887, + "step": 3900 + }, + { + "epoch": 1.56, + "learning_rate": 9.094650205761317e-05, + "loss": 0.6789, + "step": 3905 + }, + { + "epoch": 1.56, + "learning_rate": 9.053497942386831e-05, + "loss": 0.6819, + "step": 3910 + }, + { + "epoch": 1.56, + "learning_rate": 9.012345679012346e-05, + "loss": 0.6571, + "step": 3915 + }, + { + "epoch": 1.56, + "learning_rate": 8.97119341563786e-05, + "loss": 0.6527, + "step": 3920 + }, + { + "epoch": 1.57, + "learning_rate": 8.930041152263375e-05, + "loss": 0.6656, + "step": 3925 + }, + { + "epoch": 1.57, + "learning_rate": 8.888888888888889e-05, + "loss": 0.6551, + "step": 3930 + }, + { + "epoch": 1.57, + "learning_rate": 8.847736625514404e-05, + "loss": 0.6502, + "step": 3935 + }, + { + "epoch": 1.57, + "learning_rate": 8.806584362139918e-05, + "loss": 0.6458, + "step": 3940 + }, + { + "epoch": 1.57, + "learning_rate": 8.765432098765433e-05, + "loss": 0.6617, + "step": 3945 + }, + { + "epoch": 1.58, + "learning_rate": 8.724279835390947e-05, + "loss": 0.6444, + "step": 3950 + }, + { + "epoch": 1.58, + "learning_rate": 8.683127572016462e-05, + "loss": 0.6629, + "step": 3955 + }, + { + "epoch": 1.58, + "learning_rate": 8.641975308641975e-05, + "loss": 0.6683, + "step": 3960 + }, + { + "epoch": 1.58, + "learning_rate": 8.60082304526749e-05, + "loss": 0.6483, + "step": 3965 + }, + { + "epoch": 1.58, + "learning_rate": 8.559670781893004e-05, + "loss": 0.6623, + "step": 3970 + }, + { + "epoch": 1.59, + "learning_rate": 8.518518518518518e-05, + "loss": 0.6491, + "step": 3975 + }, + { + "epoch": 1.59, + "learning_rate": 8.477366255144033e-05, + "loss": 0.6394, + "step": 3980 + }, + { + "epoch": 1.59, + "learning_rate": 8.436213991769549e-05, + "loss": 0.6494, + "step": 3985 + }, + { + "epoch": 1.59, + "learning_rate": 8.395061728395062e-05, + "loss": 0.6516, + "step": 3990 + }, + { + "epoch": 1.59, + "learning_rate": 8.353909465020576e-05, + "loss": 0.6664, + "step": 3995 + }, + { + "epoch": 1.6, + "learning_rate": 8.312757201646091e-05, + "loss": 0.6822, + "step": 4000 + }, + { + "epoch": 1.6, + "learning_rate": 8.271604938271605e-05, + "loss": 0.6335, + "step": 4005 + }, + { + "epoch": 1.6, + "learning_rate": 8.23045267489712e-05, + "loss": 0.6386, + "step": 4010 + }, + { + "epoch": 1.6, + "learning_rate": 8.189300411522634e-05, + "loss": 0.6495, + "step": 4015 + }, + { + "epoch": 1.6, + "learning_rate": 8.148148148148148e-05, + "loss": 0.6784, + "step": 4020 + }, + { + "epoch": 1.61, + "learning_rate": 8.106995884773662e-05, + "loss": 0.6522, + "step": 4025 + }, + { + "epoch": 1.61, + "learning_rate": 8.065843621399177e-05, + "loss": 0.6292, + "step": 4030 + }, + { + "epoch": 1.61, + "learning_rate": 8.024691358024692e-05, + "loss": 0.6513, + "step": 4035 + }, + { + "epoch": 1.61, + "learning_rate": 7.983539094650207e-05, + "loss": 0.622, + "step": 4040 + }, + { + "epoch": 1.61, + "learning_rate": 7.942386831275721e-05, + "loss": 0.6619, + "step": 4045 + }, + { + "epoch": 1.62, + "learning_rate": 7.901234567901235e-05, + "loss": 0.651, + "step": 4050 + }, + { + "epoch": 1.62, + "learning_rate": 7.860082304526749e-05, + "loss": 0.6538, + "step": 4055 + }, + { + "epoch": 1.62, + "learning_rate": 7.818930041152264e-05, + "loss": 0.6572, + "step": 4060 + }, + { + "epoch": 1.62, + "learning_rate": 7.777777777777778e-05, + "loss": 0.6935, + "step": 4065 + }, + { + "epoch": 1.62, + "learning_rate": 7.736625514403293e-05, + "loss": 0.6598, + "step": 4070 + }, + { + "epoch": 1.63, + "learning_rate": 7.695473251028807e-05, + "loss": 0.6533, + "step": 4075 + }, + { + "epoch": 1.63, + "learning_rate": 7.65432098765432e-05, + "loss": 0.665, + "step": 4080 + }, + { + "epoch": 1.63, + "learning_rate": 7.613168724279836e-05, + "loss": 0.651, + "step": 4085 + }, + { + "epoch": 1.63, + "learning_rate": 7.57201646090535e-05, + "loss": 0.6914, + "step": 4090 + }, + { + "epoch": 1.63, + "learning_rate": 7.530864197530865e-05, + "loss": 0.6431, + "step": 4095 + }, + { + "epoch": 1.64, + "learning_rate": 7.48971193415638e-05, + "loss": 0.6753, + "step": 4100 + }, + { + "epoch": 1.64, + "learning_rate": 7.448559670781894e-05, + "loss": 0.6814, + "step": 4105 + }, + { + "epoch": 1.64, + "learning_rate": 7.407407407407407e-05, + "loss": 0.6386, + "step": 4110 + }, + { + "epoch": 1.64, + "learning_rate": 7.366255144032922e-05, + "loss": 0.6307, + "step": 4115 + }, + { + "epoch": 1.64, + "learning_rate": 7.325102880658436e-05, + "loss": 0.6401, + "step": 4120 + }, + { + "epoch": 1.65, + "learning_rate": 7.283950617283951e-05, + "loss": 0.6496, + "step": 4125 + }, + { + "epoch": 1.65, + "learning_rate": 7.242798353909465e-05, + "loss": 0.6593, + "step": 4130 + }, + { + "epoch": 1.65, + "learning_rate": 7.20164609053498e-05, + "loss": 0.6472, + "step": 4135 + }, + { + "epoch": 1.65, + "learning_rate": 7.160493827160494e-05, + "loss": 0.6746, + "step": 4140 + }, + { + "epoch": 1.65, + "learning_rate": 7.119341563786009e-05, + "loss": 0.6498, + "step": 4145 + }, + { + "epoch": 1.66, + "learning_rate": 7.078189300411523e-05, + "loss": 0.6597, + "step": 4150 + }, + { + "epoch": 1.66, + "learning_rate": 7.037037037037038e-05, + "loss": 0.671, + "step": 4155 + }, + { + "epoch": 1.66, + "learning_rate": 6.995884773662552e-05, + "loss": 0.6786, + "step": 4160 + }, + { + "epoch": 1.66, + "learning_rate": 6.954732510288067e-05, + "loss": 0.6846, + "step": 4165 + }, + { + "epoch": 1.66, + "learning_rate": 6.91358024691358e-05, + "loss": 0.6619, + "step": 4170 + }, + { + "epoch": 1.67, + "learning_rate": 6.872427983539094e-05, + "loss": 0.6755, + "step": 4175 + }, + { + "epoch": 1.67, + "learning_rate": 6.831275720164609e-05, + "loss": 0.6406, + "step": 4180 + }, + { + "epoch": 1.67, + "learning_rate": 6.790123456790123e-05, + "loss": 0.671, + "step": 4185 + }, + { + "epoch": 1.67, + "learning_rate": 6.748971193415638e-05, + "loss": 0.6448, + "step": 4190 + }, + { + "epoch": 1.67, + "learning_rate": 6.707818930041152e-05, + "loss": 0.6594, + "step": 4195 + }, + { + "epoch": 1.68, + "learning_rate": 6.666666666666667e-05, + "loss": 0.6626, + "step": 4200 + }, + { + "epoch": 1.68, + "learning_rate": 6.625514403292181e-05, + "loss": 0.6577, + "step": 4205 + }, + { + "epoch": 1.68, + "learning_rate": 6.584362139917696e-05, + "loss": 0.6468, + "step": 4210 + }, + { + "epoch": 1.68, + "learning_rate": 6.54320987654321e-05, + "loss": 0.6836, + "step": 4215 + }, + { + "epoch": 1.68, + "learning_rate": 6.502057613168725e-05, + "loss": 0.6766, + "step": 4220 + }, + { + "epoch": 1.69, + "learning_rate": 6.460905349794238e-05, + "loss": 0.6639, + "step": 4225 + }, + { + "epoch": 1.69, + "learning_rate": 6.419753086419753e-05, + "loss": 0.6653, + "step": 4230 + }, + { + "epoch": 1.69, + "learning_rate": 6.378600823045267e-05, + "loss": 0.6501, + "step": 4235 + }, + { + "epoch": 1.69, + "learning_rate": 6.337448559670782e-05, + "loss": 0.6775, + "step": 4240 + }, + { + "epoch": 1.69, + "learning_rate": 6.296296296296296e-05, + "loss": 0.661, + "step": 4245 + }, + { + "epoch": 1.7, + "learning_rate": 6.255144032921812e-05, + "loss": 0.6417, + "step": 4250 + }, + { + "epoch": 1.7, + "learning_rate": 6.213991769547325e-05, + "loss": 0.6626, + "step": 4255 + }, + { + "epoch": 1.7, + "learning_rate": 6.17283950617284e-05, + "loss": 0.667, + "step": 4260 + }, + { + "epoch": 1.7, + "learning_rate": 6.131687242798354e-05, + "loss": 0.6683, + "step": 4265 + }, + { + "epoch": 1.7, + "learning_rate": 6.0905349794238687e-05, + "loss": 0.6523, + "step": 4270 + }, + { + "epoch": 1.71, + "learning_rate": 6.049382716049383e-05, + "loss": 0.6686, + "step": 4275 + }, + { + "epoch": 1.71, + "learning_rate": 6.0082304526748977e-05, + "loss": 0.6365, + "step": 4280 + }, + { + "epoch": 1.71, + "learning_rate": 5.9670781893004115e-05, + "loss": 0.6211, + "step": 4285 + }, + { + "epoch": 1.71, + "learning_rate": 5.925925925925926e-05, + "loss": 0.6414, + "step": 4290 + }, + { + "epoch": 1.71, + "learning_rate": 5.8847736625514405e-05, + "loss": 0.6488, + "step": 4295 + }, + { + "epoch": 1.72, + "learning_rate": 5.843621399176955e-05, + "loss": 0.6506, + "step": 4300 + }, + { + "epoch": 1.72, + "learning_rate": 5.8024691358024695e-05, + "loss": 0.6692, + "step": 4305 + }, + { + "epoch": 1.72, + "learning_rate": 5.761316872427984e-05, + "loss": 0.6617, + "step": 4310 + }, + { + "epoch": 1.72, + "learning_rate": 5.720164609053498e-05, + "loss": 0.6464, + "step": 4315 + }, + { + "epoch": 1.72, + "learning_rate": 5.679012345679012e-05, + "loss": 0.6432, + "step": 4320 + }, + { + "epoch": 1.73, + "learning_rate": 5.637860082304527e-05, + "loss": 0.6642, + "step": 4325 + }, + { + "epoch": 1.73, + "learning_rate": 5.596707818930041e-05, + "loss": 0.6487, + "step": 4330 + }, + { + "epoch": 1.73, + "learning_rate": 5.555555555555556e-05, + "loss": 0.6384, + "step": 4335 + }, + { + "epoch": 1.73, + "learning_rate": 5.51440329218107e-05, + "loss": 0.6167, + "step": 4340 + }, + { + "epoch": 1.73, + "learning_rate": 5.473251028806584e-05, + "loss": 0.6576, + "step": 4345 + }, + { + "epoch": 1.74, + "learning_rate": 5.4320987654320986e-05, + "loss": 0.6482, + "step": 4350 + }, + { + "epoch": 1.74, + "learning_rate": 5.390946502057613e-05, + "loss": 0.6526, + "step": 4355 + }, + { + "epoch": 1.74, + "learning_rate": 5.3497942386831277e-05, + "loss": 0.6427, + "step": 4360 + }, + { + "epoch": 1.74, + "learning_rate": 5.308641975308642e-05, + "loss": 0.6425, + "step": 4365 + }, + { + "epoch": 1.74, + "learning_rate": 5.267489711934157e-05, + "loss": 0.713, + "step": 4370 + }, + { + "epoch": 1.75, + "learning_rate": 5.2263374485596705e-05, + "loss": 0.6414, + "step": 4375 + }, + { + "epoch": 1.75, + "learning_rate": 5.185185185185185e-05, + "loss": 0.6578, + "step": 4380 + }, + { + "epoch": 1.75, + "learning_rate": 5.1440329218106995e-05, + "loss": 0.6461, + "step": 4385 + }, + { + "epoch": 1.75, + "learning_rate": 5.102880658436214e-05, + "loss": 0.651, + "step": 4390 + }, + { + "epoch": 1.75, + "learning_rate": 5.061728395061729e-05, + "loss": 0.6523, + "step": 4395 + }, + { + "epoch": 1.76, + "learning_rate": 5.020576131687244e-05, + "loss": 0.6625, + "step": 4400 + }, + { + "epoch": 1.76, + "learning_rate": 4.9794238683127575e-05, + "loss": 0.6763, + "step": 4405 + }, + { + "epoch": 1.76, + "learning_rate": 4.938271604938271e-05, + "loss": 0.6759, + "step": 4410 + }, + { + "epoch": 1.76, + "learning_rate": 4.8971193415637865e-05, + "loss": 0.6742, + "step": 4415 + }, + { + "epoch": 1.76, + "learning_rate": 4.855967078189301e-05, + "loss": 0.6617, + "step": 4420 + }, + { + "epoch": 1.77, + "learning_rate": 4.814814814814815e-05, + "loss": 0.6604, + "step": 4425 + }, + { + "epoch": 1.77, + "learning_rate": 4.773662551440329e-05, + "loss": 0.6739, + "step": 4430 + }, + { + "epoch": 1.77, + "learning_rate": 4.732510288065844e-05, + "loss": 0.641, + "step": 4435 + }, + { + "epoch": 1.77, + "learning_rate": 4.691358024691358e-05, + "loss": 0.6322, + "step": 4440 + }, + { + "epoch": 1.77, + "learning_rate": 4.650205761316873e-05, + "loss": 0.6392, + "step": 4445 + }, + { + "epoch": 1.78, + "learning_rate": 4.609053497942387e-05, + "loss": 0.6795, + "step": 4450 + }, + { + "epoch": 1.78, + "learning_rate": 4.567901234567901e-05, + "loss": 0.6712, + "step": 4455 + }, + { + "epoch": 1.78, + "learning_rate": 4.5267489711934157e-05, + "loss": 0.6353, + "step": 4460 + }, + { + "epoch": 1.78, + "learning_rate": 4.48559670781893e-05, + "loss": 0.6587, + "step": 4465 + }, + { + "epoch": 1.78, + "learning_rate": 4.4444444444444447e-05, + "loss": 0.6748, + "step": 4470 + }, + { + "epoch": 1.79, + "learning_rate": 4.403292181069959e-05, + "loss": 0.6755, + "step": 4475 + }, + { + "epoch": 1.79, + "learning_rate": 4.3621399176954737e-05, + "loss": 0.6513, + "step": 4480 + }, + { + "epoch": 1.79, + "learning_rate": 4.3209876543209875e-05, + "loss": 0.6728, + "step": 4485 + }, + { + "epoch": 1.79, + "learning_rate": 4.279835390946502e-05, + "loss": 0.6536, + "step": 4490 + }, + { + "epoch": 1.79, + "learning_rate": 4.2386831275720165e-05, + "loss": 0.6652, + "step": 4495 + }, + { + "epoch": 1.8, + "learning_rate": 4.197530864197531e-05, + "loss": 0.6715, + "step": 4500 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 1.8116033382918914e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-4500/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag) diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/README.md b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2aa897f8fa13b49ce76b1fa188781e5f726e7d13 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/README.md @@ -0,0 +1,202 @@ +--- +base_model: meta-llama/Llama-2-7b-hf +library_name: peft +--- + +# Model Card for Model ID + + + + + +## Model Details + +### Model Description + + + + + +- **Developed by:** [More Information Needed] +- **Funded by [optional]:** [More Information Needed] +- **Shared by [optional]:** [More Information Needed] +- **Model type:** [More Information Needed] +- **Language(s) (NLP):** [More Information Needed] +- **License:** [More Information Needed] +- **Finetuned from model [optional]:** [More Information Needed] + +### Model Sources [optional] + + + +- **Repository:** [More Information Needed] +- **Paper [optional]:** [More Information Needed] +- **Demo [optional]:** [More Information Needed] + +## Uses + + + +### Direct Use + + + +[More Information Needed] + +### Downstream Use [optional] + + + +[More Information Needed] + +### Out-of-Scope Use + + + +[More Information Needed] + +## Bias, Risks, and Limitations + + + +[More Information Needed] + +### Recommendations + + + +Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations. + +## How to Get Started with the Model + +Use the code below to get started with the model. + +[More Information Needed] + +## Training Details + +### Training Data + + + +[More Information Needed] + +### Training Procedure + + + +#### Preprocessing [optional] + +[More Information Needed] + + +#### Training Hyperparameters + +- **Training regime:** [More Information Needed] + +#### Speeds, Sizes, Times [optional] + + + +[More Information Needed] + +## Evaluation + + + +### Testing Data, Factors & Metrics + +#### Testing Data + + + +[More Information Needed] + +#### Factors + + + +[More Information Needed] + +#### Metrics + + + +[More Information Needed] + +### Results + +[More Information Needed] + +#### Summary + + + +## Model Examination [optional] + + + +[More Information Needed] + +## Environmental Impact + + + +Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700). + +- **Hardware Type:** [More Information Needed] +- **Hours used:** [More Information Needed] +- **Cloud Provider:** [More Information Needed] +- **Compute Region:** [More Information Needed] +- **Carbon Emitted:** [More Information Needed] + +## Technical Specifications [optional] + +### Model Architecture and Objective + +[More Information Needed] + +### Compute Infrastructure + +[More Information Needed] + +#### Hardware + +[More Information Needed] + +#### Software + +[More Information Needed] + +## Citation [optional] + + + +**BibTeX:** + +[More Information Needed] + +**APA:** + +[More Information Needed] + +## Glossary [optional] + + + +[More Information Needed] + +## More Information [optional] + +[More Information Needed] + +## Model Card Authors [optional] + +[More Information Needed] + +## Model Card Contact + +[More Information Needed] +### Framework versions + +- PEFT 0.9.0 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_config.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..9c81a592f0ff08374a4f61f6003029070a8429ae --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_config.json @@ -0,0 +1,35 @@ +{ + "alpha_pattern": {}, + "auto_mapping": null, + "base_model_name_or_path": "meta-llama/Llama-2-7b-hf", + "bias": "none", + "fan_in_fan_out": false, + "inference_mode": true, + "init_lora_weights": true, + "layers_pattern": null, + "layers_to_transform": null, + "loftq_config": {}, + "lora_alpha": 16, + "lora_dropout": 0.05, + "megatron_config": null, + "megatron_core": "megatron.core", + "modules_to_save": null, + "mora_type": 1, + "peft_type": "LORA", + "r": 8, + "rank_pattern": {}, + "revision": null, + "target_modules": [ + "q_proj", + "k_proj", + "v_proj", + "o_proj", + "gate_proj", + "down_proj", + "up_proj" + ], + "task_type": "CAUSAL_LM", + "use_dora": false, + "use_mora": false, + "use_rslora": false +} \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_model.safetensors b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..0bff03721c370581aee4a814f2c1c923f114137a --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93aecab0c925b7a6e8258f70ed3a42f1ded6fe8105f3089ae0e12c2c90ea8d66 +size 564342240 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..3fa58d966e922fdb8be02350526101f999dc482c --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd7759054b9e1e0db5bf9c715f98f03aa5510344586ffde464584706c4bc3c76 +size 239914224 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/mp_rank_00_model_states.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..7692d57d1e1291919804627959eb552d19a96177 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/global_step5000/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:901b8f659aaec8b1456be9879061f2a2ce4ad05da9f7836ec57ecf94440a400f +size 40303404 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/latest b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/latest new file mode 100644 index 0000000000000000000000000000000000000000..f805186fa43374540c3fa51dfd3cca9ac06e56a5 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/latest @@ -0,0 +1 @@ +global_step5000 \ No newline at end of file diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/rng_state.pth b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/rng_state.pth new file mode 100644 index 0000000000000000000000000000000000000000..3c6de7275177babc64c0b8fa5415c4f432f1fcca --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/rng_state.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0ceba3e4ac4338be0a98a101dd5a5ef23235014c3c81e4406a9e40c7aeb8eb1 +size 14244 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/scheduler.pt b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/scheduler.pt new file mode 100644 index 0000000000000000000000000000000000000000..58013943b0573258b9a78b895c969b632731d6b0 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/scheduler.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09f3e0c796e5bf366538f45448005c2ee1408939e532a21fd4f4135857c049e6 +size 1064 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/trainer_state.json b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..55eae9786ee5a7a07da26d8556c1331628460300 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/trainer_state.json @@ -0,0 +1,6021 @@ +{ + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 1.9958212492593632, + "eval_steps": 500, + "global_step": 5000, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.0, + "learning_rate": 1.3333333333333333e-05, + "loss": 1.3798, + "step": 5 + }, + { + "epoch": 0.0, + "learning_rate": 2.6666666666666667e-05, + "loss": 1.3917, + "step": 10 + }, + { + "epoch": 0.01, + "learning_rate": 4e-05, + "loss": 1.2862, + "step": 15 + }, + { + "epoch": 0.01, + "learning_rate": 5.333333333333333e-05, + "loss": 1.2046, + "step": 20 + }, + { + "epoch": 0.01, + "learning_rate": 6.666666666666667e-05, + "loss": 1.0634, + "step": 25 + }, + { + "epoch": 0.01, + "learning_rate": 8e-05, + "loss": 1.0273, + "step": 30 + }, + { + "epoch": 0.01, + "learning_rate": 9.333333333333334e-05, + "loss": 1.0472, + "step": 35 + }, + { + "epoch": 0.02, + "learning_rate": 0.00010666666666666667, + "loss": 1.0301, + "step": 40 + }, + { + "epoch": 0.02, + "learning_rate": 0.00012, + "loss": 0.9335, + "step": 45 + }, + { + "epoch": 0.02, + "learning_rate": 0.00013333333333333334, + "loss": 0.921, + "step": 50 + }, + { + "epoch": 0.02, + "learning_rate": 0.00014666666666666666, + "loss": 0.9506, + "step": 55 + }, + { + "epoch": 0.02, + "learning_rate": 0.00016, + "loss": 0.8876, + "step": 60 + }, + { + "epoch": 0.03, + "learning_rate": 0.00017333333333333334, + "loss": 0.9335, + "step": 65 + }, + { + "epoch": 0.03, + "learning_rate": 0.0001866666666666667, + "loss": 0.8554, + "step": 70 + }, + { + "epoch": 0.03, + "learning_rate": 0.0002, + "loss": 0.8537, + "step": 75 + }, + { + "epoch": 0.03, + "learning_rate": 0.00021333333333333333, + "loss": 0.9033, + "step": 80 + }, + { + "epoch": 0.03, + "learning_rate": 0.00022666666666666668, + "loss": 0.8203, + "step": 85 + }, + { + "epoch": 0.04, + "learning_rate": 0.00024, + "loss": 0.8611, + "step": 90 + }, + { + "epoch": 0.04, + "learning_rate": 0.00025333333333333333, + "loss": 0.8303, + "step": 95 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002666666666666667, + "loss": 0.8528, + "step": 100 + }, + { + "epoch": 0.04, + "learning_rate": 0.00028, + "loss": 0.8537, + "step": 105 + }, + { + "epoch": 0.04, + "learning_rate": 0.0002933333333333333, + "loss": 0.8286, + "step": 110 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003066666666666667, + "loss": 0.8449, + "step": 115 + }, + { + "epoch": 0.05, + "learning_rate": 0.00032, + "loss": 0.8377, + "step": 120 + }, + { + "epoch": 0.05, + "learning_rate": 0.0003333333333333334, + "loss": 0.8419, + "step": 125 + }, + { + "epoch": 0.05, + "learning_rate": 0.00034666666666666667, + "loss": 0.8265, + "step": 130 + }, + { + "epoch": 0.05, + "learning_rate": 0.00036, + "loss": 0.8037, + "step": 135 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003733333333333334, + "loss": 0.7924, + "step": 140 + }, + { + "epoch": 0.06, + "learning_rate": 0.00038666666666666667, + "loss": 0.8245, + "step": 145 + }, + { + "epoch": 0.06, + "learning_rate": 0.0004, + "loss": 0.8388, + "step": 150 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003995884773662552, + "loss": 0.8066, + "step": 155 + }, + { + "epoch": 0.06, + "learning_rate": 0.0003991769547325103, + "loss": 0.8107, + "step": 160 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039876543209876544, + "loss": 0.8005, + "step": 165 + }, + { + "epoch": 0.07, + "learning_rate": 0.0003983539094650206, + "loss": 0.7727, + "step": 170 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039794238683127576, + "loss": 0.8276, + "step": 175 + }, + { + "epoch": 0.07, + "learning_rate": 0.00039753086419753086, + "loss": 0.8464, + "step": 180 + }, + { + "epoch": 0.07, + "learning_rate": 0.000397119341563786, + "loss": 0.8348, + "step": 185 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003967078189300412, + "loss": 0.8228, + "step": 190 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003962962962962963, + "loss": 0.8254, + "step": 195 + }, + { + "epoch": 0.08, + "learning_rate": 0.00039588477366255144, + "loss": 0.817, + "step": 200 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003954732510288066, + "loss": 0.8365, + "step": 205 + }, + { + "epoch": 0.08, + "learning_rate": 0.0003950617283950617, + "loss": 0.793, + "step": 210 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039465020576131686, + "loss": 0.8014, + "step": 215 + }, + { + "epoch": 0.09, + "learning_rate": 0.000394238683127572, + "loss": 0.8049, + "step": 220 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003938271604938272, + "loss": 0.7841, + "step": 225 + }, + { + "epoch": 0.09, + "learning_rate": 0.0003934156378600823, + "loss": 0.7977, + "step": 230 + }, + { + "epoch": 0.09, + "learning_rate": 0.00039300411522633744, + "loss": 0.8299, + "step": 235 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003925925925925926, + "loss": 0.7729, + "step": 240 + }, + { + "epoch": 0.1, + "learning_rate": 0.00039218106995884776, + "loss": 0.8082, + "step": 245 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003917695473251029, + "loss": 0.8173, + "step": 250 + }, + { + "epoch": 0.1, + "learning_rate": 0.000391358024691358, + "loss": 0.8379, + "step": 255 + }, + { + "epoch": 0.1, + "learning_rate": 0.0003909465020576132, + "loss": 0.7962, + "step": 260 + }, + { + "epoch": 0.11, + "learning_rate": 0.00039053497942386834, + "loss": 0.8067, + "step": 265 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003901234567901235, + "loss": 0.7915, + "step": 270 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038971193415637866, + "loss": 0.7905, + "step": 275 + }, + { + "epoch": 0.11, + "learning_rate": 0.00038930041152263376, + "loss": 0.7862, + "step": 280 + }, + { + "epoch": 0.11, + "learning_rate": 0.0003888888888888889, + "loss": 0.7709, + "step": 285 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003884773662551441, + "loss": 0.7773, + "step": 290 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038806584362139924, + "loss": 0.8068, + "step": 295 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038765432098765434, + "loss": 0.7962, + "step": 300 + }, + { + "epoch": 0.12, + "learning_rate": 0.0003872427983539095, + "loss": 0.7894, + "step": 305 + }, + { + "epoch": 0.12, + "learning_rate": 0.00038683127572016466, + "loss": 0.7705, + "step": 310 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038641975308641976, + "loss": 0.7882, + "step": 315 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003860082304526749, + "loss": 0.7865, + "step": 320 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003855967078189301, + "loss": 0.7939, + "step": 325 + }, + { + "epoch": 0.13, + "learning_rate": 0.0003851851851851852, + "loss": 0.7724, + "step": 330 + }, + { + "epoch": 0.13, + "learning_rate": 0.00038477366255144034, + "loss": 0.7771, + "step": 335 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003843621399176955, + "loss": 0.7941, + "step": 340 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038395061728395066, + "loss": 0.7822, + "step": 345 + }, + { + "epoch": 0.14, + "learning_rate": 0.00038353909465020577, + "loss": 0.8143, + "step": 350 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003831275720164609, + "loss": 0.795, + "step": 355 + }, + { + "epoch": 0.14, + "learning_rate": 0.0003827160493827161, + "loss": 0.8049, + "step": 360 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003823045267489712, + "loss": 0.8309, + "step": 365 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038189300411522635, + "loss": 0.8314, + "step": 370 + }, + { + "epoch": 0.15, + "learning_rate": 0.0003814814814814815, + "loss": 0.801, + "step": 375 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038106995884773666, + "loss": 0.8084, + "step": 380 + }, + { + "epoch": 0.15, + "learning_rate": 0.00038065843621399177, + "loss": 0.8129, + "step": 385 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003802469135802469, + "loss": 0.7859, + "step": 390 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003798353909465021, + "loss": 0.7874, + "step": 395 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003794238683127572, + "loss": 0.7548, + "step": 400 + }, + { + "epoch": 0.16, + "learning_rate": 0.00037901234567901235, + "loss": 0.8092, + "step": 405 + }, + { + "epoch": 0.16, + "learning_rate": 0.0003786008230452675, + "loss": 0.8041, + "step": 410 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037818930041152266, + "loss": 0.777, + "step": 415 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037777777777777777, + "loss": 0.7699, + "step": 420 + }, + { + "epoch": 0.17, + "learning_rate": 0.00037736625514403293, + "loss": 0.781, + "step": 425 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003769547325102881, + "loss": 0.7504, + "step": 430 + }, + { + "epoch": 0.17, + "learning_rate": 0.0003765432098765432, + "loss": 0.7974, + "step": 435 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037613168724279835, + "loss": 0.7663, + "step": 440 + }, + { + "epoch": 0.18, + "learning_rate": 0.0003757201646090535, + "loss": 0.8013, + "step": 445 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037530864197530867, + "loss": 0.7453, + "step": 450 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037489711934156377, + "loss": 0.7425, + "step": 455 + }, + { + "epoch": 0.18, + "learning_rate": 0.00037448559670781893, + "loss": 0.7582, + "step": 460 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003740740740740741, + "loss": 0.7801, + "step": 465 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037366255144032925, + "loss": 0.7809, + "step": 470 + }, + { + "epoch": 0.19, + "learning_rate": 0.0003732510288065844, + "loss": 0.7749, + "step": 475 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037283950617283956, + "loss": 0.7807, + "step": 480 + }, + { + "epoch": 0.19, + "learning_rate": 0.00037242798353909467, + "loss": 0.7715, + "step": 485 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003720164609053498, + "loss": 0.7356, + "step": 490 + }, + { + "epoch": 0.2, + "learning_rate": 0.000371604938271605, + "loss": 0.7674, + "step": 495 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037119341563786014, + "loss": 0.7542, + "step": 500 + }, + { + "epoch": 0.2, + "learning_rate": 0.00037078189300411525, + "loss": 0.7583, + "step": 505 + }, + { + "epoch": 0.2, + "learning_rate": 0.0003703703703703704, + "loss": 0.7767, + "step": 510 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036995884773662556, + "loss": 0.7853, + "step": 515 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036954732510288067, + "loss": 0.7733, + "step": 520 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036913580246913583, + "loss": 0.7758, + "step": 525 + }, + { + "epoch": 0.21, + "learning_rate": 0.000368724279835391, + "loss": 0.7698, + "step": 530 + }, + { + "epoch": 0.21, + "learning_rate": 0.00036831275720164614, + "loss": 0.7805, + "step": 535 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036790123456790125, + "loss": 0.7573, + "step": 540 + }, + { + "epoch": 0.22, + "learning_rate": 0.0003674897119341564, + "loss": 0.7709, + "step": 545 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036707818930041157, + "loss": 0.7994, + "step": 550 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036666666666666667, + "loss": 0.7363, + "step": 555 + }, + { + "epoch": 0.22, + "learning_rate": 0.00036625514403292183, + "loss": 0.7478, + "step": 560 + }, + { + "epoch": 0.23, + "learning_rate": 0.000365843621399177, + "loss": 0.8188, + "step": 565 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003654320987654321, + "loss": 0.7524, + "step": 570 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036502057613168725, + "loss": 0.7319, + "step": 575 + }, + { + "epoch": 0.23, + "learning_rate": 0.0003646090534979424, + "loss": 0.7915, + "step": 580 + }, + { + "epoch": 0.23, + "learning_rate": 0.00036419753086419757, + "loss": 0.7722, + "step": 585 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036378600823045267, + "loss": 0.7842, + "step": 590 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036337448559670783, + "loss": 0.7591, + "step": 595 + }, + { + "epoch": 0.24, + "learning_rate": 0.000362962962962963, + "loss": 0.7653, + "step": 600 + }, + { + "epoch": 0.24, + "learning_rate": 0.0003625514403292181, + "loss": 0.7838, + "step": 605 + }, + { + "epoch": 0.24, + "learning_rate": 0.00036213991769547325, + "loss": 0.7937, + "step": 610 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003617283950617284, + "loss": 0.77, + "step": 615 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036131687242798357, + "loss": 0.7899, + "step": 620 + }, + { + "epoch": 0.25, + "learning_rate": 0.0003609053497942387, + "loss": 0.7815, + "step": 625 + }, + { + "epoch": 0.25, + "learning_rate": 0.00036049382716049383, + "loss": 0.7648, + "step": 630 + }, + { + "epoch": 0.25, + "learning_rate": 0.000360082304526749, + "loss": 0.7716, + "step": 635 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003596707818930041, + "loss": 0.7708, + "step": 640 + }, + { + "epoch": 0.26, + "learning_rate": 0.00035925925925925925, + "loss": 0.7306, + "step": 645 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003588477366255144, + "loss": 0.8007, + "step": 650 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003584362139917695, + "loss": 0.7551, + "step": 655 + }, + { + "epoch": 0.26, + "learning_rate": 0.0003580246913580247, + "loss": 0.754, + "step": 660 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035761316872427983, + "loss": 0.7599, + "step": 665 + }, + { + "epoch": 0.27, + "learning_rate": 0.000357201646090535, + "loss": 0.7637, + "step": 670 + }, + { + "epoch": 0.27, + "learning_rate": 0.00035679012345679015, + "loss": 0.7766, + "step": 675 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003563786008230453, + "loss": 0.7727, + "step": 680 + }, + { + "epoch": 0.27, + "learning_rate": 0.0003559670781893004, + "loss": 0.7675, + "step": 685 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035555555555555557, + "loss": 0.7707, + "step": 690 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035514403292181073, + "loss": 0.7221, + "step": 695 + }, + { + "epoch": 0.28, + "learning_rate": 0.0003547325102880659, + "loss": 0.7335, + "step": 700 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035432098765432105, + "loss": 0.781, + "step": 705 + }, + { + "epoch": 0.28, + "learning_rate": 0.00035390946502057615, + "loss": 0.7845, + "step": 710 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003534979423868313, + "loss": 0.7467, + "step": 715 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035308641975308647, + "loss": 0.7735, + "step": 720 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003526748971193416, + "loss": 0.7368, + "step": 725 + }, + { + "epoch": 0.29, + "learning_rate": 0.00035226337448559673, + "loss": 0.7678, + "step": 730 + }, + { + "epoch": 0.29, + "learning_rate": 0.0003518518518518519, + "loss": 0.7756, + "step": 735 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035144032921810705, + "loss": 0.7635, + "step": 740 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035102880658436215, + "loss": 0.7757, + "step": 745 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003506172839506173, + "loss": 0.7442, + "step": 750 + }, + { + "epoch": 0.3, + "learning_rate": 0.00035020576131687247, + "loss": 0.7584, + "step": 755 + }, + { + "epoch": 0.3, + "learning_rate": 0.0003497942386831276, + "loss": 0.8333, + "step": 760 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034938271604938273, + "loss": 0.7459, + "step": 765 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003489711934156379, + "loss": 0.7499, + "step": 770 + }, + { + "epoch": 0.31, + "learning_rate": 0.000348559670781893, + "loss": 0.7571, + "step": 775 + }, + { + "epoch": 0.31, + "learning_rate": 0.00034814814814814816, + "loss": 0.7243, + "step": 780 + }, + { + "epoch": 0.31, + "learning_rate": 0.0003477366255144033, + "loss": 0.7443, + "step": 785 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003473251028806585, + "loss": 0.7759, + "step": 790 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003469135802469136, + "loss": 0.7452, + "step": 795 + }, + { + "epoch": 0.32, + "learning_rate": 0.00034650205761316874, + "loss": 0.7578, + "step": 800 + }, + { + "epoch": 0.32, + "learning_rate": 0.0003460905349794239, + "loss": 0.7634, + "step": 805 + }, + { + "epoch": 0.32, + "learning_rate": 0.000345679012345679, + "loss": 0.7925, + "step": 810 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034526748971193416, + "loss": 0.7966, + "step": 815 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003448559670781893, + "loss": 0.7601, + "step": 820 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003444444444444445, + "loss": 0.7617, + "step": 825 + }, + { + "epoch": 0.33, + "learning_rate": 0.0003440329218106996, + "loss": 0.7526, + "step": 830 + }, + { + "epoch": 0.33, + "learning_rate": 0.00034362139917695474, + "loss": 0.7297, + "step": 835 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003432098765432099, + "loss": 0.7549, + "step": 840 + }, + { + "epoch": 0.34, + "learning_rate": 0.000342798353909465, + "loss": 0.7517, + "step": 845 + }, + { + "epoch": 0.34, + "learning_rate": 0.00034238683127572016, + "loss": 0.7626, + "step": 850 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003419753086419753, + "loss": 0.7987, + "step": 855 + }, + { + "epoch": 0.34, + "learning_rate": 0.0003415637860082305, + "loss": 0.7573, + "step": 860 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003411522633744856, + "loss": 0.8367, + "step": 865 + }, + { + "epoch": 0.35, + "learning_rate": 0.00034074074074074074, + "loss": 0.7258, + "step": 870 + }, + { + "epoch": 0.35, + "learning_rate": 0.0003403292181069959, + "loss": 0.7632, + "step": 875 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033991769547325106, + "loss": 0.7379, + "step": 880 + }, + { + "epoch": 0.35, + "learning_rate": 0.00033950617283950616, + "loss": 0.7529, + "step": 885 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003390946502057613, + "loss": 0.7391, + "step": 890 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003386831275720165, + "loss": 0.8061, + "step": 895 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033827160493827164, + "loss": 0.7288, + "step": 900 + }, + { + "epoch": 0.36, + "learning_rate": 0.0003378600823045268, + "loss": 0.7493, + "step": 905 + }, + { + "epoch": 0.36, + "learning_rate": 0.00033744855967078195, + "loss": 0.7702, + "step": 910 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033703703703703706, + "loss": 0.7538, + "step": 915 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003366255144032922, + "loss": 0.728, + "step": 920 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003362139917695474, + "loss": 0.7776, + "step": 925 + }, + { + "epoch": 0.37, + "learning_rate": 0.0003358024691358025, + "loss": 0.7883, + "step": 930 + }, + { + "epoch": 0.37, + "learning_rate": 0.00033539094650205764, + "loss": 0.7471, + "step": 935 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003349794238683128, + "loss": 0.7464, + "step": 940 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033456790123456795, + "loss": 0.7885, + "step": 945 + }, + { + "epoch": 0.38, + "learning_rate": 0.00033415637860082306, + "loss": 0.7509, + "step": 950 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003337448559670782, + "loss": 0.7681, + "step": 955 + }, + { + "epoch": 0.38, + "learning_rate": 0.0003333333333333334, + "loss": 0.8246, + "step": 960 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003329218106995885, + "loss": 0.7604, + "step": 965 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033251028806584364, + "loss": 0.7755, + "step": 970 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003320987654320988, + "loss": 0.7641, + "step": 975 + }, + { + "epoch": 0.39, + "learning_rate": 0.0003316872427983539, + "loss": 0.7708, + "step": 980 + }, + { + "epoch": 0.39, + "learning_rate": 0.00033127572016460906, + "loss": 0.7936, + "step": 985 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003308641975308642, + "loss": 0.7641, + "step": 990 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003304526748971194, + "loss": 0.7479, + "step": 995 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003300411522633745, + "loss": 0.7547, + "step": 1000 + }, + { + "epoch": 0.4, + "learning_rate": 0.00032962962962962964, + "loss": 0.762, + "step": 1005 + }, + { + "epoch": 0.4, + "learning_rate": 0.0003292181069958848, + "loss": 0.7472, + "step": 1010 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003288065843621399, + "loss": 0.7542, + "step": 1015 + }, + { + "epoch": 0.41, + "learning_rate": 0.00032839506172839506, + "loss": 0.7669, + "step": 1020 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003279835390946502, + "loss": 0.7812, + "step": 1025 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003275720164609054, + "loss": 0.7273, + "step": 1030 + }, + { + "epoch": 0.41, + "learning_rate": 0.0003271604938271605, + "loss": 0.7822, + "step": 1035 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032674897119341564, + "loss": 0.7337, + "step": 1040 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003263374485596708, + "loss": 0.7566, + "step": 1045 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003259259259259259, + "loss": 0.7377, + "step": 1050 + }, + { + "epoch": 0.42, + "learning_rate": 0.00032551440329218106, + "loss": 0.7856, + "step": 1055 + }, + { + "epoch": 0.42, + "learning_rate": 0.0003251028806584362, + "loss": 0.7981, + "step": 1060 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003246913580246914, + "loss": 0.7505, + "step": 1065 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003242798353909465, + "loss": 0.7549, + "step": 1070 + }, + { + "epoch": 0.43, + "learning_rate": 0.00032386831275720164, + "loss": 0.7306, + "step": 1075 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003234567901234568, + "loss": 0.7343, + "step": 1080 + }, + { + "epoch": 0.43, + "learning_rate": 0.0003230452674897119, + "loss": 0.738, + "step": 1085 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032263374485596707, + "loss": 0.7655, + "step": 1090 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003222222222222222, + "loss": 0.7706, + "step": 1095 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003218106995884774, + "loss": 0.7512, + "step": 1100 + }, + { + "epoch": 0.44, + "learning_rate": 0.00032139917695473254, + "loss": 0.7549, + "step": 1105 + }, + { + "epoch": 0.44, + "learning_rate": 0.0003209876543209877, + "loss": 0.7839, + "step": 1110 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003205761316872428, + "loss": 0.7511, + "step": 1115 + }, + { + "epoch": 0.45, + "learning_rate": 0.00032016460905349796, + "loss": 0.769, + "step": 1120 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003197530864197531, + "loss": 0.7685, + "step": 1125 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003193415637860083, + "loss": 0.7489, + "step": 1130 + }, + { + "epoch": 0.45, + "learning_rate": 0.0003189300411522634, + "loss": 0.808, + "step": 1135 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031851851851851854, + "loss": 0.7654, + "step": 1140 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003181069958847737, + "loss": 0.7845, + "step": 1145 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031769547325102886, + "loss": 0.7886, + "step": 1150 + }, + { + "epoch": 0.46, + "learning_rate": 0.00031728395061728396, + "loss": 0.7318, + "step": 1155 + }, + { + "epoch": 0.46, + "learning_rate": 0.0003168724279835391, + "loss": 0.7231, + "step": 1160 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003164609053497943, + "loss": 0.7471, + "step": 1165 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003160493827160494, + "loss": 0.7424, + "step": 1170 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031563786008230454, + "loss": 0.7249, + "step": 1175 + }, + { + "epoch": 0.47, + "learning_rate": 0.0003152263374485597, + "loss": 0.7419, + "step": 1180 + }, + { + "epoch": 0.47, + "learning_rate": 0.00031481481481481486, + "loss": 0.7567, + "step": 1185 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031440329218106997, + "loss": 0.7707, + "step": 1190 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003139917695473251, + "loss": 0.7473, + "step": 1195 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003135802469135803, + "loss": 0.7222, + "step": 1200 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003131687242798354, + "loss": 0.7383, + "step": 1205 + }, + { + "epoch": 0.48, + "learning_rate": 0.00031275720164609055, + "loss": 0.7712, + "step": 1210 + }, + { + "epoch": 0.48, + "learning_rate": 0.0003123456790123457, + "loss": 0.7602, + "step": 1215 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003119341563786008, + "loss": 0.7741, + "step": 1220 + }, + { + "epoch": 0.49, + "learning_rate": 0.00031152263374485597, + "loss": 0.7428, + "step": 1225 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003111111111111111, + "loss": 0.7605, + "step": 1230 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003106995884773663, + "loss": 0.7255, + "step": 1235 + }, + { + "epoch": 0.49, + "learning_rate": 0.0003102880658436214, + "loss": 0.7468, + "step": 1240 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030987654320987655, + "loss": 0.7961, + "step": 1245 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003094650205761317, + "loss": 0.7208, + "step": 1250 + }, + { + "epoch": 0.5, + "learning_rate": 0.0003090534979423868, + "loss": 0.7331, + "step": 1255 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030864197530864197, + "loss": 0.7371, + "step": 1260 + }, + { + "epoch": 0.5, + "learning_rate": 0.00030823045267489713, + "loss": 0.7206, + "step": 1265 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003078189300411523, + "loss": 0.7617, + "step": 1270 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003074074074074074, + "loss": 0.7652, + "step": 1275 + }, + { + "epoch": 0.51, + "learning_rate": 0.00030699588477366255, + "loss": 0.7635, + "step": 1280 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003065843621399177, + "loss": 0.7445, + "step": 1285 + }, + { + "epoch": 0.51, + "learning_rate": 0.0003061728395061728, + "loss": 0.7717, + "step": 1290 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030576131687242797, + "loss": 0.7535, + "step": 1295 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030534979423868313, + "loss": 0.7677, + "step": 1300 + }, + { + "epoch": 0.52, + "learning_rate": 0.0003049382716049383, + "loss": 0.8131, + "step": 1305 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030452674897119345, + "loss": 0.7754, + "step": 1310 + }, + { + "epoch": 0.52, + "learning_rate": 0.00030411522633744855, + "loss": 0.76, + "step": 1315 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003037037037037037, + "loss": 0.7558, + "step": 1320 + }, + { + "epoch": 0.53, + "learning_rate": 0.00030329218106995887, + "loss": 0.7604, + "step": 1325 + }, + { + "epoch": 0.53, + "learning_rate": 0.000302880658436214, + "loss": 0.7716, + "step": 1330 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003024691358024692, + "loss": 0.7669, + "step": 1335 + }, + { + "epoch": 0.53, + "learning_rate": 0.0003020576131687243, + "loss": 0.7469, + "step": 1340 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030164609053497945, + "loss": 0.7511, + "step": 1345 + }, + { + "epoch": 0.54, + "learning_rate": 0.0003012345679012346, + "loss": 0.7483, + "step": 1350 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030082304526748976, + "loss": 0.7509, + "step": 1355 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030041152263374487, + "loss": 0.7249, + "step": 1360 + }, + { + "epoch": 0.54, + "learning_rate": 0.00030000000000000003, + "loss": 0.7289, + "step": 1365 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002995884773662552, + "loss": 0.7605, + "step": 1370 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002991769547325103, + "loss": 0.7185, + "step": 1375 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029876543209876545, + "loss": 0.6974, + "step": 1380 + }, + { + "epoch": 0.55, + "learning_rate": 0.0002983539094650206, + "loss": 0.7234, + "step": 1385 + }, + { + "epoch": 0.55, + "learning_rate": 0.00029794238683127577, + "loss": 0.7506, + "step": 1390 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029753086419753087, + "loss": 0.7524, + "step": 1395 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029711934156378603, + "loss": 0.7641, + "step": 1400 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002967078189300412, + "loss": 0.6967, + "step": 1405 + }, + { + "epoch": 0.56, + "learning_rate": 0.0002962962962962963, + "loss": 0.735, + "step": 1410 + }, + { + "epoch": 0.56, + "learning_rate": 0.00029588477366255145, + "loss": 0.7685, + "step": 1415 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002954732510288066, + "loss": 0.758, + "step": 1420 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002950617283950617, + "loss": 0.763, + "step": 1425 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029465020576131687, + "loss": 0.712, + "step": 1430 + }, + { + "epoch": 0.57, + "learning_rate": 0.00029423868312757203, + "loss": 0.7236, + "step": 1435 + }, + { + "epoch": 0.57, + "learning_rate": 0.0002938271604938272, + "loss": 0.7732, + "step": 1440 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002934156378600823, + "loss": 0.7689, + "step": 1445 + }, + { + "epoch": 0.58, + "learning_rate": 0.00029300411522633745, + "loss": 0.7352, + "step": 1450 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002925925925925926, + "loss": 0.7711, + "step": 1455 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002921810699588477, + "loss": 0.7549, + "step": 1460 + }, + { + "epoch": 0.58, + "learning_rate": 0.0002917695473251029, + "loss": 0.7804, + "step": 1465 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029135802469135803, + "loss": 0.7478, + "step": 1470 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002909465020576132, + "loss": 0.7801, + "step": 1475 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002905349794238683, + "loss": 0.7544, + "step": 1480 + }, + { + "epoch": 0.59, + "learning_rate": 0.00029012345679012345, + "loss": 0.7546, + "step": 1485 + }, + { + "epoch": 0.59, + "learning_rate": 0.0002897119341563786, + "loss": 0.7648, + "step": 1490 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002893004115226337, + "loss": 0.7468, + "step": 1495 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002888888888888889, + "loss": 0.7434, + "step": 1500 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028847736625514403, + "loss": 0.7348, + "step": 1505 + }, + { + "epoch": 0.6, + "learning_rate": 0.0002880658436213992, + "loss": 0.7515, + "step": 1510 + }, + { + "epoch": 0.6, + "learning_rate": 0.00028765432098765435, + "loss": 0.7345, + "step": 1515 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028724279835390946, + "loss": 0.7701, + "step": 1520 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002868312757201646, + "loss": 0.7472, + "step": 1525 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028641975308641977, + "loss": 0.7075, + "step": 1530 + }, + { + "epoch": 0.61, + "learning_rate": 0.00028600823045267493, + "loss": 0.7483, + "step": 1535 + }, + { + "epoch": 0.61, + "learning_rate": 0.0002855967078189301, + "loss": 0.712, + "step": 1540 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002851851851851852, + "loss": 0.7484, + "step": 1545 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028477366255144035, + "loss": 0.7471, + "step": 1550 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002843621399176955, + "loss": 0.7462, + "step": 1555 + }, + { + "epoch": 0.62, + "learning_rate": 0.00028395061728395067, + "loss": 0.7371, + "step": 1560 + }, + { + "epoch": 0.62, + "learning_rate": 0.0002835390946502058, + "loss": 0.7753, + "step": 1565 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028312757201646093, + "loss": 0.7374, + "step": 1570 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002827160493827161, + "loss": 0.7328, + "step": 1575 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002823045267489712, + "loss": 0.7159, + "step": 1580 + }, + { + "epoch": 0.63, + "learning_rate": 0.00028189300411522635, + "loss": 0.7594, + "step": 1585 + }, + { + "epoch": 0.63, + "learning_rate": 0.0002814814814814815, + "loss": 0.7215, + "step": 1590 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028106995884773667, + "loss": 0.7398, + "step": 1595 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002806584362139918, + "loss": 0.773, + "step": 1600 + }, + { + "epoch": 0.64, + "learning_rate": 0.00028024691358024693, + "loss": 0.7584, + "step": 1605 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002798353909465021, + "loss": 0.7117, + "step": 1610 + }, + { + "epoch": 0.64, + "learning_rate": 0.0002794238683127572, + "loss": 0.7471, + "step": 1615 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027901234567901236, + "loss": 0.7443, + "step": 1620 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002786008230452675, + "loss": 0.7292, + "step": 1625 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002781893004115227, + "loss": 0.7716, + "step": 1630 + }, + { + "epoch": 0.65, + "learning_rate": 0.0002777777777777778, + "loss": 0.763, + "step": 1635 + }, + { + "epoch": 0.65, + "learning_rate": 0.00027736625514403294, + "loss": 0.7408, + "step": 1640 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002769547325102881, + "loss": 0.7403, + "step": 1645 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002765432098765432, + "loss": 0.7508, + "step": 1650 + }, + { + "epoch": 0.66, + "learning_rate": 0.00027613168724279836, + "loss": 0.7687, + "step": 1655 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002757201646090535, + "loss": 0.7305, + "step": 1660 + }, + { + "epoch": 0.66, + "learning_rate": 0.0002753086419753086, + "loss": 0.7165, + "step": 1665 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002748971193415638, + "loss": 0.8, + "step": 1670 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027448559670781894, + "loss": 0.7357, + "step": 1675 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002740740740740741, + "loss": 0.7988, + "step": 1680 + }, + { + "epoch": 0.67, + "learning_rate": 0.0002736625514403292, + "loss": 0.7559, + "step": 1685 + }, + { + "epoch": 0.67, + "learning_rate": 0.00027325102880658436, + "loss": 0.712, + "step": 1690 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002728395061728395, + "loss": 0.7486, + "step": 1695 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002724279835390946, + "loss": 0.7388, + "step": 1700 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002720164609053498, + "loss": 0.7441, + "step": 1705 + }, + { + "epoch": 0.68, + "learning_rate": 0.00027160493827160494, + "loss": 0.7547, + "step": 1710 + }, + { + "epoch": 0.68, + "learning_rate": 0.0002711934156378601, + "loss": 0.7229, + "step": 1715 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002707818930041152, + "loss": 0.7383, + "step": 1720 + }, + { + "epoch": 0.69, + "learning_rate": 0.00027037037037037036, + "loss": 0.7606, + "step": 1725 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002699588477366255, + "loss": 0.7529, + "step": 1730 + }, + { + "epoch": 0.69, + "learning_rate": 0.0002695473251028807, + "loss": 0.752, + "step": 1735 + }, + { + "epoch": 0.69, + "learning_rate": 0.00026913580246913584, + "loss": 0.7342, + "step": 1740 + }, + { + "epoch": 0.7, + "learning_rate": 0.000268724279835391, + "loss": 0.7308, + "step": 1745 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002683127572016461, + "loss": 0.6915, + "step": 1750 + }, + { + "epoch": 0.7, + "learning_rate": 0.00026790123456790126, + "loss": 0.7344, + "step": 1755 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002674897119341564, + "loss": 0.7426, + "step": 1760 + }, + { + "epoch": 0.7, + "learning_rate": 0.0002670781893004116, + "loss": 0.7088, + "step": 1765 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002666666666666667, + "loss": 0.7241, + "step": 1770 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026625514403292184, + "loss": 0.7552, + "step": 1775 + }, + { + "epoch": 0.71, + "learning_rate": 0.000265843621399177, + "loss": 0.7477, + "step": 1780 + }, + { + "epoch": 0.71, + "learning_rate": 0.0002654320987654321, + "loss": 0.7115, + "step": 1785 + }, + { + "epoch": 0.71, + "learning_rate": 0.00026502057613168726, + "loss": 0.7538, + "step": 1790 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002646090534979424, + "loss": 0.7321, + "step": 1795 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002641975308641976, + "loss": 0.7212, + "step": 1800 + }, + { + "epoch": 0.72, + "learning_rate": 0.0002637860082304527, + "loss": 0.747, + "step": 1805 + }, + { + "epoch": 0.72, + "learning_rate": 0.00026337448559670784, + "loss": 0.7606, + "step": 1810 + }, + { + "epoch": 0.72, + "learning_rate": 0.000262962962962963, + "loss": 0.7344, + "step": 1815 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002625514403292181, + "loss": 0.7783, + "step": 1820 + }, + { + "epoch": 0.73, + "learning_rate": 0.00026213991769547326, + "loss": 0.7556, + "step": 1825 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002617283950617284, + "loss": 0.7585, + "step": 1830 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002613168724279836, + "loss": 0.7359, + "step": 1835 + }, + { + "epoch": 0.73, + "learning_rate": 0.0002609053497942387, + "loss": 0.7185, + "step": 1840 + }, + { + "epoch": 0.74, + "learning_rate": 0.00026049382716049384, + "loss": 0.7573, + "step": 1845 + }, + { + "epoch": 0.74, + "learning_rate": 0.000260082304526749, + "loss": 0.7619, + "step": 1850 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002596707818930041, + "loss": 0.7611, + "step": 1855 + }, + { + "epoch": 0.74, + "learning_rate": 0.00025925925925925926, + "loss": 0.7647, + "step": 1860 + }, + { + "epoch": 0.74, + "learning_rate": 0.0002588477366255144, + "loss": 0.7398, + "step": 1865 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002584362139917695, + "loss": 0.7683, + "step": 1870 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002580246913580247, + "loss": 0.7817, + "step": 1875 + }, + { + "epoch": 0.75, + "learning_rate": 0.00025761316872427984, + "loss": 0.742, + "step": 1880 + }, + { + "epoch": 0.75, + "learning_rate": 0.000257201646090535, + "loss": 0.7509, + "step": 1885 + }, + { + "epoch": 0.75, + "learning_rate": 0.0002567901234567901, + "loss": 0.7058, + "step": 1890 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025637860082304526, + "loss": 0.7635, + "step": 1895 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002559670781893004, + "loss": 0.734, + "step": 1900 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025555555555555553, + "loss": 0.7416, + "step": 1905 + }, + { + "epoch": 0.76, + "learning_rate": 0.0002551440329218107, + "loss": 0.7071, + "step": 1910 + }, + { + "epoch": 0.76, + "learning_rate": 0.00025473251028806584, + "loss": 0.7275, + "step": 1915 + }, + { + "epoch": 0.77, + "learning_rate": 0.000254320987654321, + "loss": 0.7413, + "step": 1920 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002539094650205761, + "loss": 0.7703, + "step": 1925 + }, + { + "epoch": 0.77, + "learning_rate": 0.00025349794238683127, + "loss": 0.7331, + "step": 1930 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002530864197530864, + "loss": 0.7251, + "step": 1935 + }, + { + "epoch": 0.77, + "learning_rate": 0.0002526748971193416, + "loss": 0.7341, + "step": 1940 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025226337448559674, + "loss": 0.7079, + "step": 1945 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025185185185185185, + "loss": 0.7615, + "step": 1950 + }, + { + "epoch": 0.78, + "learning_rate": 0.000251440329218107, + "loss": 0.7144, + "step": 1955 + }, + { + "epoch": 0.78, + "learning_rate": 0.00025102880658436216, + "loss": 0.7527, + "step": 1960 + }, + { + "epoch": 0.78, + "learning_rate": 0.0002506172839506173, + "loss": 0.7327, + "step": 1965 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002502057613168725, + "loss": 0.7173, + "step": 1970 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002497942386831276, + "loss": 0.7239, + "step": 1975 + }, + { + "epoch": 0.79, + "learning_rate": 0.00024938271604938274, + "loss": 0.7442, + "step": 1980 + }, + { + "epoch": 0.79, + "learning_rate": 0.0002489711934156379, + "loss": 0.7396, + "step": 1985 + }, + { + "epoch": 0.79, + "learning_rate": 0.000248559670781893, + "loss": 0.7365, + "step": 1990 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024814814814814816, + "loss": 0.7037, + "step": 1995 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002477366255144033, + "loss": 0.721, + "step": 2000 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002473251028806585, + "loss": 0.7353, + "step": 2005 + }, + { + "epoch": 0.8, + "learning_rate": 0.0002469135802469136, + "loss": 0.7648, + "step": 2010 + }, + { + "epoch": 0.8, + "learning_rate": 0.00024650205761316874, + "loss": 0.7445, + "step": 2015 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002460905349794239, + "loss": 0.7664, + "step": 2020 + }, + { + "epoch": 0.81, + "learning_rate": 0.000245679012345679, + "loss": 0.7202, + "step": 2025 + }, + { + "epoch": 0.81, + "learning_rate": 0.00024526748971193417, + "loss": 0.7147, + "step": 2030 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002448559670781893, + "loss": 0.722, + "step": 2035 + }, + { + "epoch": 0.81, + "learning_rate": 0.0002444444444444445, + "loss": 0.7539, + "step": 2040 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002440329218106996, + "loss": 0.7681, + "step": 2045 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024362139917695475, + "loss": 0.7304, + "step": 2050 + }, + { + "epoch": 0.82, + "learning_rate": 0.0002432098765432099, + "loss": 0.7432, + "step": 2055 + }, + { + "epoch": 0.82, + "learning_rate": 0.000242798353909465, + "loss": 0.6945, + "step": 2060 + }, + { + "epoch": 0.82, + "learning_rate": 0.00024238683127572017, + "loss": 0.7426, + "step": 2065 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024197530864197533, + "loss": 0.7144, + "step": 2070 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024156378600823048, + "loss": 0.7761, + "step": 2075 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002411522633744856, + "loss": 0.7402, + "step": 2080 + }, + { + "epoch": 0.83, + "learning_rate": 0.00024074074074074075, + "loss": 0.7376, + "step": 2085 + }, + { + "epoch": 0.83, + "learning_rate": 0.0002403292181069959, + "loss": 0.7231, + "step": 2090 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023991769547325104, + "loss": 0.7461, + "step": 2095 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023950617283950617, + "loss": 0.7215, + "step": 2100 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023909465020576133, + "loss": 0.7419, + "step": 2105 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023868312757201646, + "loss": 0.7502, + "step": 2110 + }, + { + "epoch": 0.84, + "learning_rate": 0.00023827160493827162, + "loss": 0.7294, + "step": 2115 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023786008230452678, + "loss": 0.7904, + "step": 2120 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023744855967078194, + "loss": 0.7418, + "step": 2125 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023703703703703704, + "loss": 0.7371, + "step": 2130 + }, + { + "epoch": 0.85, + "learning_rate": 0.0002366255144032922, + "loss": 0.7384, + "step": 2135 + }, + { + "epoch": 0.85, + "learning_rate": 0.00023621399176954736, + "loss": 0.7552, + "step": 2140 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023580246913580246, + "loss": 0.7516, + "step": 2145 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023539094650205762, + "loss": 0.7303, + "step": 2150 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023497942386831278, + "loss": 0.7496, + "step": 2155 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023456790123456794, + "loss": 0.7135, + "step": 2160 + }, + { + "epoch": 0.86, + "learning_rate": 0.00023415637860082304, + "loss": 0.7283, + "step": 2165 + }, + { + "epoch": 0.87, + "learning_rate": 0.0002337448559670782, + "loss": 0.751, + "step": 2170 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023333333333333336, + "loss": 0.7183, + "step": 2175 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023292181069958846, + "loss": 0.7242, + "step": 2180 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023251028806584362, + "loss": 0.725, + "step": 2185 + }, + { + "epoch": 0.87, + "learning_rate": 0.00023209876543209878, + "loss": 0.753, + "step": 2190 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002316872427983539, + "loss": 0.7664, + "step": 2195 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023127572016460904, + "loss": 0.7444, + "step": 2200 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002308641975308642, + "loss": 0.7226, + "step": 2205 + }, + { + "epoch": 0.88, + "learning_rate": 0.00023045267489711936, + "loss": 0.7653, + "step": 2210 + }, + { + "epoch": 0.88, + "learning_rate": 0.0002300411522633745, + "loss": 0.7382, + "step": 2215 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022962962962962965, + "loss": 0.7242, + "step": 2220 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002292181069958848, + "loss": 0.7215, + "step": 2225 + }, + { + "epoch": 0.89, + "learning_rate": 0.0002288065843621399, + "loss": 0.724, + "step": 2230 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022839506172839507, + "loss": 0.7439, + "step": 2235 + }, + { + "epoch": 0.89, + "learning_rate": 0.00022798353909465023, + "loss": 0.699, + "step": 2240 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002275720164609054, + "loss": 0.7602, + "step": 2245 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002271604938271605, + "loss": 0.7103, + "step": 2250 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022674897119341565, + "loss": 0.7015, + "step": 2255 + }, + { + "epoch": 0.9, + "learning_rate": 0.0002263374485596708, + "loss": 0.7404, + "step": 2260 + }, + { + "epoch": 0.9, + "learning_rate": 0.00022592592592592591, + "loss": 0.7127, + "step": 2265 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022551440329218107, + "loss": 0.7299, + "step": 2270 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022510288065843623, + "loss": 0.7174, + "step": 2275 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002246913580246914, + "loss": 0.7454, + "step": 2280 + }, + { + "epoch": 0.91, + "learning_rate": 0.0002242798353909465, + "loss": 0.7159, + "step": 2285 + }, + { + "epoch": 0.91, + "learning_rate": 0.00022386831275720165, + "loss": 0.7263, + "step": 2290 + }, + { + "epoch": 0.92, + "learning_rate": 0.0002234567901234568, + "loss": 0.7148, + "step": 2295 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022304526748971192, + "loss": 0.7447, + "step": 2300 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022263374485596707, + "loss": 0.7326, + "step": 2305 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022222222222222223, + "loss": 0.7428, + "step": 2310 + }, + { + "epoch": 0.92, + "learning_rate": 0.00022181069958847736, + "loss": 0.7587, + "step": 2315 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022139917695473252, + "loss": 0.759, + "step": 2320 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022098765432098768, + "loss": 0.7716, + "step": 2325 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002205761316872428, + "loss": 0.74, + "step": 2330 + }, + { + "epoch": 0.93, + "learning_rate": 0.00022016460905349794, + "loss": 0.7255, + "step": 2335 + }, + { + "epoch": 0.93, + "learning_rate": 0.0002197530864197531, + "loss": 0.7547, + "step": 2340 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021934156378600826, + "loss": 0.7359, + "step": 2345 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021893004115226337, + "loss": 0.6987, + "step": 2350 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021851851851851852, + "loss": 0.7233, + "step": 2355 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021810699588477368, + "loss": 0.6945, + "step": 2360 + }, + { + "epoch": 0.94, + "learning_rate": 0.00021769547325102884, + "loss": 0.7566, + "step": 2365 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021728395061728395, + "loss": 0.728, + "step": 2370 + }, + { + "epoch": 0.95, + "learning_rate": 0.0002168724279835391, + "loss": 0.7167, + "step": 2375 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021646090534979426, + "loss": 0.7576, + "step": 2380 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021604938271604937, + "loss": 0.7246, + "step": 2385 + }, + { + "epoch": 0.95, + "learning_rate": 0.00021563786008230453, + "loss": 0.755, + "step": 2390 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021522633744855968, + "loss": 0.6983, + "step": 2395 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021481481481481484, + "loss": 0.7369, + "step": 2400 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021440329218106995, + "loss": 0.7074, + "step": 2405 + }, + { + "epoch": 0.96, + "learning_rate": 0.0002139917695473251, + "loss": 0.7317, + "step": 2410 + }, + { + "epoch": 0.96, + "learning_rate": 0.00021358024691358026, + "loss": 0.7086, + "step": 2415 + }, + { + "epoch": 0.97, + "learning_rate": 0.0002131687242798354, + "loss": 0.7356, + "step": 2420 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021275720164609055, + "loss": 0.7652, + "step": 2425 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021234567901234569, + "loss": 0.7488, + "step": 2430 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021193415637860082, + "loss": 0.746, + "step": 2435 + }, + { + "epoch": 0.97, + "learning_rate": 0.00021152263374485598, + "loss": 0.7454, + "step": 2440 + }, + { + "epoch": 0.98, + "learning_rate": 0.00021111111111111113, + "loss": 0.72, + "step": 2445 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002106995884773663, + "loss": 0.7299, + "step": 2450 + }, + { + "epoch": 0.98, + "learning_rate": 0.0002102880658436214, + "loss": 0.7436, + "step": 2455 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020987654320987656, + "loss": 0.7068, + "step": 2460 + }, + { + "epoch": 0.98, + "learning_rate": 0.00020946502057613171, + "loss": 0.711, + "step": 2465 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020905349794238682, + "loss": 0.7473, + "step": 2470 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020864197530864198, + "loss": 0.7016, + "step": 2475 + }, + { + "epoch": 0.99, + "learning_rate": 0.00020823045267489714, + "loss": 0.7049, + "step": 2480 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002078189300411523, + "loss": 0.7268, + "step": 2485 + }, + { + "epoch": 0.99, + "learning_rate": 0.0002074074074074074, + "loss": 0.7239, + "step": 2490 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020699588477366256, + "loss": 0.698, + "step": 2495 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020658436213991772, + "loss": 0.7573, + "step": 2500 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020617283950617282, + "loss": 0.7309, + "step": 2505 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020576131687242798, + "loss": 0.6628, + "step": 2510 + }, + { + "epoch": 1.0, + "learning_rate": 0.00020534979423868314, + "loss": 0.656, + "step": 2515 + }, + { + "epoch": 1.01, + "learning_rate": 0.0002049382716049383, + "loss": 0.6737, + "step": 2520 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020452674897119343, + "loss": 0.6903, + "step": 2525 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020411522633744856, + "loss": 0.6674, + "step": 2530 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020370370370370372, + "loss": 0.6507, + "step": 2535 + }, + { + "epoch": 1.01, + "learning_rate": 0.00020329218106995885, + "loss": 0.6948, + "step": 2540 + }, + { + "epoch": 1.02, + "learning_rate": 0.000202880658436214, + "loss": 0.6662, + "step": 2545 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020246913580246917, + "loss": 0.6624, + "step": 2550 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020205761316872427, + "loss": 0.6791, + "step": 2555 + }, + { + "epoch": 1.02, + "learning_rate": 0.00020164609053497943, + "loss": 0.7088, + "step": 2560 + }, + { + "epoch": 1.02, + "learning_rate": 0.0002012345679012346, + "loss": 0.6796, + "step": 2565 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020082304526748975, + "loss": 0.6601, + "step": 2570 + }, + { + "epoch": 1.03, + "learning_rate": 0.00020041152263374485, + "loss": 0.6865, + "step": 2575 + }, + { + "epoch": 1.03, + "learning_rate": 0.0002, + "loss": 0.6725, + "step": 2580 + }, + { + "epoch": 1.03, + "learning_rate": 0.00019958847736625514, + "loss": 0.6743, + "step": 2585 + }, + { + "epoch": 1.03, + "learning_rate": 0.0001991769547325103, + "loss": 0.6395, + "step": 2590 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019876543209876543, + "loss": 0.6522, + "step": 2595 + }, + { + "epoch": 1.04, + "learning_rate": 0.0001983539094650206, + "loss": 0.6868, + "step": 2600 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019794238683127572, + "loss": 0.6861, + "step": 2605 + }, + { + "epoch": 1.04, + "learning_rate": 0.00019753086419753085, + "loss": 0.6843, + "step": 2610 + }, + { + "epoch": 1.04, + "learning_rate": 0.000197119341563786, + "loss": 0.6732, + "step": 2615 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019670781893004114, + "loss": 0.6676, + "step": 2620 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001962962962962963, + "loss": 0.6782, + "step": 2625 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019588477366255146, + "loss": 0.6937, + "step": 2630 + }, + { + "epoch": 1.05, + "learning_rate": 0.0001954732510288066, + "loss": 0.6823, + "step": 2635 + }, + { + "epoch": 1.05, + "learning_rate": 0.00019506172839506175, + "loss": 0.6839, + "step": 2640 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019465020576131688, + "loss": 0.6351, + "step": 2645 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019423868312757204, + "loss": 0.7157, + "step": 2650 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019382716049382717, + "loss": 0.6591, + "step": 2655 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019341563786008233, + "loss": 0.6826, + "step": 2660 + }, + { + "epoch": 1.06, + "learning_rate": 0.00019300411522633746, + "loss": 0.6732, + "step": 2665 + }, + { + "epoch": 1.07, + "learning_rate": 0.0001925925925925926, + "loss": 0.6795, + "step": 2670 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019218106995884775, + "loss": 0.6845, + "step": 2675 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019176954732510288, + "loss": 0.649, + "step": 2680 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019135802469135804, + "loss": 0.6684, + "step": 2685 + }, + { + "epoch": 1.07, + "learning_rate": 0.00019094650205761317, + "loss": 0.6712, + "step": 2690 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019053497942386833, + "loss": 0.6665, + "step": 2695 + }, + { + "epoch": 1.08, + "learning_rate": 0.00019012345679012346, + "loss": 0.6426, + "step": 2700 + }, + { + "epoch": 1.08, + "learning_rate": 0.0001897119341563786, + "loss": 0.6561, + "step": 2705 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018930041152263375, + "loss": 0.6664, + "step": 2710 + }, + { + "epoch": 1.08, + "learning_rate": 0.00018888888888888888, + "loss": 0.6746, + "step": 2715 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018847736625514404, + "loss": 0.6497, + "step": 2720 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018806584362139917, + "loss": 0.6811, + "step": 2725 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018765432098765433, + "loss": 0.6608, + "step": 2730 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018724279835390946, + "loss": 0.6655, + "step": 2735 + }, + { + "epoch": 1.09, + "learning_rate": 0.00018683127572016462, + "loss": 0.7014, + "step": 2740 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018641975308641978, + "loss": 0.6889, + "step": 2745 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001860082304526749, + "loss": 0.6805, + "step": 2750 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018559670781893007, + "loss": 0.6629, + "step": 2755 + }, + { + "epoch": 1.1, + "learning_rate": 0.0001851851851851852, + "loss": 0.6593, + "step": 2760 + }, + { + "epoch": 1.1, + "learning_rate": 0.00018477366255144033, + "loss": 0.6902, + "step": 2765 + }, + { + "epoch": 1.11, + "learning_rate": 0.0001843621399176955, + "loss": 0.6777, + "step": 2770 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018395061728395062, + "loss": 0.7127, + "step": 2775 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018353909465020578, + "loss": 0.6551, + "step": 2780 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018312757201646091, + "loss": 0.6703, + "step": 2785 + }, + { + "epoch": 1.11, + "learning_rate": 0.00018271604938271605, + "loss": 0.6776, + "step": 2790 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001823045267489712, + "loss": 0.6574, + "step": 2795 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018189300411522634, + "loss": 0.7154, + "step": 2800 + }, + { + "epoch": 1.12, + "learning_rate": 0.0001814814814814815, + "loss": 0.6749, + "step": 2805 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018106995884773663, + "loss": 0.695, + "step": 2810 + }, + { + "epoch": 1.12, + "learning_rate": 0.00018065843621399178, + "loss": 0.6685, + "step": 2815 + }, + { + "epoch": 1.13, + "learning_rate": 0.00018024691358024692, + "loss": 0.642, + "step": 2820 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017983539094650205, + "loss": 0.6873, + "step": 2825 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001794238683127572, + "loss": 0.6506, + "step": 2830 + }, + { + "epoch": 1.13, + "learning_rate": 0.00017901234567901234, + "loss": 0.6695, + "step": 2835 + }, + { + "epoch": 1.13, + "learning_rate": 0.0001786008230452675, + "loss": 0.651, + "step": 2840 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017818930041152265, + "loss": 0.6585, + "step": 2845 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017777777777777779, + "loss": 0.6717, + "step": 2850 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017736625514403294, + "loss": 0.6524, + "step": 2855 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017695473251028808, + "loss": 0.6679, + "step": 2860 + }, + { + "epoch": 1.14, + "learning_rate": 0.00017654320987654323, + "loss": 0.6719, + "step": 2865 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017613168724279837, + "loss": 0.6662, + "step": 2870 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017572016460905352, + "loss": 0.6624, + "step": 2875 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017530864197530866, + "loss": 0.69, + "step": 2880 + }, + { + "epoch": 1.15, + "learning_rate": 0.0001748971193415638, + "loss": 0.6629, + "step": 2885 + }, + { + "epoch": 1.15, + "learning_rate": 0.00017448559670781895, + "loss": 0.6566, + "step": 2890 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017407407407407408, + "loss": 0.6711, + "step": 2895 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017366255144032924, + "loss": 0.6995, + "step": 2900 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017325102880658437, + "loss": 0.6597, + "step": 2905 + }, + { + "epoch": 1.16, + "learning_rate": 0.0001728395061728395, + "loss": 0.6685, + "step": 2910 + }, + { + "epoch": 1.16, + "learning_rate": 0.00017242798353909466, + "loss": 0.6649, + "step": 2915 + }, + { + "epoch": 1.17, + "learning_rate": 0.0001720164609053498, + "loss": 0.6824, + "step": 2920 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017160493827160495, + "loss": 0.6484, + "step": 2925 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017119341563786008, + "loss": 0.6693, + "step": 2930 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017078189300411524, + "loss": 0.629, + "step": 2935 + }, + { + "epoch": 1.17, + "learning_rate": 0.00017037037037037037, + "loss": 0.6588, + "step": 2940 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016995884773662553, + "loss": 0.6771, + "step": 2945 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016954732510288066, + "loss": 0.6773, + "step": 2950 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016913580246913582, + "loss": 0.6307, + "step": 2955 + }, + { + "epoch": 1.18, + "learning_rate": 0.00016872427983539098, + "loss": 0.6809, + "step": 2960 + }, + { + "epoch": 1.18, + "learning_rate": 0.0001683127572016461, + "loss": 0.6748, + "step": 2965 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016790123456790124, + "loss": 0.6708, + "step": 2970 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001674897119341564, + "loss": 0.6754, + "step": 2975 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016707818930041153, + "loss": 0.6676, + "step": 2980 + }, + { + "epoch": 1.19, + "learning_rate": 0.0001666666666666667, + "loss": 0.6662, + "step": 2985 + }, + { + "epoch": 1.19, + "learning_rate": 0.00016625514403292182, + "loss": 0.6933, + "step": 2990 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016584362139917695, + "loss": 0.6879, + "step": 2995 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001654320987654321, + "loss": 0.6979, + "step": 3000 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016502057613168724, + "loss": 0.657, + "step": 3005 + }, + { + "epoch": 1.2, + "learning_rate": 0.0001646090534979424, + "loss": 0.6704, + "step": 3010 + }, + { + "epoch": 1.2, + "learning_rate": 0.00016419753086419753, + "loss": 0.6394, + "step": 3015 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001637860082304527, + "loss": 0.6594, + "step": 3020 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016337448559670782, + "loss": 0.6584, + "step": 3025 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016296296296296295, + "loss": 0.6593, + "step": 3030 + }, + { + "epoch": 1.21, + "learning_rate": 0.0001625514403292181, + "loss": 0.6538, + "step": 3035 + }, + { + "epoch": 1.21, + "learning_rate": 0.00016213991769547324, + "loss": 0.6572, + "step": 3040 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001617283950617284, + "loss": 0.6999, + "step": 3045 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016131687242798353, + "loss": 0.6658, + "step": 3050 + }, + { + "epoch": 1.22, + "learning_rate": 0.0001609053497942387, + "loss": 0.6809, + "step": 3055 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016049382716049385, + "loss": 0.6685, + "step": 3060 + }, + { + "epoch": 1.22, + "learning_rate": 0.00016008230452674898, + "loss": 0.6532, + "step": 3065 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015967078189300414, + "loss": 0.6644, + "step": 3070 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015925925925925927, + "loss": 0.6721, + "step": 3075 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015884773662551443, + "loss": 0.6569, + "step": 3080 + }, + { + "epoch": 1.23, + "learning_rate": 0.00015843621399176956, + "loss": 0.6832, + "step": 3085 + }, + { + "epoch": 1.23, + "learning_rate": 0.0001580246913580247, + "loss": 0.6721, + "step": 3090 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015761316872427985, + "loss": 0.6532, + "step": 3095 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015720164609053498, + "loss": 0.6955, + "step": 3100 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015679012345679014, + "loss": 0.6853, + "step": 3105 + }, + { + "epoch": 1.24, + "learning_rate": 0.00015637860082304527, + "loss": 0.6943, + "step": 3110 + }, + { + "epoch": 1.24, + "learning_rate": 0.0001559670781893004, + "loss": 0.6815, + "step": 3115 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015555555555555556, + "loss": 0.6972, + "step": 3120 + }, + { + "epoch": 1.25, + "learning_rate": 0.0001551440329218107, + "loss": 0.6959, + "step": 3125 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015473251028806585, + "loss": 0.6795, + "step": 3130 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015432098765432098, + "loss": 0.6352, + "step": 3135 + }, + { + "epoch": 1.25, + "learning_rate": 0.00015390946502057614, + "loss": 0.6601, + "step": 3140 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015349794238683127, + "loss": 0.676, + "step": 3145 + }, + { + "epoch": 1.26, + "learning_rate": 0.0001530864197530864, + "loss": 0.6352, + "step": 3150 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015267489711934156, + "loss": 0.6434, + "step": 3155 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015226337448559672, + "loss": 0.673, + "step": 3160 + }, + { + "epoch": 1.26, + "learning_rate": 0.00015185185185185185, + "loss": 0.6963, + "step": 3165 + }, + { + "epoch": 1.27, + "learning_rate": 0.000151440329218107, + "loss": 0.6643, + "step": 3170 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015102880658436214, + "loss": 0.6757, + "step": 3175 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001506172839506173, + "loss": 0.6681, + "step": 3180 + }, + { + "epoch": 1.27, + "learning_rate": 0.00015020576131687243, + "loss": 0.6935, + "step": 3185 + }, + { + "epoch": 1.27, + "learning_rate": 0.0001497942386831276, + "loss": 0.6894, + "step": 3190 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014938271604938272, + "loss": 0.64, + "step": 3195 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014897119341563788, + "loss": 0.6481, + "step": 3200 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014855967078189301, + "loss": 0.6644, + "step": 3205 + }, + { + "epoch": 1.28, + "learning_rate": 0.00014814814814814815, + "loss": 0.6358, + "step": 3210 + }, + { + "epoch": 1.28, + "learning_rate": 0.0001477366255144033, + "loss": 0.6678, + "step": 3215 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014732510288065844, + "loss": 0.6755, + "step": 3220 + }, + { + "epoch": 1.29, + "learning_rate": 0.0001469135802469136, + "loss": 0.6486, + "step": 3225 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014650205761316873, + "loss": 0.666, + "step": 3230 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014609053497942386, + "loss": 0.6689, + "step": 3235 + }, + { + "epoch": 1.29, + "learning_rate": 0.00014567901234567902, + "loss": 0.6737, + "step": 3240 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014526748971193415, + "loss": 0.6659, + "step": 3245 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001448559670781893, + "loss": 0.6744, + "step": 3250 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014444444444444444, + "loss": 0.648, + "step": 3255 + }, + { + "epoch": 1.3, + "learning_rate": 0.0001440329218106996, + "loss": 0.6455, + "step": 3260 + }, + { + "epoch": 1.3, + "learning_rate": 0.00014362139917695473, + "loss": 0.659, + "step": 3265 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014320987654320989, + "loss": 0.6519, + "step": 3270 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014279835390946504, + "loss": 0.6972, + "step": 3275 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014238683127572018, + "loss": 0.6592, + "step": 3280 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014197530864197534, + "loss": 0.6757, + "step": 3285 + }, + { + "epoch": 1.31, + "learning_rate": 0.00014156378600823047, + "loss": 0.6684, + "step": 3290 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001411522633744856, + "loss": 0.6754, + "step": 3295 + }, + { + "epoch": 1.32, + "learning_rate": 0.00014074074074074076, + "loss": 0.6738, + "step": 3300 + }, + { + "epoch": 1.32, + "learning_rate": 0.0001403292181069959, + "loss": 0.683, + "step": 3305 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013991769547325105, + "loss": 0.6434, + "step": 3310 + }, + { + "epoch": 1.32, + "learning_rate": 0.00013950617283950618, + "loss": 0.6416, + "step": 3315 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013909465020576134, + "loss": 0.6687, + "step": 3320 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013868312757201647, + "loss": 0.6663, + "step": 3325 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001382716049382716, + "loss": 0.7113, + "step": 3330 + }, + { + "epoch": 1.33, + "learning_rate": 0.00013786008230452676, + "loss": 0.6625, + "step": 3335 + }, + { + "epoch": 1.33, + "learning_rate": 0.0001374485596707819, + "loss": 0.6593, + "step": 3340 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013703703703703705, + "loss": 0.6707, + "step": 3345 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013662551440329218, + "loss": 0.6567, + "step": 3350 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001362139917695473, + "loss": 0.6622, + "step": 3355 + }, + { + "epoch": 1.34, + "learning_rate": 0.00013580246913580247, + "loss": 0.6849, + "step": 3360 + }, + { + "epoch": 1.34, + "learning_rate": 0.0001353909465020576, + "loss": 0.657, + "step": 3365 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013497942386831276, + "loss": 0.6452, + "step": 3370 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013456790123456792, + "loss": 0.6486, + "step": 3375 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013415637860082305, + "loss": 0.6737, + "step": 3380 + }, + { + "epoch": 1.35, + "learning_rate": 0.0001337448559670782, + "loss": 0.6793, + "step": 3385 + }, + { + "epoch": 1.35, + "learning_rate": 0.00013333333333333334, + "loss": 0.6869, + "step": 3390 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001329218106995885, + "loss": 0.6594, + "step": 3395 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013251028806584363, + "loss": 0.6793, + "step": 3400 + }, + { + "epoch": 1.36, + "learning_rate": 0.0001320987654320988, + "loss": 0.6879, + "step": 3405 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013168724279835392, + "loss": 0.695, + "step": 3410 + }, + { + "epoch": 1.36, + "learning_rate": 0.00013127572016460905, + "loss": 0.6648, + "step": 3415 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001308641975308642, + "loss": 0.6162, + "step": 3420 + }, + { + "epoch": 1.37, + "learning_rate": 0.00013045267489711934, + "loss": 0.642, + "step": 3425 + }, + { + "epoch": 1.37, + "learning_rate": 0.0001300411522633745, + "loss": 0.6618, + "step": 3430 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012962962962962963, + "loss": 0.6535, + "step": 3435 + }, + { + "epoch": 1.37, + "learning_rate": 0.00012921810699588476, + "loss": 0.6664, + "step": 3440 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012880658436213992, + "loss": 0.6427, + "step": 3445 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012839506172839505, + "loss": 0.6584, + "step": 3450 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001279835390946502, + "loss": 0.657, + "step": 3455 + }, + { + "epoch": 1.38, + "learning_rate": 0.00012757201646090534, + "loss": 0.6494, + "step": 3460 + }, + { + "epoch": 1.38, + "learning_rate": 0.0001271604938271605, + "loss": 0.6553, + "step": 3465 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012674897119341563, + "loss": 0.6755, + "step": 3470 + }, + { + "epoch": 1.39, + "learning_rate": 0.0001263374485596708, + "loss": 0.6599, + "step": 3475 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012592592592592592, + "loss": 0.6564, + "step": 3480 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012551440329218108, + "loss": 0.6526, + "step": 3485 + }, + { + "epoch": 1.39, + "learning_rate": 0.00012510288065843624, + "loss": 0.6439, + "step": 3490 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012469135802469137, + "loss": 0.6459, + "step": 3495 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001242798353909465, + "loss": 0.6573, + "step": 3500 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012386831275720166, + "loss": 0.6773, + "step": 3505 + }, + { + "epoch": 1.4, + "learning_rate": 0.0001234567901234568, + "loss": 0.68, + "step": 3510 + }, + { + "epoch": 1.4, + "learning_rate": 0.00012304526748971195, + "loss": 0.6615, + "step": 3515 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012263374485596708, + "loss": 0.6886, + "step": 3520 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012222222222222224, + "loss": 0.667, + "step": 3525 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012181069958847737, + "loss": 0.677, + "step": 3530 + }, + { + "epoch": 1.41, + "learning_rate": 0.0001213991769547325, + "loss": 0.6709, + "step": 3535 + }, + { + "epoch": 1.41, + "learning_rate": 0.00012098765432098766, + "loss": 0.6258, + "step": 3540 + }, + { + "epoch": 1.42, + "learning_rate": 0.0001205761316872428, + "loss": 0.6795, + "step": 3545 + }, + { + "epoch": 1.42, + "learning_rate": 0.00012016460905349795, + "loss": 0.6673, + "step": 3550 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011975308641975308, + "loss": 0.6708, + "step": 3555 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011934156378600823, + "loss": 0.6466, + "step": 3560 + }, + { + "epoch": 1.42, + "learning_rate": 0.00011893004115226339, + "loss": 0.6339, + "step": 3565 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011851851851851852, + "loss": 0.6838, + "step": 3570 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011810699588477368, + "loss": 0.6179, + "step": 3575 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011769547325102881, + "loss": 0.6357, + "step": 3580 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011728395061728397, + "loss": 0.6807, + "step": 3585 + }, + { + "epoch": 1.43, + "learning_rate": 0.0001168724279835391, + "loss": 0.6365, + "step": 3590 + }, + { + "epoch": 1.43, + "learning_rate": 0.00011646090534979423, + "loss": 0.6518, + "step": 3595 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011604938271604939, + "loss": 0.6467, + "step": 3600 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011563786008230452, + "loss": 0.6537, + "step": 3605 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011522633744855968, + "loss": 0.6324, + "step": 3610 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011481481481481482, + "loss": 0.6826, + "step": 3615 + }, + { + "epoch": 1.44, + "learning_rate": 0.00011440329218106996, + "loss": 0.6643, + "step": 3620 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011399176954732511, + "loss": 0.6464, + "step": 3625 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011358024691358025, + "loss": 0.6601, + "step": 3630 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001131687242798354, + "loss": 0.6596, + "step": 3635 + }, + { + "epoch": 1.45, + "learning_rate": 0.00011275720164609054, + "loss": 0.72, + "step": 3640 + }, + { + "epoch": 1.45, + "learning_rate": 0.0001123456790123457, + "loss": 0.7157, + "step": 3645 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011193415637860083, + "loss": 0.6641, + "step": 3650 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011152263374485596, + "loss": 0.6631, + "step": 3655 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011111111111111112, + "loss": 0.6454, + "step": 3660 + }, + { + "epoch": 1.46, + "learning_rate": 0.00011069958847736626, + "loss": 0.6957, + "step": 3665 + }, + { + "epoch": 1.46, + "learning_rate": 0.0001102880658436214, + "loss": 0.6535, + "step": 3670 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010987654320987655, + "loss": 0.6675, + "step": 3675 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010946502057613168, + "loss": 0.6458, + "step": 3680 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010905349794238684, + "loss": 0.6507, + "step": 3685 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010864197530864197, + "loss": 0.6818, + "step": 3690 + }, + { + "epoch": 1.47, + "learning_rate": 0.00010823045267489713, + "loss": 0.6752, + "step": 3695 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010781893004115226, + "loss": 0.6645, + "step": 3700 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010740740740740742, + "loss": 0.6414, + "step": 3705 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010699588477366255, + "loss": 0.675, + "step": 3710 + }, + { + "epoch": 1.48, + "learning_rate": 0.0001065843621399177, + "loss": 0.6597, + "step": 3715 + }, + { + "epoch": 1.48, + "learning_rate": 0.00010617283950617284, + "loss": 0.6637, + "step": 3720 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010576131687242799, + "loss": 0.664, + "step": 3725 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010534979423868315, + "loss": 0.6638, + "step": 3730 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010493827160493828, + "loss": 0.6413, + "step": 3735 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010452674897119341, + "loss": 0.6242, + "step": 3740 + }, + { + "epoch": 1.49, + "learning_rate": 0.00010411522633744857, + "loss": 0.6653, + "step": 3745 + }, + { + "epoch": 1.5, + "learning_rate": 0.0001037037037037037, + "loss": 0.6947, + "step": 3750 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010329218106995886, + "loss": 0.6801, + "step": 3755 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010288065843621399, + "loss": 0.671, + "step": 3760 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010246913580246915, + "loss": 0.6505, + "step": 3765 + }, + { + "epoch": 1.5, + "learning_rate": 0.00010205761316872428, + "loss": 0.6738, + "step": 3770 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010164609053497942, + "loss": 0.6478, + "step": 3775 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010123456790123458, + "loss": 0.6652, + "step": 3780 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010082304526748971, + "loss": 0.6456, + "step": 3785 + }, + { + "epoch": 1.51, + "learning_rate": 0.00010041152263374487, + "loss": 0.6509, + "step": 3790 + }, + { + "epoch": 1.51, + "learning_rate": 0.0001, + "loss": 0.6623, + "step": 3795 + }, + { + "epoch": 1.52, + "learning_rate": 9.958847736625515e-05, + "loss": 0.6727, + "step": 3800 + }, + { + "epoch": 1.52, + "learning_rate": 9.91769547325103e-05, + "loss": 0.676, + "step": 3805 + }, + { + "epoch": 1.52, + "learning_rate": 9.876543209876543e-05, + "loss": 0.6662, + "step": 3810 + }, + { + "epoch": 1.52, + "learning_rate": 9.835390946502057e-05, + "loss": 0.6767, + "step": 3815 + }, + { + "epoch": 1.52, + "learning_rate": 9.794238683127573e-05, + "loss": 0.6278, + "step": 3820 + }, + { + "epoch": 1.53, + "learning_rate": 9.753086419753087e-05, + "loss": 0.6769, + "step": 3825 + }, + { + "epoch": 1.53, + "learning_rate": 9.711934156378602e-05, + "loss": 0.667, + "step": 3830 + }, + { + "epoch": 1.53, + "learning_rate": 9.670781893004116e-05, + "loss": 0.6392, + "step": 3835 + }, + { + "epoch": 1.53, + "learning_rate": 9.62962962962963e-05, + "loss": 0.6479, + "step": 3840 + }, + { + "epoch": 1.53, + "learning_rate": 9.588477366255144e-05, + "loss": 0.6958, + "step": 3845 + }, + { + "epoch": 1.54, + "learning_rate": 9.547325102880659e-05, + "loss": 0.6636, + "step": 3850 + }, + { + "epoch": 1.54, + "learning_rate": 9.506172839506173e-05, + "loss": 0.6722, + "step": 3855 + }, + { + "epoch": 1.54, + "learning_rate": 9.465020576131688e-05, + "loss": 0.6688, + "step": 3860 + }, + { + "epoch": 1.54, + "learning_rate": 9.423868312757202e-05, + "loss": 0.6814, + "step": 3865 + }, + { + "epoch": 1.54, + "learning_rate": 9.382716049382717e-05, + "loss": 0.679, + "step": 3870 + }, + { + "epoch": 1.55, + "learning_rate": 9.341563786008231e-05, + "loss": 0.6536, + "step": 3875 + }, + { + "epoch": 1.55, + "learning_rate": 9.300411522633746e-05, + "loss": 0.6783, + "step": 3880 + }, + { + "epoch": 1.55, + "learning_rate": 9.25925925925926e-05, + "loss": 0.6424, + "step": 3885 + }, + { + "epoch": 1.55, + "learning_rate": 9.218106995884775e-05, + "loss": 0.6695, + "step": 3890 + }, + { + "epoch": 1.55, + "learning_rate": 9.176954732510289e-05, + "loss": 0.6941, + "step": 3895 + }, + { + "epoch": 1.56, + "learning_rate": 9.135802469135802e-05, + "loss": 0.6887, + "step": 3900 + }, + { + "epoch": 1.56, + "learning_rate": 9.094650205761317e-05, + "loss": 0.6789, + "step": 3905 + }, + { + "epoch": 1.56, + "learning_rate": 9.053497942386831e-05, + "loss": 0.6819, + "step": 3910 + }, + { + "epoch": 1.56, + "learning_rate": 9.012345679012346e-05, + "loss": 0.6571, + "step": 3915 + }, + { + "epoch": 1.56, + "learning_rate": 8.97119341563786e-05, + "loss": 0.6527, + "step": 3920 + }, + { + "epoch": 1.57, + "learning_rate": 8.930041152263375e-05, + "loss": 0.6656, + "step": 3925 + }, + { + "epoch": 1.57, + "learning_rate": 8.888888888888889e-05, + "loss": 0.6551, + "step": 3930 + }, + { + "epoch": 1.57, + "learning_rate": 8.847736625514404e-05, + "loss": 0.6502, + "step": 3935 + }, + { + "epoch": 1.57, + "learning_rate": 8.806584362139918e-05, + "loss": 0.6458, + "step": 3940 + }, + { + "epoch": 1.57, + "learning_rate": 8.765432098765433e-05, + "loss": 0.6617, + "step": 3945 + }, + { + "epoch": 1.58, + "learning_rate": 8.724279835390947e-05, + "loss": 0.6444, + "step": 3950 + }, + { + "epoch": 1.58, + "learning_rate": 8.683127572016462e-05, + "loss": 0.6629, + "step": 3955 + }, + { + "epoch": 1.58, + "learning_rate": 8.641975308641975e-05, + "loss": 0.6683, + "step": 3960 + }, + { + "epoch": 1.58, + "learning_rate": 8.60082304526749e-05, + "loss": 0.6483, + "step": 3965 + }, + { + "epoch": 1.58, + "learning_rate": 8.559670781893004e-05, + "loss": 0.6623, + "step": 3970 + }, + { + "epoch": 1.59, + "learning_rate": 8.518518518518518e-05, + "loss": 0.6491, + "step": 3975 + }, + { + "epoch": 1.59, + "learning_rate": 8.477366255144033e-05, + "loss": 0.6394, + "step": 3980 + }, + { + "epoch": 1.59, + "learning_rate": 8.436213991769549e-05, + "loss": 0.6494, + "step": 3985 + }, + { + "epoch": 1.59, + "learning_rate": 8.395061728395062e-05, + "loss": 0.6516, + "step": 3990 + }, + { + "epoch": 1.59, + "learning_rate": 8.353909465020576e-05, + "loss": 0.6664, + "step": 3995 + }, + { + "epoch": 1.6, + "learning_rate": 8.312757201646091e-05, + "loss": 0.6822, + "step": 4000 + }, + { + "epoch": 1.6, + "learning_rate": 8.271604938271605e-05, + "loss": 0.6335, + "step": 4005 + }, + { + "epoch": 1.6, + "learning_rate": 8.23045267489712e-05, + "loss": 0.6386, + "step": 4010 + }, + { + "epoch": 1.6, + "learning_rate": 8.189300411522634e-05, + "loss": 0.6495, + "step": 4015 + }, + { + "epoch": 1.6, + "learning_rate": 8.148148148148148e-05, + "loss": 0.6784, + "step": 4020 + }, + { + "epoch": 1.61, + "learning_rate": 8.106995884773662e-05, + "loss": 0.6522, + "step": 4025 + }, + { + "epoch": 1.61, + "learning_rate": 8.065843621399177e-05, + "loss": 0.6292, + "step": 4030 + }, + { + "epoch": 1.61, + "learning_rate": 8.024691358024692e-05, + "loss": 0.6513, + "step": 4035 + }, + { + "epoch": 1.61, + "learning_rate": 7.983539094650207e-05, + "loss": 0.622, + "step": 4040 + }, + { + "epoch": 1.61, + "learning_rate": 7.942386831275721e-05, + "loss": 0.6619, + "step": 4045 + }, + { + "epoch": 1.62, + "learning_rate": 7.901234567901235e-05, + "loss": 0.651, + "step": 4050 + }, + { + "epoch": 1.62, + "learning_rate": 7.860082304526749e-05, + "loss": 0.6538, + "step": 4055 + }, + { + "epoch": 1.62, + "learning_rate": 7.818930041152264e-05, + "loss": 0.6572, + "step": 4060 + }, + { + "epoch": 1.62, + "learning_rate": 7.777777777777778e-05, + "loss": 0.6935, + "step": 4065 + }, + { + "epoch": 1.62, + "learning_rate": 7.736625514403293e-05, + "loss": 0.6598, + "step": 4070 + }, + { + "epoch": 1.63, + "learning_rate": 7.695473251028807e-05, + "loss": 0.6533, + "step": 4075 + }, + { + "epoch": 1.63, + "learning_rate": 7.65432098765432e-05, + "loss": 0.665, + "step": 4080 + }, + { + "epoch": 1.63, + "learning_rate": 7.613168724279836e-05, + "loss": 0.651, + "step": 4085 + }, + { + "epoch": 1.63, + "learning_rate": 7.57201646090535e-05, + "loss": 0.6914, + "step": 4090 + }, + { + "epoch": 1.63, + "learning_rate": 7.530864197530865e-05, + "loss": 0.6431, + "step": 4095 + }, + { + "epoch": 1.64, + "learning_rate": 7.48971193415638e-05, + "loss": 0.6753, + "step": 4100 + }, + { + "epoch": 1.64, + "learning_rate": 7.448559670781894e-05, + "loss": 0.6814, + "step": 4105 + }, + { + "epoch": 1.64, + "learning_rate": 7.407407407407407e-05, + "loss": 0.6386, + "step": 4110 + }, + { + "epoch": 1.64, + "learning_rate": 7.366255144032922e-05, + "loss": 0.6307, + "step": 4115 + }, + { + "epoch": 1.64, + "learning_rate": 7.325102880658436e-05, + "loss": 0.6401, + "step": 4120 + }, + { + "epoch": 1.65, + "learning_rate": 7.283950617283951e-05, + "loss": 0.6496, + "step": 4125 + }, + { + "epoch": 1.65, + "learning_rate": 7.242798353909465e-05, + "loss": 0.6593, + "step": 4130 + }, + { + "epoch": 1.65, + "learning_rate": 7.20164609053498e-05, + "loss": 0.6472, + "step": 4135 + }, + { + "epoch": 1.65, + "learning_rate": 7.160493827160494e-05, + "loss": 0.6746, + "step": 4140 + }, + { + "epoch": 1.65, + "learning_rate": 7.119341563786009e-05, + "loss": 0.6498, + "step": 4145 + }, + { + "epoch": 1.66, + "learning_rate": 7.078189300411523e-05, + "loss": 0.6597, + "step": 4150 + }, + { + "epoch": 1.66, + "learning_rate": 7.037037037037038e-05, + "loss": 0.671, + "step": 4155 + }, + { + "epoch": 1.66, + "learning_rate": 6.995884773662552e-05, + "loss": 0.6786, + "step": 4160 + }, + { + "epoch": 1.66, + "learning_rate": 6.954732510288067e-05, + "loss": 0.6846, + "step": 4165 + }, + { + "epoch": 1.66, + "learning_rate": 6.91358024691358e-05, + "loss": 0.6619, + "step": 4170 + }, + { + "epoch": 1.67, + "learning_rate": 6.872427983539094e-05, + "loss": 0.6755, + "step": 4175 + }, + { + "epoch": 1.67, + "learning_rate": 6.831275720164609e-05, + "loss": 0.6406, + "step": 4180 + }, + { + "epoch": 1.67, + "learning_rate": 6.790123456790123e-05, + "loss": 0.671, + "step": 4185 + }, + { + "epoch": 1.67, + "learning_rate": 6.748971193415638e-05, + "loss": 0.6448, + "step": 4190 + }, + { + "epoch": 1.67, + "learning_rate": 6.707818930041152e-05, + "loss": 0.6594, + "step": 4195 + }, + { + "epoch": 1.68, + "learning_rate": 6.666666666666667e-05, + "loss": 0.6626, + "step": 4200 + }, + { + "epoch": 1.68, + "learning_rate": 6.625514403292181e-05, + "loss": 0.6577, + "step": 4205 + }, + { + "epoch": 1.68, + "learning_rate": 6.584362139917696e-05, + "loss": 0.6468, + "step": 4210 + }, + { + "epoch": 1.68, + "learning_rate": 6.54320987654321e-05, + "loss": 0.6836, + "step": 4215 + }, + { + "epoch": 1.68, + "learning_rate": 6.502057613168725e-05, + "loss": 0.6766, + "step": 4220 + }, + { + "epoch": 1.69, + "learning_rate": 6.460905349794238e-05, + "loss": 0.6639, + "step": 4225 + }, + { + "epoch": 1.69, + "learning_rate": 6.419753086419753e-05, + "loss": 0.6653, + "step": 4230 + }, + { + "epoch": 1.69, + "learning_rate": 6.378600823045267e-05, + "loss": 0.6501, + "step": 4235 + }, + { + "epoch": 1.69, + "learning_rate": 6.337448559670782e-05, + "loss": 0.6775, + "step": 4240 + }, + { + "epoch": 1.69, + "learning_rate": 6.296296296296296e-05, + "loss": 0.661, + "step": 4245 + }, + { + "epoch": 1.7, + "learning_rate": 6.255144032921812e-05, + "loss": 0.6417, + "step": 4250 + }, + { + "epoch": 1.7, + "learning_rate": 6.213991769547325e-05, + "loss": 0.6626, + "step": 4255 + }, + { + "epoch": 1.7, + "learning_rate": 6.17283950617284e-05, + "loss": 0.667, + "step": 4260 + }, + { + "epoch": 1.7, + "learning_rate": 6.131687242798354e-05, + "loss": 0.6683, + "step": 4265 + }, + { + "epoch": 1.7, + "learning_rate": 6.0905349794238687e-05, + "loss": 0.6523, + "step": 4270 + }, + { + "epoch": 1.71, + "learning_rate": 6.049382716049383e-05, + "loss": 0.6686, + "step": 4275 + }, + { + "epoch": 1.71, + "learning_rate": 6.0082304526748977e-05, + "loss": 0.6365, + "step": 4280 + }, + { + "epoch": 1.71, + "learning_rate": 5.9670781893004115e-05, + "loss": 0.6211, + "step": 4285 + }, + { + "epoch": 1.71, + "learning_rate": 5.925925925925926e-05, + "loss": 0.6414, + "step": 4290 + }, + { + "epoch": 1.71, + "learning_rate": 5.8847736625514405e-05, + "loss": 0.6488, + "step": 4295 + }, + { + "epoch": 1.72, + "learning_rate": 5.843621399176955e-05, + "loss": 0.6506, + "step": 4300 + }, + { + "epoch": 1.72, + "learning_rate": 5.8024691358024695e-05, + "loss": 0.6692, + "step": 4305 + }, + { + "epoch": 1.72, + "learning_rate": 5.761316872427984e-05, + "loss": 0.6617, + "step": 4310 + }, + { + "epoch": 1.72, + "learning_rate": 5.720164609053498e-05, + "loss": 0.6464, + "step": 4315 + }, + { + "epoch": 1.72, + "learning_rate": 5.679012345679012e-05, + "loss": 0.6432, + "step": 4320 + }, + { + "epoch": 1.73, + "learning_rate": 5.637860082304527e-05, + "loss": 0.6642, + "step": 4325 + }, + { + "epoch": 1.73, + "learning_rate": 5.596707818930041e-05, + "loss": 0.6487, + "step": 4330 + }, + { + "epoch": 1.73, + "learning_rate": 5.555555555555556e-05, + "loss": 0.6384, + "step": 4335 + }, + { + "epoch": 1.73, + "learning_rate": 5.51440329218107e-05, + "loss": 0.6167, + "step": 4340 + }, + { + "epoch": 1.73, + "learning_rate": 5.473251028806584e-05, + "loss": 0.6576, + "step": 4345 + }, + { + "epoch": 1.74, + "learning_rate": 5.4320987654320986e-05, + "loss": 0.6482, + "step": 4350 + }, + { + "epoch": 1.74, + "learning_rate": 5.390946502057613e-05, + "loss": 0.6526, + "step": 4355 + }, + { + "epoch": 1.74, + "learning_rate": 5.3497942386831277e-05, + "loss": 0.6427, + "step": 4360 + }, + { + "epoch": 1.74, + "learning_rate": 5.308641975308642e-05, + "loss": 0.6425, + "step": 4365 + }, + { + "epoch": 1.74, + "learning_rate": 5.267489711934157e-05, + "loss": 0.713, + "step": 4370 + }, + { + "epoch": 1.75, + "learning_rate": 5.2263374485596705e-05, + "loss": 0.6414, + "step": 4375 + }, + { + "epoch": 1.75, + "learning_rate": 5.185185185185185e-05, + "loss": 0.6578, + "step": 4380 + }, + { + "epoch": 1.75, + "learning_rate": 5.1440329218106995e-05, + "loss": 0.6461, + "step": 4385 + }, + { + "epoch": 1.75, + "learning_rate": 5.102880658436214e-05, + "loss": 0.651, + "step": 4390 + }, + { + "epoch": 1.75, + "learning_rate": 5.061728395061729e-05, + "loss": 0.6523, + "step": 4395 + }, + { + "epoch": 1.76, + "learning_rate": 5.020576131687244e-05, + "loss": 0.6625, + "step": 4400 + }, + { + "epoch": 1.76, + "learning_rate": 4.9794238683127575e-05, + "loss": 0.6763, + "step": 4405 + }, + { + "epoch": 1.76, + "learning_rate": 4.938271604938271e-05, + "loss": 0.6759, + "step": 4410 + }, + { + "epoch": 1.76, + "learning_rate": 4.8971193415637865e-05, + "loss": 0.6742, + "step": 4415 + }, + { + "epoch": 1.76, + "learning_rate": 4.855967078189301e-05, + "loss": 0.6617, + "step": 4420 + }, + { + "epoch": 1.77, + "learning_rate": 4.814814814814815e-05, + "loss": 0.6604, + "step": 4425 + }, + { + "epoch": 1.77, + "learning_rate": 4.773662551440329e-05, + "loss": 0.6739, + "step": 4430 + }, + { + "epoch": 1.77, + "learning_rate": 4.732510288065844e-05, + "loss": 0.641, + "step": 4435 + }, + { + "epoch": 1.77, + "learning_rate": 4.691358024691358e-05, + "loss": 0.6322, + "step": 4440 + }, + { + "epoch": 1.77, + "learning_rate": 4.650205761316873e-05, + "loss": 0.6392, + "step": 4445 + }, + { + "epoch": 1.78, + "learning_rate": 4.609053497942387e-05, + "loss": 0.6795, + "step": 4450 + }, + { + "epoch": 1.78, + "learning_rate": 4.567901234567901e-05, + "loss": 0.6712, + "step": 4455 + }, + { + "epoch": 1.78, + "learning_rate": 4.5267489711934157e-05, + "loss": 0.6353, + "step": 4460 + }, + { + "epoch": 1.78, + "learning_rate": 4.48559670781893e-05, + "loss": 0.6587, + "step": 4465 + }, + { + "epoch": 1.78, + "learning_rate": 4.4444444444444447e-05, + "loss": 0.6748, + "step": 4470 + }, + { + "epoch": 1.79, + "learning_rate": 4.403292181069959e-05, + "loss": 0.6755, + "step": 4475 + }, + { + "epoch": 1.79, + "learning_rate": 4.3621399176954737e-05, + "loss": 0.6513, + "step": 4480 + }, + { + "epoch": 1.79, + "learning_rate": 4.3209876543209875e-05, + "loss": 0.6728, + "step": 4485 + }, + { + "epoch": 1.79, + "learning_rate": 4.279835390946502e-05, + "loss": 0.6536, + "step": 4490 + }, + { + "epoch": 1.79, + "learning_rate": 4.2386831275720165e-05, + "loss": 0.6652, + "step": 4495 + }, + { + "epoch": 1.8, + "learning_rate": 4.197530864197531e-05, + "loss": 0.6715, + "step": 4500 + }, + { + "epoch": 1.8, + "learning_rate": 4.1563786008230455e-05, + "loss": 0.6523, + "step": 4505 + }, + { + "epoch": 1.8, + "learning_rate": 4.11522633744856e-05, + "loss": 0.6856, + "step": 4510 + }, + { + "epoch": 1.8, + "learning_rate": 4.074074074074074e-05, + "loss": 0.6658, + "step": 4515 + }, + { + "epoch": 1.8, + "learning_rate": 4.032921810699588e-05, + "loss": 0.6122, + "step": 4520 + }, + { + "epoch": 1.81, + "learning_rate": 3.9917695473251035e-05, + "loss": 0.6719, + "step": 4525 + }, + { + "epoch": 1.81, + "learning_rate": 3.950617283950617e-05, + "loss": 0.6618, + "step": 4530 + }, + { + "epoch": 1.81, + "learning_rate": 3.909465020576132e-05, + "loss": 0.6594, + "step": 4535 + }, + { + "epoch": 1.81, + "learning_rate": 3.868312757201646e-05, + "loss": 0.6576, + "step": 4540 + }, + { + "epoch": 1.81, + "learning_rate": 3.82716049382716e-05, + "loss": 0.6726, + "step": 4545 + }, + { + "epoch": 1.82, + "learning_rate": 3.786008230452675e-05, + "loss": 0.6573, + "step": 4550 + }, + { + "epoch": 1.82, + "learning_rate": 3.74485596707819e-05, + "loss": 0.6503, + "step": 4555 + }, + { + "epoch": 1.82, + "learning_rate": 3.7037037037037037e-05, + "loss": 0.7026, + "step": 4560 + }, + { + "epoch": 1.82, + "learning_rate": 3.662551440329218e-05, + "loss": 0.6261, + "step": 4565 + }, + { + "epoch": 1.82, + "learning_rate": 3.6213991769547327e-05, + "loss": 0.6328, + "step": 4570 + }, + { + "epoch": 1.83, + "learning_rate": 3.580246913580247e-05, + "loss": 0.6771, + "step": 4575 + }, + { + "epoch": 1.83, + "learning_rate": 3.539094650205762e-05, + "loss": 0.6563, + "step": 4580 + }, + { + "epoch": 1.83, + "learning_rate": 3.497942386831276e-05, + "loss": 0.6415, + "step": 4585 + }, + { + "epoch": 1.83, + "learning_rate": 3.45679012345679e-05, + "loss": 0.6735, + "step": 4590 + }, + { + "epoch": 1.83, + "learning_rate": 3.4156378600823045e-05, + "loss": 0.667, + "step": 4595 + }, + { + "epoch": 1.84, + "learning_rate": 3.374485596707819e-05, + "loss": 0.6917, + "step": 4600 + }, + { + "epoch": 1.84, + "learning_rate": 3.3333333333333335e-05, + "loss": 0.661, + "step": 4605 + }, + { + "epoch": 1.84, + "learning_rate": 3.292181069958848e-05, + "loss": 0.6424, + "step": 4610 + }, + { + "epoch": 1.84, + "learning_rate": 3.2510288065843625e-05, + "loss": 0.6321, + "step": 4615 + }, + { + "epoch": 1.84, + "learning_rate": 3.209876543209876e-05, + "loss": 0.658, + "step": 4620 + }, + { + "epoch": 1.85, + "learning_rate": 3.168724279835391e-05, + "loss": 0.6707, + "step": 4625 + }, + { + "epoch": 1.85, + "learning_rate": 3.127572016460906e-05, + "loss": 0.6416, + "step": 4630 + }, + { + "epoch": 1.85, + "learning_rate": 3.08641975308642e-05, + "loss": 0.6478, + "step": 4635 + }, + { + "epoch": 1.85, + "learning_rate": 3.0452674897119343e-05, + "loss": 0.6555, + "step": 4640 + }, + { + "epoch": 1.85, + "learning_rate": 3.0041152263374488e-05, + "loss": 0.6557, + "step": 4645 + }, + { + "epoch": 1.86, + "learning_rate": 2.962962962962963e-05, + "loss": 0.6711, + "step": 4650 + }, + { + "epoch": 1.86, + "learning_rate": 2.9218106995884775e-05, + "loss": 0.6738, + "step": 4655 + }, + { + "epoch": 1.86, + "learning_rate": 2.880658436213992e-05, + "loss": 0.6428, + "step": 4660 + }, + { + "epoch": 1.86, + "learning_rate": 2.839506172839506e-05, + "loss": 0.6652, + "step": 4665 + }, + { + "epoch": 1.86, + "learning_rate": 2.7983539094650207e-05, + "loss": 0.6601, + "step": 4670 + }, + { + "epoch": 1.87, + "learning_rate": 2.757201646090535e-05, + "loss": 0.6358, + "step": 4675 + }, + { + "epoch": 1.87, + "learning_rate": 2.7160493827160493e-05, + "loss": 0.6661, + "step": 4680 + }, + { + "epoch": 1.87, + "learning_rate": 2.6748971193415638e-05, + "loss": 0.6708, + "step": 4685 + }, + { + "epoch": 1.87, + "learning_rate": 2.6337448559670787e-05, + "loss": 0.6475, + "step": 4690 + }, + { + "epoch": 1.87, + "learning_rate": 2.5925925925925925e-05, + "loss": 0.6776, + "step": 4695 + }, + { + "epoch": 1.88, + "learning_rate": 2.551440329218107e-05, + "loss": 0.6767, + "step": 4700 + }, + { + "epoch": 1.88, + "learning_rate": 2.510288065843622e-05, + "loss": 0.6882, + "step": 4705 + }, + { + "epoch": 1.88, + "learning_rate": 2.4691358024691357e-05, + "loss": 0.6538, + "step": 4710 + }, + { + "epoch": 1.88, + "learning_rate": 2.4279835390946505e-05, + "loss": 0.6402, + "step": 4715 + }, + { + "epoch": 1.88, + "learning_rate": 2.3868312757201647e-05, + "loss": 0.6678, + "step": 4720 + }, + { + "epoch": 1.89, + "learning_rate": 2.345679012345679e-05, + "loss": 0.6654, + "step": 4725 + }, + { + "epoch": 1.89, + "learning_rate": 2.3045267489711937e-05, + "loss": 0.6839, + "step": 4730 + }, + { + "epoch": 1.89, + "learning_rate": 2.2633744855967078e-05, + "loss": 0.6487, + "step": 4735 + }, + { + "epoch": 1.89, + "learning_rate": 2.2222222222222223e-05, + "loss": 0.6501, + "step": 4740 + }, + { + "epoch": 1.89, + "learning_rate": 2.1810699588477368e-05, + "loss": 0.6946, + "step": 4745 + }, + { + "epoch": 1.9, + "learning_rate": 2.139917695473251e-05, + "loss": 0.6906, + "step": 4750 + }, + { + "epoch": 1.9, + "learning_rate": 2.0987654320987655e-05, + "loss": 0.6598, + "step": 4755 + }, + { + "epoch": 1.9, + "learning_rate": 2.05761316872428e-05, + "loss": 0.6733, + "step": 4760 + }, + { + "epoch": 1.9, + "learning_rate": 2.016460905349794e-05, + "loss": 0.6685, + "step": 4765 + }, + { + "epoch": 1.9, + "learning_rate": 1.9753086419753087e-05, + "loss": 0.6703, + "step": 4770 + }, + { + "epoch": 1.91, + "learning_rate": 1.934156378600823e-05, + "loss": 0.6416, + "step": 4775 + }, + { + "epoch": 1.91, + "learning_rate": 1.8930041152263377e-05, + "loss": 0.651, + "step": 4780 + }, + { + "epoch": 1.91, + "learning_rate": 1.8518518518518518e-05, + "loss": 0.6446, + "step": 4785 + }, + { + "epoch": 1.91, + "learning_rate": 1.8106995884773663e-05, + "loss": 0.6406, + "step": 4790 + }, + { + "epoch": 1.91, + "learning_rate": 1.769547325102881e-05, + "loss": 0.6725, + "step": 4795 + }, + { + "epoch": 1.92, + "learning_rate": 1.728395061728395e-05, + "loss": 0.6469, + "step": 4800 + }, + { + "epoch": 1.92, + "learning_rate": 1.6872427983539095e-05, + "loss": 0.6931, + "step": 4805 + }, + { + "epoch": 1.92, + "learning_rate": 1.646090534979424e-05, + "loss": 0.6506, + "step": 4810 + }, + { + "epoch": 1.92, + "learning_rate": 1.604938271604938e-05, + "loss": 0.6687, + "step": 4815 + }, + { + "epoch": 1.92, + "learning_rate": 1.563786008230453e-05, + "loss": 0.6673, + "step": 4820 + }, + { + "epoch": 1.93, + "learning_rate": 1.5226337448559672e-05, + "loss": 0.6436, + "step": 4825 + }, + { + "epoch": 1.93, + "learning_rate": 1.4814814814814815e-05, + "loss": 0.6722, + "step": 4830 + }, + { + "epoch": 1.93, + "learning_rate": 1.440329218106996e-05, + "loss": 0.6492, + "step": 4835 + }, + { + "epoch": 1.93, + "learning_rate": 1.3991769547325103e-05, + "loss": 0.6737, + "step": 4840 + }, + { + "epoch": 1.93, + "learning_rate": 1.3580246913580247e-05, + "loss": 0.6645, + "step": 4845 + }, + { + "epoch": 1.94, + "learning_rate": 1.3168724279835393e-05, + "loss": 0.6598, + "step": 4850 + }, + { + "epoch": 1.94, + "learning_rate": 1.2757201646090535e-05, + "loss": 0.6383, + "step": 4855 + }, + { + "epoch": 1.94, + "learning_rate": 1.2345679012345678e-05, + "loss": 0.666, + "step": 4860 + }, + { + "epoch": 1.94, + "learning_rate": 1.1934156378600823e-05, + "loss": 0.6434, + "step": 4865 + }, + { + "epoch": 1.94, + "learning_rate": 1.1522633744855968e-05, + "loss": 0.666, + "step": 4870 + }, + { + "epoch": 1.95, + "learning_rate": 1.1111111111111112e-05, + "loss": 0.6517, + "step": 4875 + }, + { + "epoch": 1.95, + "learning_rate": 1.0699588477366255e-05, + "loss": 0.6581, + "step": 4880 + }, + { + "epoch": 1.95, + "learning_rate": 1.02880658436214e-05, + "loss": 0.6621, + "step": 4885 + }, + { + "epoch": 1.95, + "learning_rate": 9.876543209876543e-06, + "loss": 0.6856, + "step": 4890 + }, + { + "epoch": 1.95, + "learning_rate": 9.465020576131688e-06, + "loss": 0.6572, + "step": 4895 + }, + { + "epoch": 1.96, + "learning_rate": 9.053497942386832e-06, + "loss": 0.6864, + "step": 4900 + }, + { + "epoch": 1.96, + "learning_rate": 8.641975308641975e-06, + "loss": 0.6465, + "step": 4905 + }, + { + "epoch": 1.96, + "learning_rate": 8.23045267489712e-06, + "loss": 0.659, + "step": 4910 + }, + { + "epoch": 1.96, + "learning_rate": 7.818930041152265e-06, + "loss": 0.6617, + "step": 4915 + }, + { + "epoch": 1.96, + "learning_rate": 7.4074074074074075e-06, + "loss": 0.651, + "step": 4920 + }, + { + "epoch": 1.97, + "learning_rate": 6.995884773662552e-06, + "loss": 0.658, + "step": 4925 + }, + { + "epoch": 1.97, + "learning_rate": 6.584362139917697e-06, + "loss": 0.6701, + "step": 4930 + }, + { + "epoch": 1.97, + "learning_rate": 6.172839506172839e-06, + "loss": 0.6471, + "step": 4935 + }, + { + "epoch": 1.97, + "learning_rate": 5.761316872427984e-06, + "loss": 0.6536, + "step": 4940 + }, + { + "epoch": 1.97, + "learning_rate": 5.3497942386831275e-06, + "loss": 0.6737, + "step": 4945 + }, + { + "epoch": 1.98, + "learning_rate": 4.938271604938272e-06, + "loss": 0.679, + "step": 4950 + }, + { + "epoch": 1.98, + "learning_rate": 4.526748971193416e-06, + "loss": 0.6192, + "step": 4955 + }, + { + "epoch": 1.98, + "learning_rate": 4.11522633744856e-06, + "loss": 0.6323, + "step": 4960 + }, + { + "epoch": 1.98, + "learning_rate": 3.7037037037037037e-06, + "loss": 0.6555, + "step": 4965 + }, + { + "epoch": 1.98, + "learning_rate": 3.2921810699588483e-06, + "loss": 0.6657, + "step": 4970 + }, + { + "epoch": 1.99, + "learning_rate": 2.880658436213992e-06, + "loss": 0.6712, + "step": 4975 + }, + { + "epoch": 1.99, + "learning_rate": 2.469135802469136e-06, + "loss": 0.6563, + "step": 4980 + }, + { + "epoch": 1.99, + "learning_rate": 2.05761316872428e-06, + "loss": 0.6885, + "step": 4985 + }, + { + "epoch": 1.99, + "learning_rate": 1.6460905349794242e-06, + "loss": 0.6666, + "step": 4990 + }, + { + "epoch": 1.99, + "learning_rate": 1.234567901234568e-06, + "loss": 0.6696, + "step": 4995 + }, + { + "epoch": 2.0, + "learning_rate": 8.230452674897121e-07, + "loss": 0.699, + "step": 5000 + } + ], + "logging_steps": 5, + "max_steps": 5010, + "num_input_tokens_seen": 0, + "num_train_epochs": 2, + "save_steps": 500, + "total_flos": 2.0132950426699956e+19, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/training_args.bin b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/training_args.bin new file mode 100644 index 0000000000000000000000000000000000000000..28c7b09fc2b3929abe4ad6608c7959f30a9a9d66 --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43458f4cf6aeb211c730b848f93ab15f483827c314fb4dc1e79dd1f658b7dbc8 +size 5944 diff --git a/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/zero_to_fp32.py b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/zero_to_fp32.py new file mode 100644 index 0000000000000000000000000000000000000000..c98caae31534368be22b67fc4ae906836c992a8d --- /dev/null +++ b/save_lora_instruct_r8_4e4_s11_1/checkpoint-5000/zero_to_fp32.py @@ -0,0 +1,587 @@ +#!/usr/bin/env python + +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 + +# DeepSpeed Team + +# This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets +# copied into the top level checkpoint dir, so the user can easily do the conversion at any point in +# the future. Once extracted, the weights don't require DeepSpeed and can be used in any +# application. +# +# example: python zero_to_fp32.py . pytorch_model.bin + +import argparse +import torch +import glob +import math +import os +import re +from collections import OrderedDict +from dataclasses import dataclass + +# while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with +# DeepSpeed data structures it has to be available in the current python environment. +from deepspeed.utils import logger +from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS, + FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES, + FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS) + + +@dataclass +class zero_model_state: + buffers: dict() + param_shapes: dict() + shared_params: list + ds_version: int + frozen_param_shapes: dict() + frozen_param_fragments: dict() + + +debug = 0 + +# load to cpu +device = torch.device('cpu') + + +def atoi(text): + return int(text) if text.isdigit() else text + + +def natural_keys(text): + ''' + alist.sort(key=natural_keys) sorts in human order + http://nedbatchelder.com/blog/200712/human_sorting.html + (See Toothy's implementation in the comments) + ''' + return [atoi(c) for c in re.split(r'(\d+)', text)] + + +def get_model_state_file(checkpoint_dir, zero_stage): + if not os.path.isdir(checkpoint_dir): + raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist") + + # there should be only one file + if zero_stage <= 2: + file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt") + elif zero_stage == 3: + file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt") + + if not os.path.exists(file): + raise FileNotFoundError(f"can't find model states file at '{file}'") + + return file + + +def get_checkpoint_files(checkpoint_dir, glob_pattern): + # XXX: need to test that this simple glob rule works for multi-node setup too + ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys) + + if len(ckpt_files) == 0: + raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'") + + return ckpt_files + + +def get_optim_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt") + + +def get_model_state_files(checkpoint_dir): + return get_checkpoint_files(checkpoint_dir, "*_model_states.pt") + + +def parse_model_states(files): + zero_model_states = [] + for file in files: + state_dict = torch.load(file, map_location=device) + + if BUFFER_NAMES not in state_dict: + raise ValueError(f"{file} is not a model state checkpoint") + buffer_names = state_dict[BUFFER_NAMES] + if debug: + print("Found buffers:", buffer_names) + + # recover just the buffers while restoring them to fp32 if they were saved in fp16 + buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names} + param_shapes = state_dict[PARAM_SHAPES] + + # collect parameters that are included in param_shapes + param_names = [] + for s in param_shapes: + for name in s.keys(): + param_names.append(name) + + # update with frozen parameters + frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None) + if frozen_param_shapes is not None: + if debug: + print(f"Found frozen_param_shapes: {frozen_param_shapes}") + param_names += list(frozen_param_shapes.keys()) + + # handle shared params + shared_params = [[k, v] for k, v in state_dict["shared_params"].items()] + + ds_version = state_dict.get(DS_VERSION, None) + + frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None) + + z_model_state = zero_model_state(buffers=buffers, + param_shapes=param_shapes, + shared_params=shared_params, + ds_version=ds_version, + frozen_param_shapes=frozen_param_shapes, + frozen_param_fragments=frozen_param_fragments) + zero_model_states.append(z_model_state) + + return zero_model_states + + +def parse_optim_states(files, ds_checkpoint_dir): + + total_files = len(files) + state_dicts = [] + for f in files: + state_dict = torch.load(f, map_location=device) + # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights + # and also handle the case where it was already removed by another helper script + state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None) + state_dicts.append(state_dict) + + if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]: + raise ValueError(f"{files[0]} is not a zero checkpoint") + zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE] + world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT] + + # For ZeRO-2 each param group can have different partition_count as data parallelism for expert + # parameters can be different from data parallelism for non-expert parameters. So we can just + # use the max of the partition_count to get the dp world_size. + + if type(world_size) is list: + world_size = max(world_size) + + if world_size != total_files: + raise ValueError( + f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. " + "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes." + ) + + # the groups are named differently in each stage + if zero_stage <= 2: + fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS + elif zero_stage == 3: + fp32_groups_key = FP32_FLAT_GROUPS + else: + raise ValueError(f"unknown zero stage {zero_stage}") + + if zero_stage <= 2: + fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))] + elif zero_stage == 3: + # if there is more than one param group, there will be multiple flattened tensors - one + # flattened tensor per group - for simplicity merge them into a single tensor + # + # XXX: could make the script more memory efficient for when there are multiple groups - it + # will require matching the sub-lists of param_shapes for each param group flattened tensor + + fp32_flat_groups = [ + torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts)) + ] + + return zero_stage, world_size, fp32_flat_groups + + +def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir): + """ + Returns fp32 state_dict reconstructed from ds checkpoint + + Args: + - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are) + + """ + print(f"Processing zero checkpoint '{ds_checkpoint_dir}'") + + optim_files = get_optim_files(ds_checkpoint_dir) + zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir) + print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}") + + model_files = get_model_state_files(ds_checkpoint_dir) + + zero_model_states = parse_model_states(model_files) + print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}') + + if zero_stage <= 2: + return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states) + elif zero_stage == 3: + return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states) + + +def _zero2_merge_frozen_params(state_dict, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + frozen_param_fragments = zero_model_states[0].frozen_param_fragments + + if debug: + num_elem = sum(s.numel() for s in frozen_param_shapes.values()) + print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in frozen_param_fragments.values()]) + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + state_dict[name] = frozen_param_fragments[name] + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + + # Reconstruction protocol: + # + # XXX: document this + + if debug: + for i in range(world_size): + for j in range(len(fp32_flat_groups[0])): + print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}") + + # XXX: memory usage doubles here (zero2) + num_param_groups = len(fp32_flat_groups[0]) + merged_single_partition_of_fp32_groups = [] + for i in range(num_param_groups): + merged_partitions = [sd[i] for sd in fp32_flat_groups] + full_single_fp32_vector = torch.cat(merged_partitions, 0) + merged_single_partition_of_fp32_groups.append(full_single_fp32_vector) + avail_numel = sum( + [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups]) + + if debug: + wanted_params = sum([len(shapes) for shapes in param_shapes]) + wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes]) + # not asserting if there is a mismatch due to possible padding + print(f"Have {avail_numel} numels to process.") + print(f"Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + total_numel = 0 + total_params = 0 + for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups): + offset = 0 + avail_numel = full_single_fp32_vector.numel() + for name, shape in shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + if debug: + print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ") + state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape) + offset += unpartitioned_numel + + # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and + # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex + # paddings performed in the code it's almost impossible to predict the exact numbers w/o the + # live optimizer object, so we are checking that the numbers are within the right range + align_to = 2 * world_size + + def zero2_align(x): + return align_to * math.ceil(x / align_to) + + if debug: + print(f"original offset={offset}, avail_numel={avail_numel}") + + offset = zero2_align(offset) + avail_numel = zero2_align(avail_numel) + + if debug: + print(f"aligned offset={offset}, avail_numel={avail_numel}") + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero2_merge_frozen_params(state_dict, zero_model_states) + + _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def zero3_partitioned_param_info(unpartitioned_numel, world_size): + remainder = unpartitioned_numel % world_size + padding_numel = (world_size - remainder) if remainder else 0 + partitioned_numel = math.ceil(unpartitioned_numel / world_size) + return partitioned_numel, padding_numel + + +def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states): + if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0: + return + + if debug: + for i in range(world_size): + num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values()) + print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}') + + frozen_param_shapes = zero_model_states[0].frozen_param_shapes + wanted_params = len(frozen_param_shapes) + wanted_numel = sum(s.numel() for s in frozen_param_shapes.values()) + avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size + print(f'Frozen params: Have {avail_numel} numels to process.') + print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params') + + total_params = 0 + total_numel = 0 + for name, shape in zero_model_states[0].frozen_param_shapes.items(): + total_params += 1 + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + + param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states) + state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape) + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements") + + +def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states): + param_shapes = zero_model_states[0].param_shapes + avail_numel = fp32_flat_groups[0].numel() * world_size + # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each + # param, re-consolidating each param, while dealing with padding if any + + # merge list of dicts, preserving order + param_shapes = {k: v for d in param_shapes for k, v in d.items()} + + if debug: + for i in range(world_size): + print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}") + + wanted_params = len(param_shapes) + wanted_numel = sum(shape.numel() for shape in param_shapes.values()) + # not asserting if there is a mismatch due to possible padding + avail_numel = fp32_flat_groups[0].numel() * world_size + print(f"Trainable params: Have {avail_numel} numels to process.") + print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.") + + # params + # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support + # out-of-core computing solution + offset = 0 + total_numel = 0 + total_params = 0 + for name, shape in param_shapes.items(): + + unpartitioned_numel = shape.numel() + total_numel += unpartitioned_numel + total_params += 1 + + partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size) + + if debug: + print( + f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}" + ) + + # XXX: memory usage doubles here + state_dict[name] = torch.cat( + tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)), + 0).narrow(0, 0, unpartitioned_numel).view(shape) + offset += partitioned_numel + + offset *= world_size + + # Sanity check + if offset != avail_numel: + raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong") + + print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements") + + +def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states): + state_dict = OrderedDict() + + # buffers + buffers = zero_model_states[0].buffers + state_dict.update(buffers) + if debug: + print(f"added {len(buffers)} buffers") + + _zero3_merge_frozen_params(state_dict, world_size, zero_model_states) + + _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states) + + # recover shared parameters + for pair in zero_model_states[0].shared_params: + if pair[1] in state_dict: + state_dict[pair[0]] = state_dict[pair[1]] + + return state_dict + + +def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with + ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example + via a model hub. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14`` + + Returns: + - pytorch ``state_dict`` + + Note: this approach may not work if your application doesn't have sufficient free CPU memory and + you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with + the checkpoint. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint + # do the training and checkpoint saving + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu + model = model.cpu() # move to cpu + model.load_state_dict(state_dict) + # submit to model hub or save the model to share with others + + In this example the ``model`` will no longer be usable in the deepspeed context of the same + application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead. + + """ + if tag is None: + latest_path = os.path.join(checkpoint_dir, 'latest') + if os.path.isfile(latest_path): + with open(latest_path, 'r') as fd: + tag = fd.read().strip() + else: + raise ValueError(f"Unable to find 'latest' file at {latest_path}") + + ds_checkpoint_dir = os.path.join(checkpoint_dir, tag) + + if not os.path.isdir(ds_checkpoint_dir): + raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist") + + return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir) + + +def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None): + """ + Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be + loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed. + + Args: + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + """ + + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + print(f"Saving fp32 state dict to {output_file}") + torch.save(state_dict, output_file) + + +def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None): + """ + 1. Put the provided model to cpu + 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` + 3. Load it into the provided model + + Args: + - ``model``: the model object to update + - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``) + - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14`` + + Returns: + - ``model`: modified model + + Make sure you have plenty of CPU memory available before you call this function. If you don't + have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it + conveniently placed for you in the checkpoint folder. + + A typical usage might be :: + + from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint + model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir) + # submit to model hub or save the model to share with others + + Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context + of the same application. i.e. you will need to re-initialize the deepspeed engine, since + ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it. + + """ + logger.info(f"Extracting fp32 weights") + state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag) + + logger.info(f"Overwriting model with fp32 weights") + model = model.cpu() + model.load_state_dict(state_dict, strict=False) + + return model + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("checkpoint_dir", + type=str, + help="path to the desired checkpoint folder, e.g., path/checkpoint-12") + parser.add_argument( + "output_file", + type=str, + help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)") + parser.add_argument("-t", + "--tag", + type=str, + default=None, + help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1") + parser.add_argument("-d", "--debug", action='store_true', help="enable debug") + args = parser.parse_args() + + debug = args.debug + + convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir, args.output_file, tag=args.tag)