ASLP-lab commited on
Commit
7b82ea1
·
verified ·
1 Parent(s): 52d6da6

Upload Qwen3-ASR-WSM-Min checkpoint-16000

Browse files
Files changed (35) hide show
  1. .gitattributes +1 -0
  2. Qwen3-ASR-WSM-Min/added_tokens.json +64 -0
  3. Qwen3-ASR-WSM-Min/args.json +404 -0
  4. Qwen3-ASR-WSM-Min/chat_template.jinja +31 -0
  5. Qwen3-ASR-WSM-Min/config.json +228 -0
  6. Qwen3-ASR-WSM-Min/generation_config.json +9 -0
  7. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt +3 -0
  8. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_1_mp_rank_00_optim_states.pt +3 -0
  9. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_2_mp_rank_00_optim_states.pt +3 -0
  10. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_3_mp_rank_00_optim_states.pt +3 -0
  11. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_4_mp_rank_00_optim_states.pt +3 -0
  12. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_5_mp_rank_00_optim_states.pt +3 -0
  13. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_6_mp_rank_00_optim_states.pt +3 -0
  14. Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_7_mp_rank_00_optim_states.pt +3 -0
  15. Qwen3-ASR-WSM-Min/global_step16000/mp_rank_00_model_states.pt +3 -0
  16. Qwen3-ASR-WSM-Min/latest +1 -0
  17. Qwen3-ASR-WSM-Min/merges.txt +0 -0
  18. Qwen3-ASR-WSM-Min/model.safetensors +3 -0
  19. Qwen3-ASR-WSM-Min/preprocessor_config.json +14 -0
  20. Qwen3-ASR-WSM-Min/rng_state_0.pth +3 -0
  21. Qwen3-ASR-WSM-Min/rng_state_1.pth +3 -0
  22. Qwen3-ASR-WSM-Min/rng_state_2.pth +3 -0
  23. Qwen3-ASR-WSM-Min/rng_state_3.pth +3 -0
  24. Qwen3-ASR-WSM-Min/rng_state_4.pth +3 -0
  25. Qwen3-ASR-WSM-Min/rng_state_5.pth +3 -0
  26. Qwen3-ASR-WSM-Min/rng_state_6.pth +3 -0
  27. Qwen3-ASR-WSM-Min/rng_state_7.pth +3 -0
  28. Qwen3-ASR-WSM-Min/scheduler.pt +3 -0
  29. Qwen3-ASR-WSM-Min/special_tokens_map.json +44 -0
  30. Qwen3-ASR-WSM-Min/tokenizer.json +3 -0
  31. Qwen3-ASR-WSM-Min/tokenizer_config.json +549 -0
  32. Qwen3-ASR-WSM-Min/trainer_state.json +2042 -0
  33. Qwen3-ASR-WSM-Min/training_args.bin +3 -0
  34. Qwen3-ASR-WSM-Min/vocab.json +0 -0
  35. Qwen3-ASR-WSM-Min/zero_to_fp32.py +760 -0
.gitattributes CHANGED
@@ -34,3 +34,4 @@ saved_model/**/* 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
  Qwen3-ASR-WSM-Mandarin/tokenizer.json 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
  Qwen3-ASR-WSM-Mandarin/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ Qwen3-ASR-WSM-Min/tokenizer.json filter=lfs diff=lfs merge=lfs -text
Qwen3-ASR-WSM-Min/added_tokens.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<asr_text>": 151704,
6
+ "<blank10>": 151686,
7
+ "<blank11>": 151687,
8
+ "<blank12>": 151688,
9
+ "<blank13>": 151689,
10
+ "<blank14>": 151690,
11
+ "<blank15>": 151691,
12
+ "<blank16>": 151692,
13
+ "<blank17>": 151693,
14
+ "<blank18>": 151694,
15
+ "<blank19>": 151695,
16
+ "<blank1>": 151677,
17
+ "<blank20>": 151696,
18
+ "<blank21>": 151697,
19
+ "<blank22>": 151698,
20
+ "<blank23>": 151699,
21
+ "<blank24>": 151700,
22
+ "<blank25>": 151701,
23
+ "<blank26>": 151702,
24
+ "<blank27>": 151703,
25
+ "<blank2>": 151678,
26
+ "<blank3>": 151679,
27
+ "<blank4>": 151680,
28
+ "<blank5>": 151681,
29
+ "<blank6>": 151682,
30
+ "<blank7>": 151683,
31
+ "<blank8>": 151684,
32
+ "<blank9>": 151685,
33
+ "<non_speech>": 151675,
34
+ "<think>": 151667,
35
+ "<tool_call>": 151657,
36
+ "<tool_response>": 151665,
37
+ "<tts_pad>": 151671,
38
+ "<tts_text_bos>": 151672,
39
+ "<tts_text_bos_single>": 151674,
40
+ "<tts_text_eod>": 151673,
41
+ "<|audio_end|>": 151670,
42
+ "<|audio_pad|>": 151676,
43
+ "<|audio_start|>": 151669,
44
+ "<|box_end|>": 151649,
45
+ "<|box_start|>": 151648,
46
+ "<|endoftext|>": 151643,
47
+ "<|file_sep|>": 151664,
48
+ "<|fim_middle|>": 151660,
49
+ "<|fim_pad|>": 151662,
50
+ "<|fim_prefix|>": 151659,
51
+ "<|fim_suffix|>": 151661,
52
+ "<|im_end|>": 151645,
53
+ "<|im_start|>": 151644,
54
+ "<|image_pad|>": 151655,
55
+ "<|object_ref_end|>": 151647,
56
+ "<|object_ref_start|>": 151646,
57
+ "<|quad_end|>": 151651,
58
+ "<|quad_start|>": 151650,
59
+ "<|repo_name|>": 151663,
60
+ "<|video_pad|>": 151656,
61
+ "<|vision_end|>": 151653,
62
+ "<|vision_pad|>": 151654,
63
+ "<|vision_start|>": 151652
64
+ }
Qwen3-ASR-WSM-Min/args.json ADDED
@@ -0,0 +1,404 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648",
3
+ "overwrite_output_dir": false,
4
+ "do_train": false,
5
+ "do_eval": false,
6
+ "do_predict": false,
7
+ "eval_strategy": "steps",
8
+ "prediction_loss_only": false,
9
+ "per_device_train_batch_size": 64,
10
+ "per_device_eval_batch_size": 64,
11
+ "per_gpu_train_batch_size": null,
12
+ "per_gpu_eval_batch_size": null,
13
+ "gradient_accumulation_steps": 2,
14
+ "eval_accumulation_steps": null,
15
+ "eval_delay": 0,
16
+ "torch_empty_cache_steps": null,
17
+ "learning_rate": 1e-05,
18
+ "weight_decay": 0.1,
19
+ "adam_beta1": 0.9,
20
+ "adam_beta2": 0.95,
21
+ "adam_epsilon": 1e-08,
22
+ "max_grad_norm": 1.0,
23
+ "num_train_epochs": 4.0,
24
+ "max_steps": -1,
25
+ "lr_scheduler_type": "cosine",
26
+ "lr_scheduler_kwargs": null,
27
+ "warmup_ratio": 0.02,
28
+ "warmup_steps": 0,
29
+ "log_level": "passive",
30
+ "log_level_replica": "warning",
31
+ "log_on_each_node": true,
32
+ "logging_dir": "/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648/runs",
33
+ "logging_strategy": "steps",
34
+ "logging_first_step": true,
35
+ "logging_steps": 100,
36
+ "logging_nan_inf_filter": true,
37
+ "save_strategy": "steps",
38
+ "save_steps": 1000.0,
39
+ "save_total_limit": null,
40
+ "save_safetensors": true,
41
+ "save_on_each_node": false,
42
+ "save_only_model": false,
43
+ "restore_callback_states_from_checkpoint": false,
44
+ "no_cuda": false,
45
+ "use_cpu": false,
46
+ "use_mps_device": false,
47
+ "seed": 42,
48
+ "data_seed": 42,
49
+ "jit_mode_eval": false,
50
+ "bf16": true,
51
+ "fp16": false,
52
+ "fp16_opt_level": "O1",
53
+ "half_precision_backend": "auto",
54
+ "bf16_full_eval": false,
55
+ "fp16_full_eval": false,
56
+ "tf32": null,
57
+ "local_rank": 0,
58
+ "ddp_backend": null,
59
+ "tpu_num_cores": null,
60
+ "tpu_metrics_debug": false,
61
+ "debug": null,
62
+ "dataloader_drop_last": false,
63
+ "eval_steps": 200.0,
64
+ "dataloader_num_workers": 12,
65
+ "dataloader_prefetch_factor": null,
66
+ "past_index": -1,
67
+ "run_name": "/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648",
68
+ "disable_tqdm": null,
69
+ "remove_unused_columns": true,
70
+ "label_names": null,
71
+ "load_best_model_at_end": false,
72
+ "metric_for_best_model": "loss",
73
+ "greater_is_better": false,
74
+ "ignore_data_skip": false,
75
+ "fsdp": [],
76
+ "fsdp_min_num_params": 0,
77
+ "fsdp_config": null,
78
+ "fsdp_transformer_layer_cls_to_wrap": null,
79
+ "accelerator_config": {
80
+ "dispatch_batches": false
81
+ },
82
+ "parallelism_config": null,
83
+ "deepspeed": {
84
+ "fp16": {
85
+ "enabled": "auto",
86
+ "loss_scale": 0,
87
+ "loss_scale_window": 1000,
88
+ "initial_scale_power": 16,
89
+ "hysteresis": 2,
90
+ "min_loss_scale": 1
91
+ },
92
+ "bf16": {
93
+ "enabled": "auto"
94
+ },
95
+ "zero_optimization": {
96
+ "stage": 2,
97
+ "offload_optimizer": {
98
+ "device": "none",
99
+ "pin_memory": true
100
+ },
101
+ "allgather_partitions": true,
102
+ "allgather_bucket_size": 200000000.0,
103
+ "overlap_comm": false,
104
+ "reduce_scatter": true,
105
+ "reduce_bucket_size": 200000000.0,
106
+ "contiguous_gradients": true
107
+ },
108
+ "gradient_accumulation_steps": "auto",
109
+ "gradient_clipping": "auto",
110
+ "steps_per_print": 2000,
111
+ "train_batch_size": "auto",
112
+ "train_micro_batch_size_per_gpu": "auto",
113
+ "wall_clock_breakdown": false
114
+ },
115
+ "label_smoothing_factor": 0.0,
116
+ "optim": "adamw_torch_fused",
117
+ "optim_args": null,
118
+ "adafactor": false,
119
+ "group_by_length": false,
120
+ "length_column_name": "length",
121
+ "report_to": [
122
+ "tensorboard"
123
+ ],
124
+ "project": "huggingface",
125
+ "trackio_space_id": "trackio",
126
+ "ddp_find_unused_parameters": null,
127
+ "ddp_bucket_cap_mb": null,
128
+ "ddp_broadcast_buffers": null,
129
+ "dataloader_pin_memory": true,
130
+ "dataloader_persistent_workers": false,
131
+ "skip_memory_metrics": true,
132
+ "use_legacy_prediction_loop": false,
133
+ "push_to_hub": false,
134
+ "resume_from_checkpoint": null,
135
+ "hub_model_id": null,
136
+ "hub_strategy": "every_save",
137
+ "hub_token": null,
138
+ "hub_private_repo": null,
139
+ "hub_always_push": false,
140
+ "hub_revision": null,
141
+ "gradient_checkpointing": true,
142
+ "gradient_checkpointing_kwargs": "{\"use_reentrant\": false}",
143
+ "include_inputs_for_metrics": false,
144
+ "include_for_metrics": [],
145
+ "eval_do_concat_batches": true,
146
+ "fp16_backend": "auto",
147
+ "push_to_hub_model_id": null,
148
+ "push_to_hub_organization": null,
149
+ "push_to_hub_token": null,
150
+ "mp_parameters": "",
151
+ "auto_find_batch_size": false,
152
+ "full_determinism": false,
153
+ "torchdynamo": null,
154
+ "ray_scope": "last",
155
+ "ddp_timeout": 18000000,
156
+ "torch_compile": false,
157
+ "torch_compile_backend": null,
158
+ "torch_compile_mode": null,
159
+ "include_tokens_per_second": false,
160
+ "include_num_input_tokens_seen": false,
161
+ "neftune_noise_alpha": null,
162
+ "optim_target_modules": null,
163
+ "batch_eval_metrics": false,
164
+ "eval_on_start": false,
165
+ "use_liger_kernel": false,
166
+ "liger_kernel_config": null,
167
+ "eval_use_gather_object": false,
168
+ "average_tokens_across_devices": true,
169
+ "sortish_sampler": false,
170
+ "predict_with_generate": false,
171
+ "generation_max_length": null,
172
+ "generation_num_beams": null,
173
+ "generation_config": null,
174
+ "tuner_backend": "peft",
175
+ "vit_gradient_checkpointing": true,
176
+ "router_aux_loss_coef": 0.0,
177
+ "enable_dft_loss": false,
178
+ "enable_channel_loss": false,
179
+ "safe_serialization": true,
180
+ "max_shard_size": "5GB",
181
+ "check_model": true,
182
+ "acc_strategy": "token",
183
+ "train_dataloader_shuffle": true,
184
+ "max_epochs": null,
185
+ "aligner_lr": null,
186
+ "vit_lr": null,
187
+ "use_logits_to_keep": null,
188
+ "ds3_gather_for_generation": true,
189
+ "resume_only_model": false,
190
+ "optimizer": null,
191
+ "loss_type": null,
192
+ "eval_metric": null,
193
+ "callbacks": [],
194
+ "early_stop_interval": null,
195
+ "eval_use_evalscope": false,
196
+ "eval_dataset": [],
197
+ "eval_dataset_args": null,
198
+ "eval_limit": null,
199
+ "eval_generation_config": null,
200
+ "extra_eval_args": null,
201
+ "tuner_type": "full",
202
+ "use_galore": false,
203
+ "galore_target_modules": null,
204
+ "galore_rank": 128,
205
+ "galore_update_proj_gap": 50,
206
+ "galore_scale": 1.0,
207
+ "galore_proj_type": "std",
208
+ "galore_optim_per_parameter": false,
209
+ "galore_with_embedding": false,
210
+ "galore_quantization": false,
211
+ "galore_proj_quant": false,
212
+ "galore_proj_bits": 4,
213
+ "galore_proj_group_size": 256,
214
+ "galore_cos_threshold": 0.4,
215
+ "galore_gamma_proj": 2,
216
+ "galore_queue_size": 5,
217
+ "lisa_activated_layers": 0,
218
+ "lisa_step_interval": 20,
219
+ "use_flash_ckpt": false,
220
+ "use_ray": false,
221
+ "ray_exp_name": null,
222
+ "device_groups": null,
223
+ "model": "/home/work_nfs23/asr_data/ckpt/Qwen3-ASR-1.7B",
224
+ "model_type": "qwen3_asr",
225
+ "model_revision": null,
226
+ "task_type": "causal_lm",
227
+ "torch_dtype": "bfloat16",
228
+ "attn_impl": "flash_attention_2",
229
+ "experts_impl": null,
230
+ "new_special_tokens": [],
231
+ "num_labels": null,
232
+ "problem_type": null,
233
+ "rope_scaling": null,
234
+ "device_map": null,
235
+ "max_memory": {},
236
+ "max_model_len": null,
237
+ "local_repo_path": null,
238
+ "init_strategy": null,
239
+ "template": "qwen3_asr",
240
+ "system": null,
241
+ "max_length": 30000,
242
+ "truncation_strategy": "delete",
243
+ "max_pixels": null,
244
+ "agent_template": null,
245
+ "norm_bbox": null,
246
+ "use_chat_template": true,
247
+ "padding_side": "right",
248
+ "padding_free": true,
249
+ "loss_scale": "default",
250
+ "sequence_parallel_size": 1,
251
+ "is_binary_loss_scale": null,
252
+ "template_backend": "swift",
253
+ "response_prefix": null,
254
+ "enable_thinking": null,
255
+ "preserve_thinking": null,
256
+ "add_non_thinking_prefix": true,
257
+ "disable_ignore_empty_think": false,
258
+ "dataset": [
259
+ "/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/data/kaiyuan_1wh_minnan_qwen3asr.jsonl"
260
+ ],
261
+ "val_dataset": [
262
+ "/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/data/test.jsonl"
263
+ ],
264
+ "cached_dataset": [],
265
+ "cached_val_dataset": [],
266
+ "split_dataset_ratio": 0.0,
267
+ "dataset_num_proc": 12,
268
+ "load_from_cache_file": true,
269
+ "dataset_shuffle": true,
270
+ "val_dataset_shuffle": false,
271
+ "streaming": false,
272
+ "interleave_prob": null,
273
+ "stopping_strategy": "first_exhausted",
274
+ "shuffle_buffer_size": 1000,
275
+ "download_mode": "reuse_dataset_if_exists",
276
+ "columns": {},
277
+ "strict": false,
278
+ "disable_auto_column_mapping": false,
279
+ "model_name": null,
280
+ "model_author": null,
281
+ "custom_dataset_info": [],
282
+ "quant_method": null,
283
+ "quant_bits": null,
284
+ "hqq_axis": null,
285
+ "bnb_4bit_compute_dtype": "bfloat16",
286
+ "bnb_4bit_quant_type": "nf4",
287
+ "bnb_4bit_use_double_quant": true,
288
+ "bnb_4bit_quant_storage": null,
289
+ "max_new_tokens": 64,
290
+ "temperature": 0.0,
291
+ "top_k": null,
292
+ "top_p": null,
293
+ "repetition_penalty": null,
294
+ "num_beams": 1,
295
+ "stream": false,
296
+ "stop_words": [],
297
+ "logprobs": false,
298
+ "top_logprobs": null,
299
+ "structured_outputs_regex": null,
300
+ "adapters": [],
301
+ "external_plugins": [],
302
+ "custom_register_path": [],
303
+ "model_kwargs": {},
304
+ "enable_npu_model_patch": true,
305
+ "load_args": false,
306
+ "load_data_args": false,
307
+ "packing": false,
308
+ "packing_length": null,
309
+ "packing_num_proc": 1,
310
+ "lazy_tokenize": true,
311
+ "use_hf": false,
312
+ "ignore_args_error": false,
313
+ "use_swift_lora": false,
314
+ "freeze_parameters": [],
315
+ "freeze_parameters_regex": null,
316
+ "freeze_parameters_ratio": 0.0,
317
+ "trainable_parameters": [
318
+ "thinker.audio_tower.proj1",
319
+ "thinker.audio_tower.proj2"
320
+ ],
321
+ "trainable_parameters_regex": null,
322
+ "freeze_llm": false,
323
+ "freeze_vit": false,
324
+ "freeze_aligner": false,
325
+ "target_modules": [
326
+ "all-linear"
327
+ ],
328
+ "target_regex": null,
329
+ "target_parameters": null,
330
+ "modules_to_save": [],
331
+ "lora_rank": 8,
332
+ "lora_alpha": 32,
333
+ "lora_dropout": 0.05,
334
+ "lora_bias": "none",
335
+ "lora_dtype": null,
336
+ "lorap_lr_ratio": null,
337
+ "use_rslora": false,
338
+ "use_dora": false,
339
+ "lora_ga_batch_size": 2,
340
+ "lora_ga_iters": 2,
341
+ "lora_ga_max_length": 1024,
342
+ "lora_ga_direction": "ArB2r",
343
+ "lora_ga_scale": "stable",
344
+ "lora_ga_stable_gamma": 16,
345
+ "init_weights": true,
346
+ "fourier_n_frequency": 2000,
347
+ "fourier_scaling": 300.0,
348
+ "boft_block_size": 4,
349
+ "boft_block_num": 0,
350
+ "boft_n_butterfly_factor": 1,
351
+ "boft_dropout": 0.0,
352
+ "vera_rank": 256,
353
+ "vera_projection_prng_key": 0,
354
+ "vera_dropout": 0.0,
355
+ "vera_d_initial": 0.1,
356
+ "adapter_act": "gelu",
357
+ "adapter_length": 128,
358
+ "adalora_target_r": 8,
359
+ "adalora_init_r": 12,
360
+ "adalora_tinit": 0,
361
+ "adalora_tfinal": 0,
362
+ "adalora_deltaT": 1,
363
+ "adalora_beta1": 0.85,
364
+ "adalora_beta2": 0.85,
365
+ "adalora_orth_reg_weight": 0.5,
366
+ "llamapro_num_new_blocks": 4,
367
+ "llamapro_num_groups": null,
368
+ "reft_layer_key": null,
369
+ "reft_layers": null,
370
+ "reft_rank": 4,
371
+ "reft_intervention_type": "LoreftIntervention",
372
+ "reft_args": null,
373
+ "swanlab_token": null,
374
+ "swanlab_project": "ms-swift",
375
+ "swanlab_workspace": null,
376
+ "swanlab_exp_name": null,
377
+ "swanlab_notification_method": null,
378
+ "swanlab_webhook_url": null,
379
+ "swanlab_secret": null,
380
+ "swanlab_sender_email": null,
381
+ "swanlab_receiver_email": null,
382
+ "swanlab_smtp_server": null,
383
+ "swanlab_smtp_port": null,
384
+ "swanlab_email_language": "zh",
385
+ "swanlab_mode": "cloud",
386
+ "add_version": true,
387
+ "create_checkpoint_symlink": false,
388
+ "zero_hpz_partition_size": null,
389
+ "deepspeed_autotp_size": null,
390
+ "swift_version": "4.3.1",
391
+ "ckpt_dir": null,
392
+ "rank": 0,
393
+ "global_world_size": 8,
394
+ "local_world_size": 8,
395
+ "model_suffix": "Qwen3-ASR-1.7B",
396
+ "model_info": "ModelInfo(model_type='qwen3_asr', model_dir='/home/work_nfs23/asr_data/ckpt/Qwen3-ASR-1.7B', torch_dtype=torch.bfloat16, max_model_len=65536, quant_method=None, quant_bits=None, rope_scaling={'interleaved': True, 'mrope_interleaved': True, 'mrope_section': [24, 20, 20], 'rope_type': 'default', 'type': 'default'}, is_moe_model=False, is_multimodal=True, config=None, task_type='causal_lm', num_labels=None)",
397
+ "model_meta": "ModelMeta(model_type='qwen3_asr', model_groups=[ModelGroup(models=[Model(ms_model_id='Qwen/Qwen3-ASR-1.7B', hf_model_id='Qwen/Qwen3-ASR-1.7B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='Qwen/Qwen3-ASR-0.6B', hf_model_id='Qwen/Qwen3-ASR-0.6B', model_path=None, ms_revision=None, hf_revision=None)], template='qwen3_asr', ignore_patterns=None, requires=None, tags=[])], loader=<class 'swift.model.models.qwen.Qwen3ASRLoader'>, template='qwen3_asr', model_arch=MultiModelKeys(arch_name='qwen3_asr', embedding=None, module_list=None, lm_head=None, q_proj=None, k_proj=None, v_proj=None, o_proj=None, attention=None, mlp=None, down_proj=None, qkv_proj=None, qk_proj=None, qa_proj=None, qb_proj=None, kv_proj=None, kva_proj=None, kvb_proj=None, language_model=['thinker.model', 'thinker.lm_head'], aligner=['thinker.audio_tower.proj1', 'thinker.audio_tower.proj2'], vision_tower=['thinker.audio_tower'], generator=[]), mcore_model_type=None, architectures=['Qwen3ASRForConditionalGeneration'], additional_saved_files=[], torch_dtype=None, is_multimodal=True, is_reward=False, task_type=None, ignore_patterns=None, requires=['qwen-asr', 'transformers==4.57.6'], tags=[])",
398
+ "model_dir": "/home/work_nfs23/asr_data/ckpt/Qwen3-ASR-1.7B",
399
+ "template_meta": "QwenTemplateMeta(template_type='qwen3_asr', prefix=['<|im_start|>system\\n<|im_end|>\\n'], prompt=['<|im_start|>user\\n{{QUERY}}<|im_end|>\\n<|im_start|>assistant\\n'], chat_sep=['<|im_end|>\\n'], suffix=['<|im_end|>\\n'], template_cls=<class 'swift.template.templates.qwen.Qwen3ASRTemplate'>, system_prefix=['<|im_start|>system\\n{{SYSTEM}}<|im_end|>\\n'], default_system=None, auto_add_bos=False, stop_words=['<|endoftext|>'], agent_template='hermes', is_thinking=False, thinking_prefix='', non_thinking_prefix='', history_thinking_prefix='')",
400
+ "_val_dataset_exists": true,
401
+ "hub": "<class 'swift.hub.hub.MSHub'>",
402
+ "evaluation_strategy": "steps",
403
+ "training_args": "Seq2SeqTrainingArguments(output_dir='/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648', 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=64, per_device_eval_batch_size=64, 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=4.0, max_steps=-1, lr_scheduler_type=<SchedulerType.COSINE: 'cosine'>, lr_scheduler_kwargs=None, warmup_ratio=0.02, warmup_steps=0, log_level='passive', log_level_replica='warning', log_on_each_node=True, logging_dir='/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648/runs', logging_strategy=<IntervalStrategy.STEPS: 'steps'>, logging_first_step=True, logging_steps=100, logging_nan_inf_filter=True, save_strategy=<SaveStrategy.STEPS: 'steps'>, save_steps=1000, save_total_limit=None, 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, 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=200, dataloader_num_workers=12, dataloader_prefetch_factor=2, past_index=-1, run_name='/home/work_nfs13/cjhe/Qwen3-ASR/ms-swift/exp/minnan_kaiyuan_1wh_qwen3asr_1.7b/v0-20260710-163648', 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}, 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), parallelism_config=None, 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': 2, 'offload_optimizer': {'device': 'none', 'pin_memory': True}, 'allgather_partitions': True, 'allgather_bucket_size': 200000000.0, 'overlap_comm': False, 'reduce_scatter': True, 'reduce_bucket_size': 200000000.0, 'contiguous_gradients': 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_FUSED: 'adamw_torch_fused'>, optim_args=None, adafactor=False, group_by_length=False, length_column_name='length', report_to=['tensorboard'], project='huggingface', trackio_space_id='trackio', 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, hub_revision=None, gradient_checkpointing=True, gradient_checkpointing_kwargs={'use_reentrant': False}, 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=18000000, 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, liger_kernel_config=None, 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, tuner_backend='peft', vit_gradient_checkpointing=True, router_aux_loss_coef=0.0, enable_dft_loss=False, enable_channel_loss=False, safe_serialization=True, max_shard_size='5GB', check_model=True, acc_strategy='token', train_dataloader_shuffle=True, max_epochs=None, aligner_lr=None, vit_lr=None, use_logits_to_keep=None, ds3_gather_for_generation=True, resume_only_model=False, optimizer=None, loss_type=None, eval_metric=None, callbacks=[], early_stop_interval=None, eval_use_evalscope=False, eval_dataset=[], eval_dataset_args=None, eval_limit=None, eval_generation_config=None, extra_eval_args=None, tuner_type='full', use_galore=False, galore_target_modules=None, galore_rank=128, galore_update_proj_gap=50, galore_scale=1.0, galore_proj_type='std', galore_optim_per_parameter=False, galore_with_embedding=False, galore_quantization=False, galore_proj_quant=False, galore_proj_bits=4, galore_proj_group_size=256, galore_cos_threshold=0.4, galore_gamma_proj=2, galore_queue_size=5, lisa_activated_layers=0, lisa_step_interval=20, use_flash_ckpt=False)"
404
+ }
Qwen3-ASR-WSM-Min/chat_template.jinja ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set ns = namespace(system_text="") -%}
2
+ {%- for m in messages -%}
3
+ {%- if m.role == 'system' -%}
4
+ {%- if m.content is string -%}
5
+ {%- set ns.system_text = ns.system_text + m.content -%}
6
+ {%- else -%}
7
+ {%- for c in m.content -%}
8
+ {%- if c.type == 'text' and (c.text is defined) -%}
9
+ {%- set ns.system_text = ns.system_text + c.text -%}
10
+ {%- endif -%}
11
+ {%- endfor -%}
12
+ {%- endif -%}
13
+ {%- endif -%}
14
+ {%- endfor -%}
15
+
16
+ {%- set ns2 = namespace(audio_tokens="") -%}
17
+ {%- for m in messages -%}
18
+ {%- if m.content is not string -%}
19
+ {%- for c in m.content -%}
20
+ {%- if c.type == 'audio' or ('audio' in c) or ('audio_url' in c) -%}
21
+ {%- set ns2.audio_tokens = ns2.audio_tokens + "<|audio_start|><|audio_pad|><|audio_end|>" -%}
22
+ {%- endif -%}
23
+ {%- endfor -%}
24
+ {%- endif -%}
25
+ {%- endfor -%}
26
+
27
+ {{- '<|im_start|>system\n' + (ns.system_text if ns.system_text is string else '') + '<|im_end|>\n' -}}
28
+ {{- '<|im_start|>user\n' + ns2.audio_tokens + '<|im_end|>\n' -}}
29
+ {%- if add_generation_prompt -%}
30
+ {{- '<|im_start|>assistant\n' -}}
31
+ {%- endif -%}
Qwen3-ASR-WSM-Min/config.json ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3ASRForConditionalGeneration"
4
+ ],
5
+ "dtype": "bfloat16",
6
+ "eos_token_id": 151645,
7
+ "hidden_size": 2048,
8
+ "keys_to_ignore_at_inference": [
9
+ "past_key_values"
10
+ ],
11
+ "model_type": "qwen3_asr",
12
+ "pad_token_id": 151643,
13
+ "support_languages": [
14
+ "Chinese",
15
+ "English",
16
+ "Cantonese",
17
+ "Arabic",
18
+ "German",
19
+ "French",
20
+ "Spanish",
21
+ "Portuguese",
22
+ "Indonesian",
23
+ "Italian",
24
+ "Korean",
25
+ "Russian",
26
+ "Thai",
27
+ "Vietnamese",
28
+ "Japanese",
29
+ "Turkish",
30
+ "Hindi",
31
+ "Malay",
32
+ "Dutch",
33
+ "Swedish",
34
+ "Danish",
35
+ "Finnish",
36
+ "Polish",
37
+ "Czech",
38
+ "Filipino",
39
+ "Persian",
40
+ "Greek",
41
+ "Romanian",
42
+ "Hungarian",
43
+ "Macedonian"
44
+ ],
45
+ "thinker_config": {
46
+ "architectures": [
47
+ "Qwen3ASRForConditionalGeneration"
48
+ ],
49
+ "audio_config": {
50
+ "_name_or_path": "",
51
+ "activation_dropout": 0,
52
+ "activation_function": "gelu",
53
+ "add_cross_attention": false,
54
+ "architectures": null,
55
+ "attention_dropout": 0,
56
+ "bad_words_ids": null,
57
+ "begin_suppress_tokens": null,
58
+ "bos_token_id": null,
59
+ "chunk_size_feed_forward": 0,
60
+ "conv_chunksize": 500,
61
+ "cross_attention_hidden_size": null,
62
+ "d_model": 1024,
63
+ "decoder_start_token_id": null,
64
+ "diversity_penalty": 0.0,
65
+ "do_sample": false,
66
+ "downsample_hidden_size": 480,
67
+ "dropout": 0,
68
+ "dtype": "bfloat16",
69
+ "early_stopping": false,
70
+ "encoder_attention_heads": 16,
71
+ "encoder_ffn_dim": 4096,
72
+ "encoder_layers": 24,
73
+ "encoder_no_repeat_ngram_size": 0,
74
+ "eos_token_id": null,
75
+ "exponential_decay_length_penalty": null,
76
+ "finetuning_task": null,
77
+ "forced_bos_token_id": null,
78
+ "forced_eos_token_id": null,
79
+ "id2label": {
80
+ "0": "LABEL_0",
81
+ "1": "LABEL_1"
82
+ },
83
+ "initializer_range": 0.02,
84
+ "is_decoder": false,
85
+ "is_encoder_decoder": false,
86
+ "label2id": {
87
+ "LABEL_0": 0,
88
+ "LABEL_1": 1
89
+ },
90
+ "length_penalty": 1.0,
91
+ "max_length": 20,
92
+ "max_source_positions": 1500,
93
+ "min_length": 0,
94
+ "model_type": "qwen3_asr_audio_encoder",
95
+ "n_window": 50,
96
+ "n_window_infer": 800,
97
+ "no_repeat_ngram_size": 0,
98
+ "num_beam_groups": 1,
99
+ "num_beams": 1,
100
+ "num_hidden_layers": 24,
101
+ "num_mel_bins": 128,
102
+ "num_return_sequences": 1,
103
+ "output_attentions": false,
104
+ "output_dim": 2048,
105
+ "output_hidden_states": false,
106
+ "output_scores": false,
107
+ "pad_token_id": null,
108
+ "prefix": null,
109
+ "problem_type": null,
110
+ "pruned_heads": {},
111
+ "remove_invalid_values": false,
112
+ "repetition_penalty": 1.0,
113
+ "return_dict": true,
114
+ "return_dict_in_generate": false,
115
+ "scale_embedding": false,
116
+ "sep_token_id": null,
117
+ "suppress_tokens": null,
118
+ "task_specific_params": null,
119
+ "temperature": 1.0,
120
+ "tf_legacy_loss": false,
121
+ "tie_encoder_decoder": false,
122
+ "tie_word_embeddings": true,
123
+ "tokenizer_class": null,
124
+ "top_k": 50,
125
+ "top_p": 1.0,
126
+ "torchscript": false,
127
+ "typical_p": 1.0,
128
+ "use_bfloat16": false
129
+ },
130
+ "audio_end_token_id": 151670,
131
+ "audio_start_token_id": 151669,
132
+ "audio_token_id": 151676,
133
+ "dtype": "bfloat16",
134
+ "initializer_range": 0.02,
135
+ "model_type": "qwen3_asr_thinker",
136
+ "text_config": {
137
+ "_name_or_path": "",
138
+ "add_cross_attention": false,
139
+ "architectures": null,
140
+ "attention_bias": false,
141
+ "attention_dropout": 0.0,
142
+ "bad_words_ids": null,
143
+ "begin_suppress_tokens": null,
144
+ "bos_token_id": null,
145
+ "chunk_size_feed_forward": 0,
146
+ "cross_attention_hidden_size": null,
147
+ "decoder_start_token_id": null,
148
+ "diversity_penalty": 0.0,
149
+ "do_sample": false,
150
+ "dtype": "bfloat16",
151
+ "early_stopping": false,
152
+ "encoder_no_repeat_ngram_size": 0,
153
+ "eos_token_id": null,
154
+ "exponential_decay_length_penalty": null,
155
+ "finetuning_task": null,
156
+ "forced_bos_token_id": null,
157
+ "forced_eos_token_id": null,
158
+ "head_dim": 128,
159
+ "hidden_act": "silu",
160
+ "hidden_size": 2048,
161
+ "id2label": {
162
+ "0": "LABEL_0",
163
+ "1": "LABEL_1"
164
+ },
165
+ "initializer_range": 0.02,
166
+ "intermediate_size": 6144,
167
+ "is_decoder": false,
168
+ "is_encoder_decoder": false,
169
+ "label2id": {
170
+ "LABEL_0": 0,
171
+ "LABEL_1": 1
172
+ },
173
+ "length_penalty": 1.0,
174
+ "max_length": 20,
175
+ "max_position_embeddings": 65536,
176
+ "min_length": 0,
177
+ "model_type": "qwen3_asr_text",
178
+ "no_repeat_ngram_size": 0,
179
+ "num_attention_heads": 16,
180
+ "num_beam_groups": 1,
181
+ "num_beams": 1,
182
+ "num_hidden_layers": 28,
183
+ "num_key_value_heads": 8,
184
+ "num_return_sequences": 1,
185
+ "output_attentions": false,
186
+ "output_hidden_states": false,
187
+ "output_scores": false,
188
+ "pad_token_id": 151643,
189
+ "prefix": null,
190
+ "problem_type": null,
191
+ "pruned_heads": {},
192
+ "remove_invalid_values": false,
193
+ "repetition_penalty": 1.0,
194
+ "return_dict": true,
195
+ "return_dict_in_generate": false,
196
+ "rms_norm_eps": 1e-06,
197
+ "rope_scaling": {
198
+ "interleaved": true,
199
+ "mrope_interleaved": true,
200
+ "mrope_section": [
201
+ 24,
202
+ 20,
203
+ 20
204
+ ],
205
+ "rope_type": "default",
206
+ "type": "default"
207
+ },
208
+ "rope_theta": 1000000,
209
+ "sep_token_id": null,
210
+ "suppress_tokens": null,
211
+ "task_specific_params": null,
212
+ "temperature": 1.0,
213
+ "tf_legacy_loss": false,
214
+ "tie_encoder_decoder": false,
215
+ "tie_word_embeddings": true,
216
+ "tokenizer_class": null,
217
+ "top_k": 50,
218
+ "top_p": 1.0,
219
+ "torchscript": false,
220
+ "typical_p": 1.0,
221
+ "use_bfloat16": false,
222
+ "use_cache": false,
223
+ "vocab_size": 151936
224
+ },
225
+ "user_token_id": 872
226
+ },
227
+ "transformers_version": "4.57.6"
228
+ }
Qwen3-ASR-WSM-Min/generation_config.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "eos_token_id": [
4
+ 151643,
5
+ 151645
6
+ ],
7
+ "pad_token_id": 151643,
8
+ "transformers_version": "4.57.6"
9
+ }
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:665d3a92cf0e488b2ee3559f9b57a08b22b94c92792ef496c2a65644a32a4841
3
+ size 3057098949
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_1_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:15f1a5aadd39e8326f1cd5738e56b3c93c513a815e3519aba07441fe87a3ac4b
3
+ size 3057090437
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_2_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61746bac9b1d406a9604d5dfc8d094231d197f562ec953329988a8037b13db6d
3
+ size 3057089541
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_3_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7baa04f2b3cf1633627a80d32389ad27e6f7128b27a69af9fbd62de498568c8f
3
+ size 3057091013
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_4_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f2e3a31c4cf30b3713738d3a09320471b01163efd48113babd579c7ca0d8db84
3
+ size 3057091077
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_5_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9abf4332aa72685dda38cb04139c5317c1cca66deb1009277676e7045b18856e
3
+ size 3057091269
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_6_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:476e5d8399c4223327ecdb4d4e5772a2a7ead9b964cc521a7f010f65c4f6ef20
3
+ size 3057091781
Qwen3-ASR-WSM-Min/global_step16000/bf16_zero_pp_rank_7_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d05726de0b68a3fe6ff5d337ca5b4dd4ce8ef3f7f3c378e1e79fc57ff4094da
3
+ size 3057091525
Qwen3-ASR-WSM-Min/global_step16000/mp_rank_00_model_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e8c5d816c6c24b52f4453604621453251dc15ec65ffc695cb47015ec581545e
3
+ size 4076311909
Qwen3-ASR-WSM-Min/latest ADDED
@@ -0,0 +1 @@
 
 
1
+ global_step16000
Qwen3-ASR-WSM-Min/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
Qwen3-ASR-WSM-Min/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95faa02d29b2ee646ce9776fb9e01775c29ec05d19407a46e9db0e0d78bb8daa
3
+ size 4698521600
Qwen3-ASR-WSM-Min/preprocessor_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "chunk_length": 30,
3
+ "dither": 0.0,
4
+ "feature_extractor_type": "WhisperFeatureExtractor",
5
+ "feature_size": 128,
6
+ "hop_length": 160,
7
+ "n_fft": 400,
8
+ "n_samples": 480000,
9
+ "nb_max_frames": 3000,
10
+ "padding_side": "right",
11
+ "padding_value": 0.0,
12
+ "processor_class": "Qwen3ASRProcessor",
13
+ "return_attention_mask": true
14
+ }
Qwen3-ASR-WSM-Min/rng_state_0.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:433d385e712c93716e15a8139e2d1f04bf04511b0df6c15370e96c251646009e
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_1.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ac21b6e036188089dabe3eef36114c8e29f0fdf27adda9c4c1fa6931a4c1267b
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_2.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fb7b89410fb7449d97ce4ca2cfa0ea64c1621df9f32f0bed601335898b857ad2
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_3.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:273f9341d3654a394aea08b14ed357df698a9ad94ec8b55c43d901375a7ec7c6
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_4.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5db9e0c6d774d042b39733f26b05d33239deae706f052a1e68fe8d722ef518ef
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_5.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c8172edfff7fc463f07839f0d75e7c4bdf8a7249e24655a27b1c5e0d09605b0e
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_6.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:77d2e035eb864da1c82dfc5e7ede2970364a6be674984d7d79b65adfa1446941
3
+ size 16389
Qwen3-ASR-WSM-Min/rng_state_7.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c6331d7c03af61ffc3cbb8b7da0b56accbfde04d779e7d90270e5d969647d59c
3
+ size 16389
Qwen3-ASR-WSM-Min/scheduler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c5b4f351d1648098f8f117d3b37338f745e94c89381a7b9df47e72e475244417
3
+ size 1465
Qwen3-ASR-WSM-Min/special_tokens_map.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>",
16
+ "<|audio_start|>",
17
+ "<|audio_end|>",
18
+ "<tts_pad>",
19
+ "<tts_text_bos>",
20
+ "<tts_text_bos_single>",
21
+ "<|audio_pad|>"
22
+ ],
23
+ "audio_bos_token": "<|audio_start|>",
24
+ "audio_eos_token": "<|audio_end|>",
25
+ "audio_token": "<|audio_pad|>",
26
+ "eos_token": {
27
+ "content": "<|im_end|>",
28
+ "lstrip": false,
29
+ "normalized": false,
30
+ "rstrip": false,
31
+ "single_word": false
32
+ },
33
+ "image_token": "<|image_pad|>",
34
+ "pad_token": {
35
+ "content": "<|endoftext|>",
36
+ "lstrip": false,
37
+ "normalized": false,
38
+ "rstrip": false,
39
+ "single_word": false
40
+ },
41
+ "video_token": "<|video_pad|>",
42
+ "vision_bos_token": "<|vision_start|>",
43
+ "vision_eos_token": "<|vision_end|>"
44
+ }
Qwen3-ASR-WSM-Min/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd2a97b55c8f7f9c328c73ee9b9178771037e9f566dfca8e238a063d41cbac92
3
+ size 11429377
Qwen3-ASR-WSM-Min/tokenizer_config.json ADDED
@@ -0,0 +1,549 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ },
213
+ "151669": {
214
+ "content": "<|audio_start|>",
215
+ "lstrip": false,
216
+ "normalized": false,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": true
220
+ },
221
+ "151670": {
222
+ "content": "<|audio_end|>",
223
+ "lstrip": false,
224
+ "normalized": false,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": true
228
+ },
229
+ "151671": {
230
+ "content": "<tts_pad>",
231
+ "lstrip": false,
232
+ "normalized": false,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": true
236
+ },
237
+ "151672": {
238
+ "content": "<tts_text_bos>",
239
+ "lstrip": false,
240
+ "normalized": false,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": true
244
+ },
245
+ "151673": {
246
+ "content": "<tts_text_eod>",
247
+ "lstrip": false,
248
+ "normalized": false,
249
+ "rstrip": false,
250
+ "single_word": false,
251
+ "special": true
252
+ },
253
+ "151674": {
254
+ "content": "<tts_text_bos_single>",
255
+ "lstrip": false,
256
+ "normalized": false,
257
+ "rstrip": false,
258
+ "single_word": false,
259
+ "special": true
260
+ },
261
+ "151675": {
262
+ "content": "<non_speech>",
263
+ "lstrip": false,
264
+ "normalized": false,
265
+ "rstrip": false,
266
+ "single_word": false,
267
+ "special": false
268
+ },
269
+ "151676": {
270
+ "content": "<|audio_pad|>",
271
+ "lstrip": false,
272
+ "normalized": false,
273
+ "rstrip": false,
274
+ "single_word": false,
275
+ "special": true
276
+ },
277
+ "151677": {
278
+ "content": "<blank1>",
279
+ "lstrip": false,
280
+ "normalized": false,
281
+ "rstrip": false,
282
+ "single_word": false,
283
+ "special": true
284
+ },
285
+ "151678": {
286
+ "content": "<blank2>",
287
+ "lstrip": false,
288
+ "normalized": false,
289
+ "rstrip": false,
290
+ "single_word": false,
291
+ "special": true
292
+ },
293
+ "151679": {
294
+ "content": "<blank3>",
295
+ "lstrip": false,
296
+ "normalized": false,
297
+ "rstrip": false,
298
+ "single_word": false,
299
+ "special": true
300
+ },
301
+ "151680": {
302
+ "content": "<blank4>",
303
+ "lstrip": false,
304
+ "normalized": false,
305
+ "rstrip": false,
306
+ "single_word": false,
307
+ "special": true
308
+ },
309
+ "151681": {
310
+ "content": "<blank5>",
311
+ "lstrip": false,
312
+ "normalized": false,
313
+ "rstrip": false,
314
+ "single_word": false,
315
+ "special": true
316
+ },
317
+ "151682": {
318
+ "content": "<blank6>",
319
+ "lstrip": false,
320
+ "normalized": false,
321
+ "rstrip": false,
322
+ "single_word": false,
323
+ "special": true
324
+ },
325
+ "151683": {
326
+ "content": "<blank7>",
327
+ "lstrip": false,
328
+ "normalized": false,
329
+ "rstrip": false,
330
+ "single_word": false,
331
+ "special": true
332
+ },
333
+ "151684": {
334
+ "content": "<blank8>",
335
+ "lstrip": false,
336
+ "normalized": false,
337
+ "rstrip": false,
338
+ "single_word": false,
339
+ "special": true
340
+ },
341
+ "151685": {
342
+ "content": "<blank9>",
343
+ "lstrip": false,
344
+ "normalized": false,
345
+ "rstrip": false,
346
+ "single_word": false,
347
+ "special": true
348
+ },
349
+ "151686": {
350
+ "content": "<blank10>",
351
+ "lstrip": false,
352
+ "normalized": false,
353
+ "rstrip": false,
354
+ "single_word": false,
355
+ "special": true
356
+ },
357
+ "151687": {
358
+ "content": "<blank11>",
359
+ "lstrip": false,
360
+ "normalized": false,
361
+ "rstrip": false,
362
+ "single_word": false,
363
+ "special": true
364
+ },
365
+ "151688": {
366
+ "content": "<blank12>",
367
+ "lstrip": false,
368
+ "normalized": false,
369
+ "rstrip": false,
370
+ "single_word": false,
371
+ "special": true
372
+ },
373
+ "151689": {
374
+ "content": "<blank13>",
375
+ "lstrip": false,
376
+ "normalized": false,
377
+ "rstrip": false,
378
+ "single_word": false,
379
+ "special": true
380
+ },
381
+ "151690": {
382
+ "content": "<blank14>",
383
+ "lstrip": false,
384
+ "normalized": false,
385
+ "rstrip": false,
386
+ "single_word": false,
387
+ "special": true
388
+ },
389
+ "151691": {
390
+ "content": "<blank15>",
391
+ "lstrip": false,
392
+ "normalized": false,
393
+ "rstrip": false,
394
+ "single_word": false,
395
+ "special": true
396
+ },
397
+ "151692": {
398
+ "content": "<blank16>",
399
+ "lstrip": false,
400
+ "normalized": false,
401
+ "rstrip": false,
402
+ "single_word": false,
403
+ "special": true
404
+ },
405
+ "151693": {
406
+ "content": "<blank17>",
407
+ "lstrip": false,
408
+ "normalized": false,
409
+ "rstrip": false,
410
+ "single_word": false,
411
+ "special": true
412
+ },
413
+ "151694": {
414
+ "content": "<blank18>",
415
+ "lstrip": false,
416
+ "normalized": false,
417
+ "rstrip": false,
418
+ "single_word": false,
419
+ "special": true
420
+ },
421
+ "151695": {
422
+ "content": "<blank19>",
423
+ "lstrip": false,
424
+ "normalized": false,
425
+ "rstrip": false,
426
+ "single_word": false,
427
+ "special": true
428
+ },
429
+ "151696": {
430
+ "content": "<blank20>",
431
+ "lstrip": false,
432
+ "normalized": false,
433
+ "rstrip": false,
434
+ "single_word": false,
435
+ "special": true
436
+ },
437
+ "151697": {
438
+ "content": "<blank21>",
439
+ "lstrip": false,
440
+ "normalized": false,
441
+ "rstrip": false,
442
+ "single_word": false,
443
+ "special": true
444
+ },
445
+ "151698": {
446
+ "content": "<blank22>",
447
+ "lstrip": false,
448
+ "normalized": false,
449
+ "rstrip": false,
450
+ "single_word": false,
451
+ "special": true
452
+ },
453
+ "151699": {
454
+ "content": "<blank23>",
455
+ "lstrip": false,
456
+ "normalized": false,
457
+ "rstrip": false,
458
+ "single_word": false,
459
+ "special": true
460
+ },
461
+ "151700": {
462
+ "content": "<blank24>",
463
+ "lstrip": false,
464
+ "normalized": false,
465
+ "rstrip": false,
466
+ "single_word": false,
467
+ "special": true
468
+ },
469
+ "151701": {
470
+ "content": "<blank25>",
471
+ "lstrip": false,
472
+ "normalized": false,
473
+ "rstrip": false,
474
+ "single_word": false,
475
+ "special": true
476
+ },
477
+ "151702": {
478
+ "content": "<blank26>",
479
+ "lstrip": false,
480
+ "normalized": false,
481
+ "rstrip": false,
482
+ "single_word": false,
483
+ "special": true
484
+ },
485
+ "151703": {
486
+ "content": "<blank27>",
487
+ "lstrip": false,
488
+ "normalized": false,
489
+ "rstrip": false,
490
+ "single_word": false,
491
+ "special": true
492
+ },
493
+ "151704": {
494
+ "content": "<asr_text>",
495
+ "lstrip": false,
496
+ "normalized": false,
497
+ "rstrip": false,
498
+ "single_word": false,
499
+ "special": false
500
+ }
501
+ },
502
+ "additional_special_tokens": [
503
+ "<|im_start|>",
504
+ "<|im_end|>",
505
+ "<|object_ref_start|>",
506
+ "<|object_ref_end|>",
507
+ "<|box_start|>",
508
+ "<|box_end|>",
509
+ "<|quad_start|>",
510
+ "<|quad_end|>",
511
+ "<|vision_start|>",
512
+ "<|vision_end|>",
513
+ "<|vision_pad|>",
514
+ "<|image_pad|>",
515
+ "<|video_pad|>",
516
+ "<|audio_start|>",
517
+ "<|audio_end|>",
518
+ "<tts_pad>",
519
+ "<tts_text_bos>",
520
+ "<tts_text_bos_single>",
521
+ "<|audio_pad|>"
522
+ ],
523
+ "audio_bos_token": "<|audio_start|>",
524
+ "audio_eos_token": "<|audio_end|>",
525
+ "audio_token": "<|audio_pad|>",
526
+ "bos_token": null,
527
+ "clean_up_tokenization_spaces": false,
528
+ "eos_token": "<|im_end|>",
529
+ "errors": "replace",
530
+ "extra_special_tokens": {
531
+ "audio_bos_token": "<|audio_start|>",
532
+ "audio_eos_token": "<|audio_end|>",
533
+ "audio_token": "<|audio_pad|>",
534
+ "image_token": "<|image_pad|>",
535
+ "video_token": "<|video_pad|>",
536
+ "vision_bos_token": "<|vision_start|>",
537
+ "vision_eos_token": "<|vision_end|>"
538
+ },
539
+ "image_token": "<|image_pad|>",
540
+ "model_max_length": 131072,
541
+ "pad_token": "<|endoftext|>",
542
+ "processor_class": "Qwen3ASRProcessor",
543
+ "split_special_tokens": false,
544
+ "tokenizer_class": "Qwen2Tokenizer",
545
+ "unk_token": null,
546
+ "video_token": "<|video_pad|>",
547
+ "vision_bos_token": "<|vision_start|>",
548
+ "vision_eos_token": "<|vision_end|>"
549
+ }
Qwen3-ASR-WSM-Min/trainer_state.json ADDED
@@ -0,0 +1,2042 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_global_step": 200,
3
+ "best_metric": 1.01447761,
4
+ "best_model_checkpoint": null,
5
+ "epoch": 2.958121475455302,
6
+ "eval_steps": 200,
7
+ "global_step": 16000,
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.00018489414810021263,
14
+ "grad_norm": 111.71553039550781,
15
+ "learning_rate": 2.3094688221709007e-08,
16
+ "loss": 2.648883581161499,
17
+ "step": 1,
18
+ "token_acc": 0.6067455761846324
19
+ },
20
+ {
21
+ "epoch": 0.018489414810021264,
22
+ "grad_norm": 2.922001361846924,
23
+ "learning_rate": 2.3094688221709006e-06,
24
+ "loss": 1.1922963460286458,
25
+ "step": 100,
26
+ "token_acc": 0.7539609103342668
27
+ },
28
+ {
29
+ "epoch": 0.03697882962004253,
30
+ "grad_norm": 3.0476975440979004,
31
+ "learning_rate": 4.618937644341801e-06,
32
+ "loss": 0.41063663482666013,
33
+ "step": 200,
34
+ "token_acc": 0.8698793321763938
35
+ },
36
+ {
37
+ "epoch": 0.03697882962004253,
38
+ "eval_loss": 1.0144776105880737,
39
+ "eval_runtime": 51.4031,
40
+ "eval_samples_per_second": 301.188,
41
+ "eval_steps_per_second": 0.603,
42
+ "eval_token_acc": 0.8180929835105752,
43
+ "step": 200
44
+ },
45
+ {
46
+ "epoch": 0.05546824443006379,
47
+ "grad_norm": 6.208777904510498,
48
+ "learning_rate": 6.928406466512702e-06,
49
+ "loss": 0.35355266571044924,
50
+ "step": 300,
51
+ "token_acc": 0.8843683925385469
52
+ },
53
+ {
54
+ "epoch": 0.07395765924008506,
55
+ "grad_norm": 5.785989761352539,
56
+ "learning_rate": 9.237875288683602e-06,
57
+ "loss": 0.32728473663330077,
58
+ "step": 400,
59
+ "token_acc": 0.8909257197704288
60
+ },
61
+ {
62
+ "epoch": 0.07395765924008506,
63
+ "eval_loss": 1.111476182937622,
64
+ "eval_runtime": 35.9267,
65
+ "eval_samples_per_second": 430.933,
66
+ "eval_steps_per_second": 0.863,
67
+ "eval_token_acc": 0.8225046099247284,
68
+ "step": 400
69
+ },
70
+ {
71
+ "epoch": 0.09244707405010631,
72
+ "grad_norm": 3.5521814823150635,
73
+ "learning_rate": 9.999753628103762e-06,
74
+ "loss": 0.31058956146240235,
75
+ "step": 500,
76
+ "token_acc": 0.8952305663901123
77
+ },
78
+ {
79
+ "epoch": 0.11093648886012758,
80
+ "grad_norm": 2.6671371459960938,
81
+ "learning_rate": 9.998469420433913e-06,
82
+ "loss": 0.2931631088256836,
83
+ "step": 600,
84
+ "token_acc": 0.9003683912010906
85
+ },
86
+ {
87
+ "epoch": 0.11093648886012758,
88
+ "eval_loss": 1.2274305820465088,
89
+ "eval_runtime": 52.5536,
90
+ "eval_samples_per_second": 294.595,
91
+ "eval_steps_per_second": 0.59,
92
+ "eval_token_acc": 0.8256119649523062,
93
+ "step": 600
94
+ },
95
+ {
96
+ "epoch": 0.12942590367014883,
97
+ "grad_norm": 2.6913869380950928,
98
+ "learning_rate": 9.99608789044425e-06,
99
+ "loss": 0.281595344543457,
100
+ "step": 700,
101
+ "token_acc": 0.9035918171295385
102
+ },
103
+ {
104
+ "epoch": 0.14791531848017012,
105
+ "grad_norm": 3.1163330078125,
106
+ "learning_rate": 9.992609560956019e-06,
107
+ "loss": 0.2716915512084961,
108
+ "step": 800,
109
+ "token_acc": 0.9061136695566686
110
+ },
111
+ {
112
+ "epoch": 0.14791531848017012,
113
+ "eval_loss": 1.3400822877883911,
114
+ "eval_runtime": 38.5226,
115
+ "eval_samples_per_second": 401.894,
116
+ "eval_steps_per_second": 0.805,
117
+ "eval_token_acc": 0.8278852404724815,
118
+ "step": 800
119
+ },
120
+ {
121
+ "epoch": 0.16640473329019137,
122
+ "grad_norm": 3.4362285137176514,
123
+ "learning_rate": 9.988035195572685e-06,
124
+ "loss": 0.26148880004882813,
125
+ "step": 900,
126
+ "token_acc": 0.9093240404437027
127
+ },
128
+ {
129
+ "epoch": 0.18489414810021262,
130
+ "grad_norm": 2.838069438934326,
131
+ "learning_rate": 9.982365798512305e-06,
132
+ "loss": 0.25565671920776367,
133
+ "step": 1000,
134
+ "token_acc": 0.9107939315310666
135
+ },
136
+ {
137
+ "epoch": 0.18489414810021262,
138
+ "eval_loss": 1.4232231378555298,
139
+ "eval_runtime": 37.2234,
140
+ "eval_samples_per_second": 415.921,
141
+ "eval_steps_per_second": 0.833,
142
+ "eval_token_acc": 0.8293285251102906,
143
+ "step": 1000
144
+ },
145
+ {
146
+ "epoch": 0.20338356291023388,
147
+ "grad_norm": 2.627117156982422,
148
+ "learning_rate": 9.97560261438706e-06,
149
+ "loss": 0.24876928329467773,
150
+ "step": 1100,
151
+ "token_acc": 0.9130002779102413
152
+ },
153
+ {
154
+ "epoch": 0.22187297772025516,
155
+ "grad_norm": 3.118025779724121,
156
+ "learning_rate": 9.967747127930028e-06,
157
+ "loss": 0.24220096588134765,
158
+ "step": 1200,
159
+ "token_acc": 0.9147149870604054
160
+ },
161
+ {
162
+ "epoch": 0.22187297772025516,
163
+ "eval_loss": 1.451097846031189,
164
+ "eval_runtime": 38.088,
165
+ "eval_samples_per_second": 406.48,
166
+ "eval_steps_per_second": 0.814,
167
+ "eval_token_acc": 0.8307309234977369,
168
+ "step": 1200
169
+ },
170
+ {
171
+ "epoch": 0.24036239253027641,
172
+ "grad_norm": 2.72821044921875,
173
+ "learning_rate": 9.958801063669242e-06,
174
+ "loss": 0.23826725006103516,
175
+ "step": 1300,
176
+ "token_acc": 0.9160493730222916
177
+ },
178
+ {
179
+ "epoch": 0.25885180734029767,
180
+ "grad_norm": 3.0269107818603516,
181
+ "learning_rate": 9.948766385549092e-06,
182
+ "loss": 0.23318710327148437,
183
+ "step": 1400,
184
+ "token_acc": 0.9177872612639156
185
+ },
186
+ {
187
+ "epoch": 0.25885180734029767,
188
+ "eval_loss": 1.4914048910140991,
189
+ "eval_runtime": 39.0073,
190
+ "eval_samples_per_second": 396.9,
191
+ "eval_steps_per_second": 0.795,
192
+ "eval_token_acc": 0.8324072597626144,
193
+ "step": 1400
194
+ },
195
+ {
196
+ "epoch": 0.2773412221503189,
197
+ "grad_norm": 2.6068923473358154,
198
+ "learning_rate": 9.937645296499185e-06,
199
+ "loss": 0.22903181076049806,
200
+ "step": 1500,
201
+ "token_acc": 0.9190053995875763
202
+ },
203
+ {
204
+ "epoch": 0.29583063696034023,
205
+ "grad_norm": 2.84269642829895,
206
+ "learning_rate": 9.92544023795073e-06,
207
+ "loss": 0.22664697647094725,
208
+ "step": 1600,
209
+ "token_acc": 0.9196992125237452
210
+ },
211
+ {
212
+ "epoch": 0.29583063696034023,
213
+ "eval_loss": 1.4975084066390991,
214
+ "eval_runtime": 36.0058,
215
+ "eval_samples_per_second": 429.987,
216
+ "eval_steps_per_second": 0.861,
217
+ "eval_token_acc": 0.83302873076813,
218
+ "step": 1600
219
+ },
220
+ {
221
+ "epoch": 0.3143200517703615,
222
+ "grad_norm": 2.2528085708618164,
223
+ "learning_rate": 9.912153889300562e-06,
224
+ "loss": 0.2265909194946289,
225
+ "step": 1700,
226
+ "token_acc": 0.9194939206232738
227
+ },
228
+ {
229
+ "epoch": 0.33280946658038274,
230
+ "grad_norm": 2.103715658187866,
231
+ "learning_rate": 9.897789167322938e-06,
232
+ "loss": 0.22183643341064452,
233
+ "step": 1800,
234
+ "token_acc": 0.9211902545521418
235
+ },
236
+ {
237
+ "epoch": 0.33280946658038274,
238
+ "eval_loss": 1.5258921384811401,
239
+ "eval_runtime": 36.8679,
240
+ "eval_samples_per_second": 419.932,
241
+ "eval_steps_per_second": 0.841,
242
+ "eval_token_acc": 0.8333926183963595,
243
+ "step": 1800
244
+ },
245
+ {
246
+ "epoch": 0.351298881390404,
247
+ "grad_norm": 2.9496121406555176,
248
+ "learning_rate": 9.882349225529208e-06,
249
+ "loss": 0.2201910972595215,
250
+ "step": 1900,
251
+ "token_acc": 0.921664994905861
252
+ },
253
+ {
254
+ "epoch": 0.36978829620042525,
255
+ "grad_norm": 3.201491594314575,
256
+ "learning_rate": 9.86583745347552e-06,
257
+ "loss": 0.21536655426025392,
258
+ "step": 2000,
259
+ "token_acc": 0.9233945148873542
260
+ },
261
+ {
262
+ "epoch": 0.36978829620042525,
263
+ "eval_loss": 1.523385763168335,
264
+ "eval_runtime": 35.885,
265
+ "eval_samples_per_second": 431.434,
266
+ "eval_steps_per_second": 0.864,
267
+ "eval_token_acc": 0.8340672415273468,
268
+ "step": 2000
269
+ },
270
+ {
271
+ "epoch": 0.3882777110104465,
272
+ "grad_norm": 2.0704493522644043,
273
+ "learning_rate": 9.848257476018699e-06,
274
+ "loss": 0.21449897766113282,
275
+ "step": 2100,
276
+ "token_acc": 0.9235176346647841
277
+ },
278
+ {
279
+ "epoch": 0.40676712582046776,
280
+ "grad_norm": 2.3089756965637207,
281
+ "learning_rate": 9.829613152520487e-06,
282
+ "loss": 0.2108938980102539,
283
+ "step": 2200,
284
+ "token_acc": 0.9244604882160045
285
+ },
286
+ {
287
+ "epoch": 0.40676712582046776,
288
+ "eval_loss": 1.557509422302246,
289
+ "eval_runtime": 36.5228,
290
+ "eval_samples_per_second": 423.9,
291
+ "eval_steps_per_second": 0.849,
292
+ "eval_token_acc": 0.8355882100408454,
293
+ "step": 2200
294
+ },
295
+ {
296
+ "epoch": 0.42525654063048907,
297
+ "grad_norm": 2.259549856185913,
298
+ "learning_rate": 9.809908576000288e-06,
299
+ "loss": 0.20940305709838866,
300
+ "step": 2300,
301
+ "token_acc": 0.9251665532475329
302
+ },
303
+ {
304
+ "epoch": 0.4437459554405103,
305
+ "grad_norm": 2.1792192459106445,
306
+ "learning_rate": 9.789148072236612e-06,
307
+ "loss": 0.2089914321899414,
308
+ "step": 2400,
309
+ "token_acc": 0.925105847080245
310
+ },
311
+ {
312
+ "epoch": 0.4437459554405103,
313
+ "eval_loss": 1.5759638547897339,
314
+ "eval_runtime": 35.5351,
315
+ "eval_samples_per_second": 435.682,
316
+ "eval_steps_per_second": 0.872,
317
+ "eval_token_acc": 0.8355187034152285,
318
+ "step": 2400
319
+ },
320
+ {
321
+ "epoch": 0.4622353702505316,
322
+ "grad_norm": 2.2059366703033447,
323
+ "learning_rate": 9.767336198817441e-06,
324
+ "loss": 0.20587841033935547,
325
+ "step": 2500,
326
+ "token_acc": 0.9262170052348255
327
+ },
328
+ {
329
+ "epoch": 0.48072478506055283,
330
+ "grad_norm": 2.698324203491211,
331
+ "learning_rate": 9.744477744139686e-06,
332
+ "loss": 0.2041876220703125,
333
+ "step": 2600,
334
+ "token_acc": 0.9267364721054939
335
+ },
336
+ {
337
+ "epoch": 0.48072478506055283,
338
+ "eval_loss": 1.582732915878296,
339
+ "eval_runtime": 34.3654,
340
+ "eval_samples_per_second": 450.512,
341
+ "eval_steps_per_second": 0.902,
342
+ "eval_token_acc": 0.8362710104219052,
343
+ "step": 2600
344
+ },
345
+ {
346
+ "epoch": 0.4992141998705741,
347
+ "grad_norm": 2.199079990386963,
348
+ "learning_rate": 9.72057772635799e-06,
349
+ "loss": 0.20334808349609376,
350
+ "step": 2700,
351
+ "token_acc": 0.9270570224893226
352
+ },
353
+ {
354
+ "epoch": 0.5177036146805953,
355
+ "grad_norm": 2.6320109367370605,
356
+ "learning_rate": 9.69564139228307e-06,
357
+ "loss": 0.20141841888427733,
358
+ "step": 2800,
359
+ "token_acc": 0.9276200947252605
360
+ },
361
+ {
362
+ "epoch": 0.5177036146805953,
363
+ "eval_loss": 1.5634138584136963,
364
+ "eval_runtime": 34.7284,
365
+ "eval_samples_per_second": 445.802,
366
+ "eval_steps_per_second": 0.893,
367
+ "eval_token_acc": 0.8363691374227761,
368
+ "step": 2800
369
+ },
370
+ {
371
+ "epoch": 0.5361930294906166,
372
+ "grad_norm": 2.713134527206421,
373
+ "learning_rate": 9.6696742162299e-06,
374
+ "loss": 0.20071035385131836,
375
+ "step": 2900,
376
+ "token_acc": 0.9278191630026814
377
+ },
378
+ {
379
+ "epoch": 0.5546824443006378,
380
+ "grad_norm": 2.115159749984741,
381
+ "learning_rate": 9.642681898815898e-06,
382
+ "loss": 0.19931299209594727,
383
+ "step": 3000,
384
+ "token_acc": 0.9283823865202623
385
+ },
386
+ {
387
+ "epoch": 0.5546824443006378,
388
+ "eval_loss": 1.595649242401123,
389
+ "eval_runtime": 35.136,
390
+ "eval_samples_per_second": 440.631,
391
+ "eval_steps_per_second": 0.882,
392
+ "eval_token_acc": 0.8369619880530377,
393
+ "step": 3000
394
+ },
395
+ {
396
+ "epoch": 0.5731718591106592,
397
+ "grad_norm": 1.989067554473877,
398
+ "learning_rate": 9.61467036570948e-06,
399
+ "loss": 0.19821651458740233,
400
+ "step": 3100,
401
+ "token_acc": 0.9286384459605592
402
+ },
403
+ {
404
+ "epoch": 0.5916612739206805,
405
+ "grad_norm": 2.211009979248047,
406
+ "learning_rate": 9.585645766329174e-06,
407
+ "loss": 0.1967957305908203,
408
+ "step": 3200,
409
+ "token_acc": 0.9290863017011062
410
+ },
411
+ {
412
+ "epoch": 0.5916612739206805,
413
+ "eval_loss": 1.6135554313659668,
414
+ "eval_runtime": 34.0447,
415
+ "eval_samples_per_second": 454.756,
416
+ "eval_steps_per_second": 0.911,
417
+ "eval_token_acc": 0.8372154828052875,
418
+ "step": 3200
419
+ },
420
+ {
421
+ "epoch": 0.6101506887307017,
422
+ "grad_norm": 2.5767476558685303,
423
+ "learning_rate": 9.555614472493645e-06,
424
+ "loss": 0.1952597427368164,
425
+ "step": 3300,
426
+ "token_acc": 0.9296881804891715
427
+ },
428
+ {
429
+ "epoch": 0.628640103540723,
430
+ "grad_norm": 1.970717430114746,
431
+ "learning_rate": 9.524583077022865e-06,
432
+ "loss": 0.1941541290283203,
433
+ "step": 3400,
434
+ "token_acc": 0.9300202592587643
435
+ },
436
+ {
437
+ "epoch": 0.628640103540723,
438
+ "eval_loss": 1.5975191593170166,
439
+ "eval_runtime": 33.7307,
440
+ "eval_samples_per_second": 458.989,
441
+ "eval_steps_per_second": 0.919,
442
+ "eval_token_acc": 0.8377674471851861,
443
+ "step": 3400
444
+ },
445
+ {
446
+ "epoch": 0.6471295183507442,
447
+ "grad_norm": 2.066835641860962,
448
+ "learning_rate": 9.492558392290778e-06,
449
+ "loss": 0.19371936798095704,
450
+ "step": 3500,
451
+ "token_acc": 0.9300272679782989
452
+ },
453
+ {
454
+ "epoch": 0.6656189331607655,
455
+ "grad_norm": 2.2377233505249023,
456
+ "learning_rate": 9.459547448729782e-06,
457
+ "loss": 0.1923367691040039,
458
+ "step": 3600,
459
+ "token_acc": 0.9305084599216811
460
+ },
461
+ {
462
+ "epoch": 0.6656189331607655,
463
+ "eval_loss": 1.6066784858703613,
464
+ "eval_runtime": 35.5317,
465
+ "eval_samples_per_second": 435.724,
466
+ "eval_steps_per_second": 0.872,
467
+ "eval_token_acc": 0.8376325225589887,
468
+ "step": 3600
469
+ },
470
+ {
471
+ "epoch": 0.6841083479707867,
472
+ "grad_norm": 2.3556344509124756,
473
+ "learning_rate": 9.425557493287317e-06,
474
+ "loss": 0.19046760559082032,
475
+ "step": 3700,
476
+ "token_acc": 0.9311673521410996
477
+ },
478
+ {
479
+ "epoch": 0.702597762780808,
480
+ "grad_norm": 2.414644241333008,
481
+ "learning_rate": 9.39059598783493e-06,
482
+ "loss": 0.19073116302490234,
483
+ "step": 3800,
484
+ "token_acc": 0.9309592717601893
485
+ },
486
+ {
487
+ "epoch": 0.702597762780808,
488
+ "eval_loss": 1.6400927305221558,
489
+ "eval_runtime": 34.4621,
490
+ "eval_samples_per_second": 449.247,
491
+ "eval_steps_per_second": 0.9,
492
+ "eval_token_acc": 0.8383930068157379,
493
+ "step": 3800
494
+ },
495
+ {
496
+ "epoch": 0.7210871775908293,
497
+ "grad_norm": 2.2784621715545654,
498
+ "learning_rate": 9.354670607530165e-06,
499
+ "loss": 0.18932226181030273,
500
+ "step": 3900,
501
+ "token_acc": 0.9314831107619795
502
+ },
503
+ {
504
+ "epoch": 0.7395765924008505,
505
+ "grad_norm": 2.5446369647979736,
506
+ "learning_rate": 9.317789239131613e-06,
507
+ "loss": 0.1888302230834961,
508
+ "step": 4000,
509
+ "token_acc": 0.9316500107527262
510
+ },
511
+ {
512
+ "epoch": 0.7395765924008505,
513
+ "eval_loss": 1.6447820663452148,
514
+ "eval_runtime": 39.6445,
515
+ "eval_samples_per_second": 390.521,
516
+ "eval_steps_per_second": 0.782,
517
+ "eval_token_acc": 0.8392107318229952,
518
+ "step": 4000
519
+ },
520
+ {
521
+ "epoch": 0.7580660072108718,
522
+ "grad_norm": 2.0726985931396484,
523
+ "learning_rate": 9.279959979267528e-06,
524
+ "loss": 0.18829454421997072,
525
+ "step": 4100,
526
+ "token_acc": 0.9317781501221714
527
+ },
528
+ {
529
+ "epoch": 0.776555422020893,
530
+ "grad_norm": 2.0762479305267334,
531
+ "learning_rate": 9.241191132658356e-06,
532
+ "loss": 0.18706449508666992,
533
+ "step": 4200,
534
+ "token_acc": 0.9323511335915298
535
+ },
536
+ {
537
+ "epoch": 0.776555422020893,
538
+ "eval_loss": 1.6254693269729614,
539
+ "eval_runtime": 34.9793,
540
+ "eval_samples_per_second": 442.605,
541
+ "eval_steps_per_second": 0.886,
542
+ "eval_token_acc": 0.8391248706972332,
543
+ "step": 4200
544
+ },
545
+ {
546
+ "epoch": 0.7950448368309143,
547
+ "grad_norm": 2.254326581954956,
548
+ "learning_rate": 9.201491210293583e-06,
549
+ "loss": 0.18593116760253905,
550
+ "step": 4300,
551
+ "token_acc": 0.9326580017632726
552
+ },
553
+ {
554
+ "epoch": 0.8135342516409355,
555
+ "grad_norm": 1.9395033121109009,
556
+ "learning_rate": 9.160868927563314e-06,
557
+ "loss": 0.18512523651123047,
558
+ "step": 4400,
559
+ "token_acc": 0.9329307504429487
560
+ },
561
+ {
562
+ "epoch": 0.8135342516409355,
563
+ "eval_loss": 1.639746069908142,
564
+ "eval_runtime": 35.9114,
565
+ "eval_samples_per_second": 431.116,
566
+ "eval_steps_per_second": 0.863,
567
+ "eval_token_acc": 0.8388468441947657,
568
+ "step": 4400
569
+ },
570
+ {
571
+ "epoch": 0.8320236664509568,
572
+ "grad_norm": 2.378365993499756,
573
+ "learning_rate": 9.119333202344953e-06,
574
+ "loss": 0.18431827545166016,
575
+ "step": 4500,
576
+ "token_acc": 0.9331190064239155
577
+ },
578
+ {
579
+ "epoch": 0.8505130812609781,
580
+ "grad_norm": 2.1460585594177246,
581
+ "learning_rate": 9.076893153045464e-06,
582
+ "loss": 0.18355430603027345,
583
+ "step": 4600,
584
+ "token_acc": 0.9334646427529134
585
+ },
586
+ {
587
+ "epoch": 0.8505130812609781,
588
+ "eval_loss": 1.6335515975952148,
589
+ "eval_runtime": 37.8269,
590
+ "eval_samples_per_second": 409.285,
591
+ "eval_steps_per_second": 0.82,
592
+ "eval_token_acc": 0.8393579223243015,
593
+ "step": 4600
594
+ },
595
+ {
596
+ "epoch": 0.8690024960709993,
597
+ "grad_norm": 2.1147706508636475,
598
+ "learning_rate": 9.033558096599575e-06,
599
+ "loss": 0.1834134864807129,
600
+ "step": 4700,
601
+ "token_acc": 0.9334649151317098
602
+ },
603
+ {
604
+ "epoch": 0.8874919108810206,
605
+ "grad_norm": 2.131558656692505,
606
+ "learning_rate": 8.989337546424432e-06,
607
+ "loss": 0.18236831665039063,
608
+ "step": 4800,
609
+ "token_acc": 0.9338352671802478
610
+ },
611
+ {
612
+ "epoch": 0.8874919108810206,
613
+ "eval_loss": 1.6568936109542847,
614
+ "eval_runtime": 38.5099,
615
+ "eval_samples_per_second": 402.027,
616
+ "eval_steps_per_second": 0.805,
617
+ "eval_token_acc": 0.8390063005711809,
618
+ "step": 4800
619
+ },
620
+ {
621
+ "epoch": 0.9059813256910418,
622
+ "grad_norm": 1.9892091751098633,
623
+ "learning_rate": 8.94424121033109e-06,
624
+ "loss": 0.18153335571289062,
625
+ "step": 4900,
626
+ "token_acc": 0.9341023295614975
627
+ },
628
+ {
629
+ "epoch": 0.9244707405010631,
630
+ "grad_norm": 2.218424081802368,
631
+ "learning_rate": 8.898278988393343e-06,
632
+ "loss": 0.1806512451171875,
633
+ "step": 5000,
634
+ "token_acc": 0.9344670985897315
635
+ },
636
+ {
637
+ "epoch": 0.9244707405010631,
638
+ "eval_loss": 1.6349440813064575,
639
+ "eval_runtime": 41.848,
640
+ "eval_samples_per_second": 369.958,
641
+ "eval_steps_per_second": 0.741,
642
+ "eval_token_acc": 0.8395419104509344,
643
+ "step": 5000
644
+ },
645
+ {
646
+ "epoch": 0.9429601553110845,
647
+ "grad_norm": 2.007549524307251,
648
+ "learning_rate": 8.851460970774355e-06,
649
+ "loss": 0.1798555374145508,
650
+ "step": 5100,
651
+ "token_acc": 0.9347298029461745
652
+ },
653
+ {
654
+ "epoch": 0.9614495701211057,
655
+ "grad_norm": 2.1956558227539062,
656
+ "learning_rate": 8.803797435511535e-06,
657
+ "loss": 0.1793169593811035,
658
+ "step": 5200,
659
+ "token_acc": 0.9346815577383201
660
+ },
661
+ {
662
+ "epoch": 0.9614495701211057,
663
+ "eval_loss": 1.6491081714630127,
664
+ "eval_runtime": 40.7497,
665
+ "eval_samples_per_second": 379.929,
666
+ "eval_steps_per_second": 0.761,
667
+ "eval_token_acc": 0.8397218099525311,
668
+ "step": 5200
669
+ },
670
+ {
671
+ "epoch": 0.979938984931127,
672
+ "grad_norm": 2.290909767150879,
673
+ "learning_rate": 8.75529884626019e-06,
674
+ "loss": 0.17874420166015625,
675
+ "step": 5300,
676
+ "token_acc": 0.9350539150980832
677
+ },
678
+ {
679
+ "epoch": 0.9984283997411482,
680
+ "grad_norm": 2.1777896881103516,
681
+ "learning_rate": 8.705975849996427e-06,
682
+ "loss": 0.1775716209411621,
683
+ "step": 5400,
684
+ "token_acc": 0.9353836269477259
685
+ },
686
+ {
687
+ "epoch": 0.9984283997411482,
688
+ "eval_loss": 1.671922206878662,
689
+ "eval_runtime": 41.8015,
690
+ "eval_samples_per_second": 370.369,
691
+ "eval_steps_per_second": 0.742,
692
+ "eval_token_acc": 0.8396032398264788,
693
+ "step": 5400
694
+ },
695
+ {
696
+ "epoch": 1.0168253674771193,
697
+ "grad_norm": 1.8627227544784546,
698
+ "learning_rate": 8.655839274679787e-06,
699
+ "loss": 0.13099777221679687,
700
+ "step": 5500,
701
+ "token_acc": 0.9543783937496227
702
+ },
703
+ {
704
+ "epoch": 1.0353147822871407,
705
+ "grad_norm": 1.8053191900253296,
706
+ "learning_rate": 8.604900126876186e-06,
707
+ "loss": 0.1243514633178711,
708
+ "step": 5600,
709
+ "token_acc": 0.9565782158320064
710
+ },
711
+ {
712
+ "epoch": 1.0353147822871407,
713
+ "eval_loss": 1.7374670505523682,
714
+ "eval_runtime": 37.9624,
715
+ "eval_samples_per_second": 407.824,
716
+ "eval_steps_per_second": 0.817,
717
+ "eval_token_acc": 0.8398158483283656,
718
+ "step": 5600
719
+ },
720
+ {
721
+ "epoch": 1.0538041970971619,
722
+ "grad_norm": 1.7985650300979614,
723
+ "learning_rate": 8.553169589341608e-06,
724
+ "loss": 0.12475324630737304,
725
+ "step": 5700,
726
+ "token_acc": 0.9563982881741734
727
+ },
728
+ {
729
+ "epoch": 1.072293611907183,
730
+ "grad_norm": 1.7619038820266724,
731
+ "learning_rate": 8.50065901856715e-06,
732
+ "loss": 0.12438088417053222,
733
+ "step": 5800,
734
+ "token_acc": 0.9563261001314413
735
+ },
736
+ {
737
+ "epoch": 1.072293611907183,
738
+ "eval_loss": 1.7655820846557617,
739
+ "eval_runtime": 41.3424,
740
+ "eval_samples_per_second": 374.483,
741
+ "eval_steps_per_second": 0.75,
742
+ "eval_token_acc": 0.8398035824532568,
743
+ "step": 5800
744
+ },
745
+ {
746
+ "epoch": 1.0907830267172045,
747
+ "grad_norm": 2.002814531326294,
748
+ "learning_rate": 8.447379942285896e-06,
749
+ "loss": 0.12517940521240234,
750
+ "step": 5900,
751
+ "token_acc": 0.9560996768526752
752
+ },
753
+ {
754
+ "epoch": 1.1092724415272257,
755
+ "grad_norm": 1.7221897840499878,
756
+ "learning_rate": 8.393344056942237e-06,
757
+ "loss": 0.12486957550048829,
758
+ "step": 6000,
759
+ "token_acc": 0.9561690507193046
760
+ },
761
+ {
762
+ "epoch": 1.1092724415272257,
763
+ "eval_loss": 1.7758432626724243,
764
+ "eval_runtime": 45.8318,
765
+ "eval_samples_per_second": 337.8,
766
+ "eval_steps_per_second": 0.676,
767
+ "eval_token_acc": 0.8398812663289462,
768
+ "step": 6000
769
+ },
770
+ {
771
+ "epoch": 1.127761856337247,
772
+ "grad_norm": 2.0354294776916504,
773
+ "learning_rate": 8.338563225124107e-06,
774
+ "loss": 0.124525146484375,
775
+ "step": 6100,
776
+ "token_acc": 0.9560097733366691
777
+ },
778
+ {
779
+ "epoch": 1.146251271147268,
780
+ "grad_norm": 1.7929569482803345,
781
+ "learning_rate": 8.283049472958785e-06,
782
+ "loss": 0.12382856369018555,
783
+ "step": 6200,
784
+ "token_acc": 0.9563822149749119
785
+ },
786
+ {
787
+ "epoch": 1.146251271147268,
788
+ "eval_loss": 1.8066223859786987,
789
+ "eval_runtime": 41.9458,
790
+ "eval_samples_per_second": 369.095,
791
+ "eval_steps_per_second": 0.739,
792
+ "eval_token_acc": 0.8398362914535471,
793
+ "step": 6200
794
+ },
795
+ {
796
+ "epoch": 1.1647406859572895,
797
+ "grad_norm": 1.8996866941452026,
798
+ "learning_rate": 8.226814987472782e-06,
799
+ "loss": 0.12526337623596193,
800
+ "step": 6300,
801
+ "token_acc": 0.9557479199858382
802
+ },
803
+ {
804
+ "epoch": 1.1832301007673107,
805
+ "grad_norm": 1.8040844202041626,
806
+ "learning_rate": 8.16987211391638e-06,
807
+ "loss": 0.12417132377624512,
808
+ "step": 6400,
809
+ "token_acc": 0.956177815065432
810
+ },
811
+ {
812
+ "epoch": 1.1832301007673107,
813
+ "eval_loss": 1.7814701795578003,
814
+ "eval_runtime": 33.8097,
815
+ "eval_samples_per_second": 457.916,
816
+ "eval_steps_per_second": 0.917,
817
+ "eval_token_acc": 0.8401797359565951,
818
+ "step": 6400
819
+ },
820
+ {
821
+ "epoch": 1.201719515577332,
822
+ "grad_norm": 1.9418505430221558,
823
+ "learning_rate": 8.112233353053489e-06,
824
+ "loss": 0.1239329719543457,
825
+ "step": 6500,
826
+ "token_acc": 0.9561117973681551
827
+ },
828
+ {
829
+ "epoch": 1.2202089303873533,
830
+ "grad_norm": 1.9047932624816895,
831
+ "learning_rate": 8.053911358417312e-06,
832
+ "loss": 0.12369691848754882,
833
+ "step": 6600,
834
+ "token_acc": 0.9562336339716577
835
+ },
836
+ {
837
+ "epoch": 1.2202089303873533,
838
+ "eval_loss": 1.7961959838867188,
839
+ "eval_runtime": 39.5814,
840
+ "eval_samples_per_second": 391.144,
841
+ "eval_steps_per_second": 0.783,
842
+ "eval_token_acc": 0.840048899955434,
843
+ "step": 6600
844
+ },
845
+ {
846
+ "epoch": 1.2386983451973745,
847
+ "grad_norm": 1.8649250268936157,
848
+ "learning_rate": 7.9949189335325e-06,
849
+ "loss": 0.1238163185119629,
850
+ "step": 6700,
851
+ "token_acc": 0.9562550435641857
852
+ },
853
+ {
854
+ "epoch": 1.2571877600073957,
855
+ "grad_norm": 2.16851806640625,
856
+ "learning_rate": 7.935269029104378e-06,
857
+ "loss": 0.12391100883483887,
858
+ "step": 6800,
859
+ "token_acc": 0.9561337716519507
860
+ },
861
+ {
862
+ "epoch": 1.2571877600073957,
863
+ "eval_loss": 1.796657919883728,
864
+ "eval_runtime": 38.4616,
865
+ "eval_samples_per_second": 402.531,
866
+ "eval_steps_per_second": 0.806,
867
+ "eval_token_acc": 0.8407112572113125,
868
+ "step": 6800
869
+ },
870
+ {
871
+ "epoch": 1.275677174817417,
872
+ "grad_norm": 1.8265526294708252,
873
+ "learning_rate": 7.874974740175845e-06,
874
+ "loss": 0.12333698272705078,
875
+ "step": 6900,
876
+ "token_acc": 0.9563835803661899
877
+ },
878
+ {
879
+ "epoch": 1.2941665896274384,
880
+ "grad_norm": 1.7967718839645386,
881
+ "learning_rate": 7.814049303252609e-06,
882
+ "loss": 0.12335062026977539,
883
+ "step": 7000,
884
+ "token_acc": 0.956260351207485
885
+ },
886
+ {
887
+ "epoch": 1.2941665896274384,
888
+ "eval_loss": 1.7862260341644287,
889
+ "eval_runtime": 33.965,
890
+ "eval_samples_per_second": 455.823,
891
+ "eval_steps_per_second": 0.913,
892
+ "eval_token_acc": 0.8402247108319943,
893
+ "step": 7000
894
+ },
895
+ {
896
+ "epoch": 1.3126560044374596,
897
+ "grad_norm": 1.8670226335525513,
898
+ "learning_rate": 7.752506093397341e-06,
899
+ "loss": 0.12360490798950195,
900
+ "step": 7100,
901
+ "token_acc": 0.9562331933764212
902
+ },
903
+ {
904
+ "epoch": 1.3311454192474808,
905
+ "grad_norm": 2.2251029014587402,
906
+ "learning_rate": 7.690358621293443e-06,
907
+ "loss": 0.12216304779052735,
908
+ "step": 7200,
909
+ "token_acc": 0.9565792510264621
910
+ },
911
+ {
912
+ "epoch": 1.3311454192474808,
913
+ "eval_loss": 1.7927396297454834,
914
+ "eval_runtime": 34.2328,
915
+ "eval_samples_per_second": 452.257,
916
+ "eval_steps_per_second": 0.906,
917
+ "eval_token_acc": 0.8404986487094255,
918
+ "step": 7200
919
+ },
920
+ {
921
+ "epoch": 1.3496348340575022,
922
+ "grad_norm": 1.8033658266067505,
923
+ "learning_rate": 7.627620530279005e-06,
924
+ "loss": 0.12235649108886719,
925
+ "step": 7300,
926
+ "token_acc": 0.956481924374402
927
+ },
928
+ {
929
+ "epoch": 1.3681242488675234,
930
+ "grad_norm": 1.9245818853378296,
931
+ "learning_rate": 7.564305593351679e-06,
932
+ "loss": 0.12291913986206054,
933
+ "step": 7400,
934
+ "token_acc": 0.9564290328431482
935
+ },
936
+ {
937
+ "epoch": 1.3681242488675234,
938
+ "eval_loss": 1.8202570676803589,
939
+ "eval_runtime": 34.8385,
940
+ "eval_samples_per_second": 444.393,
941
+ "eval_steps_per_second": 0.89,
942
+ "eval_token_acc": 0.8406621937108769,
943
+ "step": 7400
944
+ },
945
+ {
946
+ "epoch": 1.3866136636775446,
947
+ "grad_norm": 1.7945640087127686,
948
+ "learning_rate": 7.500427710145055e-06,
949
+ "loss": 0.12242051124572755,
950
+ "step": 7500,
951
+ "token_acc": 0.9565831394835252
952
+ },
953
+ {
954
+ "epoch": 1.4051030784875658,
955
+ "grad_norm": 1.8062553405761719,
956
+ "learning_rate": 7.436000903877263e-06,
957
+ "loss": 0.12153498649597168,
958
+ "step": 7600,
959
+ "token_acc": 0.9567279089013572
960
+ },
961
+ {
962
+ "epoch": 1.4051030784875658,
963
+ "eval_loss": 1.8174859285354614,
964
+ "eval_runtime": 35.6393,
965
+ "eval_samples_per_second": 434.408,
966
+ "eval_steps_per_second": 0.87,
967
+ "eval_token_acc": 0.8409811064637073,
968
+ "step": 7600
969
+ },
970
+ {
971
+ "epoch": 1.4235924932975872,
972
+ "grad_norm": 1.825256586074829,
973
+ "learning_rate": 7.37103931827242e-06,
974
+ "loss": 0.12253303527832031,
975
+ "step": 7700,
976
+ "token_acc": 0.9565785211260692
977
+ },
978
+ {
979
+ "epoch": 1.4420819081076084,
980
+ "grad_norm": 1.861182689666748,
981
+ "learning_rate": 7.305557214455652e-06,
982
+ "loss": 0.1214249610900879,
983
+ "step": 7800,
984
+ "token_acc": 0.9568180053778998
985
+ },
986
+ {
987
+ "epoch": 1.4420819081076084,
988
+ "eval_loss": 1.8193385601043701,
989
+ "eval_runtime": 34.8888,
990
+ "eval_samples_per_second": 443.753,
991
+ "eval_steps_per_second": 0.889,
992
+ "eval_token_acc": 0.8408257387123285,
993
+ "step": 7800
994
+ },
995
+ {
996
+ "epoch": 1.4605713229176296,
997
+ "grad_norm": 1.758222222328186,
998
+ "learning_rate": 7.239568967822305e-06,
999
+ "loss": 0.12132749557495118,
1000
+ "step": 7900,
1001
+ "token_acc": 0.9569372409602568
1002
+ },
1003
+ {
1004
+ "epoch": 1.479060737727651,
1005
+ "grad_norm": 1.9188320636749268,
1006
+ "learning_rate": 7.173089064882109e-06,
1007
+ "loss": 0.12142126083374023,
1008
+ "step": 8000,
1009
+ "token_acc": 0.9569549769253634
1010
+ },
1011
+ {
1012
+ "epoch": 1.479060737727651,
1013
+ "eval_loss": 1.8274463415145874,
1014
+ "eval_runtime": 34.5324,
1015
+ "eval_samples_per_second": 448.333,
1016
+ "eval_steps_per_second": 0.898,
1017
+ "eval_token_acc": 0.8413327282168279,
1018
+ "step": 8000
1019
+ },
1020
+ {
1021
+ "epoch": 1.4975501525376722,
1022
+ "grad_norm": 1.9004936218261719,
1023
+ "learning_rate": 7.106132100078914e-06,
1024
+ "loss": 0.12066761016845703,
1025
+ "step": 8100,
1026
+ "token_acc": 0.9572519065995776
1027
+ },
1028
+ {
1029
+ "epoch": 1.5160395673476934,
1030
+ "grad_norm": 1.7836532592773438,
1031
+ "learning_rate": 7.0387127725867645e-06,
1032
+ "loss": 0.12059429168701172,
1033
+ "step": 8200,
1034
+ "token_acc": 0.9571157408717915
1035
+ },
1036
+ {
1037
+ "epoch": 1.5160395673476934,
1038
+ "eval_loss": 1.8109354972839355,
1039
+ "eval_runtime": 34.7568,
1040
+ "eval_samples_per_second": 445.437,
1041
+ "eval_steps_per_second": 0.892,
1042
+ "eval_token_acc": 0.8408093842121833,
1043
+ "step": 8200
1044
+ },
1045
+ {
1046
+ "epoch": 1.5345289821577146,
1047
+ "grad_norm": 1.7904539108276367,
1048
+ "learning_rate": 6.970845883082951e-06,
1049
+ "loss": 0.12016033172607422,
1050
+ "step": 8300,
1051
+ "token_acc": 0.9573499747856783
1052
+ },
1053
+ {
1054
+ "epoch": 1.553018396967736,
1055
+ "grad_norm": 1.8207581043243408,
1056
+ "learning_rate": 6.902546330498798e-06,
1057
+ "loss": 0.12048395156860352,
1058
+ "step": 8400,
1059
+ "token_acc": 0.9572356815704754
1060
+ },
1061
+ {
1062
+ "epoch": 1.553018396967736,
1063
+ "eval_loss": 1.833103895187378,
1064
+ "eval_runtime": 35.4186,
1065
+ "eval_samples_per_second": 437.115,
1066
+ "eval_steps_per_second": 0.875,
1067
+ "eval_token_acc": 0.8409402202133445,
1068
+ "step": 8400
1069
+ },
1070
+ {
1071
+ "epoch": 1.5715078117777572,
1072
+ "grad_norm": 1.8081518411636353,
1073
+ "learning_rate": 6.8338291087488794e-06,
1074
+ "loss": 0.11957192420959473,
1075
+ "step": 8500,
1076
+ "token_acc": 0.9574644121699327
1077
+ },
1078
+ {
1079
+ "epoch": 1.5899972265877786,
1080
+ "grad_norm": 1.9988985061645508,
1081
+ "learning_rate": 6.764709303439375e-06,
1082
+ "loss": 0.11883423805236816,
1083
+ "step": 8600,
1084
+ "token_acc": 0.9577689760862731
1085
+ },
1086
+ {
1087
+ "epoch": 1.5899972265877786,
1088
+ "eval_loss": 1.8361092805862427,
1089
+ "eval_runtime": 34.9305,
1090
+ "eval_samples_per_second": 443.223,
1091
+ "eval_steps_per_second": 0.887,
1092
+ "eval_token_acc": 0.8417456793454929,
1093
+ "step": 8600
1094
+ },
1095
+ {
1096
+ "epoch": 1.6084866413977998,
1097
+ "grad_norm": 1.8924856185913086,
1098
+ "learning_rate": 6.695202088556305e-06,
1099
+ "loss": 0.11925403594970703,
1100
+ "step": 8700,
1101
+ "token_acc": 0.9576467298626727
1102
+ },
1103
+ {
1104
+ "epoch": 1.626976056207821,
1105
+ "grad_norm": 1.8594777584075928,
1106
+ "learning_rate": 6.62532272313436e-06,
1107
+ "loss": 0.11869814872741699,
1108
+ "step": 8800,
1109
+ "token_acc": 0.9578026280546409
1110
+ },
1111
+ {
1112
+ "epoch": 1.626976056207821,
1113
+ "eval_loss": 1.8373812437057495,
1114
+ "eval_runtime": 36.5534,
1115
+ "eval_samples_per_second": 423.545,
1116
+ "eval_steps_per_second": 0.848,
1117
+ "eval_token_acc": 0.8413286395917917,
1118
+ "step": 8800
1119
+ },
1120
+ {
1121
+ "epoch": 1.6454654710178422,
1122
+ "grad_norm": 1.944880723953247,
1123
+ "learning_rate": 6.555086547907054e-06,
1124
+ "loss": 0.11804214477539063,
1125
+ "step": 8900,
1126
+ "token_acc": 0.9581940918690292
1127
+ },
1128
+ {
1129
+ "epoch": 1.6639548858278634,
1130
+ "grad_norm": 1.7270747423171997,
1131
+ "learning_rate": 6.4845089819389595e-06,
1132
+ "loss": 0.11829812049865723,
1133
+ "step": 9000,
1134
+ "token_acc": 0.9581205644511996
1135
+ },
1136
+ {
1137
+ "epoch": 1.6639548858278634,
1138
+ "eval_loss": 1.8515816926956177,
1139
+ "eval_runtime": 33.8737,
1140
+ "eval_samples_per_second": 457.051,
1141
+ "eval_steps_per_second": 0.915,
1142
+ "eval_token_acc": 0.8415167163434608,
1143
+ "step": 9000
1144
+ },
1145
+ {
1146
+ "epoch": 1.6824443006378849,
1147
+ "grad_norm": 1.7423977851867676,
1148
+ "learning_rate": 6.4136055192407176e-06,
1149
+ "loss": 0.11753586769104003,
1150
+ "step": 9100,
1151
+ "token_acc": 0.958324552925161
1152
+ },
1153
+ {
1154
+ "epoch": 1.700933715447906,
1155
+ "grad_norm": 2.1716482639312744,
1156
+ "learning_rate": 6.34239172536763e-06,
1157
+ "loss": 0.11699953079223632,
1158
+ "step": 9200,
1159
+ "token_acc": 0.9585432410566509
1160
+ },
1161
+ {
1162
+ "epoch": 1.700933715447906,
1163
+ "eval_loss": 1.834566354751587,
1164
+ "eval_runtime": 36.5294,
1165
+ "eval_samples_per_second": 423.823,
1166
+ "eval_steps_per_second": 0.849,
1167
+ "eval_token_acc": 0.8417783883457832,
1168
+ "step": 9200
1169
+ },
1170
+ {
1171
+ "epoch": 1.7194231302579275,
1172
+ "grad_norm": 1.8716721534729004,
1173
+ "learning_rate": 6.270883234002516e-06,
1174
+ "loss": 0.11731613159179688,
1175
+ "step": 9300,
1176
+ "token_acc": 0.9585327793784123
1177
+ },
1178
+ {
1179
+ "epoch": 1.7379125450679487,
1180
+ "grad_norm": 1.8995591402053833,
1181
+ "learning_rate": 6.199095743523621e-06,
1182
+ "loss": 0.1166218090057373,
1183
+ "step": 9400,
1184
+ "token_acc": 0.9586903179633984
1185
+ },
1186
+ {
1187
+ "epoch": 1.7379125450679487,
1188
+ "eval_loss": 1.8363566398620605,
1189
+ "eval_runtime": 42.1601,
1190
+ "eval_samples_per_second": 367.219,
1191
+ "eval_steps_per_second": 0.735,
1192
+ "eval_token_acc": 0.8415944002191503,
1193
+ "step": 9400
1194
+ },
1195
+ {
1196
+ "epoch": 1.7564019598779699,
1197
+ "grad_norm": 1.8480995893478394,
1198
+ "learning_rate": 6.127045013558339e-06,
1199
+ "loss": 0.1168486213684082,
1200
+ "step": 9500,
1201
+ "token_acc": 0.9585827515599433
1202
+ },
1203
+ {
1204
+ "epoch": 1.774891374687991,
1205
+ "grad_norm": 1.8877906799316406,
1206
+ "learning_rate": 6.0547468615234616e-06,
1207
+ "loss": 0.11609399795532227,
1208
+ "step": 9600,
1209
+ "token_acc": 0.9589387053013588
1210
+ },
1211
+ {
1212
+ "epoch": 1.774891374687991,
1213
+ "eval_loss": 1.8403908014297485,
1214
+ "eval_runtime": 33.7405,
1215
+ "eval_samples_per_second": 458.855,
1216
+ "eval_steps_per_second": 0.919,
1217
+ "eval_token_acc": 0.8420359717230692,
1218
+ "step": 9600
1219
+ },
1220
+ {
1221
+ "epoch": 1.7933807894980123,
1222
+ "grad_norm": 1.9642070531845093,
1223
+ "learning_rate": 5.982217159152759e-06,
1224
+ "loss": 0.11574806213378906,
1225
+ "step": 9700,
1226
+ "token_acc": 0.958883506092705
1227
+ },
1228
+ {
1229
+ "epoch": 1.8118702043080337,
1230
+ "grad_norm": 1.711111068725586,
1231
+ "learning_rate": 5.909471829012639e-06,
1232
+ "loss": 0.11505707740783691,
1233
+ "step": 9800,
1234
+ "token_acc": 0.9590959173154312
1235
+ },
1236
+ {
1237
+ "epoch": 1.8118702043080337,
1238
+ "eval_loss": 1.8579939603805542,
1239
+ "eval_runtime": 38.0908,
1240
+ "eval_samples_per_second": 406.45,
1241
+ "eval_steps_per_second": 0.814,
1242
+ "eval_token_acc": 0.8419501105973072,
1243
+ "step": 9800
1244
+ },
1245
+ {
1246
+ "epoch": 1.830359619118055,
1247
+ "grad_norm": 1.813797116279602,
1248
+ "learning_rate": 5.836526841006622e-06,
1249
+ "loss": 0.11528162956237793,
1250
+ "step": 9900,
1251
+ "token_acc": 0.959217136559903
1252
+ },
1253
+ {
1254
+ "epoch": 1.8488490339280763,
1255
+ "grad_norm": 1.7768510580062866,
1256
+ "learning_rate": 5.763398208869463e-06,
1257
+ "loss": 0.11398514747619629,
1258
+ "step": 10000,
1259
+ "token_acc": 0.9596556526939511
1260
+ },
1261
+ {
1262
+ "epoch": 1.8488490339280763,
1263
+ "eval_loss": 1.843808889389038,
1264
+ "eval_runtime": 33.4263,
1265
+ "eval_samples_per_second": 463.169,
1266
+ "eval_steps_per_second": 0.927,
1267
+ "eval_token_acc": 0.8417415907204566,
1268
+ "step": 10000
1269
+ },
1270
+ {
1271
+ "epoch": 1.8673384487380975,
1272
+ "grad_norm": 1.754035234451294,
1273
+ "learning_rate": 5.690101986651614e-06,
1274
+ "loss": 0.11392656326293946,
1275
+ "step": 10100,
1276
+ "token_acc": 0.9596795537848105
1277
+ },
1278
+ {
1279
+ "epoch": 1.8858278635481187,
1280
+ "grad_norm": 1.8597276210784912,
1281
+ "learning_rate": 5.616654265194856e-06,
1282
+ "loss": 0.11345600128173829,
1283
+ "step": 10200,
1284
+ "token_acc": 0.9599432397585764
1285
+ },
1286
+ {
1287
+ "epoch": 1.8858278635481187,
1288
+ "eval_loss": 1.8413722515106201,
1289
+ "eval_runtime": 33.5094,
1290
+ "eval_samples_per_second": 462.019,
1291
+ "eval_steps_per_second": 0.925,
1292
+ "eval_token_acc": 0.841933756097162,
1293
+ "step": 10200
1294
+ },
1295
+ {
1296
+ "epoch": 1.90431727835814,
1297
+ "grad_norm": 1.9222540855407715,
1298
+ "learning_rate": 5.543071168599853e-06,
1299
+ "loss": 0.11406026840209961,
1300
+ "step": 10300,
1301
+ "token_acc": 0.9597226949620891
1302
+ },
1303
+ {
1304
+ "epoch": 1.922806693168161,
1305
+ "grad_norm": 1.87301504611969,
1306
+ "learning_rate": 5.4693688506863965e-06,
1307
+ "loss": 0.11312946319580078,
1308
+ "step": 10400,
1309
+ "token_acc": 0.9600168523848207
1310
+ },
1311
+ {
1312
+ "epoch": 1.922806693168161,
1313
+ "eval_loss": 1.8454869985580444,
1314
+ "eval_runtime": 35.3729,
1315
+ "eval_samples_per_second": 437.68,
1316
+ "eval_steps_per_second": 0.876,
1317
+ "eval_token_acc": 0.8420237058479604,
1318
+ "step": 10400
1319
+ },
1320
+ {
1321
+ "epoch": 1.9412961079781825,
1322
+ "grad_norm": 1.7703731060028076,
1323
+ "learning_rate": 5.395563491447134e-06,
1324
+ "loss": 0.11194120407104492,
1325
+ "step": 10500,
1326
+ "token_acc": 0.9604128003703771
1327
+ },
1328
+ {
1329
+ "epoch": 1.9597855227882037,
1330
+ "grad_norm": 1.8830459117889404,
1331
+ "learning_rate": 5.321671293495544e-06,
1332
+ "loss": 0.11190027236938477,
1333
+ "step": 10600,
1334
+ "token_acc": 0.9605756553095823
1335
+ },
1336
+ {
1337
+ "epoch": 1.9597855227882037,
1338
+ "eval_loss": 1.8413710594177246,
1339
+ "eval_runtime": 34.0357,
1340
+ "eval_samples_per_second": 454.876,
1341
+ "eval_steps_per_second": 0.911,
1342
+ "eval_token_acc": 0.8419950854727064,
1343
+ "step": 10600
1344
+ },
1345
+ {
1346
+ "epoch": 1.9782749375982251,
1347
+ "grad_norm": 1.8603187799453735,
1348
+ "learning_rate": 5.247708478508959e-06,
1349
+ "loss": 0.11120811462402344,
1350
+ "step": 10700,
1351
+ "token_acc": 0.9608388566054109
1352
+ },
1353
+ {
1354
+ "epoch": 1.9967643524082463,
1355
+ "grad_norm": 2.23905348777771,
1356
+ "learning_rate": 5.173691283667378e-06,
1357
+ "loss": 0.11172771453857422,
1358
+ "step": 10800,
1359
+ "token_acc": 0.9605912691939935
1360
+ },
1361
+ {
1362
+ "epoch": 1.9967643524082463,
1363
+ "eval_loss": 1.8494235277175903,
1364
+ "eval_runtime": 33.3601,
1365
+ "eval_samples_per_second": 464.087,
1366
+ "eval_steps_per_second": 0.929,
1367
+ "eval_token_acc": 0.8421422759740127,
1368
+ "step": 10800
1369
+ },
1370
+ {
1371
+ "epoch": 2.0151613201442173,
1372
+ "grad_norm": 1.4144299030303955,
1373
+ "learning_rate": 5.099635958088908e-06,
1374
+ "loss": 0.07613845825195313,
1375
+ "step": 10900,
1376
+ "token_acc": 0.9769882988398573
1377
+ },
1378
+ {
1379
+ "epoch": 2.0336507349542385,
1380
+ "grad_norm": 1.3822933435440063,
1381
+ "learning_rate": 5.025558759262555e-06,
1382
+ "loss": 0.068076810836792,
1383
+ "step": 11000,
1384
+ "token_acc": 0.9801309933010414
1385
+ },
1386
+ {
1387
+ "epoch": 2.0336507349542385,
1388
+ "eval_loss": 1.938856840133667,
1389
+ "eval_runtime": 34.0978,
1390
+ "eval_samples_per_second": 454.047,
1391
+ "eval_steps_per_second": 0.909,
1392
+ "eval_token_acc": 0.8414921845932432,
1393
+ "step": 11000
1394
+ },
1395
+ {
1396
+ "epoch": 2.05214014976426,
1397
+ "grad_norm": 1.5795366764068604,
1398
+ "learning_rate": 4.951475949479197e-06,
1399
+ "loss": 0.06814120292663574,
1400
+ "step": 11100,
1401
+ "token_acc": 0.9797405445487929
1402
+ },
1403
+ {
1404
+ "epoch": 2.0706295645742814,
1405
+ "grad_norm": 1.6069875955581665,
1406
+ "learning_rate": 4.877403792261494e-06,
1407
+ "loss": 0.06798234939575196,
1408
+ "step": 11200,
1409
+ "token_acc": 0.979876903070811
1410
+ },
1411
+ {
1412
+ "epoch": 2.0706295645742814,
1413
+ "eval_loss": 1.965312123298645,
1414
+ "eval_runtime": 34.7072,
1415
+ "eval_samples_per_second": 446.075,
1416
+ "eval_steps_per_second": 0.893,
1417
+ "eval_token_acc": 0.841819274596146,
1418
+ "step": 11200
1419
+ },
1420
+ {
1421
+ "epoch": 2.0891189793843026,
1422
+ "grad_norm": 1.7105296850204468,
1423
+ "learning_rate": 4.8033585487935365e-06,
1424
+ "loss": 0.06711929321289062,
1425
+ "step": 11300,
1426
+ "token_acc": 0.9799202953211885
1427
+ },
1428
+ {
1429
+ "epoch": 2.1076083941943238,
1430
+ "grad_norm": 1.6663514375686646,
1431
+ "learning_rate": 4.729356474350985e-06,
1432
+ "loss": 0.06744234561920166,
1433
+ "step": 11400,
1434
+ "token_acc": 0.9799818812847331
1435
+ },
1436
+ {
1437
+ "epoch": 2.1076083941943238,
1438
+ "eval_loss": 1.987338662147522,
1439
+ "eval_runtime": 34.6728,
1440
+ "eval_samples_per_second": 446.517,
1441
+ "eval_steps_per_second": 0.894,
1442
+ "eval_token_acc": 0.8417988314709647,
1443
+ "step": 11400
1444
+ },
1445
+ {
1446
+ "epoch": 2.126097809004345,
1447
+ "grad_norm": 1.6091212034225464,
1448
+ "learning_rate": 4.65541381473254e-06,
1449
+ "loss": 0.06767751693725586,
1450
+ "step": 11500,
1451
+ "token_acc": 0.9798217134248365
1452
+ },
1453
+ {
1454
+ "epoch": 2.144587223814366,
1455
+ "grad_norm": 1.4260798692703247,
1456
+ "learning_rate": 4.58154680269346e-06,
1457
+ "loss": 0.06699298858642579,
1458
+ "step": 11600,
1459
+ "token_acc": 0.9798626501624399
1460
+ },
1461
+ {
1462
+ "epoch": 2.144587223814366,
1463
+ "eval_loss": 2.00212025642395,
1464
+ "eval_runtime": 35.0411,
1465
+ "eval_samples_per_second": 441.824,
1466
+ "eval_steps_per_second": 0.885,
1467
+ "eval_token_acc": 0.8419950854727064,
1468
+ "step": 11600
1469
+ },
1470
+ {
1471
+ "epoch": 2.1630766386243874,
1472
+ "grad_norm": 1.4290509223937988,
1473
+ "learning_rate": 4.5077716543819705e-06,
1474
+ "loss": 0.06717270851135254,
1475
+ "step": 11700,
1476
+ "token_acc": 0.9798529561570528
1477
+ },
1478
+ {
1479
+ "epoch": 2.181566053434409,
1480
+ "grad_norm": 1.4190586805343628,
1481
+ "learning_rate": 4.434104565779295e-06,
1482
+ "loss": 0.06727582931518555,
1483
+ "step": 11800,
1484
+ "token_acc": 0.979750684884302
1485
+ },
1486
+ {
1487
+ "epoch": 2.181566053434409,
1488
+ "eval_loss": 2.0236058235168457,
1489
+ "eval_runtime": 39.6338,
1490
+ "eval_samples_per_second": 390.626,
1491
+ "eval_steps_per_second": 0.782,
1492
+ "eval_token_acc": 0.8418274518462187,
1493
+ "step": 11800
1494
+ },
1495
+ {
1496
+ "epoch": 2.20005546824443,
1497
+ "grad_norm": 1.3393402099609375,
1498
+ "learning_rate": 4.360561709144133e-06,
1499
+ "loss": 0.06670400619506836,
1500
+ "step": 11900,
1501
+ "token_acc": 0.9797775570535143
1502
+ },
1503
+ {
1504
+ "epoch": 2.2185448830544514,
1505
+ "grad_norm": 1.5458145141601562,
1506
+ "learning_rate": 4.287159229462329e-06,
1507
+ "loss": 0.06665773868560791,
1508
+ "step": 12000,
1509
+ "token_acc": 0.9798853092505024
1510
+ },
1511
+ {
1512
+ "epoch": 2.2185448830544514,
1513
+ "eval_loss": 2.010664463043213,
1514
+ "eval_runtime": 34.9951,
1515
+ "eval_samples_per_second": 442.405,
1516
+ "eval_steps_per_second": 0.886,
1517
+ "eval_token_acc": 0.8416271092194406,
1518
+ "step": 12000
1519
+ },
1520
+ {
1521
+ "epoch": 2.2370342978644726,
1522
+ "grad_norm": 1.530498743057251,
1523
+ "learning_rate": 4.213913240902546e-06,
1524
+ "loss": 0.06623137950897216,
1525
+ "step": 12100,
1526
+ "token_acc": 0.9800267679650442
1527
+ },
1528
+ {
1529
+ "epoch": 2.255523712674494,
1530
+ "grad_norm": 1.511843204498291,
1531
+ "learning_rate": 4.140839823278687e-06,
1532
+ "loss": 0.06620734691619873,
1533
+ "step": 12200,
1534
+ "token_acc": 0.9800285430125266
1535
+ },
1536
+ {
1537
+ "epoch": 2.255523712674494,
1538
+ "eval_loss": 2.0170493125915527,
1539
+ "eval_runtime": 34.7409,
1540
+ "eval_samples_per_second": 445.642,
1541
+ "eval_steps_per_second": 0.892,
1542
+ "eval_token_acc": 0.8416271092194406,
1543
+ "step": 12200
1544
+ },
1545
+ {
1546
+ "epoch": 2.274013127484515,
1547
+ "grad_norm": 1.7180910110473633,
1548
+ "learning_rate": 4.067955018519869e-06,
1549
+ "loss": 0.06616350173950196,
1550
+ "step": 12300,
1551
+ "token_acc": 0.9798321926652386
1552
+ },
1553
+ {
1554
+ "epoch": 2.292502542294536,
1555
+ "grad_norm": 1.4852060079574585,
1556
+ "learning_rate": 3.9952748271487135e-06,
1557
+ "loss": 0.06596662521362305,
1558
+ "step": 12400,
1559
+ "token_acc": 0.9801906228334967
1560
+ },
1561
+ {
1562
+ "epoch": 2.292502542294536,
1563
+ "eval_loss": 2.046187400817871,
1564
+ "eval_runtime": 34.4149,
1565
+ "eval_samples_per_second": 449.863,
1566
+ "eval_steps_per_second": 0.901,
1567
+ "eval_token_acc": 0.8417456793454929,
1568
+ "step": 12400
1569
+ },
1570
+ {
1571
+ "epoch": 2.310991957104558,
1572
+ "grad_norm": 1.4535032510757446,
1573
+ "learning_rate": 3.922815204768729e-06,
1574
+ "loss": 0.06627186775207519,
1575
+ "step": 12500,
1576
+ "token_acc": 0.9801007046174975
1577
+ },
1578
+ {
1579
+ "epoch": 2.329481371914579,
1580
+ "grad_norm": 1.6788718700408936,
1581
+ "learning_rate": 3.850592058561538e-06,
1582
+ "loss": 0.06580290794372559,
1583
+ "step": 12600,
1584
+ "token_acc": 0.9801861501544031
1585
+ },
1586
+ {
1587
+ "epoch": 2.329481371914579,
1588
+ "eval_loss": 2.052591562271118,
1589
+ "eval_runtime": 35.4887,
1590
+ "eval_samples_per_second": 436.251,
1591
+ "eval_steps_per_second": 0.874,
1592
+ "eval_token_acc": 0.8420441489731418,
1593
+ "step": 12600
1594
+ },
1595
+ {
1596
+ "epoch": 2.3479707867246002,
1597
+ "grad_norm": 1.6238676309585571,
1598
+ "learning_rate": 3.778621243794759e-06,
1599
+ "loss": 0.06539412021636963,
1600
+ "step": 12700,
1601
+ "token_acc": 0.9803736451136588
1602
+ },
1603
+ {
1604
+ "epoch": 2.3664602015346214,
1605
+ "grad_norm": 1.5273261070251465,
1606
+ "learning_rate": 3.706918560341266e-06,
1607
+ "loss": 0.06567787170410157,
1608
+ "step": 12800,
1609
+ "token_acc": 0.9801923854086196
1610
+ },
1611
+ {
1612
+ "epoch": 2.3664602015346214,
1613
+ "eval_loss": 2.0543408393859863,
1614
+ "eval_runtime": 33.992,
1615
+ "eval_samples_per_second": 455.461,
1616
+ "eval_steps_per_second": 0.912,
1617
+ "eval_token_acc": 0.8416884385949849,
1618
+ "step": 12800
1619
+ },
1620
+ {
1621
+ "epoch": 2.3849496163446426,
1622
+ "grad_norm": 1.6116151809692383,
1623
+ "learning_rate": 3.6354997492106258e-06,
1624
+ "loss": 0.06504707336425782,
1625
+ "step": 12900,
1626
+ "token_acc": 0.9804272111407846
1627
+ },
1628
+ {
1629
+ "epoch": 2.403439031154664,
1630
+ "grad_norm": 1.4699835777282715,
1631
+ "learning_rate": 3.5643804890934353e-06,
1632
+ "loss": 0.06518766403198242,
1633
+ "step": 13000,
1634
+ "token_acc": 0.9803263563826762
1635
+ },
1636
+ {
1637
+ "epoch": 2.403439031154664,
1638
+ "eval_loss": 2.074248790740967,
1639
+ "eval_runtime": 34.761,
1640
+ "eval_samples_per_second": 445.384,
1641
+ "eval_steps_per_second": 0.892,
1642
+ "eval_token_acc": 0.8419787309725613,
1643
+ "step": 13000
1644
+ },
1645
+ {
1646
+ "epoch": 2.421928445964685,
1647
+ "grad_norm": 1.400291085243225,
1648
+ "learning_rate": 3.4935763929193567e-06,
1649
+ "loss": 0.06465916633605957,
1650
+ "step": 13100,
1651
+ "token_acc": 0.9806667378597698
1652
+ },
1653
+ {
1654
+ "epoch": 2.4404178607747067,
1655
+ "grad_norm": 1.3986449241638184,
1656
+ "learning_rate": 3.423103004429594e-06,
1657
+ "loss": 0.0644086742401123,
1658
+ "step": 13200,
1659
+ "token_acc": 0.9807682339525197
1660
+ },
1661
+ {
1662
+ "epoch": 2.4404178607747067,
1663
+ "eval_loss": 2.0693349838256836,
1664
+ "eval_runtime": 36.3127,
1665
+ "eval_samples_per_second": 426.352,
1666
+ "eval_steps_per_second": 0.854,
1667
+ "eval_token_acc": 0.841946021972271,
1668
+ "step": 13200
1669
+ },
1670
+ {
1671
+ "epoch": 2.458907275584728,
1672
+ "grad_norm": 1.422037124633789,
1673
+ "learning_rate": 3.352975794764537e-06,
1674
+ "loss": 0.06398173332214356,
1675
+ "step": 13300,
1676
+ "token_acc": 0.980901697909918
1677
+ },
1678
+ {
1679
+ "epoch": 2.477396690394749,
1680
+ "grad_norm": 1.5547071695327759,
1681
+ "learning_rate": 3.283210159067361e-06,
1682
+ "loss": 0.06425526142120361,
1683
+ "step": 13400,
1684
+ "token_acc": 0.9809018621843667
1685
+ },
1686
+ {
1687
+ "epoch": 2.477396690394749,
1688
+ "eval_loss": 2.0776376724243164,
1689
+ "eval_runtime": 33.734,
1690
+ "eval_samples_per_second": 458.944,
1691
+ "eval_steps_per_second": 0.919,
1692
+ "eval_token_acc": 0.8419010470968717,
1693
+ "step": 13400
1694
+ },
1695
+ {
1696
+ "epoch": 2.4958861052047703,
1697
+ "grad_norm": 1.3930739164352417,
1698
+ "learning_rate": 3.2138214131043054e-06,
1699
+ "loss": 0.06403549671173096,
1700
+ "step": 13500,
1701
+ "token_acc": 0.98071152886729
1702
+ },
1703
+ {
1704
+ "epoch": 2.5143755200147915,
1705
+ "grad_norm": 1.4157453775405884,
1706
+ "learning_rate": 3.1448247899023853e-06,
1707
+ "loss": 0.06361576557159423,
1708
+ "step": 13600,
1709
+ "token_acc": 0.9810559879958736
1710
+ },
1711
+ {
1712
+ "epoch": 2.5143755200147915,
1713
+ "eval_loss": 2.091146230697632,
1714
+ "eval_runtime": 34.4246,
1715
+ "eval_samples_per_second": 449.736,
1716
+ "eval_steps_per_second": 0.901,
1717
+ "eval_token_acc": 0.8419501105973072,
1718
+ "step": 13600
1719
+ },
1720
+ {
1721
+ "epoch": 2.5328649348248127,
1722
+ "grad_norm": 1.4381816387176514,
1723
+ "learning_rate": 3.076235436405244e-06,
1724
+ "loss": 0.06331642150878906,
1725
+ "step": 13700,
1726
+ "token_acc": 0.9810819213369495
1727
+ },
1728
+ {
1729
+ "epoch": 2.551354349634834,
1730
+ "grad_norm": 1.3895676136016846,
1731
+ "learning_rate": 3.0080684101479318e-06,
1732
+ "loss": 0.06289718627929687,
1733
+ "step": 13800,
1734
+ "token_acc": 0.9812787838649004
1735
+ },
1736
+ {
1737
+ "epoch": 2.551354349634834,
1738
+ "eval_loss": 2.0786871910095215,
1739
+ "eval_runtime": 34.5297,
1740
+ "eval_samples_per_second": 448.367,
1741
+ "eval_steps_per_second": 0.898,
1742
+ "eval_token_acc": 0.8415167163434608,
1743
+ "step": 13800
1744
+ },
1745
+ {
1746
+ "epoch": 2.5698437644448555,
1747
+ "grad_norm": 1.4897119998931885,
1748
+ "learning_rate": 2.9403386759512953e-06,
1749
+ "loss": 0.06274141311645508,
1750
+ "step": 13900,
1751
+ "token_acc": 0.9813825940424772
1752
+ },
1753
+ {
1754
+ "epoch": 2.5883331792548767,
1755
+ "grad_norm": 1.3548414707183838,
1756
+ "learning_rate": 2.8730611026367284e-06,
1757
+ "loss": 0.0629720163345337,
1758
+ "step": 14000,
1759
+ "token_acc": 0.9813991830519936
1760
+ },
1761
+ {
1762
+ "epoch": 2.5883331792548767,
1763
+ "eval_loss": 2.0937342643737793,
1764
+ "eval_runtime": 35.6025,
1765
+ "eval_samples_per_second": 434.857,
1766
+ "eval_steps_per_second": 0.871,
1767
+ "eval_token_acc": 0.841733413470384,
1768
+ "step": 14000
1769
+ },
1770
+ {
1771
+ "epoch": 2.606822594064898,
1772
+ "grad_norm": 1.4049385786056519,
1773
+ "learning_rate": 2.806250459761991e-06,
1774
+ "loss": 0.06263180732727051,
1775
+ "step": 14100,
1776
+ "token_acc": 0.9814355815587421
1777
+ },
1778
+ {
1779
+ "epoch": 2.625312008874919,
1780
+ "grad_norm": 1.4203133583068848,
1781
+ "learning_rate": 2.73992141437883e-06,
1782
+ "loss": 0.06235404491424561,
1783
+ "step": 14200,
1784
+ "token_acc": 0.9815383784743917
1785
+ },
1786
+ {
1787
+ "epoch": 2.625312008874919,
1788
+ "eval_loss": 2.093254327774048,
1789
+ "eval_runtime": 34.2532,
1790
+ "eval_samples_per_second": 451.986,
1791
+ "eval_steps_per_second": 0.905,
1792
+ "eval_token_acc": 0.8421668077242305,
1793
+ "step": 14200
1794
+ },
1795
+ {
1796
+ "epoch": 2.6438014236849403,
1797
+ "grad_norm": 1.4090100526809692,
1798
+ "learning_rate": 2.6740885278130813e-06,
1799
+ "loss": 0.06217865943908692,
1800
+ "step": 14300,
1801
+ "token_acc": 0.9816351073874321
1802
+ },
1803
+ {
1804
+ "epoch": 2.6622908384949615,
1805
+ "grad_norm": 1.544283151626587,
1806
+ "learning_rate": 2.6087662524680262e-06,
1807
+ "loss": 0.06190134048461914,
1808
+ "step": 14400,
1809
+ "token_acc": 0.9817486168053806
1810
+ },
1811
+ {
1812
+ "epoch": 2.6622908384949615,
1813
+ "eval_loss": 2.104107618331909,
1814
+ "eval_runtime": 35.499,
1815
+ "eval_samples_per_second": 436.125,
1816
+ "eval_steps_per_second": 0.873,
1817
+ "eval_token_acc": 0.8421177442237949,
1818
+ "step": 14400
1819
+ },
1820
+ {
1821
+ "epoch": 2.6807802533049827,
1822
+ "grad_norm": 1.3947652578353882,
1823
+ "learning_rate": 2.543968928651598e-06,
1824
+ "loss": 0.06151036262512207,
1825
+ "step": 14500,
1826
+ "token_acc": 0.9819023120835572
1827
+ },
1828
+ {
1829
+ "epoch": 2.6992696681150044,
1830
+ "grad_norm": 1.3458011150360107,
1831
+ "learning_rate": 2.479710781428257e-06,
1832
+ "loss": 0.06159080028533936,
1833
+ "step": 14600,
1834
+ "token_acc": 0.9818631378345509
1835
+ },
1836
+ {
1837
+ "epoch": 2.6992696681150044,
1838
+ "eval_loss": 2.094994068145752,
1839
+ "eval_runtime": 33.5785,
1840
+ "eval_samples_per_second": 461.068,
1841
+ "eval_steps_per_second": 0.923,
1842
+ "eval_token_acc": 0.8418846925967266,
1843
+ "step": 14600
1844
+ },
1845
+ {
1846
+ "epoch": 2.7177590829250255,
1847
+ "grad_norm": 1.408795714378357,
1848
+ "learning_rate": 2.4160059174961186e-06,
1849
+ "loss": 0.06139151573181152,
1850
+ "step": 14700,
1851
+ "token_acc": 0.9819905832240715
1852
+ },
1853
+ {
1854
+ "epoch": 2.7362484977350467,
1855
+ "grad_norm": 1.4133031368255615,
1856
+ "learning_rate": 2.3528683220901074e-06,
1857
+ "loss": 0.0609882926940918,
1858
+ "step": 14800,
1859
+ "token_acc": 0.9823142742827259
1860
+ },
1861
+ {
1862
+ "epoch": 2.7362484977350467,
1863
+ "eval_loss": 2.0976996421813965,
1864
+ "eval_runtime": 33.3092,
1865
+ "eval_samples_per_second": 464.796,
1866
+ "eval_steps_per_second": 0.931,
1867
+ "eval_token_acc": 0.8421300100989039,
1868
+ "step": 14800
1869
+ },
1870
+ {
1871
+ "epoch": 2.754737912545068,
1872
+ "grad_norm": 1.4126615524291992,
1873
+ "learning_rate": 2.2903118559117304e-06,
1874
+ "loss": 0.060602970123291015,
1875
+ "step": 14900,
1876
+ "token_acc": 0.9822561412629522
1877
+ },
1878
+ {
1879
+ "epoch": 2.773227327355089,
1880
+ "grad_norm": 1.6250054836273193,
1881
+ "learning_rate": 2.228350252086237e-06,
1882
+ "loss": 0.0604179573059082,
1883
+ "step": 15000,
1884
+ "token_acc": 0.9824043692296843
1885
+ },
1886
+ {
1887
+ "epoch": 2.773227327355089,
1888
+ "eval_loss": 2.1088783740997314,
1889
+ "eval_runtime": 33.6247,
1890
+ "eval_samples_per_second": 460.436,
1891
+ "eval_steps_per_second": 0.922,
1892
+ "eval_token_acc": 0.8421954280994844,
1893
+ "step": 15000
1894
+ },
1895
+ {
1896
+ "epoch": 2.7917167421651103,
1897
+ "grad_norm": 1.4460028409957886,
1898
+ "learning_rate": 2.1669971131477456e-06,
1899
+ "loss": 0.06029815673828125,
1900
+ "step": 15100,
1901
+ "token_acc": 0.9825059793243858
1902
+ },
1903
+ {
1904
+ "epoch": 2.8102061569751315,
1905
+ "grad_norm": 1.4490859508514404,
1906
+ "learning_rate": 2.10626590805307e-06,
1907
+ "loss": 0.0601440954208374,
1908
+ "step": 15200,
1909
+ "token_acc": 0.9826502277453795
1910
+ },
1911
+ {
1912
+ "epoch": 2.8102061569751315,
1913
+ "eval_loss": 2.1240346431732178,
1914
+ "eval_runtime": 33.9984,
1915
+ "eval_samples_per_second": 455.375,
1916
+ "eval_steps_per_second": 0.912,
1917
+ "eval_token_acc": 0.8421586304741578,
1918
+ "step": 15200
1919
+ },
1920
+ {
1921
+ "epoch": 2.828695571785153,
1922
+ "grad_norm": 1.4754722118377686,
1923
+ "learning_rate": 2.046169969224849e-06,
1924
+ "loss": 0.060016231536865236,
1925
+ "step": 15300,
1926
+ "token_acc": 0.9825407490768502
1927
+ },
1928
+ {
1929
+ "epoch": 2.8471849865951744,
1930
+ "grad_norm": 1.3742412328720093,
1931
+ "learning_rate": 1.9867224896246585e-06,
1932
+ "loss": 0.05975979804992676,
1933
+ "step": 15400,
1934
+ "token_acc": 0.9827976067946816
1935
+ },
1936
+ {
1937
+ "epoch": 2.8471849865951744,
1938
+ "eval_loss": 2.121828556060791,
1939
+ "eval_runtime": 37.5456,
1940
+ "eval_samples_per_second": 412.352,
1941
+ "eval_steps_per_second": 0.826,
1942
+ "eval_token_acc": 0.8419664650974524,
1943
+ "step": 15400
1944
+ },
1945
+ {
1946
+ "epoch": 2.8656744014051956,
1947
+ "grad_norm": 1.4398285150527954,
1948
+ "learning_rate": 1.9279365198567423e-06,
1949
+ "loss": 0.05939002990722656,
1950
+ "step": 15500,
1951
+ "token_acc": 0.9828381809746751
1952
+ },
1953
+ {
1954
+ "epoch": 2.884163816215217,
1955
+ "grad_norm": 1.532787561416626,
1956
+ "learning_rate": 1.8698249653029842e-06,
1957
+ "loss": 0.0589198112487793,
1958
+ "step": 15600,
1959
+ "token_acc": 0.9829359296759188
1960
+ },
1961
+ {
1962
+ "epoch": 2.884163816215217,
1963
+ "eval_loss": 2.1134450435638428,
1964
+ "eval_runtime": 34.2162,
1965
+ "eval_samples_per_second": 452.476,
1966
+ "eval_steps_per_second": 0.906,
1967
+ "eval_token_acc": 0.8422158712246659,
1968
+ "step": 15600
1969
+ },
1970
+ {
1971
+ "epoch": 2.902653231025238,
1972
+ "grad_norm": 1.4046063423156738,
1973
+ "learning_rate": 1.8124005832897783e-06,
1974
+ "loss": 0.05904512405395508,
1975
+ "step": 15700,
1976
+ "token_acc": 0.9830348199408157
1977
+ },
1978
+ {
1979
+ "epoch": 2.921142645835259,
1980
+ "grad_norm": 1.3275549411773682,
1981
+ "learning_rate": 1.7556759802873768e-06,
1982
+ "loss": 0.05889378547668457,
1983
+ "step": 15800,
1984
+ "token_acc": 0.9831256456369819
1985
+ },
1986
+ {
1987
+ "epoch": 2.921142645835259,
1988
+ "eval_loss": 2.121903896331787,
1989
+ "eval_runtime": 33.4938,
1990
+ "eval_samples_per_second": 462.234,
1991
+ "eval_steps_per_second": 0.926,
1992
+ "eval_token_acc": 0.8419255788470895,
1993
+ "step": 15800
1994
+ },
1995
+ {
1996
+ "epoch": 2.9396320606452804,
1997
+ "grad_norm": 1.2650915384292603,
1998
+ "learning_rate": 1.6996636091423935e-06,
1999
+ "loss": 0.058217430114746095,
2000
+ "step": 15900,
2001
+ "token_acc": 0.9832753492351027
2002
+ },
2003
+ {
2004
+ "epoch": 2.958121475455302,
2005
+ "grad_norm": 1.4132380485534668,
2006
+ "learning_rate": 1.6443757663439818e-06,
2007
+ "loss": 0.05828729152679443,
2008
+ "step": 16000,
2009
+ "token_acc": 0.9833518565790249
2010
+ },
2011
+ {
2012
+ "epoch": 2.958121475455302,
2013
+ "eval_loss": 2.1201601028442383,
2014
+ "eval_runtime": 33.8459,
2015
+ "eval_samples_per_second": 457.426,
2016
+ "eval_steps_per_second": 0.916,
2017
+ "eval_token_acc": 0.8423385299757544,
2018
+ "step": 16000
2019
+ }
2020
+ ],
2021
+ "logging_steps": 100,
2022
+ "max_steps": 21636,
2023
+ "num_input_tokens_seen": 0,
2024
+ "num_train_epochs": 4,
2025
+ "save_steps": 1000,
2026
+ "stateful_callbacks": {
2027
+ "TrainerControl": {
2028
+ "args": {
2029
+ "should_epoch_stop": false,
2030
+ "should_evaluate": false,
2031
+ "should_log": false,
2032
+ "should_save": true,
2033
+ "should_training_stop": false
2034
+ },
2035
+ "attributes": {}
2036
+ }
2037
+ },
2038
+ "total_flos": 2.1852680813254017e+19,
2039
+ "train_batch_size": 64,
2040
+ "trial_name": null,
2041
+ "trial_params": null
2042
+ }
Qwen3-ASR-WSM-Min/training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98ffe9a4e14241f8fe2c817dd3fa2053d1fd141fbdc33566a2990f31c4e430a3
3
+ size 9425
Qwen3-ASR-WSM-Min/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
Qwen3-ASR-WSM-Min/zero_to_fp32.py ADDED
@@ -0,0 +1,760 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:
14
+ # python zero_to_fp32.py . output_dir/
15
+ # or
16
+ # python zero_to_fp32.py . output_dir/ --safe_serialization
17
+
18
+ import argparse
19
+ import torch
20
+ import glob
21
+ import math
22
+ import os
23
+ import re
24
+ import gc
25
+ import json
26
+ import numpy as np
27
+ from tqdm import tqdm
28
+ from collections import OrderedDict
29
+ from dataclasses import dataclass
30
+
31
+ # while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with
32
+ # DeepSpeed data structures it has to be available in the current python environment.
33
+ from deepspeed.utils import logger
34
+ from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS,
35
+ FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES,
36
+ FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS)
37
+
38
+
39
+ @dataclass
40
+ class zero_model_state:
41
+ buffers: dict()
42
+ param_shapes: dict()
43
+ shared_params: list
44
+ ds_version: int
45
+ frozen_param_shapes: dict()
46
+ frozen_param_fragments: dict()
47
+
48
+
49
+ debug = 0
50
+
51
+ # load to cpu
52
+ device = torch.device('cpu')
53
+
54
+
55
+ def atoi(text):
56
+ return int(text) if text.isdigit() else text
57
+
58
+
59
+ def natural_keys(text):
60
+ '''
61
+ alist.sort(key=natural_keys) sorts in human order
62
+ http://nedbatchelder.com/blog/200712/human_sorting.html
63
+ (See Toothy's implementation in the comments)
64
+ '''
65
+ return [atoi(c) for c in re.split(r'(\d+)', text)]
66
+
67
+
68
+ def get_model_state_file(checkpoint_dir, zero_stage):
69
+ if not os.path.isdir(checkpoint_dir):
70
+ raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist")
71
+
72
+ # there should be only one file
73
+ if zero_stage <= 2:
74
+ file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt")
75
+ elif zero_stage == 3:
76
+ file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt")
77
+
78
+ if not os.path.exists(file):
79
+ raise FileNotFoundError(f"can't find model states file at '{file}'")
80
+
81
+ return file
82
+
83
+
84
+ def get_checkpoint_files(checkpoint_dir, glob_pattern):
85
+ # XXX: need to test that this simple glob rule works for multi-node setup too
86
+ ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys)
87
+
88
+ if len(ckpt_files) == 0:
89
+ raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'")
90
+
91
+ return ckpt_files
92
+
93
+
94
+ def get_optim_files(checkpoint_dir):
95
+ return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt")
96
+
97
+
98
+ def get_model_state_files(checkpoint_dir):
99
+ return get_checkpoint_files(checkpoint_dir, "*_model_states.pt")
100
+
101
+
102
+ def parse_model_states(files):
103
+ zero_model_states = []
104
+ for file in files:
105
+ state_dict = torch.load(file, map_location=device, weights_only=False)
106
+
107
+ if BUFFER_NAMES not in state_dict:
108
+ raise ValueError(f"{file} is not a model state checkpoint")
109
+ buffer_names = state_dict[BUFFER_NAMES]
110
+ if debug:
111
+ print("Found buffers:", buffer_names)
112
+
113
+ # recover just the buffers while restoring them to fp32 if they were saved in fp16
114
+ buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names}
115
+ param_shapes = state_dict[PARAM_SHAPES]
116
+
117
+ # collect parameters that are included in param_shapes
118
+ param_names = []
119
+ for s in param_shapes:
120
+ for name in s.keys():
121
+ param_names.append(name)
122
+
123
+ # update with frozen parameters
124
+ frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None)
125
+ if frozen_param_shapes is not None:
126
+ if debug:
127
+ print(f"Found frozen_param_shapes: {frozen_param_shapes}")
128
+ param_names += list(frozen_param_shapes.keys())
129
+
130
+ # handle shared params
131
+ shared_params = [[k, v] for k, v in state_dict["shared_params"].items()]
132
+
133
+ ds_version = state_dict.get(DS_VERSION, None)
134
+
135
+ frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None)
136
+
137
+ z_model_state = zero_model_state(buffers=buffers,
138
+ param_shapes=param_shapes,
139
+ shared_params=shared_params,
140
+ ds_version=ds_version,
141
+ frozen_param_shapes=frozen_param_shapes,
142
+ frozen_param_fragments=frozen_param_fragments)
143
+ zero_model_states.append(z_model_state)
144
+
145
+ return zero_model_states
146
+
147
+
148
+ def parse_optim_states(files, ds_checkpoint_dir):
149
+ total_files = len(files)
150
+ state_dicts = []
151
+ for f in tqdm(files, desc='Loading checkpoint shards'):
152
+ state_dict = torch.load(f, map_location=device, mmap=True, weights_only=False)
153
+ # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights
154
+ # and also handle the case where it was already removed by another helper script
155
+ state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None)
156
+ state_dicts.append(state_dict)
157
+
158
+ if ZERO_STAGE not in state_dicts[0][OPTIMIZER_STATE_DICT]:
159
+ raise ValueError(f"{files[0]} is not a zero checkpoint")
160
+ zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE]
161
+ world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT]
162
+
163
+ # For ZeRO-2 each param group can have different partition_count as data parallelism for expert
164
+ # parameters can be different from data parallelism for non-expert parameters. So we can just
165
+ # use the max of the partition_count to get the dp world_size.
166
+
167
+ if type(world_size) is list:
168
+ world_size = max(world_size)
169
+
170
+ if world_size != total_files:
171
+ raise ValueError(
172
+ f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. "
173
+ "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes."
174
+ )
175
+
176
+ # the groups are named differently in each stage
177
+ if zero_stage <= 2:
178
+ fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS
179
+ elif zero_stage == 3:
180
+ fp32_groups_key = FP32_FLAT_GROUPS
181
+ else:
182
+ raise ValueError(f"unknown zero stage {zero_stage}")
183
+
184
+ fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))]
185
+ return zero_stage, world_size, fp32_flat_groups
186
+
187
+
188
+ def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters):
189
+ """
190
+ Returns fp32 state_dict reconstructed from ds checkpoint
191
+
192
+ Args:
193
+ - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are)
194
+
195
+ """
196
+ print(f"Processing zero checkpoint '{ds_checkpoint_dir}'")
197
+
198
+ optim_files = get_optim_files(ds_checkpoint_dir)
199
+ zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir)
200
+ print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}")
201
+
202
+ model_files = get_model_state_files(ds_checkpoint_dir)
203
+
204
+ zero_model_states = parse_model_states(model_files)
205
+ print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}')
206
+
207
+ if zero_stage <= 2:
208
+ return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
209
+ exclude_frozen_parameters)
210
+ elif zero_stage == 3:
211
+ return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
212
+ exclude_frozen_parameters)
213
+
214
+
215
+ def _zero2_merge_frozen_params(state_dict, zero_model_states):
216
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
217
+ return
218
+
219
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
220
+ frozen_param_fragments = zero_model_states[0].frozen_param_fragments
221
+
222
+ if debug:
223
+ num_elem = sum(s.numel() for s in frozen_param_shapes.values())
224
+ print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
225
+
226
+ wanted_params = len(frozen_param_shapes)
227
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
228
+ avail_numel = sum([p.numel() for p in frozen_param_fragments.values()])
229
+ print(f'Frozen params: Have {avail_numel} numels to process.')
230
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
231
+
232
+ total_params = 0
233
+ total_numel = 0
234
+ for name, shape in frozen_param_shapes.items():
235
+ total_params += 1
236
+ unpartitioned_numel = shape.numel()
237
+ total_numel += unpartitioned_numel
238
+
239
+ state_dict[name] = frozen_param_fragments[name]
240
+
241
+ if debug:
242
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
243
+
244
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
245
+
246
+
247
+ def _has_callable(obj, fn):
248
+ attr = getattr(obj, fn, None)
249
+ return callable(attr)
250
+
251
+
252
+ def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
253
+ param_shapes = zero_model_states[0].param_shapes
254
+
255
+ # Reconstruction protocol:
256
+ #
257
+ # XXX: document this
258
+
259
+ if debug:
260
+ for i in range(world_size):
261
+ for j in range(len(fp32_flat_groups[0])):
262
+ print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}")
263
+
264
+ # XXX: memory usage doubles here (zero2)
265
+ num_param_groups = len(fp32_flat_groups[0])
266
+ merged_single_partition_of_fp32_groups = []
267
+ for i in range(num_param_groups):
268
+ merged_partitions = [sd[i] for sd in fp32_flat_groups]
269
+ full_single_fp32_vector = torch.cat(merged_partitions, 0)
270
+ merged_single_partition_of_fp32_groups.append(full_single_fp32_vector)
271
+ avail_numel = sum(
272
+ [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups])
273
+
274
+ if debug:
275
+ wanted_params = sum([len(shapes) for shapes in param_shapes])
276
+ wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes])
277
+ # not asserting if there is a mismatch due to possible padding
278
+ print(f"Have {avail_numel} numels to process.")
279
+ print(f"Need {wanted_numel} numels in {wanted_params} params.")
280
+
281
+ # params
282
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
283
+ # out-of-core computing solution
284
+ total_numel = 0
285
+ total_params = 0
286
+ for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups):
287
+ offset = 0
288
+ avail_numel = full_single_fp32_vector.numel()
289
+ for name, shape in shapes.items():
290
+
291
+ unpartitioned_numel = shape.numel() if _has_callable(shape, 'numel') else math.prod(shape)
292
+ total_numel += unpartitioned_numel
293
+ total_params += 1
294
+
295
+ if debug:
296
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
297
+ state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape)
298
+ offset += unpartitioned_numel
299
+
300
+ # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and
301
+ # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex
302
+ # paddings performed in the code it's almost impossible to predict the exact numbers w/o the
303
+ # live optimizer object, so we are checking that the numbers are within the right range
304
+ align_to = 2 * world_size
305
+
306
+ def zero2_align(x):
307
+ return align_to * math.ceil(x / align_to)
308
+
309
+ if debug:
310
+ print(f"original offset={offset}, avail_numel={avail_numel}")
311
+
312
+ offset = zero2_align(offset)
313
+ avail_numel = zero2_align(avail_numel)
314
+
315
+ if debug:
316
+ print(f"aligned offset={offset}, avail_numel={avail_numel}")
317
+
318
+ # Sanity check
319
+ if offset != avail_numel:
320
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
321
+
322
+ print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements")
323
+
324
+
325
+ def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
326
+ exclude_frozen_parameters):
327
+ state_dict = OrderedDict()
328
+
329
+ # buffers
330
+ buffers = zero_model_states[0].buffers
331
+ state_dict.update(buffers)
332
+ if debug:
333
+ print(f"added {len(buffers)} buffers")
334
+
335
+ if not exclude_frozen_parameters:
336
+ _zero2_merge_frozen_params(state_dict, zero_model_states)
337
+
338
+ _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
339
+
340
+ # recover shared parameters
341
+ for pair in zero_model_states[0].shared_params:
342
+ if pair[1] in state_dict:
343
+ state_dict[pair[0]] = state_dict[pair[1]]
344
+
345
+ return state_dict
346
+
347
+
348
+ def zero3_partitioned_param_info(unpartitioned_numel, world_size):
349
+ remainder = unpartitioned_numel % world_size
350
+ padding_numel = (world_size - remainder) if remainder else 0
351
+ partitioned_numel = math.ceil(unpartitioned_numel / world_size)
352
+ return partitioned_numel, padding_numel
353
+
354
+
355
+ def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states):
356
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
357
+ return
358
+
359
+ if debug:
360
+ for i in range(world_size):
361
+ num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values())
362
+ print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
363
+
364
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
365
+ wanted_params = len(frozen_param_shapes)
366
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
367
+ avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size
368
+ print(f'Frozen params: Have {avail_numel} numels to process.')
369
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
370
+
371
+ total_params = 0
372
+ total_numel = 0
373
+ for name, shape in zero_model_states[0].frozen_param_shapes.items():
374
+ total_params += 1
375
+ unpartitioned_numel = shape.numel()
376
+ total_numel += unpartitioned_numel
377
+
378
+ param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states)
379
+ state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape)
380
+
381
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
382
+
383
+ if debug:
384
+ print(
385
+ f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
386
+ )
387
+
388
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
389
+
390
+
391
+ class GatheredTensor:
392
+ """
393
+ A pseudo tensor that collects partitioned weights.
394
+ It is more memory efficient when there are multiple groups.
395
+ """
396
+
397
+ def __init__(self, flat_groups, flat_groups_offset, offset, partitioned_numel, shape):
398
+ self.flat_groups = flat_groups
399
+ self.flat_groups_offset = flat_groups_offset
400
+ self.offset = offset
401
+ self.partitioned_numel = partitioned_numel
402
+ self.shape = shape
403
+ self.dtype = self.flat_groups[0][0].dtype
404
+
405
+ def contiguous(self):
406
+ """
407
+ Merge partitioned weights from flat_groups into a single tensor.
408
+ """
409
+ end_idx = self.offset + self.partitioned_numel
410
+ world_size = len(self.flat_groups)
411
+ pad_flat_param_chunks = []
412
+
413
+ for rank_i in range(world_size):
414
+ # for each rank, we need to collect weights from related group/groups
415
+ flat_groups_at_rank_i = self.flat_groups[rank_i]
416
+ start_group_id = None
417
+ end_group_id = None
418
+ for group_id in range(len(self.flat_groups_offset)):
419
+ if self.flat_groups_offset[group_id] <= self.offset < self.flat_groups_offset[group_id + 1]:
420
+ start_group_id = group_id
421
+ if self.flat_groups_offset[group_id] < end_idx <= self.flat_groups_offset[group_id + 1]:
422
+ end_group_id = group_id
423
+ break
424
+ # collect weights from related group/groups
425
+ for group_id in range(start_group_id, end_group_id + 1):
426
+ flat_tensor = flat_groups_at_rank_i[group_id]
427
+ start_offset = self.offset - self.flat_groups_offset[group_id]
428
+ end_offset = min(end_idx, self.flat_groups_offset[group_id + 1]) - self.flat_groups_offset[group_id]
429
+ pad_flat_param_chunks.append(flat_tensor[start_offset:end_offset])
430
+
431
+ # collect weights from all ranks
432
+ pad_flat_param = torch.cat(pad_flat_param_chunks, dim=0)
433
+ param = pad_flat_param[:self.shape.numel()].view(self.shape).contiguous()
434
+ return param
435
+
436
+
437
+ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
438
+ param_shapes = zero_model_states[0].param_shapes
439
+ avail_numel = sum([flat_group.numel() for flat_group in fp32_flat_groups[0]]) * world_size
440
+
441
+ # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each
442
+ # param, re-consolidating each param, while dealing with padding if any
443
+
444
+ # merge list of dicts, preserving order
445
+ param_shapes = {k: v for d in param_shapes for k, v in d.items()}
446
+
447
+ if debug:
448
+ for i in range(world_size):
449
+ print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}")
450
+
451
+ wanted_params = len(param_shapes)
452
+ wanted_numel = sum(shape.numel() for shape in param_shapes.values())
453
+ # not asserting if there is a mismatch due to possible padding
454
+ avail_numel = fp32_flat_groups[0].numel() * world_size
455
+ print(f"Trainable params: Have {avail_numel} numels to process.")
456
+ print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.")
457
+
458
+ # params
459
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
460
+ # out-of-core computing solution
461
+ offset = 0
462
+ total_numel = 0
463
+ total_params = 0
464
+ flat_groups_offset = [0] + list(np.cumsum([flat_tensor.numel() for flat_tensor in fp32_flat_groups[0]]))
465
+ for name, shape in tqdm(param_shapes.items(), desc='Gathering sharded weights'):
466
+ unpartitioned_numel = shape.numel()
467
+ total_numel += unpartitioned_numel
468
+ total_params += 1
469
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
470
+
471
+ if debug:
472
+ print(
473
+ f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
474
+ )
475
+
476
+ # memory efficient tensor
477
+ tensor = GatheredTensor(fp32_flat_groups, flat_groups_offset, offset, partitioned_numel, shape)
478
+ state_dict[name] = tensor
479
+ offset += partitioned_numel
480
+
481
+ offset *= world_size
482
+
483
+ # Sanity check
484
+ if offset != avail_numel:
485
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
486
+
487
+ print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements")
488
+
489
+
490
+ def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
491
+ exclude_frozen_parameters):
492
+ state_dict = OrderedDict()
493
+
494
+ # buffers
495
+ buffers = zero_model_states[0].buffers
496
+ state_dict.update(buffers)
497
+ if debug:
498
+ print(f"added {len(buffers)} buffers")
499
+
500
+ if not exclude_frozen_parameters:
501
+ _zero3_merge_frozen_params(state_dict, world_size, zero_model_states)
502
+
503
+ _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
504
+
505
+ # recover shared parameters
506
+ for pair in zero_model_states[0].shared_params:
507
+ if pair[1] in state_dict:
508
+ state_dict[pair[0]] = state_dict[pair[1]]
509
+
510
+ return state_dict
511
+
512
+
513
+ def to_torch_tensor(state_dict, return_empty_tensor=False):
514
+ """
515
+ Convert state_dict of GatheredTensor to torch tensor
516
+ """
517
+ torch_state_dict = {}
518
+ converted_tensors = {}
519
+ for name, tensor in state_dict.items():
520
+ tensor_id = id(tensor)
521
+ if tensor_id in converted_tensors: # shared tensors
522
+ shared_tensor = torch_state_dict[converted_tensors[tensor_id]]
523
+ torch_state_dict[name] = shared_tensor
524
+ else:
525
+ converted_tensors[tensor_id] = name
526
+ if return_empty_tensor:
527
+ torch_state_dict[name] = torch.empty(tensor.shape, dtype=tensor.dtype)
528
+ else:
529
+ torch_state_dict[name] = tensor.contiguous()
530
+ return torch_state_dict
531
+
532
+
533
+ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir,
534
+ tag=None,
535
+ exclude_frozen_parameters=False,
536
+ lazy_mode=False):
537
+ """
538
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with
539
+ ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example
540
+ via a model hub.
541
+
542
+ Args:
543
+ - ``checkpoint_dir``: path to the desired checkpoint folder
544
+ - ``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``
545
+ - ``exclude_frozen_parameters``: exclude frozen parameters
546
+ - ``lazy_mode``: get state_dict in lazy mode. It returns a dict of pesduo tensor instead of torch tensor, which is more memory efficient.
547
+ Convert the pesduo tensor to torch tensor by ``.contiguous()``
548
+
549
+ Returns:
550
+ - pytorch ``state_dict``
551
+
552
+ A typical usage might be ::
553
+
554
+ from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint
555
+ # do the training and checkpoint saving
556
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu
557
+ model = model.cpu() # move to cpu
558
+ model.load_state_dict(state_dict)
559
+ # submit to model hub or save the model to share with others
560
+
561
+ In this example the ``model`` will no longer be usable in the deepspeed context of the same
562
+ application. i.e. you will need to re-initialize the deepspeed engine, since
563
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
564
+
565
+ If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead.
566
+
567
+ Note: the above usage may not work if your application doesn't have sufficient free CPU memory.
568
+ You may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with
569
+ the checkpoint. Or you can load state_dict in lazy mode ::
570
+
571
+ from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint
572
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, lazy_mode=True) # not on cpu
573
+ for name, lazy_tensor in state_dict.item():
574
+ tensor = lazy_tensor.contiguous() # to cpu
575
+ print(name, tensor)
576
+ # del tensor to release memory if it no longer in use
577
+ """
578
+ if tag is None:
579
+ latest_path = os.path.join(checkpoint_dir, 'latest')
580
+ if os.path.isfile(latest_path):
581
+ with open(latest_path, 'r') as fd:
582
+ tag = fd.read().strip()
583
+ else:
584
+ raise ValueError(f"Unable to find 'latest' file at {latest_path}")
585
+
586
+ ds_checkpoint_dir = os.path.join(checkpoint_dir, tag)
587
+
588
+ if not os.path.isdir(ds_checkpoint_dir):
589
+ raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist")
590
+
591
+ state_dict = _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters)
592
+ if lazy_mode:
593
+ return state_dict
594
+ else:
595
+ return to_torch_tensor(state_dict)
596
+
597
+
598
+ def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir,
599
+ output_dir,
600
+ max_shard_size="5GB",
601
+ safe_serialization=False,
602
+ tag=None,
603
+ exclude_frozen_parameters=False):
604
+ """
605
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be
606
+ loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed.
607
+
608
+ Args:
609
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
610
+ - ``output_dir``: directory to the pytorch fp32 state_dict output files
611
+ - ``max_shard_size``: the maximum size for a checkpoint before being sharded, default value is 5GB
612
+ - ``safe_serialization``: whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).
613
+ - ``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``
614
+ - ``exclude_frozen_parameters``: exclude frozen parameters
615
+ """
616
+
617
+ # Dependency pre-check
618
+ if safe_serialization:
619
+ try:
620
+ from safetensors.torch import save_file
621
+ except ImportError:
622
+ print('If you want to use `safe_serialization`, please `pip install safetensors`')
623
+ raise
624
+ if max_shard_size is not None:
625
+ try:
626
+ from huggingface_hub import split_torch_state_dict_into_shards
627
+ except ImportError:
628
+ print('If you want to use `max_shard_size`, please `pip install huggingface_hub`')
629
+ raise
630
+
631
+ # Convert zero checkpoint to state_dict
632
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir,
633
+ tag,
634
+ exclude_frozen_parameters,
635
+ lazy_mode=True)
636
+
637
+ # Shard the model if it is too big.
638
+ weights_name = "model.safetensors" if safe_serialization else "pytorch_model.bin"
639
+ if max_shard_size is not None:
640
+ filename_pattern = weights_name.replace(".bin", "{suffix}.bin").replace(".safetensors", "{suffix}.safetensors")
641
+ # an memory-efficient approach for sharding
642
+ empty_state_dict = to_torch_tensor(state_dict, return_empty_tensor=True)
643
+ state_dict_split = split_torch_state_dict_into_shards(empty_state_dict,
644
+ filename_pattern=filename_pattern,
645
+ max_shard_size=max_shard_size)
646
+ else:
647
+ from collections import namedtuple
648
+ StateDictSplit = namedtuple("StateDictSplit", ["is_sharded", "filename_to_tensors"])
649
+ state_dict_split = StateDictSplit(is_sharded=False,
650
+ filename_to_tensors={weights_name: list(state_dict.keys())})
651
+
652
+ # Save the model by shard
653
+ os.makedirs(output_dir, exist_ok=True)
654
+ filename_to_tensors = state_dict_split.filename_to_tensors.items()
655
+ for shard_file, tensors in tqdm(filename_to_tensors, desc="Saving checkpoint shards"):
656
+ shard_state_dict = {tensor_name: state_dict[tensor_name] for tensor_name in tensors}
657
+ shard_state_dict = to_torch_tensor(shard_state_dict)
658
+ output_path = os.path.join(output_dir, shard_file)
659
+ if safe_serialization:
660
+ save_file(shard_state_dict, output_path, metadata={"format": "pt"})
661
+ else:
662
+ torch.save(shard_state_dict, output_path)
663
+ # release the memory of current shard
664
+ for tensor_name in list(shard_state_dict.keys()):
665
+ del state_dict[tensor_name]
666
+ del shard_state_dict[tensor_name]
667
+ del shard_state_dict
668
+ gc.collect()
669
+
670
+ # Save index if sharded
671
+ if state_dict_split.is_sharded:
672
+ index = {
673
+ "metadata": state_dict_split.metadata,
674
+ "weight_map": state_dict_split.tensor_to_filename,
675
+ }
676
+ save_index_file = "model.safetensors.index.json" if safe_serialization else "pytorch_model.bin.index.json"
677
+ save_index_file = os.path.join(output_dir, save_index_file)
678
+ with open(save_index_file, "w", encoding="utf-8") as f:
679
+ content = json.dumps(index, indent=2, sort_keys=True) + "\n"
680
+ f.write(content)
681
+
682
+
683
+ def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None):
684
+ """
685
+ 1. Put the provided model to cpu
686
+ 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict``
687
+ 3. Load it into the provided model
688
+
689
+ Args:
690
+ - ``model``: the model object to update
691
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
692
+ - ``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``
693
+
694
+ Returns:
695
+ - ``model`: modified model
696
+
697
+ Make sure you have plenty of CPU memory available before you call this function. If you don't
698
+ have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it
699
+ conveniently placed for you in the checkpoint folder.
700
+
701
+ A typical usage might be ::
702
+
703
+ from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint
704
+ model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir)
705
+ # submit to model hub or save the model to share with others
706
+
707
+ Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context
708
+ of the same application. i.e. you will need to re-initialize the deepspeed engine, since
709
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
710
+
711
+ """
712
+ logger.info("Extracting fp32 weights")
713
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag)
714
+
715
+ logger.info("Overwriting model with fp32 weights")
716
+ model = model.cpu()
717
+ model.load_state_dict(state_dict, strict=False)
718
+
719
+ return model
720
+
721
+
722
+ if __name__ == "__main__":
723
+ parser = argparse.ArgumentParser()
724
+ parser.add_argument("checkpoint_dir",
725
+ type=str,
726
+ help="path to the desired checkpoint folder, e.g., path/checkpoint-12")
727
+ parser.add_argument("output_dir",
728
+ type=str,
729
+ help="directory to the pytorch fp32 state_dict output files"
730
+ "(e.g. path/checkpoint-12-output/)")
731
+ parser.add_argument(
732
+ "--max_shard_size",
733
+ type=str,
734
+ default="5GB",
735
+ help="The maximum size for a checkpoint before being sharded. Checkpoints shard will then be each of size"
736
+ "lower than this size. If expressed as a string, needs to be digits followed by a unit (like `5MB`"
737
+ "We default it to 5GB in order for models to be able to run easily on free-tier google colab instances"
738
+ "without CPU OOM issues.")
739
+ parser.add_argument(
740
+ "--safe_serialization",
741
+ default=False,
742
+ action='store_true',
743
+ help="Whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).")
744
+ parser.add_argument("-t",
745
+ "--tag",
746
+ type=str,
747
+ default=None,
748
+ help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1")
749
+ parser.add_argument("--exclude_frozen_parameters", action='store_true', help="exclude frozen parameters")
750
+ parser.add_argument("-d", "--debug", action='store_true', help="enable debug")
751
+ args = parser.parse_args()
752
+
753
+ debug = args.debug
754
+
755
+ convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir,
756
+ args.output_dir,
757
+ max_shard_size=args.max_shard_size,
758
+ safe_serialization=args.safe_serialization,
759
+ tag=args.tag,
760
+ exclude_frozen_parameters=args.exclude_frozen_parameters)