ailuntz commited on
Commit
9cfc4d6
·
verified ·
1 Parent(s): 6775ad6

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2025 Xiaomi Corporation.
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
README.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: mlx
4
+ pipeline_tag: automatic-speech-recognition
5
+ tags:
6
+ - mlx
7
+ - asr
8
+ - automatic-speech-recognition
9
+ - speech-recognition
10
+ - mimo
11
+ base_model:
12
+ - XiaomiMiMo/MiMo-V2.5-ASR
13
+ language:
14
+ - zh
15
+ - en
16
+ ---
17
+
18
+ # MiMo-V2.5-ASR-MLX
19
+
20
+ Current variant: `4bit` (default entry)
21
+
22
+ MLX export of `XiaomiMiMo/MiMo-V2.5-ASR` with `XiaomiMiMo/MiMo-Audio-Tokenizer`.
23
+
24
+ ## Variants
25
+
26
+ | Variant | Precision | Size | Local smoke time | Smoke result |
27
+ | --- | --- | ---: | ---: | --- |
28
+ | `MiMo-V2.5-ASR-MLX` | 4bit | 4.2 GB | 0.88 s | `Intention.` |
29
+ | `MiMo-V2.5-ASR-MLX-4bit` | 4bit | 4.2 GB | 0.88 s | `Intention.` |
30
+ | `MiMo-V2.5-ASR-MLX-8bit` | 8bit | 8.0 GB | 10.80 s | `Intention.` |
31
+ | `MiMo-V2.5-ASR-MLX-bf16` | bf16 | 15 GB | - | dense reference export |
32
+ | `MiMo-V2.5-ASR-MLX-fp32` | fp32 | 30 GB | - | dense reference export |
33
+
34
+ ## Notes
35
+
36
+ - Source model: `XiaomiMiMo/MiMo-V2.5-ASR`
37
+ - Tokenizer: `XiaomiMiMo/MiMo-Audio-Tokenizer`
38
+ - Conversion date: `2026-05-12`
39
+ - License: `Apache-2.0`
40
+ - Smoke test: `mlx-audio-swift` on `Tests/media/intention.wav`
41
+ - Recommended default: `MiMo-V2.5-ASR-MLX`
added_tokens.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</tool_call>": 151658,
3
+ "<tool_call>": 151657,
4
+ "<|Human|>": 151668,
5
+ "<|SpeechLM|>": 151669,
6
+ "<|box_end|>": 151649,
7
+ "<|box_start|>": 151648,
8
+ "<|empty|>": 151667,
9
+ "<|endoftext|>": 151643,
10
+ "<|eosp|>": 151666,
11
+ "<|eostm|>": 151671,
12
+ "<|eot|>": 151672,
13
+ "<|file_sep|>": 151664,
14
+ "<|fim_middle|>": 151660,
15
+ "<|fim_pad|>": 151662,
16
+ "<|fim_prefix|>": 151659,
17
+ "<|fim_suffix|>": 151661,
18
+ "<|im_end|>": 151645,
19
+ "<|im_start|>": 151644,
20
+ "<|image_pad|>": 151655,
21
+ "<|object_ref_end|>": 151647,
22
+ "<|object_ref_start|>": 151646,
23
+ "<|quad_end|>": 151651,
24
+ "<|quad_start|>": 151650,
25
+ "<|repo_name|>": 151663,
26
+ "<|sosp|>": 151665,
27
+ "<|sostm|>": 151670,
28
+ "<|video_pad|>": 151656,
29
+ "<|vision_end|>": 151653,
30
+ "<|vision_pad|>": 151654,
31
+ "<|vision_start|>": 151652
32
+ }
chat_template.jinja ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if not add_generation_prompt is defined -%}
2
+ {%- set add_generation_prompt = false -%}
3
+ {%- endif -%}
4
+ {%- if not enable_thinking is defined -%}
5
+ {%- set enable_thinking = false -%}
6
+ {%- endif -%}
7
+ {%- if not keep_all_reasoning is defined -%}
8
+ {%- set keep_all_reasoning = false -%}
9
+ {%- endif -%}
10
+ {%- macro render_extra_keys(json_dict, handled_keys) -%}
11
+ {%- if json_dict is mapping %}
12
+ {%- for json_key in json_dict if json_key not in handled_keys %}
13
+ {%- if json_dict[json_key] is mapping or (json_dict[json_key] is sequence and json_dict[json_key] is not string) %}
14
+ {{- '\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | tojson | safe) ~ '</' ~ json_key ~ '>' }}
15
+ {%- else %}
16
+ {{-'\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | string) ~ '</' ~ json_key ~ '>' }}
17
+ {%- endif %}
18
+ {%- endfor %}
19
+ {%- endif %}
20
+ {%- endmacro -%}
21
+ {%- macro render_content(message_content) -%}
22
+ {%- if message_content is string -%}
23
+ {{- message_content -}}
24
+ {%- else -%}
25
+ {%- for content in message_content -%}
26
+ {%- if content['type'] == 'image' or 'image' in content or 'image_url' in content -%}
27
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' -}}
28
+ {%- elif content['type'] == 'audio' or 'audio' in content or 'audio_url' in content -%}
29
+ {{- '<|sosp|><|empty|><|eosp|>' -}}
30
+ {%- elif content['type'] == 'video' or 'video' in content or 'video_url' in content -%}
31
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' -}}
32
+ {%- elif 'text' in content -%}
33
+ {{- content['text'] -}}
34
+ {%- endif -%}
35
+ {%- endfor -%}
36
+ {%- endif -%}
37
+ {%- endmacro -%}
38
+ {%- if messages[0]["role"] == "system" %}
39
+ {%- set system_message = messages[0]["content"] %}
40
+ {%- set loop_messages = messages[1:] %}
41
+ {%- else %}
42
+ {%- set loop_messages = messages %}
43
+ {%- endif %}
44
+ {%- set ns = namespace(last_user_index=-1, assistant_is_last=false) %}
45
+ {%- for m in loop_messages %}
46
+ {%- if m.role == 'user' %}
47
+ {%- set ns.last_user_index = loop.index0 -%}
48
+ {%- endif %}
49
+ {%- endfor %}
50
+ {%- if not tools is defined %}
51
+ {%- set tools = [] %}
52
+ {%- endif %}
53
+ {%- set has_system = false %}
54
+ {%- if system_message is defined %}
55
+ {{- "<|im_start|>system\n" + system_message }}
56
+ {%- set has_system = true %}
57
+ {%- endif %}
58
+ {%- if tools is iterable and tools | length > 0 %}
59
+ {%- if not has_system %}
60
+ {{- "<|im_start|>system\n" }}
61
+ {%- set has_system = true %}
62
+ {%- endif %}
63
+ {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou have access to the following functions:\n\n" }}
64
+ {{- "<tools>" }}
65
+ {%- for tool in tools %}
66
+ {%- if tool.function is defined %}
67
+ {%- set tool = tool.function %}
68
+ {%- endif %}
69
+ {{- "\n<function>\n<name>" ~ tool.name ~ "</name>" }}
70
+ {%- if tool.description is defined %}
71
+ {{- '\n<description>' ~ (tool.description | trim) ~ '</description>' }}
72
+ {%- endif %}
73
+ {{- '\n<parameters>' }}
74
+ {%- if tool.parameters is defined and tool.parameters is mapping and tool.parameters.properties is defined and tool.parameters.properties is mapping %}
75
+ {%- for param_name, param_fields in tool.parameters.properties|items %}
76
+ {{- '\n<parameter>' }}
77
+ {{- '\n<name>' ~ param_name ~ '</name>' }}
78
+ {%- if param_fields.type is defined %}
79
+ {{- '\n<type>' ~ (param_fields.type | string) ~ '</type>' }}
80
+ {%- endif %}
81
+ {%- if param_fields.description is defined %}
82
+ {{- '\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}
83
+ {%- endif %}
84
+ {%- set handled_keys = ['name', 'type', 'description'] %}
85
+ {{- render_extra_keys(param_fields, handled_keys) }}
86
+ {{- '\n</parameter>' }}
87
+ {%- endfor %}
88
+ {%- endif %}
89
+ {%- set handled_keys = ['type', 'properties'] %}
90
+ {{- render_extra_keys(tool.parameters, handled_keys) }}
91
+ {{- '\n</parameters>' }}
92
+ {%- set handled_keys = ['type', 'name', 'description', 'parameters'] %}
93
+ {{- render_extra_keys(tool, handled_keys) }}
94
+ {{- '\n</function>' }}
95
+ {%- endfor %}
96
+ {{- "\n</tools>" }}
97
+ {{- '\n\nFor each function call, output the function name and arguments in the following format:\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>value_1</parameter>\n<parameter=example_parameter_2>This is the value for the second parameter\nthat can span\nmultiple lines</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- DO NOT use function calls inside <think></think> tags.\n- The value enclosed between parameter tags is preserved exactly as-is, including newlines and spaces.\n</IMPORTANT>' }}
98
+ {%- endif %}
99
+ {%- if has_system %}
100
+ {{- '<|im_end|>\n' }}
101
+ {%- endif %}
102
+ {%- for message in loop_messages %}
103
+ {%- if message.content is string %}
104
+ {%- set content = message.content %}
105
+ {%- else %}
106
+ {%- set content = render_content(message.content) %}
107
+ {%- endif %}
108
+ {%- if message.role == "assistant" %}
109
+ {%- if message.reasoning_content is string %}
110
+ {%- set reasoning_content = message.reasoning_content %}
111
+ {%- else %}
112
+ {%- set reasoning_content = '' %}
113
+ {%- if '</think>' in content %}
114
+ {%- set reasoning_content = content.split('</think>')[0].split('<think>')[-1] %}
115
+ {%- set content = content.split('</think>')[-1] %}
116
+ {%- endif %}
117
+ {%- endif %}
118
+ {%- if (keep_all_reasoning or loop.index0 > ns.last_user_index) and reasoning_content -%}
119
+ {{- '<|im_start|>' + message.role + '\n<think>' + reasoning_content + '</think>' + content }}
120
+ {%- else %}
121
+ {{- '<|im_start|>' + message.role + '\n<think></think>' + content }}
122
+ {%- endif %}
123
+ {%- if message.tool_calls is defined and message.tool_calls is iterable and message.tool_calls | length > 0 %}
124
+ {%- for tool_call in message.tool_calls %}
125
+ {%- if tool_call.function is defined %}
126
+ {%- set tool_call = tool_call.function %}
127
+ {%- endif %}
128
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
129
+ {%- if tool_call.arguments is defined %}
130
+ {%- for args_name, args_value in tool_call.arguments|items %}
131
+ {{- '<parameter=' + args_name + '>' }}
132
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string %}
133
+ {{- args_value }}
134
+ {{- '</parameter>\n' }}
135
+ {%- endfor %}
136
+ {%- endif %}
137
+ {{- '</function>\n</tool_call>' }}
138
+ {%- endfor %}
139
+ {%- endif %}
140
+ {%- if loop.last %}
141
+ {%- set ns.assistant_is_last = true %}
142
+ {%- else %}
143
+ {{- '<|im_end|>\n' }}
144
+ {%- endif %}
145
+ {%- elif message.role == "user" %}
146
+ {{- '<|im_start|>' + message.role + '\n' + render_content(message.content) + '<|im_end|>\n' }}
147
+ {%- elif message.role == "system" %}
148
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>\n' }}
149
+ {%- elif message.role == "tool" %}
150
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
151
+ {{- '<|im_start|>tool\n' }}
152
+ {%- endif %}
153
+ {{- '<tool_response>\n' }}
154
+ {{- render_content(message.content) }}
155
+ {{- '\n</tool_response>\n' }}
156
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
157
+ {{- '<|im_end|>\n' }}
158
+ {%- elif loop.last %}
159
+ {{- '<|im_end|>\n' }}
160
+ {%- endif %}
161
+ {%- else %}
162
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>\n' }}
163
+ {%- endif %}
164
+ {%- endfor %}
165
+ {%- if add_generation_prompt and not ns.assistant_is_last %}
166
+ {{- '<|im_start|>assistant\n' }}
167
+ {%- if not enable_thinking -%}
168
+ {{- '<think>\n\n</think>\n' -}}
169
+ {%- endif -%}
170
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_input_local_transformer": true,
3
+ "add_speech_sosp_eosp": false,
4
+ "architectures": [
5
+ "MiMoV2ASRForCausalLM"
6
+ ],
7
+ "attention_bias": true,
8
+ "attention_dropout": 0.0,
9
+ "audio_channels": 8,
10
+ "delay_pattern": "0-1-2-3-4-5-6-7",
11
+ "dtype": "bfloat16",
12
+ "empty_loss_weight": 0.01,
13
+ "group_size": 4,
14
+ "head_dim": 128,
15
+ "hidden_act": "silu",
16
+ "hidden_size": 4096,
17
+ "initializer_range": 0.02,
18
+ "input_full_attention": true,
19
+ "input_local_dim": 1024,
20
+ "input_local_layers": 6,
21
+ "intermediate_size": 11008,
22
+ "layer_types": [
23
+ "full_attention",
24
+ "full_attention",
25
+ "full_attention",
26
+ "full_attention",
27
+ "full_attention",
28
+ "full_attention",
29
+ "full_attention",
30
+ "full_attention",
31
+ "full_attention",
32
+ "full_attention",
33
+ "full_attention",
34
+ "full_attention",
35
+ "full_attention",
36
+ "full_attention",
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention",
40
+ "full_attention",
41
+ "full_attention",
42
+ "full_attention",
43
+ "full_attention",
44
+ "full_attention",
45
+ "full_attention",
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
+ ],
60
+ "local_attn_dropout": 0.1,
61
+ "local_attn_heads": 64,
62
+ "local_dim": 1024,
63
+ "local_ffn_dim": 4096,
64
+ "local_hidden_dropout": 0.1,
65
+ "local_layers": 16,
66
+ "local_rotary_base": 640000,
67
+ "max_position_embeddings": 8192,
68
+ "max_window_layers": 28,
69
+ "mlp_layers": 1,
70
+ "model_type": "qwen2",
71
+ "n_rvq": 20,
72
+ "no_speech_loss": false,
73
+ "no_text_loss": false,
74
+ "num_attention_heads": 32,
75
+ "num_hidden_layers": 36,
76
+ "num_key_value_heads": 8,
77
+ "rms_norm_eps": 1e-06,
78
+ "rope_scaling": null,
79
+ "rope_theta": 640000,
80
+ "sliding_window": null,
81
+ "speech_vocab_size": "1025-1025-129-129-129-129-129-129",
82
+ "speech_zeroemb_idx": "1024-1024-128-128-128-128-128-128",
83
+ "tie_word_embeddings": false,
84
+ "transformers_version": "4.57.1",
85
+ "use_cache": true,
86
+ "use_sliding_window": false,
87
+ "vocab_size": 151680,
88
+ "audio_config": {
89
+ "tokenizer_version": "v1",
90
+ "speech_vocab_size": "1025-1025-129-129-129-129-129-129",
91
+ "speech_zeroemb_idx": "1024-1024-128-128-128-128-128-128",
92
+ "group_size": 4,
93
+ "audio_channels": 8,
94
+ "input_local_layers": 6,
95
+ "input_local_dim": 1024,
96
+ "input_full_attention": true,
97
+ "input_local_attn_heads": 64,
98
+ "input_local_head_dim": 16,
99
+ "input_local_intermediate_size": 4096,
100
+ "input_local_hidden_dropout": 0.1,
101
+ "out_hidden_size": 4096,
102
+ "rope_theta": 640000,
103
+ "partial_rotary_factor": 1.0,
104
+ "projection_layers": 1,
105
+ "add_post_norm": true,
106
+ "audio_segment_size": 6000
107
+ },
108
+ "quantization": {
109
+ "group_size": 64,
110
+ "bits": 4,
111
+ "mode": "affine"
112
+ },
113
+ "quantization_config": {
114
+ "group_size": 64,
115
+ "bits": 4,
116
+ "mode": "affine"
117
+ }
118
+ }
generation_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "do_sample": true,
3
+ "temperature": 0.6,
4
+ "top_k": -1,
5
+ "top_p": 0.95
6
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
mlx_manifest.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "mlx-compatible-safetensors",
3
+ "model": "MiMo-V2.5-ASR",
4
+ "precision": "int4",
5
+ "weight_pattern": "model-*.safetensors",
6
+ "index_file": "model.safetensors.index.json",
7
+ "config_file": "config.json",
8
+ "audio_tokenizer_dir": "../MiMo-Audio-Tokenizer",
9
+ "source_model_dir": "../MiMo-V2.5-ASR-MLX-BF16-local"
10
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b96730328d6af2a412cf49e181734bb9f1060c7e64d76884723734a5d25bb01c
3
+ size 4511552749
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ ],
17
+ "eos_token": {
18
+ "content": "<|endoftext|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d91a78cce6441fd6855038f6764fc5f811ae949d9b89f43ac326cddfe91c66db
3
+ size 11423383
tokenizer_config.json ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": "<|sosp|>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": true
188
+ },
189
+ "151666": {
190
+ "content": "<|eosp|>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": true
196
+ },
197
+ "151667": {
198
+ "content": "<|empty|>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": true
204
+ },
205
+ "151668": {
206
+ "content": "<|Human|>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": true
212
+ },
213
+ "151669": {
214
+ "content": "<|SpeechLM|>",
215
+ "lstrip": false,
216
+ "normalized": false,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": true
220
+ },
221
+ "151670": {
222
+ "content": "<|sostm|>",
223
+ "lstrip": false,
224
+ "normalized": false,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": true
228
+ },
229
+ "151671": {
230
+ "content": "<|eostm|>",
231
+ "lstrip": false,
232
+ "normalized": false,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": true
236
+ },
237
+ "151672": {
238
+ "content": "<|eot|>",
239
+ "lstrip": false,
240
+ "normalized": false,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": true
244
+ }
245
+ },
246
+ "additional_special_tokens": [
247
+ "<|im_start|>",
248
+ "<|im_end|>",
249
+ "<|object_ref_start|>",
250
+ "<|object_ref_end|>",
251
+ "<|box_start|>",
252
+ "<|box_end|>",
253
+ "<|quad_start|>",
254
+ "<|quad_end|>",
255
+ "<|vision_start|>",
256
+ "<|vision_end|>",
257
+ "<|vision_pad|>",
258
+ "<|image_pad|>",
259
+ "<|video_pad|>"
260
+ ],
261
+ "bos_token": null,
262
+ "clean_up_tokenization_spaces": false,
263
+ "eos_token": "<|im_end|>",
264
+ "errors": "replace",
265
+ "extra_special_tokens": {},
266
+ "model_max_length": 131072,
267
+ "pad_token": "<|endoftext|>",
268
+ "split_special_tokens": false,
269
+ "tokenizer_class": "Qwen2Tokenizer",
270
+ "unk_token": null
271
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff