mtecnic commited on
Commit
139a1c3
·
verified ·
1 Parent(s): 4ed1488

Upload REAP expert-pruned AWQ model (410/512 experts, W4A16)

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ 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
+ model.safetensors.index.json filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: other
5
+ license_name: qwen
6
+ license_link: https://huggingface.co/Qwen/Qwen3-Coder-Next/blob/main/LICENSE
7
+ tags:
8
+ - moe
9
+ - pruning
10
+ - awq
11
+ - quantized
12
+ - qwen3
13
+ - reap
14
+ - expert-pruning
15
+ - compressed-tensors
16
+ - 4bit
17
+ - research
18
+ base_model: Qwen/Qwen3-Coder-Next
19
+ pipeline_tag: text-generation
20
+ library_name: transformers
21
+ model-index:
22
+ - name: Qwen3-Coder-Next-REAP-AWQ
23
+ results: []
24
+ ---
25
+
26
+ # Qwen3-Coder-Next-REAP-AWQ
27
+
28
+ **Expert-pruned and AWQ-quantized Qwen3-Coder-Next.** 20% of MoE experts removed via REAP saliency analysis across diverse calibration data, then quantized to W4A16. The result is a model that runs ~7-12% faster at the token level, uses significantly less VRAM, and frees up memory for larger KV caches and higher concurrency -- at the cost of occasional quality regressions on certain tasks.
29
+
30
+ > **Status:** Research / Experimental. This model produces usable output across code, math, reasoning, and general tasks, but **some outputs may be less polished than the unpruned baseline** -- particularly around structured output formatting and multi-step logic chains. It works. It's faster. It's not perfect. See [Limitations](#limitations) for specifics.
31
+
32
+ ## Why This Exists
33
+
34
+ Qwen3-Coder-Next is a large Mixture-of-Experts model with **512 experts per layer**, but only **10 are active per token**. That means ~98% of expert parameters sit idle for any given input. This creates an opportunity: measure which experts matter least across a diverse workload and remove them.
35
+
36
+ Fewer experts means:
37
+ - **Smaller model** (~32 GB vs ~37 GB for unpruned AWQ) -- 5 GB freed for KV cache
38
+ - **Faster inference** -- less memory bandwidth pressure, fewer expert weights to page
39
+ - **Higher concurrency** -- more VRAM headroom for batched requests
40
+
41
+ The trade-off is a small quality hit on some tasks, which we document below.
42
+
43
+ ## Model Details
44
+
45
+ | Property | Value |
46
+ |----------|-------|
47
+ | Base Model | [Qwen/Qwen3-Coder-Next](https://huggingface.co/Qwen/Qwen3-Coder-Next) (BF16, 149 GB) |
48
+ | Architecture | `Qwen3NextForCausalLM` (MoE + Gated DeltaNet hybrid attention) |
49
+ | Layers | 48 (36 linear attention + 12 full attention) |
50
+ | Original Experts | 512 per layer, 10 active per token |
51
+ | After Pruning | **410 per layer** (20% removed via REAP) |
52
+ | Quantization | AWQ W4A16, symmetric, group_size=128 |
53
+ | Format | `compressed-tensors` (compatible with vLLM, transformers) |
54
+ | Context Length | 262,144 tokens |
55
+ | Size on Disk | ~32 GB (7 shards) |
56
+
57
+ ## Evaluation Results
58
+
59
+ Evaluated on a custom benchmark suite covering code generation, reasoning, tool use, math, general knowledge, and writing. Each test is pass/fail with latency metrics.
60
+
61
+ ### REAP-AWQ (This Model, 410 experts)
62
+
63
+ | Run | Categories | Pass Rate | Avg tok/s | Notes |
64
+ |-----|-----------|-----------|-----------|-------|
65
+ | Run 1 | code, reasoning, scaffold, chat | **13/17 (76%)** | **141.4** | logic_puzzle, instruction_following, JSON formatting failed |
66
+ | Run 2 | code, math, general, writing | **17/17 (100%)** | **136.0** | Clean sweep on expanded test set |
67
+
68
+ ### Baseline (Unpruned AWQ, 512 experts)
69
+
70
+ | Run | Categories | Pass Rate | Avg tok/s | Notes |
71
+ |-----|-----------|-----------|-----------|-------|
72
+ | Run 1 | code, reasoning, scaffold, chat | 13/17 (76%) | 126.3 | Tool calling failed (vLLM config issue) |
73
+ | Run 2 | code, reasoning, scaffold, chat | 16/17 (94%) | 132.0 | Stable after vLLM restart |
74
+
75
+ ### Speed Comparison
76
+
77
+ Across comparable test categories, the REAP model is consistently faster:
78
+
79
+ | Category | Baseline (tok/s) | REAP (tok/s) | Speedup |
80
+ |----------|-----------------|--------------|---------|
81
+ | Code | 126.2 | 135.1 | +7.1% |
82
+ | Reasoning | 131.5 | 140.9 | +7.2% |
83
+ | Scaffold / Tool Use | 142.3 | 152.1 | +6.9% |
84
+ | Chat | 128.7 | 138.2 | +7.4% |
85
+
86
+ These numbers reflect single-request latency. In practice, the VRAM savings compound at higher concurrency -- the freed memory supports larger batch sizes and longer contexts, where we've observed up to **~14% effective throughput gains** in multi-request serving scenarios.
87
+
88
+ ## How It Was Made
89
+
90
+ ### The REAP Pipeline
91
+
92
+ **REAP** (Robust Expert Architecture Pruning) scores each expert by combining activation frequency with contribution magnitude:
93
+
94
+ ```
95
+ REAP(expert) = sum(activation_norm * router_weight) / total_tokens
96
+ ```
97
+
98
+ Experts that rarely fire *and* contribute little when they do get the lowest scores and are pruned first.
99
+
100
+ ### Diverse Calibration
101
+
102
+ A code model uses different experts for different tasks. Pruning based on code-only data risks removing experts critical for reasoning, creative writing, or math. We calibrated across 4 datasets:
103
+
104
+ | Dataset | Domain | Purpose |
105
+ |---------|--------|---------|
106
+ | `evol-codealpaca-v1` | Code | Core competency |
107
+ | `allenai/c4` | Web text | General language |
108
+ | `WritingPrompts_curated` | Creative writing | Long-form generation |
109
+ | `tulu-3-sft-personas-math` | Math | Reasoning chains |
110
+
111
+ 256 samples per dataset, merged by summing accumulator metrics before computing derived scores.
112
+
113
+ ### Super-Expert Preservation
114
+
115
+ Some experts have extremely high peak activations -- they fire rarely but are critical when they do (e.g., handling rare syntax patterns or domain-specific tokens). These "super-experts" are protected from pruning regardless of their average REAP score, preventing catastrophic failures on rare inputs.
116
+
117
+ ### Quantization
118
+
119
+ After pruning, the remaining 410 experts are quantized using AWQ:
120
+
121
+ - **Scheme:** W4A16, symmetric, group_size=128
122
+ - **Calibration:** 256 samples from `evol-codealpaca-v1`
123
+ - **Format:** `compressed-tensors` via `llmcompressor`
124
+
125
+ **Layers kept at full precision** (these are sensitive to quantization):
126
+ - MoE router gates (`mlp.gate`, `mlp.shared_expert_gate`)
127
+ - Gated DeltaNet internals (`linear_attn.conv1d`, `in_proj_a`, `in_proj_b`)
128
+ - Output head (`lm_head`)
129
+
130
+ ### Memory-Managed Execution
131
+
132
+ The full pipeline ran on **4x RTX 3090 (96 GB VRAM)** with **128 GB system RAM**. The 149 GB BF16 model doesn't fit in GPU memory, so each phase runs as a separate OS process with CPU offload:
133
+
134
+ 1. **Observe** (4 runs, one per dataset) -- hooks accumulate statistics to CPU RAM
135
+ 2. **Merge** -- CPU-only, combines observations
136
+ 3. **Prune** -- fresh model load, in-place expert removal
137
+ 4. **AWQ** -- `max_memory` caps at 20 GiB/GPU with 100 GiB CPU overflow
138
+
139
+ Process isolation guarantees clean GPU state between phases.
140
+
141
+ ## Limitations
142
+
143
+ This is an experimental research model. Known issues:
144
+
145
+ - **Self-correction loops:** On some prompts, the model second-guesses itself more than the baseline ("Wait -- let me re-check..."), producing verbose but ultimately correct answers. This appears to be an artifact of the pruning affecting confidence calibration.
146
+ - **Structured output:** Occasional JSON formatting errors (e.g., missing closing brackets). The model understands the structure but sometimes truncates. Constrained decoding (e.g., vLLM's `guided_json`) mitigates this.
147
+ - **Logic puzzles:** The model struggles with certain ordering/constraint satisfaction problems that the baseline also finds difficult. Pruning didn't help here.
148
+ - **Instruction following edge cases:** Rarely drops minor formatting instructions (e.g., numbered lists vs. unnumbered). Core instruction comprehension is intact.
149
+
150
+ None of these are showstoppers for most use cases. The model handles code generation, mathematical reasoning, general Q&A, creative writing, and tool calling well.
151
+
152
+ ## Usage
153
+
154
+ ### Serving with vLLM
155
+
156
+ ```bash
157
+ vllm serve mtecnic/Qwen3-Coder-Next-REAP-AWQ \
158
+ --tensor-parallel-size 4 \
159
+ --gpu-memory-utilization 0.93 \
160
+ --trust-remote-code \
161
+ --max-model-len 32768 \
162
+ --max-num-seqs 16
163
+ ```
164
+
165
+ ### Python (Transformers)
166
+
167
+ ```python
168
+ from transformers import AutoModelForCausalLM, AutoTokenizer
169
+
170
+ model = AutoModelForCausalLM.from_pretrained(
171
+ "mtecnic/Qwen3-Coder-Next-REAP-AWQ",
172
+ device_map="auto",
173
+ torch_dtype="auto",
174
+ trust_remote_code=True,
175
+ )
176
+ tokenizer = AutoTokenizer.from_pretrained("mtecnic/Qwen3-Coder-Next-REAP-AWQ")
177
+
178
+ messages = [{"role": "user", "content": "Write a Python function to merge two sorted lists."}]
179
+ inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True)
180
+ outputs = model.generate(inputs.to(model.device), max_new_tokens=512)
181
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True))
182
+ ```
183
+
184
+ ## Pipeline Configuration
185
+
186
+ ```yaml
187
+ # Observation
188
+ samples_per_dataset: 256
189
+ max_sequence_length: 512
190
+ distance_metric: cosine
191
+ datasets:
192
+ - evol-codealpaca-v1
193
+ - c4
194
+ - WritingPrompts_curated
195
+ - tulu-3-sft-personas-math
196
+
197
+ # Pruning
198
+ method: reap
199
+ compression_ratio: 0.20
200
+ preserve_super_experts: true
201
+ seed: 42
202
+
203
+ # Quantization
204
+ method: awq
205
+ scheme: W4A16
206
+ group_size: 128
207
+ calibration_samples: 256
208
+ ```
209
+
210
+ ## Research Context
211
+
212
+ This model is the result of extensive experimentation with MoE expert pruning. Key learnings:
213
+
214
+ - **40% compression was too aggressive** -- an earlier attempt removing 205/512 experts per layer caused noticeable quality degradation across all categories.
215
+ - **20% is the sweet spot for this architecture** -- quality is largely preserved while delivering meaningful speed and memory improvements.
216
+ - **Diverse calibration is essential** -- code-only calibration misidentifies experts that are critical for reasoning and general language tasks.
217
+ - **Super-expert preservation prevents catastrophic edge cases** -- without it, rare but important patterns (unusual syntax, domain-specific tokens) break completely.
218
+ - **The Gated DeltaNet layers are fragile** -- quantizing the linear attention internals (`conv1d`, `in_proj_a/b`) caused significant quality loss. Keeping them at full precision is non-negotiable.
219
+
220
+ ## Hardware Requirements
221
+
222
+ - **Minimum:** 4x 24 GB GPUs (e.g., RTX 3090/4090) with tensor parallelism
223
+ - **Recommended:** 2x 48 GB GPUs (e.g., A6000) or 1x 80 GB GPU (e.g., A100/H100)
224
+ - The ~5 GB VRAM savings vs. unpruned AWQ is most impactful on memory-constrained setups
225
+
226
+ ## Acknowledgments
227
+
228
+ - **[Qwen](https://github.com/QwenLM/Qwen3)** for Qwen3-Coder-Next
229
+ - **[Cerebras](https://www.cerebras.net/)** for the REAP pruning methodology
230
+ - **[MIT HAN Lab](https://github.com/mit-han-lab/llm-awq)** for AWQ
231
+ - **[Neural Magic / vLLM](https://github.com/vllm-project/vllm)** for `llmcompressor` and efficient MoE serving
232
+
233
+ ## License
234
+
235
+ This model inherits the license of the base [Qwen3-Coder-Next](https://huggingface.co/Qwen/Qwen3-Coder-Next) model. See the Qwen license for details.
236
+
237
+ ## Citation
238
+
239
+ ```bibtex
240
+ @misc{wienandt2026reap_awq,
241
+ title={REAP Expert Pruning of Qwen3-Coder-Next: 20\% Expert Reduction with AWQ Quantization},
242
+ author={Nic Wienandt},
243
+ year={2026},
244
+ url={https://huggingface.co/mtecnic/Qwen3-Coder-Next-REAP-AWQ}
245
+ }
246
+ ```
added_tokens.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<think>": 151667,
6
+ "<tool_call>": 151657,
7
+ "<tool_response>": 151665,
8
+ "<|box_end|>": 151649,
9
+ "<|box_start|>": 151648,
10
+ "<|endoftext|>": 151643,
11
+ "<|file_sep|>": 151664,
12
+ "<|fim_middle|>": 151660,
13
+ "<|fim_pad|>": 151662,
14
+ "<|fim_prefix|>": 151659,
15
+ "<|fim_suffix|>": 151661,
16
+ "<|im_end|>": 151645,
17
+ "<|im_start|>": 151644,
18
+ "<|image_pad|>": 151655,
19
+ "<|object_ref_end|>": 151647,
20
+ "<|object_ref_start|>": 151646,
21
+ "<|quad_end|>": 151651,
22
+ "<|quad_start|>": 151650,
23
+ "<|repo_name|>": 151663,
24
+ "<|video_pad|>": 151656,
25
+ "<|vision_end|>": 151653,
26
+ "<|vision_pad|>": 151654,
27
+ "<|vision_start|>": 151652
28
+ }
chat_template.jinja ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% macro render_extra_keys(json_dict, handled_keys) %}
2
+ {%- if json_dict is mapping %}
3
+ {%- for json_key in json_dict if json_key not in handled_keys %}
4
+ {%- if json_dict[json_key] is string %}
5
+ {{-'\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | string) ~ '</' ~ json_key ~ '>' }}
6
+ {%- else %}
7
+ {{- '\n<' ~ json_key ~ '>' ~ (json_dict[json_key] | tojson | safe) ~ '</' ~ json_key ~ '>' }}
8
+ {%- endif %}
9
+ {%- endfor %}
10
+ {%- endif %}
11
+ {%- endmacro %}
12
+
13
+ {%- if messages[0]["role"] == "system" %}
14
+ {%- set system_message = messages[0]["content"] %}
15
+ {%- set loop_messages = messages[1:] %}
16
+ {%- else %}
17
+ {%- set loop_messages = messages %}
18
+ {%- endif %}
19
+
20
+ {%- if not tools is defined %}
21
+ {%- set tools = [] %}
22
+ {%- endif %}
23
+
24
+ {%- if system_message is defined %}
25
+ {{- "<|im_start|>system\n" + system_message }}
26
+ {%- else %}
27
+ {%- if tools is iterable and tools | length > 0 %}
28
+ {{- "<|im_start|>system\nYou are Qwen, a helpful AI assistant that can interact with a computer to solve tasks." }}
29
+ {%- endif %}
30
+ {%- endif %}
31
+ {%- if tools is iterable and tools | length > 0 %}
32
+ {{- "\n\n# Tools\n\nYou have access to the following functions:\n\n" }}
33
+ {{- "<tools>" }}
34
+ {%- for tool in tools %}
35
+ {%- if tool.function is defined %}
36
+ {%- set tool = tool.function %}
37
+ {%- endif %}
38
+ {{- "\n<function>\n<name>" ~ tool.name ~ "</name>" }}
39
+ {%- if tool.description is defined %}
40
+ {{- '\n<description>' ~ (tool.description | trim) ~ '</description>' }}
41
+ {%- endif %}
42
+ {{- '\n<parameters>' }}
43
+ {%- if tool.parameters is defined and tool.parameters is mapping and tool.parameters.properties is defined and tool.parameters.properties is mapping %}
44
+ {%- for param_name, param_fields in tool.parameters.properties|items %}
45
+ {{- '\n<parameter>' }}
46
+ {{- '\n<name>' ~ param_name ~ '</name>' }}
47
+ {%- if param_fields.type is defined %}
48
+ {{- '\n<type>' ~ (param_fields.type | string) ~ '</type>' }}
49
+ {%- endif %}
50
+ {%- if param_fields.description is defined %}
51
+ {{- '\n<description>' ~ (param_fields.description | trim) ~ '</description>' }}
52
+ {%- endif %}
53
+ {%- set handled_keys = ['name', 'type', 'description'] %}
54
+ {{- render_extra_keys(param_fields, handled_keys) }}
55
+ {{- '\n</parameter>' }}
56
+ {%- endfor %}
57
+ {%- endif %}
58
+ {%- set handled_keys = ['type', 'properties'] %}
59
+ {{- render_extra_keys(tool.parameters, handled_keys) }}
60
+ {{- '\n</parameters>' }}
61
+ {%- set handled_keys = ['type', 'name', 'description', 'parameters'] %}
62
+ {{- render_extra_keys(tool, handled_keys) }}
63
+ {{- '\n</function>' }}
64
+ {%- endfor %}
65
+ {{- "\n</tools>" }}
66
+ {{- '\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>' }}
67
+ {%- endif %}
68
+ {%- if system_message is defined %}
69
+ {{- '<|im_end|>\n' }}
70
+ {%- else %}
71
+ {%- if tools is iterable and tools | length > 0 %}
72
+ {{- '<|im_end|>\n' }}
73
+ {%- endif %}
74
+ {%- endif %}
75
+ {%- for message in loop_messages %}
76
+ {%- if message.role == "assistant" and message.tool_calls is defined and message.tool_calls is iterable and message.tool_calls | length > 0 %}
77
+ {{- '<|im_start|>' + message.role }}
78
+ {%- if message.content is defined and message.content is string and message.content | trim | length > 0 %}
79
+ {{- '\n' + message.content | trim + '\n' }}
80
+ {%- endif %}
81
+ {%- for tool_call in message.tool_calls %}
82
+ {%- if tool_call.function is defined %}
83
+ {%- set tool_call = tool_call.function %}
84
+ {%- endif %}
85
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
86
+ {%- if tool_call.arguments is defined %}
87
+ {%- for args_name, args_value in tool_call.arguments|items %}
88
+ {{- '<parameter=' + args_name + '>\n' }}
89
+ {%- set args_value = args_value if args_value is string else args_value | tojson | safe %}
90
+ {{- args_value }}
91
+ {{- '\n</parameter>\n' }}
92
+ {%- endfor %}
93
+ {%- endif %}
94
+ {{- '</function>\n</tool_call>' }}
95
+ {%- endfor %}
96
+ {{- '<|im_end|>\n' }}
97
+ {%- elif message.role == "user" or message.role == "system" or message.role == "assistant" %}
98
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
99
+ {%- elif message.role == "tool" %}
100
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
101
+ {{- '<|im_start|>user' }}
102
+ {%- endif %}
103
+ {{- '\n<tool_response>\n' }}
104
+ {{- message.content }}
105
+ {{- '\n</tool_response>' }}
106
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
107
+ {{- '<|im_end|>\n' }}
108
+ {%- elif loop.last %}
109
+ {{- '<|im_end|>\n' }}
110
+ {%- endif %}
111
+ {%- else %}
112
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>\n' }}
113
+ {%- endif %}
114
+ {%- endfor %}
115
+ {%- if add_generation_prompt %}
116
+ {{- '<|im_start|>assistant\n' }}
117
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3NextForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0,
7
+ "bos_token_id": 151643,
8
+ "decoder_sparse_step": 1,
9
+ "dtype": "bfloat16",
10
+ "eos_token_id": 151645,
11
+ "full_attention_interval": 4,
12
+ "head_dim": 256,
13
+ "hidden_act": "silu",
14
+ "hidden_size": 2048,
15
+ "initializer_range": 0.02,
16
+ "intermediate_size": 5120,
17
+ "layer_types": [
18
+ "linear_attention",
19
+ "linear_attention",
20
+ "linear_attention",
21
+ "full_attention",
22
+ "linear_attention",
23
+ "linear_attention",
24
+ "linear_attention",
25
+ "full_attention",
26
+ "linear_attention",
27
+ "linear_attention",
28
+ "linear_attention",
29
+ "full_attention",
30
+ "linear_attention",
31
+ "linear_attention",
32
+ "linear_attention",
33
+ "full_attention",
34
+ "linear_attention",
35
+ "linear_attention",
36
+ "linear_attention",
37
+ "full_attention",
38
+ "linear_attention",
39
+ "linear_attention",
40
+ "linear_attention",
41
+ "full_attention",
42
+ "linear_attention",
43
+ "linear_attention",
44
+ "linear_attention",
45
+ "full_attention",
46
+ "linear_attention",
47
+ "linear_attention",
48
+ "linear_attention",
49
+ "full_attention",
50
+ "linear_attention",
51
+ "linear_attention",
52
+ "linear_attention",
53
+ "full_attention",
54
+ "linear_attention",
55
+ "linear_attention",
56
+ "linear_attention",
57
+ "full_attention",
58
+ "linear_attention",
59
+ "linear_attention",
60
+ "linear_attention",
61
+ "full_attention",
62
+ "linear_attention",
63
+ "linear_attention",
64
+ "linear_attention",
65
+ "full_attention"
66
+ ],
67
+ "linear_conv_kernel_dim": 4,
68
+ "linear_key_head_dim": 128,
69
+ "linear_num_key_heads": 16,
70
+ "linear_num_value_heads": 32,
71
+ "linear_value_head_dim": 128,
72
+ "max_position_embeddings": 262144,
73
+ "mlp_only_layers": [],
74
+ "model_type": "qwen3_next",
75
+ "moe_intermediate_size": 512,
76
+ "norm_topk_prob": true,
77
+ "num_attention_heads": 16,
78
+ "num_experts": 410,
79
+ "num_experts_per_tok": 10,
80
+ "num_hidden_layers": 48,
81
+ "num_key_value_heads": 2,
82
+ "output_router_logits": false,
83
+ "partial_rotary_factor": 0.25,
84
+ "quantization_config": {
85
+ "config_groups": {
86
+ "group_0": {
87
+ "format": "pack-quantized",
88
+ "input_activations": null,
89
+ "output_activations": null,
90
+ "targets": [
91
+ "Linear"
92
+ ],
93
+ "weights": {
94
+ "actorder": null,
95
+ "block_structure": null,
96
+ "dynamic": false,
97
+ "group_size": 128,
98
+ "num_bits": 4,
99
+ "observer": "memoryless_minmax",
100
+ "observer_kwargs": {},
101
+ "scale_dtype": null,
102
+ "strategy": "group",
103
+ "symmetric": true,
104
+ "type": "int",
105
+ "zp_dtype": null
106
+ }
107
+ }
108
+ },
109
+ "format": "pack-quantized",
110
+ "global_compression_ratio": null,
111
+ "ignore": [
112
+ "model.layers.0.linear_attn.in_proj_ba",
113
+ "model.layers.0.mlp.gate",
114
+ "model.layers.0.mlp.shared_expert_gate",
115
+ "model.layers.1.linear_attn.in_proj_ba",
116
+ "model.layers.1.mlp.gate",
117
+ "model.layers.1.mlp.shared_expert_gate",
118
+ "model.layers.2.linear_attn.in_proj_ba",
119
+ "model.layers.2.mlp.gate",
120
+ "model.layers.2.mlp.shared_expert_gate",
121
+ "model.layers.3.mlp.gate",
122
+ "model.layers.3.mlp.shared_expert_gate",
123
+ "model.layers.4.linear_attn.in_proj_ba",
124
+ "model.layers.4.mlp.gate",
125
+ "model.layers.4.mlp.shared_expert_gate",
126
+ "model.layers.5.linear_attn.in_proj_ba",
127
+ "model.layers.5.mlp.gate",
128
+ "model.layers.5.mlp.shared_expert_gate",
129
+ "model.layers.6.linear_attn.in_proj_ba",
130
+ "model.layers.6.mlp.gate",
131
+ "model.layers.6.mlp.shared_expert_gate",
132
+ "model.layers.7.mlp.gate",
133
+ "model.layers.7.mlp.shared_expert_gate",
134
+ "model.layers.8.linear_attn.in_proj_ba",
135
+ "model.layers.8.mlp.gate",
136
+ "model.layers.8.mlp.shared_expert_gate",
137
+ "model.layers.9.linear_attn.in_proj_ba",
138
+ "model.layers.9.mlp.gate",
139
+ "model.layers.9.mlp.shared_expert_gate",
140
+ "model.layers.10.linear_attn.in_proj_ba",
141
+ "model.layers.10.mlp.gate",
142
+ "model.layers.10.mlp.shared_expert_gate",
143
+ "model.layers.11.mlp.gate",
144
+ "model.layers.11.mlp.shared_expert_gate",
145
+ "model.layers.12.linear_attn.in_proj_ba",
146
+ "model.layers.12.mlp.gate",
147
+ "model.layers.12.mlp.shared_expert_gate",
148
+ "model.layers.13.linear_attn.in_proj_ba",
149
+ "model.layers.13.mlp.gate",
150
+ "model.layers.13.mlp.shared_expert_gate",
151
+ "model.layers.14.linear_attn.in_proj_ba",
152
+ "model.layers.14.mlp.gate",
153
+ "model.layers.14.mlp.shared_expert_gate",
154
+ "model.layers.15.mlp.gate",
155
+ "model.layers.15.mlp.shared_expert_gate",
156
+ "model.layers.16.linear_attn.in_proj_ba",
157
+ "model.layers.16.mlp.gate",
158
+ "model.layers.16.mlp.shared_expert_gate",
159
+ "model.layers.17.linear_attn.in_proj_ba",
160
+ "model.layers.17.mlp.gate",
161
+ "model.layers.17.mlp.shared_expert_gate",
162
+ "model.layers.18.linear_attn.in_proj_ba",
163
+ "model.layers.18.mlp.gate",
164
+ "model.layers.18.mlp.shared_expert_gate",
165
+ "model.layers.19.mlp.gate",
166
+ "model.layers.19.mlp.shared_expert_gate",
167
+ "model.layers.20.linear_attn.in_proj_ba",
168
+ "model.layers.20.mlp.gate",
169
+ "model.layers.20.mlp.shared_expert_gate",
170
+ "model.layers.21.linear_attn.in_proj_ba",
171
+ "model.layers.21.mlp.gate",
172
+ "model.layers.21.mlp.shared_expert_gate",
173
+ "model.layers.22.linear_attn.in_proj_ba",
174
+ "model.layers.22.mlp.gate",
175
+ "model.layers.22.mlp.shared_expert_gate",
176
+ "model.layers.23.mlp.gate",
177
+ "model.layers.23.mlp.shared_expert_gate",
178
+ "model.layers.24.linear_attn.in_proj_ba",
179
+ "model.layers.24.mlp.gate",
180
+ "model.layers.24.mlp.shared_expert_gate",
181
+ "model.layers.25.linear_attn.in_proj_ba",
182
+ "model.layers.25.mlp.gate",
183
+ "model.layers.25.mlp.shared_expert_gate",
184
+ "model.layers.26.linear_attn.in_proj_ba",
185
+ "model.layers.26.mlp.gate",
186
+ "model.layers.26.mlp.shared_expert_gate",
187
+ "model.layers.27.mlp.gate",
188
+ "model.layers.27.mlp.shared_expert_gate",
189
+ "model.layers.28.linear_attn.in_proj_ba",
190
+ "model.layers.28.mlp.gate",
191
+ "model.layers.28.mlp.shared_expert_gate",
192
+ "model.layers.29.linear_attn.in_proj_ba",
193
+ "model.layers.29.mlp.gate",
194
+ "model.layers.29.mlp.shared_expert_gate",
195
+ "model.layers.30.linear_attn.in_proj_ba",
196
+ "model.layers.30.mlp.gate",
197
+ "model.layers.30.mlp.shared_expert_gate",
198
+ "model.layers.31.mlp.gate",
199
+ "model.layers.31.mlp.shared_expert_gate",
200
+ "model.layers.32.linear_attn.in_proj_ba",
201
+ "model.layers.32.mlp.gate",
202
+ "model.layers.32.mlp.shared_expert_gate",
203
+ "model.layers.33.linear_attn.in_proj_ba",
204
+ "model.layers.33.mlp.gate",
205
+ "model.layers.33.mlp.shared_expert_gate",
206
+ "model.layers.34.linear_attn.in_proj_ba",
207
+ "model.layers.34.mlp.gate",
208
+ "model.layers.34.mlp.shared_expert_gate",
209
+ "model.layers.35.mlp.gate",
210
+ "model.layers.35.mlp.shared_expert_gate",
211
+ "model.layers.36.linear_attn.in_proj_ba",
212
+ "model.layers.36.mlp.gate",
213
+ "model.layers.36.mlp.shared_expert_gate",
214
+ "model.layers.37.linear_attn.in_proj_ba",
215
+ "model.layers.37.mlp.gate",
216
+ "model.layers.37.mlp.shared_expert_gate",
217
+ "model.layers.38.linear_attn.in_proj_ba",
218
+ "model.layers.38.mlp.gate",
219
+ "model.layers.38.mlp.shared_expert_gate",
220
+ "model.layers.39.mlp.gate",
221
+ "model.layers.39.mlp.shared_expert_gate",
222
+ "model.layers.40.linear_attn.in_proj_ba",
223
+ "model.layers.40.mlp.gate",
224
+ "model.layers.40.mlp.shared_expert_gate",
225
+ "model.layers.41.linear_attn.in_proj_ba",
226
+ "model.layers.41.mlp.gate",
227
+ "model.layers.41.mlp.shared_expert_gate",
228
+ "model.layers.42.linear_attn.in_proj_ba",
229
+ "model.layers.42.mlp.gate",
230
+ "model.layers.42.mlp.shared_expert_gate",
231
+ "model.layers.43.mlp.gate",
232
+ "model.layers.43.mlp.shared_expert_gate",
233
+ "model.layers.44.linear_attn.in_proj_ba",
234
+ "model.layers.44.mlp.gate",
235
+ "model.layers.44.mlp.shared_expert_gate",
236
+ "model.layers.45.linear_attn.in_proj_ba",
237
+ "model.layers.45.mlp.gate",
238
+ "model.layers.45.mlp.shared_expert_gate",
239
+ "model.layers.46.linear_attn.in_proj_ba",
240
+ "model.layers.46.mlp.gate",
241
+ "model.layers.46.mlp.shared_expert_gate",
242
+ "model.layers.47.mlp.gate",
243
+ "model.layers.47.mlp.shared_expert_gate",
244
+ "lm_head"
245
+ ],
246
+ "kv_cache_scheme": null,
247
+ "quant_method": "compressed-tensors",
248
+ "quantization_status": "compressed",
249
+ "sparsity_config": {},
250
+ "transform_config": {},
251
+ "version": "0.14.0.1"
252
+ },
253
+ "rms_norm_eps": 1e-06,
254
+ "rope_scaling": null,
255
+ "rope_theta": 5000000,
256
+ "router_aux_loss_coef": 0.001,
257
+ "shared_expert_intermediate_size": 512,
258
+ "tie_word_embeddings": false,
259
+ "transformers_version": "4.57.6",
260
+ "use_cache": true,
261
+ "use_sliding_window": false,
262
+ "vocab_size": 151936
263
+ }
generation_config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 151645,
6
+ 151643
7
+ ],
8
+ "pad_token_id": 151643,
9
+ "top_k": 40,
10
+ "top_p": 0.95,
11
+ "transformers_version": "4.57.6"
12
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model-00001-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e34527f9cfa9c35c9083c12970846cbc9a919166cd514bcb318339809c8f81e1
3
+ size 5002386192
model-00002-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d4dcc33b3937160192dcd07cc039b2f98688649f27935442ab1801bb41d1e43
3
+ size 5003059104
model-00003-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:16289bb7df9f0a51c682bc42b9b5ee07f70f6b2554ce4c2d616648133965daea
3
+ size 5003072496
model-00004-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b0139c08fbf518e4411d8bbba2212ef82a75a4c98d3f4fb6c2d21ac61aa24601
3
+ size 5002916392
model-00005-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fbce2d8dedabb9ebd49b50f6d2ba6b34cbb92e4026ca90bf402e3f00723cc937
3
+ size 5003072496
model-00006-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f933c34a5ca3d1bc63f0a1e20223e4676620682e23947e1a97f82b256fb02ae5
3
+ size 5002855832
model-00007-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:da0396047aaf341e74fa8ef38e7222a5b6b55920054e58b0e1c337d6c6e72bbd
3
+ size 4134020960
model.safetensors.index.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:316d1987a03d301b137bd4af98357ae5aa2824621a2a9d35fad3814aaa7796e2
3
+ size 17323902
recipe.yaml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ default_stage:
2
+ default_modifiers:
3
+ AWQModifier:
4
+ targets: [Linear]
5
+ ignore: [lm_head, 're:.*mlp.gate$', 're:.*mlp.shared_expert_gate$', 're:.*linear_attn[.]conv1d',
6
+ 're:.*linear_attn[.]in_proj_a', 're:.*linear_attn[.]in_proj_b']
7
+ scheme: W4A16
8
+ bypass_divisibility_checks: false
9
+ mappings:
10
+ - smooth_layer: re:.*layers\.(3|7|11|15|19|23|27|31|35|39|43|47)\.input_layernorm$
11
+ balance_layers: ['re:.*self_attn.q_proj$', 're:.*self_attn.k_proj$', 're:.*self_attn.v_proj$']
12
+ activation_hook_target: null
13
+ - smooth_layer: re:.*self_attn.v_proj$
14
+ balance_layers: ['re:.*self_attn.o_proj$']
15
+ activation_hook_target: null
16
+ - smooth_layer: re:.*layers\.(0|1|2|4|5|6|8|9|10|12|13|14|16|17|18|20|21|22|24|25|26|28|29|30|32|33|34|36|37|38|40|41|42|44|45|46)\.input_layernorm$
17
+ balance_layers: ['re:.*linear_attn.in_proj_qkvz$', 're:.*linear_attn.in_proj_ba$']
18
+ activation_hook_target: null
19
+ - smooth_layer: re:.*post_attention_layernorm$
20
+ balance_layers: ['re:.*mlp.experts.*.gate_proj$', 're:.*mlp.experts.*.up_proj$', 're:.*mlp.shared_expert.gate_proj$',
21
+ 're:.*mlp.shared_expert.up_proj$']
22
+ activation_hook_target: null
23
+ - smooth_layer: re:.*up_proj$
24
+ balance_layers: ['re:.*down_proj$']
25
+ activation_hook_target: null
26
+ offload_device: !!python/object/apply:torch.device [cpu]
27
+ duo_scaling: false
28
+ n_grid: 12
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": "<|im_end|>",
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:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
3
+ size 11422654
tokenizer_config.json ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ }
213
+ },
214
+ "additional_special_tokens": [
215
+ "<|im_start|>",
216
+ "<|im_end|>",
217
+ "<|object_ref_start|>",
218
+ "<|object_ref_end|>",
219
+ "<|box_start|>",
220
+ "<|box_end|>",
221
+ "<|quad_start|>",
222
+ "<|quad_end|>",
223
+ "<|vision_start|>",
224
+ "<|vision_end|>",
225
+ "<|vision_pad|>",
226
+ "<|image_pad|>",
227
+ "<|video_pad|>"
228
+ ],
229
+ "bos_token": null,
230
+ "clean_up_tokenization_spaces": false,
231
+ "eos_token": "<|im_end|>",
232
+ "errors": "replace",
233
+ "extra_special_tokens": {},
234
+ "model_max_length": 1048576,
235
+ "pad_token": "<|endoftext|>",
236
+ "split_special_tokens": false,
237
+ "tokenizer_class": "Qwen2Tokenizer",
238
+ "unk_token": null
239
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff