zheminh commited on
Commit
043eaef
·
verified ·
1 Parent(s): 6e18595

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
args.json ADDED
@@ -0,0 +1,365 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
3
+ "model_type": "deepseek_r1_distill",
4
+ "model_revision": null,
5
+ "task_type": "causal_lm",
6
+ "torch_dtype": "bfloat16",
7
+ "attn_impl": null,
8
+ "num_labels": null,
9
+ "problem_type": null,
10
+ "rope_scaling": null,
11
+ "device_map": null,
12
+ "max_memory": {},
13
+ "local_repo_path": null,
14
+ "template": "deepseek_r1",
15
+ "system": null,
16
+ "max_length": 5120,
17
+ "truncation_strategy": "delete",
18
+ "max_pixels": null,
19
+ "tools_prompt": "react_en",
20
+ "norm_bbox": null,
21
+ "response_prefix": null,
22
+ "padding_side": "right",
23
+ "loss_scale": "default",
24
+ "sequence_parallel_size": 1,
25
+ "use_chat_template": true,
26
+ "template_backend": "swift",
27
+ "dataset": [
28
+ "emilbiju/Trajectory-Data-Math:math"
29
+ ],
30
+ "val_dataset": [],
31
+ "split_dataset_ratio": 0.01,
32
+ "data_seed": 42,
33
+ "dataset_num_proc": 1,
34
+ "dataset_shuffle": true,
35
+ "streaming": false,
36
+ "interleave_prob": null,
37
+ "stopping_strategy": "first_exhausted",
38
+ "shuffle_buffer_size": 1000,
39
+ "enable_cache": false,
40
+ "download_mode": "reuse_dataset_if_exists",
41
+ "columns": {},
42
+ "strict": false,
43
+ "remove_unused_columns": true,
44
+ "model_name": [
45
+ null,
46
+ null
47
+ ],
48
+ "model_author": [
49
+ null,
50
+ null
51
+ ],
52
+ "custom_dataset_info": [],
53
+ "quant_method": null,
54
+ "quant_bits": null,
55
+ "hqq_axis": null,
56
+ "bnb_4bit_compute_dtype": "bfloat16",
57
+ "bnb_4bit_quant_type": "nf4",
58
+ "bnb_4bit_use_double_quant": true,
59
+ "bnb_4bit_quant_storage": null,
60
+ "max_new_tokens": 64,
61
+ "temperature": 0.0,
62
+ "top_k": null,
63
+ "top_p": null,
64
+ "repetition_penalty": null,
65
+ "num_beams": 1,
66
+ "stream": false,
67
+ "stop_words": [],
68
+ "logprobs": false,
69
+ "top_logprobs": null,
70
+ "ckpt_dir": null,
71
+ "load_dataset_config": null,
72
+ "lora_modules": [],
73
+ "tuner_backend": "peft",
74
+ "train_type": "full",
75
+ "adapters": [],
76
+ "external_plugins": [],
77
+ "seed": 42,
78
+ "model_kwargs": {},
79
+ "load_args": false,
80
+ "load_data_args": false,
81
+ "use_hf": true,
82
+ "hub_token": null,
83
+ "custom_register_path": [],
84
+ "ignore_args_error": false,
85
+ "use_swift_lora": false,
86
+ "output_dir": "/home/ubuntu/output/v31-20250504-001829",
87
+ "overwrite_output_dir": false,
88
+ "do_train": false,
89
+ "do_eval": false,
90
+ "do_predict": false,
91
+ "eval_strategy": "steps",
92
+ "prediction_loss_only": false,
93
+ "per_device_train_batch_size": 1,
94
+ "per_device_eval_batch_size": 1,
95
+ "per_gpu_train_batch_size": null,
96
+ "per_gpu_eval_batch_size": null,
97
+ "gradient_accumulation_steps": 2,
98
+ "eval_accumulation_steps": null,
99
+ "eval_delay": 0,
100
+ "torch_empty_cache_steps": null,
101
+ "learning_rate": 1e-05,
102
+ "weight_decay": 0.1,
103
+ "adam_beta1": 0.9,
104
+ "adam_beta2": 0.95,
105
+ "adam_epsilon": 1e-08,
106
+ "max_grad_norm": 1.0,
107
+ "num_train_epochs": 7.0,
108
+ "max_steps": -1,
109
+ "lr_scheduler_type": "cosine",
110
+ "lr_scheduler_kwargs": null,
111
+ "warmup_ratio": 0.05,
112
+ "warmup_steps": 0,
113
+ "log_level": "passive",
114
+ "log_level_replica": "warning",
115
+ "log_on_each_node": true,
116
+ "logging_dir": "/home/ubuntu/output/v31-20250504-001829/runs",
117
+ "logging_strategy": "steps",
118
+ "logging_first_step": true,
119
+ "logging_steps": 5,
120
+ "logging_nan_inf_filter": true,
121
+ "save_strategy": "steps",
122
+ "save_steps": 50.0,
123
+ "save_total_limit": 30,
124
+ "save_safetensors": true,
125
+ "save_on_each_node": false,
126
+ "save_only_model": false,
127
+ "restore_callback_states_from_checkpoint": false,
128
+ "no_cuda": false,
129
+ "use_cpu": false,
130
+ "use_mps_device": false,
131
+ "jit_mode_eval": false,
132
+ "use_ipex": false,
133
+ "bf16": true,
134
+ "fp16": false,
135
+ "fp16_opt_level": "O1",
136
+ "half_precision_backend": "auto",
137
+ "bf16_full_eval": false,
138
+ "fp16_full_eval": false,
139
+ "tf32": null,
140
+ "local_rank": 0,
141
+ "ddp_backend": null,
142
+ "tpu_num_cores": null,
143
+ "tpu_metrics_debug": false,
144
+ "debug": null,
145
+ "dataloader_drop_last": false,
146
+ "eval_steps": 50.0,
147
+ "dataloader_num_workers": 1,
148
+ "dataloader_prefetch_factor": null,
149
+ "past_index": -1,
150
+ "run_name": null,
151
+ "disable_tqdm": null,
152
+ "label_names": null,
153
+ "load_best_model_at_end": false,
154
+ "metric_for_best_model": "loss",
155
+ "greater_is_better": false,
156
+ "ignore_data_skip": false,
157
+ "fsdp": "",
158
+ "fsdp_min_num_params": 0,
159
+ "fsdp_config": null,
160
+ "tp_size": 0,
161
+ "fsdp_transformer_layer_cls_to_wrap": null,
162
+ "accelerator_config": {
163
+ "dispatch_batches": false
164
+ },
165
+ "deepspeed": {
166
+ "fp16": {
167
+ "enabled": "auto",
168
+ "loss_scale": 0,
169
+ "loss_scale_window": 1000,
170
+ "initial_scale_power": 16,
171
+ "hysteresis": 2,
172
+ "min_loss_scale": 1
173
+ },
174
+ "bf16": {
175
+ "enabled": "auto"
176
+ },
177
+ "zero_optimization": {
178
+ "stage": 3,
179
+ "offload_optimizer": {
180
+ "device": "none",
181
+ "pin_memory": true
182
+ },
183
+ "offload_param": {
184
+ "device": "none",
185
+ "pin_memory": true
186
+ },
187
+ "overlap_comm": false,
188
+ "contiguous_gradients": true,
189
+ "sub_group_size": 1000000000.0,
190
+ "reduce_bucket_size": "auto",
191
+ "zero_quantized_weights": false,
192
+ "zero_quantized_gradients": false,
193
+ "stage3_prefetch_bucket_size": "auto",
194
+ "stage3_param_persistence_threshold": "auto",
195
+ "stage3_max_live_parameters": 1000000000.0,
196
+ "stage3_max_reuse_distance": 1000000000.0,
197
+ "stage3_gather_16bit_weights_on_model_save": true
198
+ },
199
+ "gradient_accumulation_steps": "auto",
200
+ "gradient_clipping": "auto",
201
+ "steps_per_print": 2000,
202
+ "train_batch_size": "auto",
203
+ "train_micro_batch_size_per_gpu": "auto",
204
+ "wall_clock_breakdown": false
205
+ },
206
+ "label_smoothing_factor": 0.0,
207
+ "optim": "adamw_torch",
208
+ "optim_args": null,
209
+ "adafactor": false,
210
+ "group_by_length": false,
211
+ "length_column_name": "length",
212
+ "report_to": [
213
+ "tensorboard"
214
+ ],
215
+ "ddp_find_unused_parameters": null,
216
+ "ddp_bucket_cap_mb": null,
217
+ "ddp_broadcast_buffers": null,
218
+ "dataloader_pin_memory": true,
219
+ "dataloader_persistent_workers": false,
220
+ "skip_memory_metrics": true,
221
+ "use_legacy_prediction_loop": false,
222
+ "push_to_hub": false,
223
+ "resume_from_checkpoint": null,
224
+ "hub_model_id": null,
225
+ "hub_strategy": "every_save",
226
+ "hub_private_repo": null,
227
+ "hub_always_push": false,
228
+ "gradient_checkpointing": true,
229
+ "gradient_checkpointing_kwargs": null,
230
+ "include_inputs_for_metrics": false,
231
+ "include_for_metrics": [],
232
+ "eval_do_concat_batches": true,
233
+ "fp16_backend": "auto",
234
+ "push_to_hub_model_id": null,
235
+ "push_to_hub_organization": null,
236
+ "push_to_hub_token": null,
237
+ "mp_parameters": "",
238
+ "auto_find_batch_size": false,
239
+ "full_determinism": false,
240
+ "torchdynamo": null,
241
+ "ray_scope": "last",
242
+ "ddp_timeout": 1800,
243
+ "torch_compile": false,
244
+ "torch_compile_backend": null,
245
+ "torch_compile_mode": null,
246
+ "include_tokens_per_second": false,
247
+ "include_num_input_tokens_seen": false,
248
+ "neftune_noise_alpha": null,
249
+ "optim_target_modules": null,
250
+ "batch_eval_metrics": false,
251
+ "eval_on_start": false,
252
+ "use_liger_kernel": false,
253
+ "eval_use_gather_object": false,
254
+ "average_tokens_across_devices": false,
255
+ "sortish_sampler": false,
256
+ "predict_with_generate": false,
257
+ "generation_max_length": null,
258
+ "generation_num_beams": null,
259
+ "generation_config": null,
260
+ "check_model": true,
261
+ "acc_strategy": "token",
262
+ "train_dataloader_shuffle": true,
263
+ "metric_warmup_step": 0,
264
+ "fsdp_num": 1,
265
+ "acc_steps": 1,
266
+ "eval_use_evalscope": false,
267
+ "eval_datasets": [],
268
+ "eval_limit": null,
269
+ "eval_datasets_args": null,
270
+ "eval_generation_config": null,
271
+ "freeze_parameters": [],
272
+ "freeze_parameters_ratio": 0.0,
273
+ "trainable_parameters": [],
274
+ "freeze_llm": false,
275
+ "freeze_vit": true,
276
+ "freeze_aligner": true,
277
+ "target_modules": [
278
+ "all-linear"
279
+ ],
280
+ "target_regex": null,
281
+ "modules_to_save": [],
282
+ "lora_rank": 8,
283
+ "lora_alpha": 32,
284
+ "lora_dropout": 0.05,
285
+ "lora_bias": "none",
286
+ "lora_dtype": null,
287
+ "lorap_lr_ratio": null,
288
+ "use_rslora": false,
289
+ "use_dora": false,
290
+ "lora_ga_batch_size": 2,
291
+ "lora_ga_iters": 2,
292
+ "lora_ga_max_length": 1024,
293
+ "lora_ga_direction": "ArB2r",
294
+ "lora_ga_scale": "stable",
295
+ "lora_ga_stable_gamma": 16,
296
+ "init_weights": true,
297
+ "fourier_n_frequency": 2000,
298
+ "fourier_scaling": 300.0,
299
+ "boft_block_size": 4,
300
+ "boft_block_num": 0,
301
+ "boft_n_butterfly_factor": 1,
302
+ "boft_dropout": 0.0,
303
+ "vera_rank": 256,
304
+ "vera_projection_prng_key": 0,
305
+ "vera_dropout": 0.0,
306
+ "vera_d_initial": 0.1,
307
+ "adapter_act": "gelu",
308
+ "adapter_length": 128,
309
+ "use_galore": false,
310
+ "galore_target_modules": null,
311
+ "galore_rank": 128,
312
+ "galore_update_proj_gap": 50,
313
+ "galore_scale": 1.0,
314
+ "galore_proj_type": "std",
315
+ "galore_optim_per_parameter": false,
316
+ "galore_with_embedding": false,
317
+ "galore_quantization": false,
318
+ "galore_proj_quant": false,
319
+ "galore_proj_bits": 4,
320
+ "galore_proj_group_size": 256,
321
+ "galore_cos_threshold": 0.4,
322
+ "galore_gamma_proj": 2,
323
+ "galore_queue_size": 5,
324
+ "adalora_target_r": 8,
325
+ "adalora_init_r": 12,
326
+ "adalora_tinit": 0,
327
+ "adalora_tfinal": 0,
328
+ "adalora_deltaT": 1,
329
+ "adalora_beta1": 0.85,
330
+ "adalora_beta2": 0.85,
331
+ "adalora_orth_reg_weight": 0.5,
332
+ "llamapro_num_new_blocks": 4,
333
+ "llamapro_num_groups": null,
334
+ "lisa_activated_layers": 0,
335
+ "lisa_step_interval": 20,
336
+ "reft_layer_key": null,
337
+ "reft_layers": null,
338
+ "reft_rank": 4,
339
+ "reft_intervention_type": "LoreftIntervention",
340
+ "reft_args": null,
341
+ "swanlab_token": null,
342
+ "swanlab_project": null,
343
+ "swanlab_workspace": null,
344
+ "swanlab_exp_name": null,
345
+ "swanlab_mode": "cloud",
346
+ "add_version": true,
347
+ "resume_only_model": false,
348
+ "create_checkpoint_symlink": false,
349
+ "packing": false,
350
+ "lazy_tokenize": false,
351
+ "loss_type": null,
352
+ "optimizer": null,
353
+ "metric": null,
354
+ "zero_hpz_partition_size": null,
355
+ "rank": 0,
356
+ "global_world_size": 8,
357
+ "local_world_size": 8,
358
+ "model_suffix": "DeepSeek-R1-Distill-Qwen-7B",
359
+ "model_info": "ModelInfo(model_type='deepseek_r1_distill', model_dir='/home/ubuntu/.cache/huggingface/hub/models--deepseek-ai--DeepSeek-R1-Distill-Qwen-7B/snapshots/916b56a44061fd5cd7d6a8fb632557ed4f724f60', torch_dtype=torch.bfloat16, max_model_len=131072, quant_method=None, quant_bits=None, rope_scaling=None, config=None, task_type='causal_lm', num_labels=None)",
360
+ "model_meta": "ModelMeta(model_type='deepseek_r1_distill', model_groups=[ModelGroup(models=[Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-14B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-14B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Qwen-32B', model_path=None, ms_revision=None, hf_revision=None)], ignore_patterns=None, requires=['transformers>=4.37'], tags=[]), ModelGroup(models=[Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Llama-8B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Llama-8B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='deepseek-ai/DeepSeek-R1-Distill-Llama-70B', hf_model_id='deepseek-ai/DeepSeek-R1-Distill-Llama-70B', model_path=None, ms_revision=None, hf_revision=None)], ignore_patterns=None, requires=None, tags=[])], template='deepseek_r1', get_function=<function get_model_tokenizer_with_flash_attn at 0x71ef10bac8b0>, model_arch='llama', architectures=['Qwen2ForCausalLM', 'LlamaForCausalLM'], additional_saved_files=[], torch_dtype=None, is_multimodal=False, is_reward=False, task_type=None, ignore_patterns=['*.bin', '*.safetensors'], requires=['transformers>=4.37'], tags=[])",
361
+ "model_dir": "/home/ubuntu/.cache/huggingface/hub/models--deepseek-ai--DeepSeek-R1-Distill-Qwen-7B/snapshots/916b56a44061fd5cd7d6a8fb632557ed4f724f60",
362
+ "hub": "<class 'swift.hub.hub.HFHub'>",
363
+ "evaluation_strategy": "steps",
364
+ "training_args": "Seq2SeqTrainingArguments(output_dir='/home/ubuntu/output/v31-20250504-001829', overwrite_output_dir=False, do_train=False, do_eval=True, do_predict=False, eval_strategy=<IntervalStrategy.STEPS: 'steps'>, prediction_loss_only=False, per_device_train_batch_size=1, per_device_eval_batch_size=1, per_gpu_train_batch_size=None, per_gpu_eval_batch_size=None, gradient_accumulation_steps=2, eval_accumulation_steps=None, eval_delay=0, torch_empty_cache_steps=None, learning_rate=1e-05, weight_decay=0.1, adam_beta1=0.9, adam_beta2=0.95, adam_epsilon=1e-08, max_grad_norm=1.0, num_train_epochs=7.0, max_steps=-1, lr_scheduler_type=<SchedulerType.COSINE: 'cosine'>, lr_scheduler_kwargs=None, warmup_ratio=0.05, warmup_steps=0, log_level='passive', log_level_replica='warning', log_on_each_node=True, logging_dir='/home/ubuntu/output/v31-20250504-001829/runs', logging_strategy=<IntervalStrategy.STEPS: 'steps'>, logging_first_step=True, logging_steps=5, logging_nan_inf_filter=True, save_strategy=<SaveStrategy.STEPS: 'steps'>, save_steps=50, save_total_limit=30, save_safetensors=True, save_on_each_node=False, save_only_model=False, restore_callback_states_from_checkpoint=False, no_cuda=False, use_cpu=False, use_mps_device=False, seed=42, data_seed=42, jit_mode_eval=False, use_ipex=False, bf16=True, fp16=False, fp16_opt_level='O1', half_precision_backend='auto', bf16_full_eval=False, fp16_full_eval=False, tf32=None, local_rank=0, ddp_backend=None, tpu_num_cores=None, tpu_metrics_debug=False, debug=[], dataloader_drop_last=False, eval_steps=50, dataloader_num_workers=1, dataloader_prefetch_factor=10, past_index=-1, run_name='/home/ubuntu/output/v31-20250504-001829', disable_tqdm=False, remove_unused_columns=False, label_names=None, load_best_model_at_end=False, metric_for_best_model='loss', greater_is_better=False, ignore_data_skip=False, fsdp=[], fsdp_min_num_params=0, fsdp_config={'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}, tp_size=0, fsdp_transformer_layer_cls_to_wrap=None, accelerator_config=AcceleratorConfig(split_batches=False, dispatch_batches=False, even_batches=True, use_seedable_sampler=True, non_blocking=False, gradient_accumulation_kwargs=None, use_configured_state=False), deepspeed={'fp16': {'enabled': 'auto', 'loss_scale': 0, 'loss_scale_window': 1000, 'initial_scale_power': 16, 'hysteresis': 2, 'min_loss_scale': 1}, 'bf16': {'enabled': 'auto'}, 'zero_optimization': {'stage': 3, 'offload_optimizer': {'device': 'none', 'pin_memory': True}, 'offload_param': {'device': 'none', 'pin_memory': True}, 'overlap_comm': False, 'contiguous_gradients': True, 'sub_group_size': 1000000000.0, 'reduce_bucket_size': 'auto', 'zero_quantized_weights': False, 'zero_quantized_gradients': False, 'stage3_prefetch_bucket_size': 'auto', 'stage3_param_persistence_threshold': 'auto', 'stage3_max_live_parameters': 1000000000.0, 'stage3_max_reuse_distance': 1000000000.0, 'stage3_gather_16bit_weights_on_model_save': True}, 'gradient_accumulation_steps': 'auto', 'gradient_clipping': 'auto', 'steps_per_print': 2000, 'train_batch_size': 'auto', 'train_micro_batch_size_per_gpu': 'auto', 'wall_clock_breakdown': False}, label_smoothing_factor=0.0, optim=<OptimizerNames.ADAMW_TORCH: 'adamw_torch'>, optim_args=None, adafactor=False, group_by_length=False, length_column_name='length', report_to=['tensorboard'], ddp_find_unused_parameters=None, ddp_bucket_cap_mb=None, ddp_broadcast_buffers=None, dataloader_pin_memory=True, dataloader_persistent_workers=False, skip_memory_metrics=True, use_legacy_prediction_loop=False, push_to_hub=False, resume_from_checkpoint=None, hub_model_id=None, hub_strategy=<HubStrategy.EVERY_SAVE: 'every_save'>, hub_token=None, hub_private_repo=None, hub_always_push=False, gradient_checkpointing=True, gradient_checkpointing_kwargs=None, include_inputs_for_metrics=False, include_for_metrics=[], eval_do_concat_batches=True, fp16_backend='auto', push_to_hub_model_id=None, push_to_hub_organization=None, push_to_hub_token=None, mp_parameters='', auto_find_batch_size=False, full_determinism=False, torchdynamo=None, ray_scope='last', ddp_timeout=1800, torch_compile=False, torch_compile_backend=None, torch_compile_mode=None, include_tokens_per_second=None, include_num_input_tokens_seen=None, neftune_noise_alpha=None, optim_target_modules=None, batch_eval_metrics=False, eval_on_start=False, use_liger_kernel=False, eval_use_gather_object=False, average_tokens_across_devices=None, sortish_sampler=False, predict_with_generate=False, generation_max_length=None, generation_num_beams=None, generation_config=None, check_model=True, acc_strategy='token', train_dataloader_shuffle=True, metric_warmup_step=0, fsdp_num=1, acc_steps=1, eval_use_evalscope=False, eval_datasets=[], eval_limit=None, eval_datasets_args=None, eval_generation_config=None, train_type='full', optimizer=None, local_repo_path=None, galore_config=None)"
365
+ }
config.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen2ForCausalLM"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "bos_token_id": 151643,
7
+ "eos_token_id": 151643,
8
+ "hidden_act": "silu",
9
+ "hidden_size": 3584,
10
+ "initializer_range": 0.02,
11
+ "intermediate_size": 18944,
12
+ "max_position_embeddings": 131072,
13
+ "max_window_layers": 28,
14
+ "model_type": "qwen2",
15
+ "num_attention_heads": 28,
16
+ "num_hidden_layers": 28,
17
+ "num_key_value_heads": 4,
18
+ "pad_token_id": 151643,
19
+ "rms_norm_eps": 1e-06,
20
+ "rope_scaling": null,
21
+ "rope_theta": 10000,
22
+ "sliding_window": 4096,
23
+ "tie_word_embeddings": false,
24
+ "torch_dtype": "bfloat16",
25
+ "transformers_version": "4.51.3",
26
+ "use_cache": false,
27
+ "use_mrope": false,
28
+ "use_sliding_window": false,
29
+ "vocab_size": 152064
30
+ }
generation_config.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 151646,
4
+ "do_sample": true,
5
+ "eos_token_id": 151643,
6
+ "temperature": 0.6,
7
+ "top_p": 0.95,
8
+ "transformers_version": "4.51.3"
9
+ }
latest ADDED
@@ -0,0 +1 @@
 
 
1
+ global_step400
model-00001-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1b0d6ae3c095d34d39a1934f611725e5938522b6e22d9e48cc6a3856f280cf41
3
+ size 4877660776
model-00002-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:54d37454ed3870ad218b1d414b80fbc3f104d1e0c0bf0c01d40ff94af203f963
3
+ size 4932751008
model-00003-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2f2f1b1fa09e997027d38206d03d498002a3e23dc6fb0c61633c2ab30c6afab
3
+ size 4330865200
model-00004-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b67501d2acffe93375b9b066cdf304f01179f27b74867859e1307539ce4ffe9
3
+ size 1089994880
model.safetensors.index.json ADDED
@@ -0,0 +1,346 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 15231233024
4
+ },
5
+ "weight_map": {
6
+ "lm_head.weight": "model-00004-of-00004.safetensors",
7
+ "model.embed_tokens.weight": "model-00001-of-00004.safetensors",
8
+ "model.layers.0.input_layernorm.weight": "model-00001-of-00004.safetensors",
9
+ "model.layers.0.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
10
+ "model.layers.0.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
11
+ "model.layers.0.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
12
+ "model.layers.0.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
13
+ "model.layers.0.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
14
+ "model.layers.0.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
15
+ "model.layers.0.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
16
+ "model.layers.0.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
17
+ "model.layers.0.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
18
+ "model.layers.0.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
19
+ "model.layers.0.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
20
+ "model.layers.1.input_layernorm.weight": "model-00001-of-00004.safetensors",
21
+ "model.layers.1.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
22
+ "model.layers.1.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
23
+ "model.layers.1.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
24
+ "model.layers.1.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
25
+ "model.layers.1.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
26
+ "model.layers.1.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
27
+ "model.layers.1.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
28
+ "model.layers.1.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
29
+ "model.layers.1.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
30
+ "model.layers.1.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
31
+ "model.layers.1.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
32
+ "model.layers.10.input_layernorm.weight": "model-00002-of-00004.safetensors",
33
+ "model.layers.10.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
34
+ "model.layers.10.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
35
+ "model.layers.10.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
36
+ "model.layers.10.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
37
+ "model.layers.10.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
38
+ "model.layers.10.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
39
+ "model.layers.10.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
40
+ "model.layers.10.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
41
+ "model.layers.10.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
42
+ "model.layers.10.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
43
+ "model.layers.10.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
44
+ "model.layers.11.input_layernorm.weight": "model-00002-of-00004.safetensors",
45
+ "model.layers.11.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
46
+ "model.layers.11.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
47
+ "model.layers.11.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
48
+ "model.layers.11.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
49
+ "model.layers.11.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
50
+ "model.layers.11.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
51
+ "model.layers.11.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
52
+ "model.layers.11.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
53
+ "model.layers.11.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
54
+ "model.layers.11.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
55
+ "model.layers.11.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
56
+ "model.layers.12.input_layernorm.weight": "model-00002-of-00004.safetensors",
57
+ "model.layers.12.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
58
+ "model.layers.12.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
59
+ "model.layers.12.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
60
+ "model.layers.12.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
61
+ "model.layers.12.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
62
+ "model.layers.12.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
63
+ "model.layers.12.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
64
+ "model.layers.12.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
65
+ "model.layers.12.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
66
+ "model.layers.12.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
67
+ "model.layers.12.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
68
+ "model.layers.13.input_layernorm.weight": "model-00002-of-00004.safetensors",
69
+ "model.layers.13.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
70
+ "model.layers.13.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
71
+ "model.layers.13.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
72
+ "model.layers.13.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
73
+ "model.layers.13.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
74
+ "model.layers.13.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
75
+ "model.layers.13.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
76
+ "model.layers.13.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
77
+ "model.layers.13.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
78
+ "model.layers.13.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
79
+ "model.layers.13.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
80
+ "model.layers.14.input_layernorm.weight": "model-00002-of-00004.safetensors",
81
+ "model.layers.14.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
82
+ "model.layers.14.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
83
+ "model.layers.14.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
84
+ "model.layers.14.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
85
+ "model.layers.14.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
86
+ "model.layers.14.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
87
+ "model.layers.14.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
88
+ "model.layers.14.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
89
+ "model.layers.14.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
90
+ "model.layers.14.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
91
+ "model.layers.14.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
92
+ "model.layers.15.input_layernorm.weight": "model-00002-of-00004.safetensors",
93
+ "model.layers.15.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
94
+ "model.layers.15.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
95
+ "model.layers.15.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
96
+ "model.layers.15.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
97
+ "model.layers.15.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
98
+ "model.layers.15.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
99
+ "model.layers.15.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
100
+ "model.layers.15.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
101
+ "model.layers.15.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
102
+ "model.layers.15.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
103
+ "model.layers.15.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
104
+ "model.layers.16.input_layernorm.weight": "model-00002-of-00004.safetensors",
105
+ "model.layers.16.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
106
+ "model.layers.16.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
107
+ "model.layers.16.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
108
+ "model.layers.16.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
109
+ "model.layers.16.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
110
+ "model.layers.16.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
111
+ "model.layers.16.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
112
+ "model.layers.16.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
113
+ "model.layers.16.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
114
+ "model.layers.16.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
115
+ "model.layers.16.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
116
+ "model.layers.17.input_layernorm.weight": "model-00002-of-00004.safetensors",
117
+ "model.layers.17.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
118
+ "model.layers.17.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
119
+ "model.layers.17.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
120
+ "model.layers.17.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
121
+ "model.layers.17.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
122
+ "model.layers.17.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
123
+ "model.layers.17.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
124
+ "model.layers.17.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
125
+ "model.layers.17.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
126
+ "model.layers.17.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
127
+ "model.layers.17.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
128
+ "model.layers.18.input_layernorm.weight": "model-00003-of-00004.safetensors",
129
+ "model.layers.18.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
130
+ "model.layers.18.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
131
+ "model.layers.18.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
132
+ "model.layers.18.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
133
+ "model.layers.18.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
134
+ "model.layers.18.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
135
+ "model.layers.18.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
136
+ "model.layers.18.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
137
+ "model.layers.18.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
138
+ "model.layers.18.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
139
+ "model.layers.18.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
140
+ "model.layers.19.input_layernorm.weight": "model-00003-of-00004.safetensors",
141
+ "model.layers.19.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
142
+ "model.layers.19.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
143
+ "model.layers.19.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
144
+ "model.layers.19.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
145
+ "model.layers.19.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
146
+ "model.layers.19.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
147
+ "model.layers.19.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
148
+ "model.layers.19.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
149
+ "model.layers.19.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
150
+ "model.layers.19.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
151
+ "model.layers.19.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
152
+ "model.layers.2.input_layernorm.weight": "model-00001-of-00004.safetensors",
153
+ "model.layers.2.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
154
+ "model.layers.2.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
155
+ "model.layers.2.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
156
+ "model.layers.2.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
157
+ "model.layers.2.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
158
+ "model.layers.2.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
159
+ "model.layers.2.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
160
+ "model.layers.2.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
161
+ "model.layers.2.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
162
+ "model.layers.2.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
163
+ "model.layers.2.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
164
+ "model.layers.20.input_layernorm.weight": "model-00003-of-00004.safetensors",
165
+ "model.layers.20.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
166
+ "model.layers.20.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
167
+ "model.layers.20.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
168
+ "model.layers.20.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
169
+ "model.layers.20.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
170
+ "model.layers.20.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
171
+ "model.layers.20.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
172
+ "model.layers.20.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
173
+ "model.layers.20.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
174
+ "model.layers.20.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
175
+ "model.layers.20.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
176
+ "model.layers.21.input_layernorm.weight": "model-00003-of-00004.safetensors",
177
+ "model.layers.21.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
178
+ "model.layers.21.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
179
+ "model.layers.21.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
180
+ "model.layers.21.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
181
+ "model.layers.21.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
182
+ "model.layers.21.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
183
+ "model.layers.21.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
184
+ "model.layers.21.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
185
+ "model.layers.21.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
186
+ "model.layers.21.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
187
+ "model.layers.21.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
188
+ "model.layers.22.input_layernorm.weight": "model-00003-of-00004.safetensors",
189
+ "model.layers.22.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
190
+ "model.layers.22.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
191
+ "model.layers.22.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
192
+ "model.layers.22.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
193
+ "model.layers.22.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
194
+ "model.layers.22.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
195
+ "model.layers.22.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
196
+ "model.layers.22.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
197
+ "model.layers.22.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
198
+ "model.layers.22.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
199
+ "model.layers.22.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
200
+ "model.layers.23.input_layernorm.weight": "model-00003-of-00004.safetensors",
201
+ "model.layers.23.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
202
+ "model.layers.23.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
203
+ "model.layers.23.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
204
+ "model.layers.23.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
205
+ "model.layers.23.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
206
+ "model.layers.23.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
207
+ "model.layers.23.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
208
+ "model.layers.23.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
209
+ "model.layers.23.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
210
+ "model.layers.23.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
211
+ "model.layers.23.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
212
+ "model.layers.24.input_layernorm.weight": "model-00003-of-00004.safetensors",
213
+ "model.layers.24.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
214
+ "model.layers.24.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
215
+ "model.layers.24.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
216
+ "model.layers.24.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
217
+ "model.layers.24.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
218
+ "model.layers.24.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
219
+ "model.layers.24.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
220
+ "model.layers.24.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
221
+ "model.layers.24.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
222
+ "model.layers.24.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
223
+ "model.layers.24.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
224
+ "model.layers.25.input_layernorm.weight": "model-00003-of-00004.safetensors",
225
+ "model.layers.25.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
226
+ "model.layers.25.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
227
+ "model.layers.25.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
228
+ "model.layers.25.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
229
+ "model.layers.25.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
230
+ "model.layers.25.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
231
+ "model.layers.25.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
232
+ "model.layers.25.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
233
+ "model.layers.25.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
234
+ "model.layers.25.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
235
+ "model.layers.25.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
236
+ "model.layers.26.input_layernorm.weight": "model-00003-of-00004.safetensors",
237
+ "model.layers.26.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
238
+ "model.layers.26.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
239
+ "model.layers.26.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
240
+ "model.layers.26.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
241
+ "model.layers.26.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
242
+ "model.layers.26.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
243
+ "model.layers.26.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
244
+ "model.layers.26.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
245
+ "model.layers.26.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
246
+ "model.layers.26.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
247
+ "model.layers.26.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
248
+ "model.layers.27.input_layernorm.weight": "model-00003-of-00004.safetensors",
249
+ "model.layers.27.mlp.down_proj.weight": "model-00003-of-00004.safetensors",
250
+ "model.layers.27.mlp.gate_proj.weight": "model-00003-of-00004.safetensors",
251
+ "model.layers.27.mlp.up_proj.weight": "model-00003-of-00004.safetensors",
252
+ "model.layers.27.post_attention_layernorm.weight": "model-00003-of-00004.safetensors",
253
+ "model.layers.27.self_attn.k_proj.bias": "model-00003-of-00004.safetensors",
254
+ "model.layers.27.self_attn.k_proj.weight": "model-00003-of-00004.safetensors",
255
+ "model.layers.27.self_attn.o_proj.weight": "model-00003-of-00004.safetensors",
256
+ "model.layers.27.self_attn.q_proj.bias": "model-00003-of-00004.safetensors",
257
+ "model.layers.27.self_attn.q_proj.weight": "model-00003-of-00004.safetensors",
258
+ "model.layers.27.self_attn.v_proj.bias": "model-00003-of-00004.safetensors",
259
+ "model.layers.27.self_attn.v_proj.weight": "model-00003-of-00004.safetensors",
260
+ "model.layers.3.input_layernorm.weight": "model-00001-of-00004.safetensors",
261
+ "model.layers.3.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
262
+ "model.layers.3.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
263
+ "model.layers.3.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
264
+ "model.layers.3.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
265
+ "model.layers.3.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
266
+ "model.layers.3.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
267
+ "model.layers.3.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
268
+ "model.layers.3.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
269
+ "model.layers.3.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
270
+ "model.layers.3.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
271
+ "model.layers.3.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
272
+ "model.layers.4.input_layernorm.weight": "model-00001-of-00004.safetensors",
273
+ "model.layers.4.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
274
+ "model.layers.4.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
275
+ "model.layers.4.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
276
+ "model.layers.4.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
277
+ "model.layers.4.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
278
+ "model.layers.4.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
279
+ "model.layers.4.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
280
+ "model.layers.4.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
281
+ "model.layers.4.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
282
+ "model.layers.4.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
283
+ "model.layers.4.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
284
+ "model.layers.5.input_layernorm.weight": "model-00001-of-00004.safetensors",
285
+ "model.layers.5.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
286
+ "model.layers.5.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
287
+ "model.layers.5.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
288
+ "model.layers.5.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
289
+ "model.layers.5.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
290
+ "model.layers.5.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
291
+ "model.layers.5.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
292
+ "model.layers.5.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
293
+ "model.layers.5.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
294
+ "model.layers.5.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
295
+ "model.layers.5.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
296
+ "model.layers.6.input_layernorm.weight": "model-00001-of-00004.safetensors",
297
+ "model.layers.6.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
298
+ "model.layers.6.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
299
+ "model.layers.6.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
300
+ "model.layers.6.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
301
+ "model.layers.6.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
302
+ "model.layers.6.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
303
+ "model.layers.6.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
304
+ "model.layers.6.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
305
+ "model.layers.6.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
306
+ "model.layers.6.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
307
+ "model.layers.6.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
308
+ "model.layers.7.input_layernorm.weight": "model-00001-of-00004.safetensors",
309
+ "model.layers.7.mlp.down_proj.weight": "model-00001-of-00004.safetensors",
310
+ "model.layers.7.mlp.gate_proj.weight": "model-00001-of-00004.safetensors",
311
+ "model.layers.7.mlp.up_proj.weight": "model-00001-of-00004.safetensors",
312
+ "model.layers.7.post_attention_layernorm.weight": "model-00001-of-00004.safetensors",
313
+ "model.layers.7.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
314
+ "model.layers.7.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
315
+ "model.layers.7.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
316
+ "model.layers.7.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
317
+ "model.layers.7.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
318
+ "model.layers.7.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
319
+ "model.layers.7.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
320
+ "model.layers.8.input_layernorm.weight": "model-00002-of-00004.safetensors",
321
+ "model.layers.8.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
322
+ "model.layers.8.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
323
+ "model.layers.8.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
324
+ "model.layers.8.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
325
+ "model.layers.8.self_attn.k_proj.bias": "model-00001-of-00004.safetensors",
326
+ "model.layers.8.self_attn.k_proj.weight": "model-00001-of-00004.safetensors",
327
+ "model.layers.8.self_attn.o_proj.weight": "model-00001-of-00004.safetensors",
328
+ "model.layers.8.self_attn.q_proj.bias": "model-00001-of-00004.safetensors",
329
+ "model.layers.8.self_attn.q_proj.weight": "model-00001-of-00004.safetensors",
330
+ "model.layers.8.self_attn.v_proj.bias": "model-00001-of-00004.safetensors",
331
+ "model.layers.8.self_attn.v_proj.weight": "model-00001-of-00004.safetensors",
332
+ "model.layers.9.input_layernorm.weight": "model-00002-of-00004.safetensors",
333
+ "model.layers.9.mlp.down_proj.weight": "model-00002-of-00004.safetensors",
334
+ "model.layers.9.mlp.gate_proj.weight": "model-00002-of-00004.safetensors",
335
+ "model.layers.9.mlp.up_proj.weight": "model-00002-of-00004.safetensors",
336
+ "model.layers.9.post_attention_layernorm.weight": "model-00002-of-00004.safetensors",
337
+ "model.layers.9.self_attn.k_proj.bias": "model-00002-of-00004.safetensors",
338
+ "model.layers.9.self_attn.k_proj.weight": "model-00002-of-00004.safetensors",
339
+ "model.layers.9.self_attn.o_proj.weight": "model-00002-of-00004.safetensors",
340
+ "model.layers.9.self_attn.q_proj.bias": "model-00002-of-00004.safetensors",
341
+ "model.layers.9.self_attn.q_proj.weight": "model-00002-of-00004.safetensors",
342
+ "model.layers.9.self_attn.v_proj.bias": "model-00002-of-00004.safetensors",
343
+ "model.layers.9.self_attn.v_proj.weight": "model-00002-of-00004.safetensors",
344
+ "model.norm.weight": "model-00003-of-00004.safetensors"
345
+ }
346
+ }
rng_state_0.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a1bec598899f9d59e70c1b4705ce420a1e0a670957b6c8153a589880068ae5a4
3
+ size 15984
rng_state_1.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c60d2348aae518f4c44693db9c9b4b3a3299c556e7f0a86c188b2e4c3e364a7c
3
+ size 15984
rng_state_2.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ffe5a79d3bcb4ce033de360bc765e616316e3562aba25887cd85c4adbb935abf
3
+ size 15984
rng_state_3.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a9a9d1f6e22677721841890e6a27855857e6840137650d609eb8e4ac13b71d29
3
+ size 15984
rng_state_4.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bcac4ff84388a6a4fe3bcae6207c68b2ee5528fb3b6de8cc3588fe1975462aa5
3
+ size 15984
rng_state_5.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:33fce3cdf5c1b8a8a291e0c73b384e3ad5252640e21e942b44b26b8b0928ffa9
3
+ size 15984
rng_state_6.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:919e675f3bcaf4f3c8ba35cd8debf85aec3bbc3c8e5019b74431e0a314e4d37a
3
+ size 15984
rng_state_7.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8bf6479ce82b88efc6a72a8ee512162b3d0ecab972817296d38ab9c448bb8d96
3
+ size 15984
scheduler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:79ea2dac055925dae4d6c45e466b06bf291306d706bf2d24221492bcb327b2d6
3
+ size 1064
special_tokens_map.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<|begin▁of▁sentence|>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<|end▁of▁sentence|>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "<|end▁of▁sentence|>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ }
23
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e20ddafc659ba90242154b55275402edeca0715e5dbb30f56815a4ce081f4893
3
+ size 11422778
tokenizer_config.json ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "add_prefix_space": null,
5
+ "added_tokens_decoder": {
6
+ "151643": {
7
+ "content": "<|end▁of▁sentence|>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false,
12
+ "special": true
13
+ },
14
+ "151644": {
15
+ "content": "<|User|>",
16
+ "lstrip": false,
17
+ "normalized": false,
18
+ "rstrip": false,
19
+ "single_word": false,
20
+ "special": false
21
+ },
22
+ "151645": {
23
+ "content": "<|Assistant|>",
24
+ "lstrip": false,
25
+ "normalized": false,
26
+ "rstrip": false,
27
+ "single_word": false,
28
+ "special": false
29
+ },
30
+ "151646": {
31
+ "content": "<|begin▁of▁sentence|>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false,
36
+ "special": true
37
+ },
38
+ "151647": {
39
+ "content": "<|EOT|>",
40
+ "lstrip": false,
41
+ "normalized": false,
42
+ "rstrip": false,
43
+ "single_word": false,
44
+ "special": false
45
+ },
46
+ "151648": {
47
+ "content": "<think>",
48
+ "lstrip": false,
49
+ "normalized": false,
50
+ "rstrip": false,
51
+ "single_word": false,
52
+ "special": false
53
+ },
54
+ "151649": {
55
+ "content": "</think>",
56
+ "lstrip": false,
57
+ "normalized": false,
58
+ "rstrip": false,
59
+ "single_word": false,
60
+ "special": false
61
+ },
62
+ "151650": {
63
+ "content": "<|quad_start|>",
64
+ "lstrip": false,
65
+ "normalized": false,
66
+ "rstrip": false,
67
+ "single_word": false,
68
+ "special": true
69
+ },
70
+ "151651": {
71
+ "content": "<|quad_end|>",
72
+ "lstrip": false,
73
+ "normalized": false,
74
+ "rstrip": false,
75
+ "single_word": false,
76
+ "special": true
77
+ },
78
+ "151652": {
79
+ "content": "<|vision_start|>",
80
+ "lstrip": false,
81
+ "normalized": false,
82
+ "rstrip": false,
83
+ "single_word": false,
84
+ "special": true
85
+ },
86
+ "151653": {
87
+ "content": "<|vision_end|>",
88
+ "lstrip": false,
89
+ "normalized": false,
90
+ "rstrip": false,
91
+ "single_word": false,
92
+ "special": true
93
+ },
94
+ "151654": {
95
+ "content": "<|vision_pad|>",
96
+ "lstrip": false,
97
+ "normalized": false,
98
+ "rstrip": false,
99
+ "single_word": false,
100
+ "special": true
101
+ },
102
+ "151655": {
103
+ "content": "<|image_pad|>",
104
+ "lstrip": false,
105
+ "normalized": false,
106
+ "rstrip": false,
107
+ "single_word": false,
108
+ "special": true
109
+ },
110
+ "151656": {
111
+ "content": "<|video_pad|>",
112
+ "lstrip": false,
113
+ "normalized": false,
114
+ "rstrip": false,
115
+ "single_word": false,
116
+ "special": true
117
+ },
118
+ "151657": {
119
+ "content": "<tool_call>",
120
+ "lstrip": false,
121
+ "normalized": false,
122
+ "rstrip": false,
123
+ "single_word": false,
124
+ "special": false
125
+ },
126
+ "151658": {
127
+ "content": "</tool_call>",
128
+ "lstrip": false,
129
+ "normalized": false,
130
+ "rstrip": false,
131
+ "single_word": false,
132
+ "special": false
133
+ },
134
+ "151659": {
135
+ "content": "<|fim_prefix|>",
136
+ "lstrip": false,
137
+ "normalized": false,
138
+ "rstrip": false,
139
+ "single_word": false,
140
+ "special": false
141
+ },
142
+ "151660": {
143
+ "content": "<|fim_middle|>",
144
+ "lstrip": false,
145
+ "normalized": false,
146
+ "rstrip": false,
147
+ "single_word": false,
148
+ "special": false
149
+ },
150
+ "151661": {
151
+ "content": "<|fim_suffix|>",
152
+ "lstrip": false,
153
+ "normalized": false,
154
+ "rstrip": false,
155
+ "single_word": false,
156
+ "special": false
157
+ },
158
+ "151662": {
159
+ "content": "<|fim_pad|>",
160
+ "lstrip": false,
161
+ "normalized": false,
162
+ "rstrip": false,
163
+ "single_word": false,
164
+ "special": false
165
+ },
166
+ "151663": {
167
+ "content": "<|repo_name|>",
168
+ "lstrip": false,
169
+ "normalized": false,
170
+ "rstrip": false,
171
+ "single_word": false,
172
+ "special": false
173
+ },
174
+ "151664": {
175
+ "content": "<|file_sep|>",
176
+ "lstrip": false,
177
+ "normalized": false,
178
+ "rstrip": false,
179
+ "single_word": false,
180
+ "special": false
181
+ }
182
+ },
183
+ "bos_token": "<|begin▁of▁sentence|>",
184
+ "chat_template": "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin��>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set ns.is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if ns.is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '</think>' in content %}{% set content = content.split('</think>')[-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_tool = true -%}{%- if ns.is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set ns.is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|><think>\\n'}}{% endif %}",
185
+ "clean_up_tokenization_spaces": false,
186
+ "eos_token": "<|end▁of▁sentence|>",
187
+ "extra_special_tokens": {},
188
+ "legacy": true,
189
+ "model_max_length": 16384,
190
+ "pad_token": "<|end▁of▁sentence|>",
191
+ "sp_model_kwargs": {},
192
+ "tokenizer_class": "LlamaTokenizerFast",
193
+ "unk_token": null,
194
+ "use_default_system_prompt": false
195
+ }
trainer_state.json ADDED
@@ -0,0 +1,916 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_global_step": 100,
3
+ "best_metric": 0.39695656,
4
+ "best_model_checkpoint": "/home/ubuntu/output/v31-20250504-001829/checkpoint-100",
5
+ "epoch": 4.301075268817204,
6
+ "eval_steps": 50,
7
+ "global_step": 400,
8
+ "is_hyper_param_search": false,
9
+ "is_local_process_zero": true,
10
+ "is_world_process_zero": true,
11
+ "log_history": [
12
+ {
13
+ "epoch": 0.010752688172043012,
14
+ "grad_norm": 2.8397373471487466,
15
+ "learning_rate": 3.0303030303030305e-07,
16
+ "loss": 0.6789064407348633,
17
+ "memory(GiB)": 33.21,
18
+ "step": 1,
19
+ "token_acc": 0.7741811175337187,
20
+ "train_speed(iter/s)": 0.077627
21
+ },
22
+ {
23
+ "epoch": 0.053763440860215055,
24
+ "grad_norm": 3.004365830179039,
25
+ "learning_rate": 1.5151515151515152e-06,
26
+ "loss": 0.6730813980102539,
27
+ "memory(GiB)": 35.76,
28
+ "step": 5,
29
+ "token_acc": 0.8227406519132235,
30
+ "train_speed(iter/s)": 0.190932
31
+ },
32
+ {
33
+ "epoch": 0.10752688172043011,
34
+ "grad_norm": 2.515744462969929,
35
+ "learning_rate": 3.0303030303030305e-06,
36
+ "loss": 0.6481359958648681,
37
+ "memory(GiB)": 35.76,
38
+ "step": 10,
39
+ "token_acc": 0.8160835048515143,
40
+ "train_speed(iter/s)": 0.231618
41
+ },
42
+ {
43
+ "epoch": 0.16129032258064516,
44
+ "grad_norm": 1.748868361489095,
45
+ "learning_rate": 4.5454545454545455e-06,
46
+ "loss": 0.5695308208465576,
47
+ "memory(GiB)": 35.76,
48
+ "step": 15,
49
+ "token_acc": 0.8397823007530009,
50
+ "train_speed(iter/s)": 0.244031
51
+ },
52
+ {
53
+ "epoch": 0.21505376344086022,
54
+ "grad_norm": 1.0225907480921308,
55
+ "learning_rate": 6.060606060606061e-06,
56
+ "loss": 0.5106754302978516,
57
+ "memory(GiB)": 35.76,
58
+ "step": 20,
59
+ "token_acc": 0.8501878777977455,
60
+ "train_speed(iter/s)": 0.250238
61
+ },
62
+ {
63
+ "epoch": 0.26881720430107525,
64
+ "grad_norm": 1.2639964303465994,
65
+ "learning_rate": 7.5757575757575764e-06,
66
+ "loss": 0.4408127307891846,
67
+ "memory(GiB)": 35.76,
68
+ "step": 25,
69
+ "token_acc": 0.8509183536667113,
70
+ "train_speed(iter/s)": 0.254089
71
+ },
72
+ {
73
+ "epoch": 0.3225806451612903,
74
+ "grad_norm": 0.8267338618549237,
75
+ "learning_rate": 9.090909090909091e-06,
76
+ "loss": 0.42465009689331057,
77
+ "memory(GiB)": 35.76,
78
+ "step": 30,
79
+ "token_acc": 0.8319305277221108,
80
+ "train_speed(iter/s)": 0.253029
81
+ },
82
+ {
83
+ "epoch": 0.3763440860215054,
84
+ "grad_norm": 0.7590056670512465,
85
+ "learning_rate": 9.999741584205621e-06,
86
+ "loss": 0.40682473182678225,
87
+ "memory(GiB)": 35.76,
88
+ "step": 35,
89
+ "token_acc": 0.8784954317130087,
90
+ "train_speed(iter/s)": 0.256755
91
+ },
92
+ {
93
+ "epoch": 0.43010752688172044,
94
+ "grad_norm": 0.7473548691186508,
95
+ "learning_rate": 9.99683471327489e-06,
96
+ "loss": 0.39803519248962405,
97
+ "memory(GiB)": 35.76,
98
+ "step": 40,
99
+ "token_acc": 0.8626253418413856,
100
+ "train_speed(iter/s)": 0.259978
101
+ },
102
+ {
103
+ "epoch": 0.4838709677419355,
104
+ "grad_norm": 0.7312727330719088,
105
+ "learning_rate": 9.99069983579947e-06,
106
+ "loss": 0.3946224689483643,
107
+ "memory(GiB)": 35.76,
108
+ "step": 45,
109
+ "token_acc": 0.8563264614993862,
110
+ "train_speed(iter/s)": 0.264063
111
+ },
112
+ {
113
+ "epoch": 0.5376344086021505,
114
+ "grad_norm": 0.680023295861087,
115
+ "learning_rate": 9.981340914973221e-06,
116
+ "loss": 0.3800630807876587,
117
+ "memory(GiB)": 35.76,
118
+ "step": 50,
119
+ "token_acc": 0.8677728496752732,
120
+ "train_speed(iter/s)": 0.265313
121
+ },
122
+ {
123
+ "epoch": 0.5376344086021505,
124
+ "eval_loss": 0.4121361970901489,
125
+ "eval_runtime": 1.1144,
126
+ "eval_samples_per_second": 14.357,
127
+ "eval_steps_per_second": 1.795,
128
+ "eval_token_acc": 0.862480083511895,
129
+ "step": 50
130
+ },
131
+ {
132
+ "epoch": 0.5913978494623656,
133
+ "grad_norm": 0.6125116226090357,
134
+ "learning_rate": 9.968763996755115e-06,
135
+ "loss": 0.3797069787979126,
136
+ "memory(GiB)": 35.76,
137
+ "step": 55,
138
+ "token_acc": 0.8705602222369204,
139
+ "train_speed(iter/s)": 0.212247
140
+ },
141
+ {
142
+ "epoch": 0.6451612903225806,
143
+ "grad_norm": 0.6413274106626393,
144
+ "learning_rate": 9.952977205963496e-06,
145
+ "loss": 0.37576003074645997,
146
+ "memory(GiB)": 36.2,
147
+ "step": 60,
148
+ "token_acc": 0.8649204294525242,
149
+ "train_speed(iter/s)": 0.216167
150
+ },
151
+ {
152
+ "epoch": 0.6989247311827957,
153
+ "grad_norm": 0.6501908922939531,
154
+ "learning_rate": 9.93399074102735e-06,
155
+ "loss": 0.373861026763916,
156
+ "memory(GiB)": 36.2,
157
+ "step": 65,
158
+ "token_acc": 0.8693455722115829,
159
+ "train_speed(iter/s)": 0.21941
160
+ },
161
+ {
162
+ "epoch": 0.7526881720430108,
163
+ "grad_norm": 0.7004218187745562,
164
+ "learning_rate": 9.911816867398026e-06,
165
+ "loss": 0.3793942928314209,
166
+ "memory(GiB)": 36.2,
167
+ "step": 70,
168
+ "token_acc": 0.8730909406456092,
169
+ "train_speed(iter/s)": 0.222179
170
+ },
171
+ {
172
+ "epoch": 0.8064516129032258,
173
+ "grad_norm": 0.8166238670210874,
174
+ "learning_rate": 9.886469909625624e-06,
175
+ "loss": 0.3867968559265137,
176
+ "memory(GiB)": 36.2,
177
+ "step": 75,
178
+ "token_acc": 0.848757324712063,
179
+ "train_speed(iter/s)": 0.226416
180
+ },
181
+ {
182
+ "epoch": 0.8602150537634409,
183
+ "grad_norm": 0.6267634407532141,
184
+ "learning_rate": 9.857966242105194e-06,
185
+ "loss": 0.3607918739318848,
186
+ "memory(GiB)": 36.2,
187
+ "step": 80,
188
+ "token_acc": 0.8719132441966814,
189
+ "train_speed(iter/s)": 0.230221
190
+ },
191
+ {
192
+ "epoch": 0.9139784946236559,
193
+ "grad_norm": 0.7896216311488772,
194
+ "learning_rate": 9.8263242784987e-06,
195
+ "loss": 0.3733763933181763,
196
+ "memory(GiB)": 36.2,
197
+ "step": 85,
198
+ "token_acc": 0.86721273110227,
199
+ "train_speed(iter/s)": 0.232953
200
+ },
201
+ {
202
+ "epoch": 0.967741935483871,
203
+ "grad_norm": 0.6455395783876484,
204
+ "learning_rate": 9.791564459839609e-06,
205
+ "loss": 0.36534771919250486,
206
+ "memory(GiB)": 36.2,
207
+ "step": 90,
208
+ "token_acc": 0.8692492781520693,
209
+ "train_speed(iter/s)": 0.235041
210
+ },
211
+ {
212
+ "epoch": 1.021505376344086,
213
+ "grad_norm": 0.5393287418168153,
214
+ "learning_rate": 9.753709241327773e-06,
215
+ "loss": 0.3413947343826294,
216
+ "memory(GiB)": 36.2,
217
+ "step": 95,
218
+ "token_acc": 0.8809226932668329,
219
+ "train_speed(iter/s)": 0.238594
220
+ },
221
+ {
222
+ "epoch": 1.075268817204301,
223
+ "grad_norm": 0.5578267353989265,
224
+ "learning_rate": 9.712783077823144e-06,
225
+ "loss": 0.2999130725860596,
226
+ "memory(GiB)": 36.2,
227
+ "step": 100,
228
+ "token_acc": 0.876852251474608,
229
+ "train_speed(iter/s)": 0.240385
230
+ },
231
+ {
232
+ "epoch": 1.075268817204301,
233
+ "eval_loss": 0.39695656299591064,
234
+ "eval_runtime": 0.9623,
235
+ "eval_samples_per_second": 16.626,
236
+ "eval_steps_per_second": 2.078,
237
+ "eval_token_acc": 0.8658590187352343,
238
+ "step": 100
239
+ },
240
+ {
241
+ "epoch": 1.129032258064516,
242
+ "grad_norm": 0.6232434629738186,
243
+ "learning_rate": 9.66881240804768e-06,
244
+ "loss": 0.2978543758392334,
245
+ "memory(GiB)": 36.2,
246
+ "step": 105,
247
+ "token_acc": 0.8903211301382695,
248
+ "train_speed(iter/s)": 0.216685
249
+ },
250
+ {
251
+ "epoch": 1.1827956989247312,
252
+ "grad_norm": 0.563444312933744,
253
+ "learning_rate": 9.62182563750565e-06,
254
+ "loss": 0.2764800786972046,
255
+ "memory(GiB)": 36.2,
256
+ "step": 110,
257
+ "token_acc": 0.8837461046416271,
258
+ "train_speed(iter/s)": 0.218683
259
+ },
260
+ {
261
+ "epoch": 1.2365591397849462,
262
+ "grad_norm": 0.634129779250207,
263
+ "learning_rate": 9.571853120133406e-06,
264
+ "loss": 0.2966769695281982,
265
+ "memory(GiB)": 36.2,
266
+ "step": 115,
267
+ "token_acc": 0.8817908276295341,
268
+ "train_speed(iter/s)": 0.220159
269
+ },
270
+ {
271
+ "epoch": 1.2903225806451613,
272
+ "grad_norm": 0.5952665579415249,
273
+ "learning_rate": 9.51892713869041e-06,
274
+ "loss": 0.2910531759262085,
275
+ "memory(GiB)": 36.2,
276
+ "step": 120,
277
+ "token_acc": 0.8890962995497969,
278
+ "train_speed(iter/s)": 0.221075
279
+ },
280
+ {
281
+ "epoch": 1.3440860215053765,
282
+ "grad_norm": 0.5889028303932383,
283
+ "learning_rate": 9.463081883904251e-06,
284
+ "loss": 0.2941020727157593,
285
+ "memory(GiB)": 36.2,
286
+ "step": 125,
287
+ "token_acc": 0.9022072348252606,
288
+ "train_speed(iter/s)": 0.222909
289
+ },
290
+ {
291
+ "epoch": 1.3978494623655915,
292
+ "grad_norm": 0.6117493527778533,
293
+ "learning_rate": 9.404353432383078e-06,
294
+ "loss": 0.299320125579834,
295
+ "memory(GiB)": 36.2,
296
+ "step": 130,
297
+ "token_acc": 0.9017176863081016,
298
+ "train_speed(iter/s)": 0.223869
299
+ },
300
+ {
301
+ "epoch": 1.4516129032258065,
302
+ "grad_norm": 0.6709733335774591,
303
+ "learning_rate": 9.342779723309746e-06,
304
+ "loss": 0.2946903228759766,
305
+ "memory(GiB)": 36.2,
306
+ "step": 135,
307
+ "token_acc": 0.8963614673426782,
308
+ "train_speed(iter/s)": 0.22548
309
+ },
310
+ {
311
+ "epoch": 1.5053763440860215,
312
+ "grad_norm": 0.5231401147766865,
313
+ "learning_rate": 9.278400533932703e-06,
314
+ "loss": 0.27523131370544435,
315
+ "memory(GiB)": 36.2,
316
+ "step": 140,
317
+ "token_acc": 0.9091817273635455,
318
+ "train_speed(iter/s)": 0.22685
319
+ },
320
+ {
321
+ "epoch": 1.5591397849462365,
322
+ "grad_norm": 0.6109308073405598,
323
+ "learning_rate": 9.211257453869495e-06,
324
+ "loss": 0.28516521453857424,
325
+ "memory(GiB)": 36.2,
326
+ "step": 145,
327
+ "token_acc": 0.9022033404140114,
328
+ "train_speed(iter/s)": 0.22851
329
+ },
330
+ {
331
+ "epoch": 1.6129032258064515,
332
+ "grad_norm": 0.61463883436549,
333
+ "learning_rate": 9.141393858239435e-06,
334
+ "loss": 0.28318946361541747,
335
+ "memory(GiB)": 36.2,
336
+ "step": 150,
337
+ "token_acc": 0.9105783567448795,
338
+ "train_speed(iter/s)": 0.22975
339
+ },
340
+ {
341
+ "epoch": 1.6129032258064515,
342
+ "eval_loss": 0.4003598093986511,
343
+ "eval_runtime": 0.9657,
344
+ "eval_samples_per_second": 16.569,
345
+ "eval_steps_per_second": 2.071,
346
+ "eval_token_acc": 0.8660787868798417,
347
+ "step": 150
348
+ },
349
+ {
350
+ "epoch": 1.6666666666666665,
351
+ "grad_norm": 0.6132153447244343,
352
+ "learning_rate": 9.068854879642833e-06,
353
+ "loss": 0.2889599084854126,
354
+ "memory(GiB)": 36.32,
355
+ "step": 155,
356
+ "token_acc": 0.8814800662336009,
357
+ "train_speed(iter/s)": 0.208717
358
+ },
359
+ {
360
+ "epoch": 1.7204301075268817,
361
+ "grad_norm": 0.5971251557661211,
362
+ "learning_rate": 8.99368737900487e-06,
363
+ "loss": 0.2876766204833984,
364
+ "memory(GiB)": 36.32,
365
+ "step": 160,
366
+ "token_acc": 0.8966378835201175,
367
+ "train_speed(iter/s)": 0.209931
368
+ },
369
+ {
370
+ "epoch": 1.7741935483870968,
371
+ "grad_norm": 0.5748854455080764,
372
+ "learning_rate": 8.91593991530297e-06,
373
+ "loss": 0.3036654472351074,
374
+ "memory(GiB)": 36.32,
375
+ "step": 165,
376
+ "token_acc": 0.9018055115616092,
377
+ "train_speed(iter/s)": 0.211255
378
+ },
379
+ {
380
+ "epoch": 1.827956989247312,
381
+ "grad_norm": 0.5561505552546223,
382
+ "learning_rate": 8.835662714197182e-06,
383
+ "loss": 0.3028982639312744,
384
+ "memory(GiB)": 36.32,
385
+ "step": 170,
386
+ "token_acc": 0.9018227009113504,
387
+ "train_speed(iter/s)": 0.212718
388
+ },
389
+ {
390
+ "epoch": 1.881720430107527,
391
+ "grad_norm": 0.7317876505668975,
392
+ "learning_rate": 8.752907635583911e-06,
393
+ "loss": 0.29505395889282227,
394
+ "memory(GiB)": 36.32,
395
+ "step": 175,
396
+ "token_acc": 0.8887829072872949,
397
+ "train_speed(iter/s)": 0.214568
398
+ },
399
+ {
400
+ "epoch": 1.935483870967742,
401
+ "grad_norm": 0.5680265544473229,
402
+ "learning_rate": 8.667728140093876e-06,
403
+ "loss": 0.29898526668548586,
404
+ "memory(GiB)": 36.32,
405
+ "step": 180,
406
+ "token_acc": 0.8902275769745649,
407
+ "train_speed(iter/s)": 0.216215
408
+ },
409
+ {
410
+ "epoch": 1.989247311827957,
411
+ "grad_norm": 0.6258148139715933,
412
+ "learning_rate": 8.580179254555997e-06,
413
+ "loss": 0.2970327615737915,
414
+ "memory(GiB)": 36.32,
415
+ "step": 185,
416
+ "token_acc": 0.8959904359021519,
417
+ "train_speed(iter/s)": 0.217886
418
+ },
419
+ {
420
+ "epoch": 2.043010752688172,
421
+ "grad_norm": 0.6156380554712465,
422
+ "learning_rate": 8.490317536449497e-06,
423
+ "loss": 0.22337541580200196,
424
+ "memory(GiB)": 36.32,
425
+ "step": 190,
426
+ "token_acc": 0.9188696893614926,
427
+ "train_speed(iter/s)": 0.218922
428
+ },
429
+ {
430
+ "epoch": 2.096774193548387,
431
+ "grad_norm": 0.5388492710872453,
432
+ "learning_rate": 8.398201037367202e-06,
433
+ "loss": 0.20124404430389403,
434
+ "memory(GiB)": 36.32,
435
+ "step": 195,
436
+ "token_acc": 0.926163422957213,
437
+ "train_speed(iter/s)": 0.21976
438
+ },
439
+ {
440
+ "epoch": 2.150537634408602,
441
+ "grad_norm": 0.5983173894045656,
442
+ "learning_rate": 8.303889265513599e-06,
443
+ "loss": 0.20379652976989746,
444
+ "memory(GiB)": 36.32,
445
+ "step": 200,
446
+ "token_acc": 0.9316990932701508,
447
+ "train_speed(iter/s)": 0.220712
448
+ },
449
+ {
450
+ "epoch": 2.150537634408602,
451
+ "eval_loss": 0.42072147130966187,
452
+ "eval_runtime": 0.982,
453
+ "eval_samples_per_second": 16.293,
454
+ "eval_steps_per_second": 2.037,
455
+ "eval_token_acc": 0.8620405472226801,
456
+ "step": 200
457
+ },
458
+ {
459
+ "epoch": 2.204301075268817,
460
+ "grad_norm": 0.6470473264794586,
461
+ "learning_rate": 8.20744314726193e-06,
462
+ "loss": 0.20558562278747558,
463
+ "memory(GiB)": 36.32,
464
+ "step": 205,
465
+ "token_acc": 0.9130314104639867,
466
+ "train_speed(iter/s)": 0.179558
467
+ },
468
+ {
469
+ "epoch": 2.258064516129032,
470
+ "grad_norm": 0.5880896656650852,
471
+ "learning_rate": 8.108924987795137e-06,
472
+ "loss": 0.18437005281448365,
473
+ "memory(GiB)": 36.32,
474
+ "step": 210,
475
+ "token_acc": 0.9324857899075801,
476
+ "train_speed(iter/s)": 0.181077
477
+ },
478
+ {
479
+ "epoch": 2.3118279569892475,
480
+ "grad_norm": 0.5477307460414933,
481
+ "learning_rate": 8.008398430856064e-06,
482
+ "loss": 0.18631315231323242,
483
+ "memory(GiB)": 36.32,
484
+ "step": 215,
485
+ "token_acc": 0.9362203632666266,
486
+ "train_speed(iter/s)": 0.182362
487
+ },
488
+ {
489
+ "epoch": 2.3655913978494625,
490
+ "grad_norm": 0.5227844014342666,
491
+ "learning_rate": 7.905928417632947e-06,
492
+ "loss": 0.20151617527008056,
493
+ "memory(GiB)": 36.32,
494
+ "step": 220,
495
+ "token_acc": 0.9247515563976645,
496
+ "train_speed(iter/s)": 0.183659
497
+ },
498
+ {
499
+ "epoch": 2.4193548387096775,
500
+ "grad_norm": 0.5262556350378147,
501
+ "learning_rate": 7.801581144806752e-06,
502
+ "loss": 0.1893543004989624,
503
+ "memory(GiB)": 36.32,
504
+ "step": 225,
505
+ "token_acc": 0.916718566189191,
506
+ "train_speed(iter/s)": 0.184894
507
+ },
508
+ {
509
+ "epoch": 2.4731182795698925,
510
+ "grad_norm": 0.5484675051032469,
511
+ "learning_rate": 7.695424021787412e-06,
512
+ "loss": 0.1866333603858948,
513
+ "memory(GiB)": 36.32,
514
+ "step": 230,
515
+ "token_acc": 0.924685033919424,
516
+ "train_speed(iter/s)": 0.186222
517
+ },
518
+ {
519
+ "epoch": 2.5268817204301075,
520
+ "grad_norm": 0.5628522228195585,
521
+ "learning_rate": 7.587525627166691e-06,
522
+ "loss": 0.19393479824066162,
523
+ "memory(GiB)": 36.32,
524
+ "step": 235,
525
+ "token_acc": 0.9374396347352709,
526
+ "train_speed(iter/s)": 0.187657
527
+ },
528
+ {
529
+ "epoch": 2.5806451612903225,
530
+ "grad_norm": 0.5335622599157593,
531
+ "learning_rate": 7.477955664415678e-06,
532
+ "loss": 0.19508060216903686,
533
+ "memory(GiB)": 36.32,
534
+ "step": 240,
535
+ "token_acc": 0.9316161484757817,
536
+ "train_speed(iter/s)": 0.189112
537
+ },
538
+ {
539
+ "epoch": 2.6344086021505375,
540
+ "grad_norm": 0.5245516097527467,
541
+ "learning_rate": 7.36678491685565e-06,
542
+ "loss": 0.19449775218963622,
543
+ "memory(GiB)": 36.32,
544
+ "step": 245,
545
+ "token_acc": 0.9377052300956551,
546
+ "train_speed(iter/s)": 0.19048
547
+ },
548
+ {
549
+ "epoch": 2.688172043010753,
550
+ "grad_norm": 0.5779503566004872,
551
+ "learning_rate": 7.254085201931305e-06,
552
+ "loss": 0.2031865119934082,
553
+ "memory(GiB)": 36.32,
554
+ "step": 250,
555
+ "token_acc": 0.921832884097035,
556
+ "train_speed(iter/s)": 0.191753
557
+ },
558
+ {
559
+ "epoch": 2.688172043010753,
560
+ "eval_loss": 0.43173694610595703,
561
+ "eval_runtime": 0.9856,
562
+ "eval_samples_per_second": 16.233,
563
+ "eval_steps_per_second": 2.029,
564
+ "eval_token_acc": 0.8627273226745783,
565
+ "step": 250
566
+ },
567
+ {
568
+ "epoch": 2.741935483870968,
569
+ "grad_norm": 0.5128503859951468,
570
+ "learning_rate": 7.139929324815965e-06,
571
+ "loss": 0.19230486154556276,
572
+ "memory(GiB)": 36.78,
573
+ "step": 255,
574
+ "token_acc": 0.9164345403899722,
575
+ "train_speed(iter/s)": 0.164733
576
+ },
577
+ {
578
+ "epoch": 2.795698924731183,
579
+ "grad_norm": 0.5561171013285224,
580
+ "learning_rate": 7.024391031378686e-06,
581
+ "loss": 0.1845786452293396,
582
+ "memory(GiB)": 36.78,
583
+ "step": 260,
584
+ "token_acc": 0.9280777134317205,
585
+ "train_speed(iter/s)": 0.166048
586
+ },
587
+ {
588
+ "epoch": 2.849462365591398,
589
+ "grad_norm": 0.55054564008372,
590
+ "learning_rate": 6.907544960543659e-06,
591
+ "loss": 0.18752856254577638,
592
+ "memory(GiB)": 36.78,
593
+ "step": 265,
594
+ "token_acc": 0.928450923562746,
595
+ "train_speed(iter/s)": 0.167181
596
+ },
597
+ {
598
+ "epoch": 2.903225806451613,
599
+ "grad_norm": 0.5241738277865058,
600
+ "learning_rate": 6.7894665960727105e-06,
601
+ "loss": 0.19395242929458617,
602
+ "memory(GiB)": 36.78,
603
+ "step": 270,
604
+ "token_acc": 0.9294530630732646,
605
+ "train_speed(iter/s)": 0.168566
606
+ },
607
+ {
608
+ "epoch": 2.956989247311828,
609
+ "grad_norm": 0.5219243104191204,
610
+ "learning_rate": 6.670232217802011e-06,
611
+ "loss": 0.1912919521331787,
612
+ "memory(GiB)": 36.78,
613
+ "step": 275,
614
+ "token_acc": 0.9288971457524067,
615
+ "train_speed(iter/s)": 0.169806
616
+ },
617
+ {
618
+ "epoch": 3.010752688172043,
619
+ "grad_norm": 0.5873962294936487,
620
+ "learning_rate": 6.549918852364517e-06,
621
+ "loss": 0.18026410341262816,
622
+ "memory(GiB)": 36.78,
623
+ "step": 280,
624
+ "token_acc": 0.9238556338028169,
625
+ "train_speed(iter/s)": 0.170794
626
+ },
627
+ {
628
+ "epoch": 3.064516129032258,
629
+ "grad_norm": 0.5295922567078138,
630
+ "learning_rate": 6.42860422342998e-06,
631
+ "loss": 0.12432655096054077,
632
+ "memory(GiB)": 36.78,
633
+ "step": 285,
634
+ "token_acc": 0.9551729045111712,
635
+ "train_speed(iter/s)": 0.171865
636
+ },
637
+ {
638
+ "epoch": 3.118279569892473,
639
+ "grad_norm": 0.6075093437048568,
640
+ "learning_rate": 6.306366701494649e-06,
641
+ "loss": 0.12841488122940065,
642
+ "memory(GiB)": 36.78,
643
+ "step": 290,
644
+ "token_acc": 0.9396288908126011,
645
+ "train_speed(iter/s)": 0.172844
646
+ },
647
+ {
648
+ "epoch": 3.172043010752688,
649
+ "grad_norm": 0.5509357998666382,
650
+ "learning_rate": 6.183285253253135e-06,
651
+ "loss": 0.11821137666702271,
652
+ "memory(GiB)": 36.78,
653
+ "step": 295,
654
+ "token_acc": 0.9528064255501164,
655
+ "train_speed(iter/s)": 0.173786
656
+ },
657
+ {
658
+ "epoch": 3.225806451612903,
659
+ "grad_norm": 0.5108788614443498,
660
+ "learning_rate": 6.0594393905851065e-06,
661
+ "loss": 0.11771461963653565,
662
+ "memory(GiB)": 36.78,
663
+ "step": 300,
664
+ "token_acc": 0.9583916241707658,
665
+ "train_speed(iter/s)": 0.175078
666
+ },
667
+ {
668
+ "epoch": 3.225806451612903,
669
+ "eval_loss": 0.46923384070396423,
670
+ "eval_runtime": 0.9709,
671
+ "eval_samples_per_second": 16.48,
672
+ "eval_steps_per_second": 2.06,
673
+ "eval_token_acc": 0.8575078292401517,
674
+ "step": 300
675
+ },
676
+ {
677
+ "epoch": 3.279569892473118,
678
+ "grad_norm": 0.532375440211573,
679
+ "learning_rate": 5.934909119189806e-06,
680
+ "loss": 0.11486297845840454,
681
+ "memory(GiB)": 36.78,
682
+ "step": 305,
683
+ "token_acc": 0.9351425942962281,
684
+ "train_speed(iter/s)": 0.156217
685
+ },
686
+ {
687
+ "epoch": 3.3333333333333335,
688
+ "grad_norm": 0.4986724035910756,
689
+ "learning_rate": 5.809774886901538e-06,
690
+ "loss": 0.12363936901092529,
691
+ "memory(GiB)": 36.78,
692
+ "step": 310,
693
+ "token_acc": 0.9564072783584979,
694
+ "train_speed(iter/s)": 0.15723
695
+ },
696
+ {
697
+ "epoch": 3.3870967741935485,
698
+ "grad_norm": 0.5044548969667993,
699
+ "learning_rate": 5.684117531719552e-06,
700
+ "loss": 0.12493133544921875,
701
+ "memory(GiB)": 36.78,
702
+ "step": 315,
703
+ "token_acc": 0.9532926933974414,
704
+ "train_speed(iter/s)": 0.158289
705
+ },
706
+ {
707
+ "epoch": 3.4408602150537635,
708
+ "grad_norm": 0.6359389048574728,
709
+ "learning_rate": 5.558018229585856e-06,
710
+ "loss": 0.10656380653381348,
711
+ "memory(GiB)": 36.78,
712
+ "step": 320,
713
+ "token_acc": 0.9684046407116981,
714
+ "train_speed(iter/s)": 0.159481
715
+ },
716
+ {
717
+ "epoch": 3.4946236559139785,
718
+ "grad_norm": 0.5211147608340247,
719
+ "learning_rate": 5.431558441944731e-06,
720
+ "loss": 0.11835185289382935,
721
+ "memory(GiB)": 36.78,
722
+ "step": 325,
723
+ "token_acc": 0.9631512587952983,
724
+ "train_speed(iter/s)": 0.160534
725
+ },
726
+ {
727
+ "epoch": 3.5483870967741935,
728
+ "grad_norm": 0.5235745875213004,
729
+ "learning_rate": 5.304819863117796e-06,
730
+ "loss": 0.11486140489578248,
731
+ "memory(GiB)": 36.78,
732
+ "step": 330,
733
+ "token_acc": 0.9587179487179487,
734
+ "train_speed(iter/s)": 0.161595
735
+ },
736
+ {
737
+ "epoch": 3.6021505376344085,
738
+ "grad_norm": 0.5370422937987905,
739
+ "learning_rate": 5.177884367528637e-06,
740
+ "loss": 0.12060900926589965,
741
+ "memory(GiB)": 36.78,
742
+ "step": 335,
743
+ "token_acc": 0.9555168079153319,
744
+ "train_speed(iter/s)": 0.162556
745
+ },
746
+ {
747
+ "epoch": 3.6559139784946235,
748
+ "grad_norm": 0.5133061100021457,
749
+ "learning_rate": 5.0508339568111e-06,
750
+ "loss": 0.114243483543396,
751
+ "memory(GiB)": 36.78,
752
+ "step": 340,
753
+ "token_acc": 0.9510202454965726,
754
+ "train_speed(iter/s)": 0.163581
755
+ },
756
+ {
757
+ "epoch": 3.709677419354839,
758
+ "grad_norm": 0.5231222499336802,
759
+ "learning_rate": 4.923750706835371e-06,
760
+ "loss": 0.12267729043960571,
761
+ "memory(GiB)": 36.78,
762
+ "step": 345,
763
+ "token_acc": 0.9553353973168215,
764
+ "train_speed(iter/s)": 0.164482
765
+ },
766
+ {
767
+ "epoch": 3.763440860215054,
768
+ "grad_norm": 0.5089747349843902,
769
+ "learning_rate": 4.7967167146861446e-06,
770
+ "loss": 0.11303888559341431,
771
+ "memory(GiB)": 36.78,
772
+ "step": 350,
773
+ "token_acc": 0.9600354845863828,
774
+ "train_speed(iter/s)": 0.165357
775
+ },
776
+ {
777
+ "epoch": 3.763440860215054,
778
+ "eval_loss": 0.4767088294029236,
779
+ "eval_runtime": 0.9917,
780
+ "eval_samples_per_second": 16.134,
781
+ "eval_steps_per_second": 2.017,
782
+ "eval_token_acc": 0.8583869018185813,
783
+ "step": 350
784
+ },
785
+ {
786
+ "epoch": 3.817204301075269,
787
+ "grad_norm": 0.5352999649215254,
788
+ "learning_rate": 4.669814045627046e-06,
789
+ "loss": 0.11718583106994629,
790
+ "memory(GiB)": 36.78,
791
+ "step": 355,
792
+ "token_acc": 0.9347400235070241,
793
+ "train_speed(iter/s)": 0.150406
794
+ },
795
+ {
796
+ "epoch": 3.870967741935484,
797
+ "grad_norm": 0.573204238275855,
798
+ "learning_rate": 4.5431246800856455e-06,
799
+ "loss": 0.11329195499420167,
800
+ "memory(GiB)": 36.78,
801
+ "step": 360,
802
+ "token_acc": 0.9657640565712314,
803
+ "train_speed(iter/s)": 0.151423
804
+ },
805
+ {
806
+ "epoch": 3.924731182795699,
807
+ "grad_norm": 0.5454577647386208,
808
+ "learning_rate": 4.416730460693239e-06,
809
+ "loss": 0.11979327201843262,
810
+ "memory(GiB)": 36.78,
811
+ "step": 365,
812
+ "token_acc": 0.9548889088782945,
813
+ "train_speed(iter/s)": 0.15224
814
+ },
815
+ {
816
+ "epoch": 3.978494623655914,
817
+ "grad_norm": 0.4866198331616375,
818
+ "learning_rate": 4.290713039413684e-06,
819
+ "loss": 0.11887497901916504,
820
+ "memory(GiB)": 36.78,
821
+ "step": 370,
822
+ "token_acc": 0.9653520499108734,
823
+ "train_speed(iter/s)": 0.153223
824
+ },
825
+ {
826
+ "epoch": 4.032258064516129,
827
+ "grad_norm": 0.45037416589175444,
828
+ "learning_rate": 4.165153824795391e-06,
829
+ "loss": 0.09095752239227295,
830
+ "memory(GiB)": 36.78,
831
+ "step": 375,
832
+ "token_acc": 0.9678588797029046,
833
+ "train_speed(iter/s)": 0.154122
834
+ },
835
+ {
836
+ "epoch": 4.086021505376344,
837
+ "grad_norm": 0.485523239824137,
838
+ "learning_rate": 4.040133929380551e-06,
839
+ "loss": 0.077480149269104,
840
+ "memory(GiB)": 36.78,
841
+ "step": 380,
842
+ "token_acc": 0.975248480169835,
843
+ "train_speed(iter/s)": 0.154937
844
+ },
845
+ {
846
+ "epoch": 4.139784946236559,
847
+ "grad_norm": 0.42587539911230965,
848
+ "learning_rate": 3.915734117305624e-06,
849
+ "loss": 0.06480391025543213,
850
+ "memory(GiB)": 36.78,
851
+ "step": 385,
852
+ "token_acc": 0.9769721842225262,
853
+ "train_speed(iter/s)": 0.155951
854
+ },
855
+ {
856
+ "epoch": 4.193548387096774,
857
+ "grad_norm": 0.5141471588233666,
858
+ "learning_rate": 3.7920347521268514e-06,
859
+ "loss": 0.07736325263977051,
860
+ "memory(GiB)": 36.78,
861
+ "step": 390,
862
+ "token_acc": 0.9737575974258134,
863
+ "train_speed(iter/s)": 0.156692
864
+ },
865
+ {
866
+ "epoch": 4.247311827956989,
867
+ "grad_norm": 0.4741421109444635,
868
+ "learning_rate": 3.6691157449045915e-06,
869
+ "loss": 0.06898297071456909,
870
+ "memory(GiB)": 36.78,
871
+ "step": 395,
872
+ "token_acc": 0.9794690999585234,
873
+ "train_speed(iter/s)": 0.15764
874
+ },
875
+ {
876
+ "epoch": 4.301075268817204,
877
+ "grad_norm": 0.5032918290160332,
878
+ "learning_rate": 3.5470565025799515e-06,
879
+ "loss": 0.06421754360198975,
880
+ "memory(GiB)": 36.78,
881
+ "step": 400,
882
+ "token_acc": 0.9791707701398463,
883
+ "train_speed(iter/s)": 0.158589
884
+ },
885
+ {
886
+ "epoch": 4.301075268817204,
887
+ "eval_loss": 0.5137488842010498,
888
+ "eval_runtime": 0.9946,
889
+ "eval_samples_per_second": 16.086,
890
+ "eval_steps_per_second": 2.011,
891
+ "eval_token_acc": 0.8553925608483051,
892
+ "step": 400
893
+ }
894
+ ],
895
+ "logging_steps": 5,
896
+ "max_steps": 651,
897
+ "num_input_tokens_seen": 0,
898
+ "num_train_epochs": 7,
899
+ "save_steps": 50,
900
+ "stateful_callbacks": {
901
+ "TrainerControl": {
902
+ "args": {
903
+ "should_epoch_stop": false,
904
+ "should_evaluate": false,
905
+ "should_log": false,
906
+ "should_save": true,
907
+ "should_training_stop": false
908
+ },
909
+ "attributes": {}
910
+ }
911
+ },
912
+ "total_flos": 35008577515520.0,
913
+ "train_batch_size": 1,
914
+ "trial_name": null,
915
+ "trial_params": null
916
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c41723d9ed00ab7a2a68b3a8b900eb9788bb0f83d61745fac911a99df6402356
3
+ size 8184
zero_to_fp32.py ADDED
@@ -0,0 +1,604 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ # Copyright (c) Microsoft Corporation.
4
+ # SPDX-License-Identifier: Apache-2.0
5
+
6
+ # DeepSpeed Team
7
+
8
+ # This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets
9
+ # copied into the top level checkpoint dir, so the user can easily do the conversion at any point in
10
+ # the future. Once extracted, the weights don't require DeepSpeed and can be used in any
11
+ # application.
12
+ #
13
+ # example: python zero_to_fp32.py . pytorch_model.bin
14
+
15
+ import argparse
16
+ import torch
17
+ import glob
18
+ import math
19
+ import os
20
+ import re
21
+ from collections import OrderedDict
22
+ from dataclasses import dataclass
23
+
24
+ # while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with
25
+ # DeepSpeed data structures it has to be available in the current python environment.
26
+ from deepspeed.utils import logger
27
+ from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS,
28
+ FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES,
29
+ FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS)
30
+
31
+
32
+ @dataclass
33
+ class zero_model_state:
34
+ buffers: dict()
35
+ param_shapes: dict()
36
+ shared_params: list
37
+ ds_version: int
38
+ frozen_param_shapes: dict()
39
+ frozen_param_fragments: dict()
40
+
41
+
42
+ debug = 0
43
+
44
+ # load to cpu
45
+ device = torch.device('cpu')
46
+
47
+
48
+ def atoi(text):
49
+ return int(text) if text.isdigit() else text
50
+
51
+
52
+ def natural_keys(text):
53
+ '''
54
+ alist.sort(key=natural_keys) sorts in human order
55
+ http://nedbatchelder.com/blog/200712/human_sorting.html
56
+ (See Toothy's implementation in the comments)
57
+ '''
58
+ return [atoi(c) for c in re.split(r'(\d+)', text)]
59
+
60
+
61
+ def get_model_state_file(checkpoint_dir, zero_stage):
62
+ if not os.path.isdir(checkpoint_dir):
63
+ raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist")
64
+
65
+ # there should be only one file
66
+ if zero_stage <= 2:
67
+ file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt")
68
+ elif zero_stage == 3:
69
+ file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt")
70
+
71
+ if not os.path.exists(file):
72
+ raise FileNotFoundError(f"can't find model states file at '{file}'")
73
+
74
+ return file
75
+
76
+
77
+ def get_checkpoint_files(checkpoint_dir, glob_pattern):
78
+ # XXX: need to test that this simple glob rule works for multi-node setup too
79
+ ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys)
80
+
81
+ if len(ckpt_files) == 0:
82
+ raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'")
83
+
84
+ return ckpt_files
85
+
86
+
87
+ def get_optim_files(checkpoint_dir):
88
+ return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt")
89
+
90
+
91
+ def get_model_state_files(checkpoint_dir):
92
+ return get_checkpoint_files(checkpoint_dir, "*_model_states.pt")
93
+
94
+
95
+ def parse_model_states(files):
96
+ zero_model_states = []
97
+ for file in files:
98
+ state_dict = torch.load(file, map_location=device)
99
+
100
+ if BUFFER_NAMES not in state_dict:
101
+ raise ValueError(f"{file} is not a model state checkpoint")
102
+ buffer_names = state_dict[BUFFER_NAMES]
103
+ if debug:
104
+ print("Found buffers:", buffer_names)
105
+
106
+ # recover just the buffers while restoring them to fp32 if they were saved in fp16
107
+ buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names}
108
+ param_shapes = state_dict[PARAM_SHAPES]
109
+
110
+ # collect parameters that are included in param_shapes
111
+ param_names = []
112
+ for s in param_shapes:
113
+ for name in s.keys():
114
+ param_names.append(name)
115
+
116
+ # update with frozen parameters
117
+ frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None)
118
+ if frozen_param_shapes is not None:
119
+ if debug:
120
+ print(f"Found frozen_param_shapes: {frozen_param_shapes}")
121
+ param_names += list(frozen_param_shapes.keys())
122
+
123
+ # handle shared params
124
+ shared_params = [[k, v] for k, v in state_dict["shared_params"].items()]
125
+
126
+ ds_version = state_dict.get(DS_VERSION, None)
127
+
128
+ frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None)
129
+
130
+ z_model_state = zero_model_state(buffers=buffers,
131
+ param_shapes=param_shapes,
132
+ shared_params=shared_params,
133
+ ds_version=ds_version,
134
+ frozen_param_shapes=frozen_param_shapes,
135
+ frozen_param_fragments=frozen_param_fragments)
136
+ zero_model_states.append(z_model_state)
137
+
138
+ return zero_model_states
139
+
140
+
141
+ def parse_optim_states(files, ds_checkpoint_dir):
142
+
143
+ total_files = len(files)
144
+ state_dicts = []
145
+ for f in files:
146
+ state_dict = torch.load(f, map_location=device)
147
+ # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights
148
+ # and also handle the case where it was already removed by another helper script
149
+ state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None)
150
+ state_dicts.append(state_dict)
151
+
152
+ if not ZERO_STAGE in state_dicts[0][OPTIMIZER_STATE_DICT]:
153
+ raise ValueError(f"{files[0]} is not a zero checkpoint")
154
+ zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE]
155
+ world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT]
156
+
157
+ # For ZeRO-2 each param group can have different partition_count as data parallelism for expert
158
+ # parameters can be different from data parallelism for non-expert parameters. So we can just
159
+ # use the max of the partition_count to get the dp world_size.
160
+
161
+ if type(world_size) is list:
162
+ world_size = max(world_size)
163
+
164
+ if world_size != total_files:
165
+ raise ValueError(
166
+ f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. "
167
+ "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes."
168
+ )
169
+
170
+ # the groups are named differently in each stage
171
+ if zero_stage <= 2:
172
+ fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS
173
+ elif zero_stage == 3:
174
+ fp32_groups_key = FP32_FLAT_GROUPS
175
+ else:
176
+ raise ValueError(f"unknown zero stage {zero_stage}")
177
+
178
+ if zero_stage <= 2:
179
+ fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))]
180
+ elif zero_stage == 3:
181
+ # if there is more than one param group, there will be multiple flattened tensors - one
182
+ # flattened tensor per group - for simplicity merge them into a single tensor
183
+ #
184
+ # XXX: could make the script more memory efficient for when there are multiple groups - it
185
+ # will require matching the sub-lists of param_shapes for each param group flattened tensor
186
+
187
+ fp32_flat_groups = [
188
+ torch.cat(state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key], 0) for i in range(len(state_dicts))
189
+ ]
190
+
191
+ return zero_stage, world_size, fp32_flat_groups
192
+
193
+
194
+ def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters):
195
+ """
196
+ Returns fp32 state_dict reconstructed from ds checkpoint
197
+
198
+ Args:
199
+ - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are)
200
+
201
+ """
202
+ print(f"Processing zero checkpoint '{ds_checkpoint_dir}'")
203
+
204
+ optim_files = get_optim_files(ds_checkpoint_dir)
205
+ zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir)
206
+ print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}")
207
+
208
+ model_files = get_model_state_files(ds_checkpoint_dir)
209
+
210
+ zero_model_states = parse_model_states(model_files)
211
+ print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}')
212
+
213
+ if zero_stage <= 2:
214
+ return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
215
+ exclude_frozen_parameters)
216
+ elif zero_stage == 3:
217
+ return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
218
+ exclude_frozen_parameters)
219
+
220
+
221
+ def _zero2_merge_frozen_params(state_dict, zero_model_states):
222
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
223
+ return
224
+
225
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
226
+ frozen_param_fragments = zero_model_states[0].frozen_param_fragments
227
+
228
+ if debug:
229
+ num_elem = sum(s.numel() for s in frozen_param_shapes.values())
230
+ print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
231
+
232
+ wanted_params = len(frozen_param_shapes)
233
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
234
+ avail_numel = sum([p.numel() for p in frozen_param_fragments.values()])
235
+ print(f'Frozen params: Have {avail_numel} numels to process.')
236
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
237
+
238
+ total_params = 0
239
+ total_numel = 0
240
+ for name, shape in frozen_param_shapes.items():
241
+ total_params += 1
242
+ unpartitioned_numel = shape.numel()
243
+ total_numel += unpartitioned_numel
244
+
245
+ state_dict[name] = frozen_param_fragments[name]
246
+
247
+ if debug:
248
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
249
+
250
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
251
+
252
+
253
+ def _has_callable(obj, fn):
254
+ attr = getattr(obj, fn, None)
255
+ return callable(attr)
256
+
257
+
258
+ def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
259
+ param_shapes = zero_model_states[0].param_shapes
260
+
261
+ # Reconstruction protocol:
262
+ #
263
+ # XXX: document this
264
+
265
+ if debug:
266
+ for i in range(world_size):
267
+ for j in range(len(fp32_flat_groups[0])):
268
+ print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}")
269
+
270
+ # XXX: memory usage doubles here (zero2)
271
+ num_param_groups = len(fp32_flat_groups[0])
272
+ merged_single_partition_of_fp32_groups = []
273
+ for i in range(num_param_groups):
274
+ merged_partitions = [sd[i] for sd in fp32_flat_groups]
275
+ full_single_fp32_vector = torch.cat(merged_partitions, 0)
276
+ merged_single_partition_of_fp32_groups.append(full_single_fp32_vector)
277
+ avail_numel = sum(
278
+ [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups])
279
+
280
+ if debug:
281
+ wanted_params = sum([len(shapes) for shapes in param_shapes])
282
+ wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes])
283
+ # not asserting if there is a mismatch due to possible padding
284
+ print(f"Have {avail_numel} numels to process.")
285
+ print(f"Need {wanted_numel} numels in {wanted_params} params.")
286
+
287
+ # params
288
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
289
+ # out-of-core computing solution
290
+ total_numel = 0
291
+ total_params = 0
292
+ for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups):
293
+ offset = 0
294
+ avail_numel = full_single_fp32_vector.numel()
295
+ for name, shape in shapes.items():
296
+
297
+ unpartitioned_numel = shape.numel() if _has_callable(shape, 'numel') else math.prod(shape)
298
+ total_numel += unpartitioned_numel
299
+ total_params += 1
300
+
301
+ if debug:
302
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
303
+ state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape)
304
+ offset += unpartitioned_numel
305
+
306
+ # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and
307
+ # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex
308
+ # paddings performed in the code it's almost impossible to predict the exact numbers w/o the
309
+ # live optimizer object, so we are checking that the numbers are within the right range
310
+ align_to = 2 * world_size
311
+
312
+ def zero2_align(x):
313
+ return align_to * math.ceil(x / align_to)
314
+
315
+ if debug:
316
+ print(f"original offset={offset}, avail_numel={avail_numel}")
317
+
318
+ offset = zero2_align(offset)
319
+ avail_numel = zero2_align(avail_numel)
320
+
321
+ if debug:
322
+ print(f"aligned offset={offset}, avail_numel={avail_numel}")
323
+
324
+ # Sanity check
325
+ if offset != avail_numel:
326
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
327
+
328
+ print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements")
329
+
330
+
331
+ def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
332
+ exclude_frozen_parameters):
333
+ state_dict = OrderedDict()
334
+
335
+ # buffers
336
+ buffers = zero_model_states[0].buffers
337
+ state_dict.update(buffers)
338
+ if debug:
339
+ print(f"added {len(buffers)} buffers")
340
+
341
+ if not exclude_frozen_parameters:
342
+ _zero2_merge_frozen_params(state_dict, zero_model_states)
343
+
344
+ _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
345
+
346
+ # recover shared parameters
347
+ for pair in zero_model_states[0].shared_params:
348
+ if pair[1] in state_dict:
349
+ state_dict[pair[0]] = state_dict[pair[1]]
350
+
351
+ return state_dict
352
+
353
+
354
+ def zero3_partitioned_param_info(unpartitioned_numel, world_size):
355
+ remainder = unpartitioned_numel % world_size
356
+ padding_numel = (world_size - remainder) if remainder else 0
357
+ partitioned_numel = math.ceil(unpartitioned_numel / world_size)
358
+ return partitioned_numel, padding_numel
359
+
360
+
361
+ def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states):
362
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
363
+ return
364
+
365
+ if debug:
366
+ for i in range(world_size):
367
+ num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values())
368
+ print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
369
+
370
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
371
+ wanted_params = len(frozen_param_shapes)
372
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
373
+ avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size
374
+ print(f'Frozen params: Have {avail_numel} numels to process.')
375
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
376
+
377
+ total_params = 0
378
+ total_numel = 0
379
+ for name, shape in zero_model_states[0].frozen_param_shapes.items():
380
+ total_params += 1
381
+ unpartitioned_numel = shape.numel()
382
+ total_numel += unpartitioned_numel
383
+
384
+ param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states)
385
+ state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape)
386
+
387
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
388
+
389
+ if debug:
390
+ print(
391
+ f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
392
+ )
393
+
394
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
395
+
396
+
397
+ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
398
+ param_shapes = zero_model_states[0].param_shapes
399
+ avail_numel = fp32_flat_groups[0].numel() * world_size
400
+ # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each
401
+ # param, re-consolidating each param, while dealing with padding if any
402
+
403
+ # merge list of dicts, preserving order
404
+ param_shapes = {k: v for d in param_shapes for k, v in d.items()}
405
+
406
+ if debug:
407
+ for i in range(world_size):
408
+ print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}")
409
+
410
+ wanted_params = len(param_shapes)
411
+ wanted_numel = sum(shape.numel() for shape in param_shapes.values())
412
+ # not asserting if there is a mismatch due to possible padding
413
+ avail_numel = fp32_flat_groups[0].numel() * world_size
414
+ print(f"Trainable params: Have {avail_numel} numels to process.")
415
+ print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.")
416
+
417
+ # params
418
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
419
+ # out-of-core computing solution
420
+ offset = 0
421
+ total_numel = 0
422
+ total_params = 0
423
+ for name, shape in param_shapes.items():
424
+
425
+ unpartitioned_numel = shape.numel()
426
+ total_numel += unpartitioned_numel
427
+ total_params += 1
428
+
429
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
430
+
431
+ if debug:
432
+ print(
433
+ f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
434
+ )
435
+
436
+ # XXX: memory usage doubles here
437
+ state_dict[name] = torch.cat(
438
+ tuple(fp32_flat_groups[i].narrow(0, offset, partitioned_numel) for i in range(world_size)),
439
+ 0).narrow(0, 0, unpartitioned_numel).view(shape)
440
+ offset += partitioned_numel
441
+
442
+ offset *= world_size
443
+
444
+ # Sanity check
445
+ if offset != avail_numel:
446
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
447
+
448
+ print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements")
449
+
450
+
451
+ def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
452
+ exclude_frozen_parameters):
453
+ state_dict = OrderedDict()
454
+
455
+ # buffers
456
+ buffers = zero_model_states[0].buffers
457
+ state_dict.update(buffers)
458
+ if debug:
459
+ print(f"added {len(buffers)} buffers")
460
+
461
+ if not exclude_frozen_parameters:
462
+ _zero3_merge_frozen_params(state_dict, world_size, zero_model_states)
463
+
464
+ _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
465
+
466
+ # recover shared parameters
467
+ for pair in zero_model_states[0].shared_params:
468
+ if pair[1] in state_dict:
469
+ state_dict[pair[0]] = state_dict[pair[1]]
470
+
471
+ return state_dict
472
+
473
+
474
+ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag=None, exclude_frozen_parameters=False):
475
+ """
476
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with
477
+ ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example
478
+ via a model hub.
479
+
480
+ Args:
481
+ - ``checkpoint_dir``: path to the desired checkpoint folder
482
+ - ``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``
483
+ - ``exclude_frozen_parameters``: exclude frozen parameters
484
+
485
+ Returns:
486
+ - pytorch ``state_dict``
487
+
488
+ Note: this approach may not work if your application doesn't have sufficient free CPU memory and
489
+ you may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with
490
+ the checkpoint.
491
+
492
+ A typical usage might be ::
493
+
494
+ from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint
495
+ # do the training and checkpoint saving
496
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu
497
+ model = model.cpu() # move to cpu
498
+ model.load_state_dict(state_dict)
499
+ # submit to model hub or save the model to share with others
500
+
501
+ In this example the ``model`` will no longer be usable in the deepspeed context of the same
502
+ application. i.e. you will need to re-initialize the deepspeed engine, since
503
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
504
+
505
+ If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead.
506
+
507
+ """
508
+ if tag is None:
509
+ latest_path = os.path.join(checkpoint_dir, 'latest')
510
+ if os.path.isfile(latest_path):
511
+ with open(latest_path, 'r') as fd:
512
+ tag = fd.read().strip()
513
+ else:
514
+ raise ValueError(f"Unable to find 'latest' file at {latest_path}")
515
+
516
+ ds_checkpoint_dir = os.path.join(checkpoint_dir, tag)
517
+
518
+ if not os.path.isdir(ds_checkpoint_dir):
519
+ raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist")
520
+
521
+ return _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters)
522
+
523
+
524
+ def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir, output_file, tag=None, exclude_frozen_parameters=False):
525
+ """
526
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be
527
+ loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed.
528
+
529
+ Args:
530
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
531
+ - ``output_file``: path to the pytorch fp32 state_dict output file (e.g. path/pytorch_model.bin)
532
+ - ``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``
533
+ - ``exclude_frozen_parameters``: exclude frozen parameters
534
+ """
535
+
536
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag, exclude_frozen_parameters)
537
+ print(f"Saving fp32 state dict to {output_file}")
538
+ torch.save(state_dict, output_file)
539
+
540
+
541
+ def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None):
542
+ """
543
+ 1. Put the provided model to cpu
544
+ 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict``
545
+ 3. Load it into the provided model
546
+
547
+ Args:
548
+ - ``model``: the model object to update
549
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
550
+ - ``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``
551
+
552
+ Returns:
553
+ - ``model`: modified model
554
+
555
+ Make sure you have plenty of CPU memory available before you call this function. If you don't
556
+ have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it
557
+ conveniently placed for you in the checkpoint folder.
558
+
559
+ A typical usage might be ::
560
+
561
+ from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint
562
+ model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir)
563
+ # submit to model hub or save the model to share with others
564
+
565
+ Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context
566
+ of the same application. i.e. you will need to re-initialize the deepspeed engine, since
567
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
568
+
569
+ """
570
+ logger.info(f"Extracting fp32 weights")
571
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag)
572
+
573
+ logger.info(f"Overwriting model with fp32 weights")
574
+ model = model.cpu()
575
+ model.load_state_dict(state_dict, strict=False)
576
+
577
+ return model
578
+
579
+
580
+ if __name__ == "__main__":
581
+
582
+ parser = argparse.ArgumentParser()
583
+ parser.add_argument("checkpoint_dir",
584
+ type=str,
585
+ help="path to the desired checkpoint folder, e.g., path/checkpoint-12")
586
+ parser.add_argument(
587
+ "output_file",
588
+ type=str,
589
+ help="path to the pytorch fp32 state_dict output file (e.g. path/checkpoint-12/pytorch_model.bin)")
590
+ parser.add_argument("-t",
591
+ "--tag",
592
+ type=str,
593
+ default=None,
594
+ help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1")
595
+ parser.add_argument("--exclude_frozen_parameters", action='store_true', help="exclude frozen parameters")
596
+ parser.add_argument("-d", "--debug", action='store_true', help="enable debug")
597
+ args = parser.parse_args()
598
+
599
+ debug = args.debug
600
+
601
+ convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir,
602
+ args.output_file,
603
+ tag=args.tag,
604
+ exclude_frozen_parameters=args.exclude_frozen_parameters)