Wwayu commited on
Commit
0170dc4
·
verified ·
1 Parent(s): 0bec28c

Upload folder using huggingface_hub

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
README.md ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ license: apache-2.0
4
+ license_link: https://huggingface.co/Qwen/Qwen3.6-27B/blob/main/LICENSE
5
+ pipeline_tag: image-text-to-text
6
+ tags:
7
+ - heretic
8
+ - uncensored
9
+ - decensored
10
+ - abliterated
11
+ - mpoa
12
+ - mtp
13
+ - mlx
14
+ - mlx-my-repo
15
+ base_model: llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved
16
+ ---
17
+
18
+ # Wwayu/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-mlx-6Bit
19
+
20
+ The Model [Wwayu/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-mlx-6Bit](https://huggingface.co/Wwayu/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-mlx-6Bit) was converted to MLX format from [llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved](https://huggingface.co/llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved) using mlx-lm version **0.31.2**.
21
+
22
+ ## Use with mlx
23
+
24
+ ```bash
25
+ pip install mlx-lm
26
+ ```
27
+
28
+ ```python
29
+ from mlx_lm import load, generate
30
+
31
+ model, tokenizer = load("Wwayu/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-mlx-6Bit")
32
+
33
+ prompt="hello"
34
+
35
+ if hasattr(tokenizer, "apply_chat_template") and tokenizer.chat_template is not None:
36
+ messages = [{"role": "user", "content": prompt}]
37
+ prompt = tokenizer.apply_chat_template(
38
+ messages, tokenize=False, add_generation_prompt=True
39
+ )
40
+
41
+ response = generate(model, tokenizer, prompt=prompt, verbose=True)
42
+ ```
chat_template.jinja ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id is defined and add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id is defined and add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- set ns_flags = namespace(enable_thinking=true) %}
43
+ {%- if enable_thinking is defined %}
44
+ {%- set ns_flags.enable_thinking = enable_thinking %}
45
+ {%- endif %}
46
+ {%- set preserve_thinking = preserve_thinking | default(true) %}
47
+ {%- if not messages %}
48
+ {{- raise_exception('No messages provided.') }}
49
+ {%- endif %}
50
+ {%- if add_generation_prompt is defined and add_generation_prompt and continue_final_message is defined and continue_final_message %}
51
+ {{- raise_exception('add_generation_prompt and continue_final_message cannot both be true.') }}
52
+ {%- endif %}
53
+ {%- if tools and tools is iterable and tools is not mapping %}
54
+ {{- '<|im_start|>system\n' }}
55
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
56
+ {%- for tool in tools %}
57
+ {{- "\n" }}
58
+ {{- tool | tojson }}
59
+ {%- endfor %}
60
+ {{- "\n</tools>" }}
61
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
62
+ {%- if messages[0].role == 'system' or messages[0].role == 'developer' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {%- if '<|think_off|>' in content %}
65
+ {%- set ns_flags.enable_thinking = false %}
66
+ {%- set content = content.replace('<|think_off|>', '') %}
67
+ {%- endif %}
68
+ {%- if '<|think_on|>' in content %}
69
+ {%- set ns_flags.enable_thinking = true %}
70
+ {%- set content = content.replace('<|think_on|>', '') %}
71
+ {%- endif %}
72
+ {%- set content = content.strip() %}
73
+ {%- if content %}
74
+ {{- '\n\n' + content }}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {{- '<|im_end|>\n' }}
78
+ {%- else %}
79
+ {%- if messages[0].role == 'system' or messages[0].role == 'developer' %}
80
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
81
+ {%- if '<|think_off|>' in content %}
82
+ {%- set ns_flags.enable_thinking = false %}
83
+ {%- set content = content.replace('<|think_off|>', '') %}
84
+ {%- endif %}
85
+ {%- if '<|think_on|>' in content %}
86
+ {%- set ns_flags.enable_thinking = true %}
87
+ {%- set content = content.replace('<|think_on|>', '') %}
88
+ {%- endif %}
89
+ {%- set content = content.strip() %}
90
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
91
+ {%- endif %}
92
+ {%- endif %}
93
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
94
+ {%- for message in messages[::-1] %}
95
+ {%- set index = (messages|length - 1) - loop.index0 %}
96
+ {%- if ns.multi_step_tool and message.role == "user" %}
97
+ {%- set content = render_content(message.content, false)|trim %}
98
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
99
+ {%- set ns.multi_step_tool = false %}
100
+ {%- set ns.last_query_index = index %}
101
+ {%- endif %}
102
+ {%- endif %}
103
+ {%- endfor %}
104
+ {%- if ns.multi_step_tool %}
105
+ {%- set ns.last_query_index = messages|length - 1 %}
106
+ {%- endif %}
107
+ {%- for message in messages %}
108
+ {%- set content = render_content(message.content, true)|trim %}
109
+ {%- set content = content.replace('<|think_off|>', '').replace('<|think_on|>', '') %}
110
+ {%- set content = content.strip() %}
111
+ {%- if message.role == "system" or message.role == "developer" %}
112
+ {%- if not loop.first %}
113
+ {%- set sys_content = render_content(message.content, false, true)|trim %}
114
+ {%- set sys_content = sys_content.replace('<|think_off|>', '').replace('<|think_on|>', '')|trim %}
115
+ {{- '<|im_start|>system\n' + sys_content + '<|im_end|>' + '\n' }}
116
+ {%- endif %}
117
+ {%- elif message.role == "user" %}
118
+ {{- '<|im_start|>' + message.role + '\n' + (content if content else ' ') + '<|im_end|>' + '\n' }}
119
+ {%- elif message.role == "assistant" %}
120
+ {%- set reasoning_content = '' %}
121
+ {%- if message.reasoning_content is string %}
122
+ {%- set reasoning_content = message.reasoning_content %}
123
+ {%- else %}
124
+ {%- set has_think_tag = false %}
125
+ {%- set think_start_token = '<think>' %}
126
+ {%- set think_end_token = '</think>' %}
127
+ {%- if '</think>' in content %}
128
+ {%- set has_think_tag = true %}
129
+ {%- elif '</thinking>' in content %}
130
+ {%- set has_think_tag = true %}
131
+ {%- set think_start_token = '<thinking>' %}
132
+ {%- set think_end_token = '</thinking>' %}
133
+ {%- elif '<think>' in content %}
134
+ {%- set reasoning_content = content.split('<think>')[-1].lstrip('\n') %}
135
+ {%- set content = '' %}
136
+ {%- elif '<thinking>' in content %}
137
+ {%- set reasoning_content = content.split('<thinking>')[-1].lstrip('\n') %}
138
+ {%- set content = '' %}
139
+ {%- endif %}
140
+ {%- if has_think_tag %}
141
+ {%- set reasoning_content = content.split(think_end_token)[0].rstrip('\n').split(think_start_token)[-1].lstrip('\n') %}
142
+ {%- set content = content.split(think_end_token)[-1].lstrip('\n') %}
143
+ {%- endif %}
144
+ {%- endif %}
145
+ {%- set reasoning_content = reasoning_content|trim %}
146
+ {%- set show_think = false %}
147
+ {%- if loop.index0 > ns.last_query_index and reasoning_content|length > 0 %}
148
+ {%- set show_think = true %}
149
+ {%- elif ns_flags.enable_thinking and preserve_thinking and reasoning_content|length > 0 %}
150
+ {%- set show_think = true %}
151
+ {%- endif %}
152
+ {%- if show_think %}
153
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
154
+ {%- else %}
155
+ {{- '<|im_start|>' + message.role + '\n' + content }}
156
+ {%- endif %}
157
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
158
+ {%- for tool_call in message.tool_calls %}
159
+ {%- if tool_call.function is defined %}
160
+ {%- set tool_call = tool_call.function %}
161
+ {%- endif %}
162
+ {%- if loop.first %}
163
+ {%- if content|trim %}
164
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
165
+ {%- else %}
166
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
167
+ {%- endif %}
168
+ {%- else %}
169
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
170
+ {%- endif %}
171
+ {%- if tool_call.arguments is defined and tool_call.arguments is mapping %}
172
+ {%- if tool_call.arguments|length > 0 %}
173
+ {%- for args_name in tool_call.arguments %}
174
+ {%- set args_value = tool_call.arguments[args_name] %}
175
+ {{- '<parameter=' + args_name + '>\n' }}
176
+ {%- set args_value = args_value | string if args_value is string else args_value | tojson %}
177
+ {{- args_value }}
178
+ {{- '\n</parameter>\n' }}
179
+ {%- endfor %}
180
+ {%- endif %}
181
+ {%- elif tool_call.arguments is defined and tool_call.arguments is string %}
182
+ {%- if tool_call.arguments|trim|length > 0 %}
183
+ {#- Note: raw JSON string arguments are emitted as-is and will not match
184
+ the XML parameter format in the tool instructions. Normalize arguments
185
+ to a dict in your serving layer before applying this template. -#}
186
+ {{- tool_call.arguments }}
187
+ {{- '\n' }}
188
+ {%- endif %}
189
+ {%- endif %}
190
+ {{- '</function>\n</tool_call>' }}
191
+ {%- endfor %}
192
+ {%- endif %}
193
+ {%- if not (loop.last and continue_final_message is defined and continue_final_message is true) %}
194
+ {{- '<|im_end|>\n' }}
195
+ {%- endif %}
196
+ {%- elif message.role == "tool" %}
197
+ {%- if not loop.previtem or (loop.previtem.role != "tool" and loop.previtem.role != "assistant") %}
198
+ {{- raise_exception('A tool message must follow an assistant or tool message.') }}
199
+ {%- endif %}
200
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
201
+ {{- '<|im_start|>user' }}
202
+ {%- endif %}
203
+ {{- '\n<tool_response>\n' }}
204
+ {{- content }}
205
+ {{- '\n</tool_response>' }}
206
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
207
+ {{- '<|im_end|>\n' }}
208
+ {%- elif loop.last %}
209
+ {{- '<|im_end|>\n' }}
210
+ {%- endif %}
211
+ {%- else %}
212
+ {{- raise_exception('Unexpected message role.') }}
213
+ {%- endif %}
214
+ {%- endfor %}
215
+ {%- if add_generation_prompt %}
216
+ {{- '<|im_start|>assistant\n' }}
217
+ {%- if ns_flags.enable_thinking is false %}
218
+ {{- '<think>\n\n</think>\n\n' }}
219
+ {%- else %}
220
+ {{- '<think>\n' }}
221
+ {%- endif %}
222
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5ForConditionalGeneration"
4
+ ],
5
+ "dtype": "bfloat16",
6
+ "eos_token_id": [
7
+ 248046,
8
+ 248044
9
+ ],
10
+ "image_token_id": 248056,
11
+ "language_model_only": false,
12
+ "model_type": "qwen3_5",
13
+ "quantization": {
14
+ "group_size": 64,
15
+ "bits": 6,
16
+ "mode": "affine"
17
+ },
18
+ "quantization_config": {
19
+ "group_size": 64,
20
+ "bits": 6,
21
+ "mode": "affine"
22
+ },
23
+ "text_config": {
24
+ "attention_bias": false,
25
+ "attention_dropout": 0.0,
26
+ "attn_output_gate": true,
27
+ "bos_token_id": 248044,
28
+ "dtype": "bfloat16",
29
+ "eos_token_id": 248044,
30
+ "full_attention_interval": 4,
31
+ "head_dim": 256,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 5120,
34
+ "initializer_range": 0.02,
35
+ "intermediate_size": 17408,
36
+ "layer_types": [
37
+ "linear_attention",
38
+ "linear_attention",
39
+ "linear_attention",
40
+ "full_attention",
41
+ "linear_attention",
42
+ "linear_attention",
43
+ "linear_attention",
44
+ "full_attention",
45
+ "linear_attention",
46
+ "linear_attention",
47
+ "linear_attention",
48
+ "full_attention",
49
+ "linear_attention",
50
+ "linear_attention",
51
+ "linear_attention",
52
+ "full_attention",
53
+ "linear_attention",
54
+ "linear_attention",
55
+ "linear_attention",
56
+ "full_attention",
57
+ "linear_attention",
58
+ "linear_attention",
59
+ "linear_attention",
60
+ "full_attention",
61
+ "linear_attention",
62
+ "linear_attention",
63
+ "linear_attention",
64
+ "full_attention",
65
+ "linear_attention",
66
+ "linear_attention",
67
+ "linear_attention",
68
+ "full_attention",
69
+ "linear_attention",
70
+ "linear_attention",
71
+ "linear_attention",
72
+ "full_attention",
73
+ "linear_attention",
74
+ "linear_attention",
75
+ "linear_attention",
76
+ "full_attention",
77
+ "linear_attention",
78
+ "linear_attention",
79
+ "linear_attention",
80
+ "full_attention",
81
+ "linear_attention",
82
+ "linear_attention",
83
+ "linear_attention",
84
+ "full_attention",
85
+ "linear_attention",
86
+ "linear_attention",
87
+ "linear_attention",
88
+ "full_attention",
89
+ "linear_attention",
90
+ "linear_attention",
91
+ "linear_attention",
92
+ "full_attention",
93
+ "linear_attention",
94
+ "linear_attention",
95
+ "linear_attention",
96
+ "full_attention",
97
+ "linear_attention",
98
+ "linear_attention",
99
+ "linear_attention",
100
+ "full_attention"
101
+ ],
102
+ "linear_conv_kernel_dim": 4,
103
+ "linear_key_head_dim": 128,
104
+ "linear_num_key_heads": 16,
105
+ "linear_num_value_heads": 48,
106
+ "linear_value_head_dim": 128,
107
+ "mamba_ssm_dtype": "float32",
108
+ "max_position_embeddings": 262144,
109
+ "model_type": "qwen3_5_text",
110
+ "mtp_num_hidden_layers": 1,
111
+ "mtp_use_dedicated_embeddings": false,
112
+ "num_attention_heads": 24,
113
+ "num_hidden_layers": 64,
114
+ "num_key_value_heads": 4,
115
+ "output_gate_type": "swish",
116
+ "pad_token_id": null,
117
+ "partial_rotary_factor": 0.25,
118
+ "rms_norm_eps": 1e-06,
119
+ "rope_parameters": {
120
+ "mrope_interleaved": true,
121
+ "mrope_section": [
122
+ 11,
123
+ 11,
124
+ 10
125
+ ],
126
+ "partial_rotary_factor": 0.25,
127
+ "rope_theta": 10000000,
128
+ "type": "default"
129
+ },
130
+ "tie_word_embeddings": false,
131
+ "use_cache": true,
132
+ "vocab_size": 248320
133
+ },
134
+ "tie_word_embeddings": false,
135
+ "transformers_version": "5.8.0",
136
+ "video_token_id": 248057,
137
+ "vision_end_token_id": 248054,
138
+ "vision_start_token_id": 248053
139
+ }
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 248044,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 248046,
6
+ 248044
7
+ ],
8
+ "pad_token_id": 248044,
9
+ "temperature": 1.0,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.8.0"
13
+ }
model-00001-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d60c73a93ab9c5e49611ef69d39c59b604e6c689982b1d748568f277b09bbbe0
3
+ size 5366732711
model-00002-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9082118b9d8c6f2b5585ba4b85aab91234e7fead8b3c97fe47ca0076034350b6
3
+ size 5344200013
model-00003-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1bdf40d326d5a1e3bcd4d5218cc8aadde120a1e55e477d144bbf822d603a0e9
3
+ size 5331479300
model-00004-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b402c9daf2ac0ed0a8ee476b85f086e761aa6e007b659f8a615847b1ee359939
3
+ size 4780958405
model-00005-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5724eeb62ab8c64640a1e4c9e574000042f0ea990f1dc09d30c7c7247ce2e020
3
+ size 1033011548
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
3
+ size 19989325
tokenizer_config.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "audio_bos_token": "<|audio_start|>",
4
+ "audio_eos_token": "<|audio_end|>",
5
+ "audio_token": "<|audio_pad|>",
6
+ "backend": "tokenizers",
7
+ "bos_token": null,
8
+ "clean_up_tokenization_spaces": false,
9
+ "eos_token": "<|im_end|>",
10
+ "errors": "replace",
11
+ "image_token": "<|image_pad|>",
12
+ "is_local": true,
13
+ "local_files_only": false,
14
+ "max_length": null,
15
+ "model_max_length": 262144,
16
+ "model_specific_special_tokens": {
17
+ "audio_bos_token": "<|audio_start|>",
18
+ "audio_eos_token": "<|audio_end|>",
19
+ "audio_token": "<|audio_pad|>",
20
+ "image_token": "<|image_pad|>",
21
+ "video_token": "<|video_pad|>",
22
+ "vision_bos_token": "<|vision_start|>",
23
+ "vision_eos_token": "<|vision_end|>"
24
+ },
25
+ "pad_to_multiple_of": null,
26
+ "pad_token": "<|endoftext|>",
27
+ "pad_token_type_id": 0,
28
+ "padding_side": "left",
29
+ "pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
30
+ "split_special_tokens": false,
31
+ "tokenizer_class": "TokenizersBackend",
32
+ "tool_parser_type": "qwen3_coder",
33
+ "unk_token": null,
34
+ "video_token": "<|video_pad|>",
35
+ "vision_bos_token": "<|vision_start|>",
36
+ "vision_eos_token": "<|vision_end|>"
37
+ }