anhtunguyen98 commited on
Commit
da45747
·
verified ·
1 Parent(s): 85959a6

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ checkpoint-10000/tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ checkpoint-20000/tokenizer.json filter=lfs diff=lfs merge=lfs -text
38
+ checkpoint-30000/tokenizer.json filter=lfs diff=lfs merge=lfs -text
39
+ checkpoint-40000/tokenizer.json filter=lfs diff=lfs merge=lfs -text
40
+ checkpoint-50000/tokenizer.json filter=lfs diff=lfs merge=lfs -text
checkpoint-10000/chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
checkpoint-10000/config.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OmniVoice"
4
+ ],
5
+ "audio_codebook_weights": [
6
+ 8,
7
+ 8,
8
+ 6,
9
+ 6,
10
+ 4,
11
+ 4,
12
+ 2,
13
+ 2
14
+ ],
15
+ "audio_mask_id": 1024,
16
+ "audio_vocab_size": 1025,
17
+ "bos_token_id": null,
18
+ "dtype": "float32",
19
+ "eos_token_id": 151645,
20
+ "llm_config": {
21
+ "_name_or_path": "",
22
+ "architectures": [
23
+ "Qwen3ForCausalLM"
24
+ ],
25
+ "attention_bias": false,
26
+ "attention_dropout": 0.0,
27
+ "bos_token_id": 151643,
28
+ "chunk_size_feed_forward": 0,
29
+ "dtype": "float32",
30
+ "eos_token_id": 151645,
31
+ "head_dim": 128,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 1024,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_range": 0.02,
39
+ "intermediate_size": 3072,
40
+ "is_encoder_decoder": false,
41
+ "label2id": {
42
+ "LABEL_0": 0,
43
+ "LABEL_1": 1
44
+ },
45
+ "layer_types": [
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention"
74
+ ],
75
+ "max_position_embeddings": 40960,
76
+ "max_window_layers": 28,
77
+ "model_type": "qwen3",
78
+ "num_attention_heads": 16,
79
+ "num_hidden_layers": 28,
80
+ "num_key_value_heads": 8,
81
+ "output_attentions": false,
82
+ "output_hidden_states": false,
83
+ "pad_token_id": null,
84
+ "problem_type": null,
85
+ "return_dict": true,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "rope_theta": 1000000,
89
+ "rope_type": "default"
90
+ },
91
+ "sliding_window": null,
92
+ "tie_word_embeddings": true,
93
+ "use_cache": true,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151676
96
+ },
97
+ "model_type": "omnivoice",
98
+ "num_audio_codebook": 8,
99
+ "pad_token_id": 151643,
100
+ "transformers_version": "5.3.0"
101
+ }
checkpoint-10000/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:892601425de2e97ca82b30c786319747bd983e12d262d5df0a3853fc32ac5e99
3
+ size 2450344144
checkpoint-10000/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f669b7e2b045fdf54201d815bd364e6667dbd845115da81239c40bc6dcfd1
3
+ size 11423986
checkpoint-10000/tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|denoise|>",
10
+ "<|lang_start|>",
11
+ "<|lang_end|>",
12
+ "<|instruct_start|>",
13
+ "<|instruct_end|>",
14
+ "<|text_start|>",
15
+ "<|text_end|>"
16
+ ],
17
+ "is_local": true,
18
+ "model_max_length": 131072,
19
+ "pad_token": "<|endoftext|>",
20
+ "split_special_tokens": false,
21
+ "tokenizer_class": "Qwen2Tokenizer",
22
+ "unk_token": null
23
+ }
checkpoint-10000/train_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
checkpoint-20000/chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
checkpoint-20000/config.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OmniVoice"
4
+ ],
5
+ "audio_codebook_weights": [
6
+ 8,
7
+ 8,
8
+ 6,
9
+ 6,
10
+ 4,
11
+ 4,
12
+ 2,
13
+ 2
14
+ ],
15
+ "audio_mask_id": 1024,
16
+ "audio_vocab_size": 1025,
17
+ "bos_token_id": null,
18
+ "dtype": "float32",
19
+ "eos_token_id": 151645,
20
+ "llm_config": {
21
+ "_name_or_path": "",
22
+ "architectures": [
23
+ "Qwen3ForCausalLM"
24
+ ],
25
+ "attention_bias": false,
26
+ "attention_dropout": 0.0,
27
+ "bos_token_id": 151643,
28
+ "chunk_size_feed_forward": 0,
29
+ "dtype": "float32",
30
+ "eos_token_id": 151645,
31
+ "head_dim": 128,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 1024,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_range": 0.02,
39
+ "intermediate_size": 3072,
40
+ "is_encoder_decoder": false,
41
+ "label2id": {
42
+ "LABEL_0": 0,
43
+ "LABEL_1": 1
44
+ },
45
+ "layer_types": [
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention"
74
+ ],
75
+ "max_position_embeddings": 40960,
76
+ "max_window_layers": 28,
77
+ "model_type": "qwen3",
78
+ "num_attention_heads": 16,
79
+ "num_hidden_layers": 28,
80
+ "num_key_value_heads": 8,
81
+ "output_attentions": false,
82
+ "output_hidden_states": false,
83
+ "pad_token_id": null,
84
+ "problem_type": null,
85
+ "return_dict": true,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "rope_theta": 1000000,
89
+ "rope_type": "default"
90
+ },
91
+ "sliding_window": null,
92
+ "tie_word_embeddings": true,
93
+ "use_cache": true,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151676
96
+ },
97
+ "model_type": "omnivoice",
98
+ "num_audio_codebook": 8,
99
+ "pad_token_id": 151643,
100
+ "transformers_version": "5.3.0"
101
+ }
checkpoint-20000/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cec5bb9e0e8f3b12449d6ea3f172ffdaf74a3c512dbe2df573f7913741d25eb5
3
+ size 2450344144
checkpoint-20000/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f669b7e2b045fdf54201d815bd364e6667dbd845115da81239c40bc6dcfd1
3
+ size 11423986
checkpoint-20000/tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|denoise|>",
10
+ "<|lang_start|>",
11
+ "<|lang_end|>",
12
+ "<|instruct_start|>",
13
+ "<|instruct_end|>",
14
+ "<|text_start|>",
15
+ "<|text_end|>"
16
+ ],
17
+ "is_local": true,
18
+ "model_max_length": 131072,
19
+ "pad_token": "<|endoftext|>",
20
+ "split_special_tokens": false,
21
+ "tokenizer_class": "Qwen2Tokenizer",
22
+ "unk_token": null
23
+ }
checkpoint-20000/train_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
checkpoint-30000/chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
checkpoint-30000/config.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OmniVoice"
4
+ ],
5
+ "audio_codebook_weights": [
6
+ 8,
7
+ 8,
8
+ 6,
9
+ 6,
10
+ 4,
11
+ 4,
12
+ 2,
13
+ 2
14
+ ],
15
+ "audio_mask_id": 1024,
16
+ "audio_vocab_size": 1025,
17
+ "bos_token_id": null,
18
+ "dtype": "float32",
19
+ "eos_token_id": 151645,
20
+ "llm_config": {
21
+ "_name_or_path": "",
22
+ "architectures": [
23
+ "Qwen3ForCausalLM"
24
+ ],
25
+ "attention_bias": false,
26
+ "attention_dropout": 0.0,
27
+ "bos_token_id": 151643,
28
+ "chunk_size_feed_forward": 0,
29
+ "dtype": "float32",
30
+ "eos_token_id": 151645,
31
+ "head_dim": 128,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 1024,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_range": 0.02,
39
+ "intermediate_size": 3072,
40
+ "is_encoder_decoder": false,
41
+ "label2id": {
42
+ "LABEL_0": 0,
43
+ "LABEL_1": 1
44
+ },
45
+ "layer_types": [
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention"
74
+ ],
75
+ "max_position_embeddings": 40960,
76
+ "max_window_layers": 28,
77
+ "model_type": "qwen3",
78
+ "num_attention_heads": 16,
79
+ "num_hidden_layers": 28,
80
+ "num_key_value_heads": 8,
81
+ "output_attentions": false,
82
+ "output_hidden_states": false,
83
+ "pad_token_id": null,
84
+ "problem_type": null,
85
+ "return_dict": true,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "rope_theta": 1000000,
89
+ "rope_type": "default"
90
+ },
91
+ "sliding_window": null,
92
+ "tie_word_embeddings": true,
93
+ "use_cache": true,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151676
96
+ },
97
+ "model_type": "omnivoice",
98
+ "num_audio_codebook": 8,
99
+ "pad_token_id": 151643,
100
+ "transformers_version": "5.3.0"
101
+ }
checkpoint-30000/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ddf1517d7552b03ebe60294daca2077eb71b64e5925e234cc5e453f79b86bea
3
+ size 2450344144
checkpoint-30000/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f669b7e2b045fdf54201d815bd364e6667dbd845115da81239c40bc6dcfd1
3
+ size 11423986
checkpoint-30000/tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|denoise|>",
10
+ "<|lang_start|>",
11
+ "<|lang_end|>",
12
+ "<|instruct_start|>",
13
+ "<|instruct_end|>",
14
+ "<|text_start|>",
15
+ "<|text_end|>"
16
+ ],
17
+ "is_local": true,
18
+ "model_max_length": 131072,
19
+ "pad_token": "<|endoftext|>",
20
+ "split_special_tokens": false,
21
+ "tokenizer_class": "Qwen2Tokenizer",
22
+ "unk_token": null
23
+ }
checkpoint-30000/train_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
checkpoint-40000/chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
checkpoint-40000/config.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OmniVoice"
4
+ ],
5
+ "audio_codebook_weights": [
6
+ 8,
7
+ 8,
8
+ 6,
9
+ 6,
10
+ 4,
11
+ 4,
12
+ 2,
13
+ 2
14
+ ],
15
+ "audio_mask_id": 1024,
16
+ "audio_vocab_size": 1025,
17
+ "bos_token_id": null,
18
+ "dtype": "float32",
19
+ "eos_token_id": 151645,
20
+ "llm_config": {
21
+ "_name_or_path": "",
22
+ "architectures": [
23
+ "Qwen3ForCausalLM"
24
+ ],
25
+ "attention_bias": false,
26
+ "attention_dropout": 0.0,
27
+ "bos_token_id": 151643,
28
+ "chunk_size_feed_forward": 0,
29
+ "dtype": "float32",
30
+ "eos_token_id": 151645,
31
+ "head_dim": 128,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 1024,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_range": 0.02,
39
+ "intermediate_size": 3072,
40
+ "is_encoder_decoder": false,
41
+ "label2id": {
42
+ "LABEL_0": 0,
43
+ "LABEL_1": 1
44
+ },
45
+ "layer_types": [
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention"
74
+ ],
75
+ "max_position_embeddings": 40960,
76
+ "max_window_layers": 28,
77
+ "model_type": "qwen3",
78
+ "num_attention_heads": 16,
79
+ "num_hidden_layers": 28,
80
+ "num_key_value_heads": 8,
81
+ "output_attentions": false,
82
+ "output_hidden_states": false,
83
+ "pad_token_id": null,
84
+ "problem_type": null,
85
+ "return_dict": true,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "rope_theta": 1000000,
89
+ "rope_type": "default"
90
+ },
91
+ "sliding_window": null,
92
+ "tie_word_embeddings": true,
93
+ "use_cache": true,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151676
96
+ },
97
+ "model_type": "omnivoice",
98
+ "num_audio_codebook": 8,
99
+ "pad_token_id": 151643,
100
+ "transformers_version": "5.3.0"
101
+ }
checkpoint-40000/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6942079aed66b18552dc1ee3fd511f7156f25163281056a3885e1aa41a44a45c
3
+ size 2450344144
checkpoint-40000/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f669b7e2b045fdf54201d815bd364e6667dbd845115da81239c40bc6dcfd1
3
+ size 11423986
checkpoint-40000/tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|denoise|>",
10
+ "<|lang_start|>",
11
+ "<|lang_end|>",
12
+ "<|instruct_start|>",
13
+ "<|instruct_end|>",
14
+ "<|text_start|>",
15
+ "<|text_end|>"
16
+ ],
17
+ "is_local": true,
18
+ "model_max_length": 131072,
19
+ "pad_token": "<|endoftext|>",
20
+ "split_special_tokens": false,
21
+ "tokenizer_class": "Qwen2Tokenizer",
22
+ "unk_token": null
23
+ }
checkpoint-40000/train_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
checkpoint-50000/chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
checkpoint-50000/config.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "OmniVoice"
4
+ ],
5
+ "audio_codebook_weights": [
6
+ 8,
7
+ 8,
8
+ 6,
9
+ 6,
10
+ 4,
11
+ 4,
12
+ 2,
13
+ 2
14
+ ],
15
+ "audio_mask_id": 1024,
16
+ "audio_vocab_size": 1025,
17
+ "bos_token_id": null,
18
+ "dtype": "float32",
19
+ "eos_token_id": 151645,
20
+ "llm_config": {
21
+ "_name_or_path": "",
22
+ "architectures": [
23
+ "Qwen3ForCausalLM"
24
+ ],
25
+ "attention_bias": false,
26
+ "attention_dropout": 0.0,
27
+ "bos_token_id": 151643,
28
+ "chunk_size_feed_forward": 0,
29
+ "dtype": "float32",
30
+ "eos_token_id": 151645,
31
+ "head_dim": 128,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 1024,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_range": 0.02,
39
+ "intermediate_size": 3072,
40
+ "is_encoder_decoder": false,
41
+ "label2id": {
42
+ "LABEL_0": 0,
43
+ "LABEL_1": 1
44
+ },
45
+ "layer_types": [
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention",
69
+ "full_attention",
70
+ "full_attention",
71
+ "full_attention",
72
+ "full_attention",
73
+ "full_attention"
74
+ ],
75
+ "max_position_embeddings": 40960,
76
+ "max_window_layers": 28,
77
+ "model_type": "qwen3",
78
+ "num_attention_heads": 16,
79
+ "num_hidden_layers": 28,
80
+ "num_key_value_heads": 8,
81
+ "output_attentions": false,
82
+ "output_hidden_states": false,
83
+ "pad_token_id": null,
84
+ "problem_type": null,
85
+ "return_dict": true,
86
+ "rms_norm_eps": 1e-06,
87
+ "rope_parameters": {
88
+ "rope_theta": 1000000,
89
+ "rope_type": "default"
90
+ },
91
+ "sliding_window": null,
92
+ "tie_word_embeddings": true,
93
+ "use_cache": true,
94
+ "use_sliding_window": false,
95
+ "vocab_size": 151676
96
+ },
97
+ "model_type": "omnivoice",
98
+ "num_audio_codebook": 8,
99
+ "pad_token_id": 151643,
100
+ "transformers_version": "5.3.0"
101
+ }
checkpoint-50000/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b2e1563aac400e06ad86fb62c4f9a759d3f81ae0b662c6afbc9aeb19607ce20
3
+ size 2450344144
checkpoint-50000/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:408f669b7e2b045fdf54201d815bd364e6667dbd845115da81239c40bc6dcfd1
3
+ size 11423986
checkpoint-50000/tokenizer_config.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|denoise|>",
10
+ "<|lang_start|>",
11
+ "<|lang_end|>",
12
+ "<|instruct_start|>",
13
+ "<|instruct_end|>",
14
+ "<|text_start|>",
15
+ "<|text_end|>"
16
+ ],
17
+ "is_local": true,
18
+ "model_max_length": 131072,
19
+ "pad_token": "<|endoftext|>",
20
+ "split_special_tokens": false,
21
+ "tokenizer_class": "Qwen2Tokenizer",
22
+ "unk_token": null
23
+ }
checkpoint-50000/train_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
initial_config.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "exp/omnivoice_vietnamese_4kh",
3
+ "data_config": "/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json",
4
+ "llm_name_or_path": "Qwen/Qwen3-0.6B",
5
+ "audio_vocab_size": 1025,
6
+ "audio_mask_id": 1024,
7
+ "num_audio_codebook": 8,
8
+ "audio_codebook_weights": [
9
+ 8,
10
+ 8,
11
+ 6,
12
+ 6,
13
+ 4,
14
+ 4,
15
+ 2,
16
+ 2
17
+ ],
18
+ "drop_cond_ratio": 0.1,
19
+ "prompt_ratio_range": [
20
+ 0.0,
21
+ 0.3
22
+ ],
23
+ "mask_ratio_range": [
24
+ 0.0,
25
+ 1.0
26
+ ],
27
+ "language_ratio": 0.8,
28
+ "use_pinyin_ratio": 0.0,
29
+ "instruct_ratio": 0.0,
30
+ "only_instruct_ratio": 0.0,
31
+ "resume_from_checkpoint": null,
32
+ "init_from_checkpoint": "k2-fsa/OmniVoice",
33
+ "learning_rate": 1e-05,
34
+ "weight_decay": 0.01,
35
+ "max_grad_norm": 1.0,
36
+ "steps": 100000,
37
+ "epochs": null,
38
+ "seed": 42,
39
+ "lr_scheduler_type": "cosine",
40
+ "warmup_type": "ratio",
41
+ "warmup_ratio": 0.01,
42
+ "warmup_steps": 0,
43
+ "batch_tokens": 8192,
44
+ "gradient_accumulation_steps": 1,
45
+ "num_workers": 2,
46
+ "mixed_precision": "bf16",
47
+ "allow_tf32": true,
48
+ "use_deepspeed": false,
49
+ "deepspeed_config": null,
50
+ "attn_implementation": "flex_attention",
51
+ "max_sample_tokens": 2000,
52
+ "min_sample_tokens": 50,
53
+ "max_batch_size": 64,
54
+ "logging_steps": 50,
55
+ "eval_steps": 10000,
56
+ "save_steps": 10000,
57
+ "keep_last_n_checkpoints": -1
58
+ }
tensorboard/events.out.tfevents.1777886498.osaka.2227663.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:33b52543081639f348aa73710bccf6852e984a8b663c7e8e4f18fdb93b945add
3
+ size 317849
train.log ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 05/04/2026 09:03:47 - INFO - omnivoice.training.trainer - Loaded Config: TrainingConfig(output_dir='exp/omnivoice_vietnamese_4kh', data_config='/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json', llm_name_or_path='Qwen/Qwen3-0.6B', audio_vocab_size=1025, audio_mask_id=1024, num_audio_codebook=8, audio_codebook_weights=[8, 8, 6, 6, 4, 4, 2, 2], drop_cond_ratio=0.1, prompt_ratio_range=[0.0, 0.3], mask_ratio_range=[0.0, 1.0], language_ratio=0.8, use_pinyin_ratio=0.0, instruct_ratio=0.0, only_instruct_ratio=0.0, resume_from_checkpoint=None, init_from_checkpoint='k2-fsa/OmniVoice', learning_rate=1e-05, weight_decay=0.01, max_grad_norm=1.0, steps=300000, epochs=2, seed=42, lr_scheduler_type='cosine', warmup_type='ratio', warmup_ratio=0.01, warmup_steps=0, batch_tokens=8192, gradient_accumulation_steps=1, num_workers=2, mixed_precision='bf16', allow_tf32=True, use_deepspeed=False, deepspeed_config=None, attn_implementation='flex_attention', max_sample_tokens=2000, min_sample_tokens=50, max_batch_size=64, logging_steps=50, eval_steps=10000, save_steps=10000, keep_last_n_checkpoints=-1)
2
+ 05/04/2026 09:21:34 - INFO - omnivoice.training.trainer - Loaded Config: TrainingConfig(output_dir='exp/omnivoice_vietnamese_4kh', data_config='/vast/tts/robert/OmniVoice/data/data_config_vietnamese.json', llm_name_or_path='Qwen/Qwen3-0.6B', audio_vocab_size=1025, audio_mask_id=1024, num_audio_codebook=8, audio_codebook_weights=[8, 8, 6, 6, 4, 4, 2, 2], drop_cond_ratio=0.1, prompt_ratio_range=[0.0, 0.3], mask_ratio_range=[0.0, 1.0], language_ratio=0.8, use_pinyin_ratio=0.0, instruct_ratio=0.0, only_instruct_ratio=0.0, resume_from_checkpoint=None, init_from_checkpoint='k2-fsa/OmniVoice', learning_rate=1e-05, weight_decay=0.01, max_grad_norm=1.0, steps=100000, epochs=None, seed=42, lr_scheduler_type='cosine', warmup_type='ratio', warmup_ratio=0.01, warmup_steps=0, batch_tokens=8192, gradient_accumulation_steps=1, num_workers=2, mixed_precision='bf16', allow_tf32=True, use_deepspeed=False, deepspeed_config=None, attn_implementation='flex_attention', max_sample_tokens=2000, min_sample_tokens=50, max_batch_size=64, logging_steps=50, eval_steps=10000, save_steps=10000, keep_last_n_checkpoints=-1)
3
+ 05/04/2026 09:21:40 - INFO - omnivoice.training.trainer - Starting Training Loop...
4
+ 05/04/2026 10:07:11 - INFO - omnivoice.training.trainer - Epoch 1 starting. Resetting dataloader...
5
+ 05/04/2026 10:18:44 - INFO - omnivoice.training.trainer - Running evaluation at step 10000...
6
+ 05/04/2026 10:18:47 - INFO - omnivoice.training.trainer - Eval Loss: 4.1190
7
+ 05/04/2026 10:18:47 - INFO - accelerate.accelerator - Saving current state to exp/omnivoice_vietnamese_4kh/checkpoint-10000
8
+ 05/04/2026 10:18:57 - INFO - accelerate.checkpointing - Model weights saved in exp/omnivoice_vietnamese_4kh/checkpoint-10000/model.safetensors
9
+ 05/04/2026 10:19:02 - INFO - accelerate.checkpointing - Optimizer state saved in exp/omnivoice_vietnamese_4kh/checkpoint-10000/optimizer.bin
10
+ 05/04/2026 10:19:02 - INFO - accelerate.checkpointing - Scheduler state saved in exp/omnivoice_vietnamese_4kh/checkpoint-10000/scheduler.bin
11
+ 05/04/2026 10:19:02 - INFO - accelerate.checkpointing - Random states saved in exp/omnivoice_vietnamese_4kh/checkpoint-10000/random_states_0.pkl
12
+ 05/04/2026 10:19:05 - INFO - omnivoice.training.checkpoint - Saved checkpoint to exp/omnivoice_vietnamese_4kh/checkpoint-10000
13
+ 05/04/2026 10:52:54 - INFO - omnivoice.training.trainer - Epoch 2 starting. Resetting dataloader...
14
+ 05/04/2026 11:15:51 - INFO - omnivoice.training.trainer - Running evaluation at step 20000...
15
+ 05/04/2026 11:15:53 - INFO - omnivoice.training.trainer - Eval Loss: 4.1431
16
+ 05/04/2026 11:15:53 - INFO - accelerate.accelerator - Saving current state to exp/omnivoice_vietnamese_4kh/checkpoint-20000
17
+ 05/04/2026 11:16:02 - INFO - accelerate.checkpointing - Model weights saved in exp/omnivoice_vietnamese_4kh/checkpoint-20000/model.safetensors
18
+ 05/04/2026 11:16:07 - INFO - accelerate.checkpointing - Optimizer state saved in exp/omnivoice_vietnamese_4kh/checkpoint-20000/optimizer.bin
19
+ 05/04/2026 11:16:07 - INFO - accelerate.checkpointing - Scheduler state saved in exp/omnivoice_vietnamese_4kh/checkpoint-20000/scheduler.bin
20
+ 05/04/2026 11:16:07 - INFO - accelerate.checkpointing - Random states saved in exp/omnivoice_vietnamese_4kh/checkpoint-20000/random_states_0.pkl
21
+ 05/04/2026 11:16:09 - INFO - omnivoice.training.checkpoint - Saved checkpoint to exp/omnivoice_vietnamese_4kh/checkpoint-20000
22
+ 05/04/2026 11:38:34 - INFO - omnivoice.training.trainer - Epoch 3 starting. Resetting dataloader...
23
+ 05/04/2026 12:13:10 - INFO - omnivoice.training.trainer - Running evaluation at step 30000...
24
+ 05/04/2026 12:13:12 - INFO - omnivoice.training.trainer - Eval Loss: 4.0201
25
+ 05/04/2026 12:13:12 - INFO - accelerate.accelerator - Saving current state to exp/omnivoice_vietnamese_4kh/checkpoint-30000
26
+ 05/04/2026 12:13:21 - INFO - accelerate.checkpointing - Model weights saved in exp/omnivoice_vietnamese_4kh/checkpoint-30000/model.safetensors
27
+ 05/04/2026 12:13:25 - INFO - accelerate.checkpointing - Optimizer state saved in exp/omnivoice_vietnamese_4kh/checkpoint-30000/optimizer.bin
28
+ 05/04/2026 12:13:25 - INFO - accelerate.checkpointing - Scheduler state saved in exp/omnivoice_vietnamese_4kh/checkpoint-30000/scheduler.bin
29
+ 05/04/2026 12:13:25 - INFO - accelerate.checkpointing - Random states saved in exp/omnivoice_vietnamese_4kh/checkpoint-30000/random_states_0.pkl
30
+ 05/04/2026 12:13:27 - INFO - omnivoice.training.checkpoint - Saved checkpoint to exp/omnivoice_vietnamese_4kh/checkpoint-30000
31
+ 05/04/2026 12:24:29 - INFO - omnivoice.training.trainer - Epoch 4 starting. Resetting dataloader...
32
+ 05/04/2026 13:09:54 - INFO - omnivoice.training.trainer - Epoch 5 starting. Resetting dataloader...
33
+ 05/04/2026 13:10:37 - INFO - omnivoice.training.trainer - Running evaluation at step 40000...
34
+ 05/04/2026 13:10:38 - INFO - omnivoice.training.trainer - Eval Loss: 4.0533
35
+ 05/04/2026 13:10:38 - INFO - accelerate.accelerator - Saving current state to exp/omnivoice_vietnamese_4kh/checkpoint-40000
36
+ 05/04/2026 13:10:48 - INFO - accelerate.checkpointing - Model weights saved in exp/omnivoice_vietnamese_4kh/checkpoint-40000/model.safetensors
37
+ 05/04/2026 13:10:52 - INFO - accelerate.checkpointing - Optimizer state saved in exp/omnivoice_vietnamese_4kh/checkpoint-40000/optimizer.bin
38
+ 05/04/2026 13:10:52 - INFO - accelerate.checkpointing - Scheduler state saved in exp/omnivoice_vietnamese_4kh/checkpoint-40000/scheduler.bin
39
+ 05/04/2026 13:10:52 - INFO - accelerate.checkpointing - Random states saved in exp/omnivoice_vietnamese_4kh/checkpoint-40000/random_states_0.pkl
40
+ 05/04/2026 13:10:55 - INFO - omnivoice.training.checkpoint - Saved checkpoint to exp/omnivoice_vietnamese_4kh/checkpoint-40000
41
+ 05/04/2026 13:55:42 - INFO - omnivoice.training.trainer - Epoch 6 starting. Resetting dataloader...
42
+ 05/04/2026 14:08:00 - INFO - omnivoice.training.trainer - Running evaluation at step 50000...
43
+ 05/04/2026 14:08:02 - INFO - omnivoice.training.trainer - Eval Loss: 4.0592
44
+ 05/04/2026 14:08:02 - INFO - accelerate.accelerator - Saving current state to exp/omnivoice_vietnamese_4kh/checkpoint-50000
45
+ 05/04/2026 14:08:12 - INFO - accelerate.checkpointing - Model weights saved in exp/omnivoice_vietnamese_4kh/checkpoint-50000/model.safetensors
46
+ 05/04/2026 14:08:16 - INFO - accelerate.checkpointing - Optimizer state saved in exp/omnivoice_vietnamese_4kh/checkpoint-50000/optimizer.bin
47
+ 05/04/2026 14:08:16 - INFO - accelerate.checkpointing - Scheduler state saved in exp/omnivoice_vietnamese_4kh/checkpoint-50000/scheduler.bin
48
+ 05/04/2026 14:08:16 - INFO - accelerate.checkpointing - Random states saved in exp/omnivoice_vietnamese_4kh/checkpoint-50000/random_states_0.pkl
49
+ 05/04/2026 14:08:18 - INFO - omnivoice.training.checkpoint - Saved checkpoint to exp/omnivoice_vietnamese_4kh/checkpoint-50000
50
+ 05/04/2026 14:41:31 - INFO - omnivoice.training.trainer - Epoch 7 starting. Resetting dataloader...