FastFlowLM commited on
Commit
381ae07
·
verified ·
1 Parent(s): 11dfd1a

Init upload

Browse files
Files changed (11) hide show
  1. .gitattributes +7 -0
  2. README.md +211 -3
  3. attn.xclbin +3 -0
  4. config.json +34 -0
  5. dequant.xclbin +3 -0
  6. layer.xclbin +3 -0
  7. lm_head.xclbin +3 -0
  8. mm.xclbin +3 -0
  9. model.q4nx +3 -0
  10. tokenizer.json +3 -0
  11. tokenizer_config.json +242 -0
.gitattributes CHANGED
@@ -33,3 +33,10 @@ 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
+ attn.xclbin filter=lfs diff=lfs merge=lfs -text
37
+ dequant.xclbin filter=lfs diff=lfs merge=lfs -text
38
+ layer.xclbin filter=lfs diff=lfs merge=lfs -text
39
+ lm_head.xclbin filter=lfs diff=lfs merge=lfs -text
40
+ mm.xclbin filter=lfs diff=lfs merge=lfs -text
41
+ model.q4nx filter=lfs diff=lfs merge=lfs -text
42
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,211 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ license: apache-2.0
4
+ license_link: https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507/blob/main/LICENSE
5
+ pipeline_tag: text-generation
6
+ ---
7
+
8
+ # Qwen3-4B-Instruct-2507
9
+ <a href="https://chat.qwen.ai" target="_blank" style="margin: 2px;">
10
+ <img alt="Chat" src="https://img.shields.io/badge/%F0%9F%92%9C%EF%B8%8F%20Qwen%20Chat%20-536af5" style="display: inline-block; vertical-align: middle;"/>
11
+ </a>
12
+
13
+ ## Highlights
14
+
15
+ We introduce the updated version of the **Qwen3-4B non-thinking mode**, named **Qwen3-4B-Instruct-2507**, featuring the following key enhancements:
16
+
17
+ - **Significant improvements** in general capabilities, including **instruction following, logical reasoning, text comprehension, mathematics, science, coding and tool usage**.
18
+ - **Substantial gains** in long-tail knowledge coverage across **multiple languages**.
19
+ - **Markedly better alignment** with user preferences in **subjective and open-ended tasks**, enabling more helpful responses and higher-quality text generation.
20
+ - **Enhanced capabilities** in **256K long-context understanding**.
21
+
22
+ ![image/jpeg](https://qianwen-res.oss-accelerate.aliyuncs.com/Qwen3-2507/Qwen3-4B-Instruct.001.jpeg)
23
+
24
+ ## Model Overview
25
+
26
+ **Qwen3-4B-Instruct-2507** has the following features:
27
+ - Type: Causal Language Models
28
+ - Training Stage: Pretraining & Post-training
29
+ - Number of Parameters: 4.0B
30
+ - Number of Paramaters (Non-Embedding): 3.6B
31
+ - Number of Layers: 36
32
+ - Number of Attention Heads (GQA): 32 for Q and 8 for KV
33
+ - Context Length: **262,144 natively**.
34
+
35
+ **NOTE: This model supports only non-thinking mode and does not generate ``<think></think>`` blocks in its output. Meanwhile, specifying `enable_thinking=False` is no longer required.**
36
+
37
+ For more details, including benchmark evaluation, hardware requirements, and inference performance, please refer to our [blog](https://qwenlm.github.io/blog/qwen3/), [GitHub](https://github.com/QwenLM/Qwen3), and [Documentation](https://qwen.readthedocs.io/en/latest/).
38
+
39
+
40
+ ## Performance
41
+
42
+ | | GPT-4.1-nano-2025-04-14 | Qwen3-30B-A3B Non-Thinking | Qwen3-4B Non-Thinking | Qwen3-4B-Instruct-2507 |
43
+ |--- | --- | --- | --- | --- |
44
+ | **Knowledge** | | | |
45
+ | MMLU-Pro | 62.8 | 69.1 | 58.0 | **69.6** |
46
+ | MMLU-Redux | 80.2 | 84.1 | 77.3 | **84.2** |
47
+ | GPQA | 50.3 | 54.8 | 41.7 | **62.0** |
48
+ | SuperGPQA | 32.2 | 42.2 | 32.0 | **42.8** |
49
+ | **Reasoning** | | | |
50
+ | AIME25 | 22.7 | 21.6 | 19.1 | **47.4** |
51
+ | HMMT25 | 9.7 | 12.0 | 12.1 | **31.0** |
52
+ | ZebraLogic | 14.8 | 33.2 | 35.2 | **80.2** |
53
+ | LiveBench 20241125 | 41.5 | 59.4 | 48.4 | **63.0** |
54
+ | **Coding** | | | |
55
+ | LiveCodeBench v6 (25.02-25.05) | 31.5 | 29.0 | 26.4 | **35.1** |
56
+ | MultiPL-E | 76.3 | 74.6 | 66.6 | **76.8** |
57
+ | Aider-Polyglot | 9.8 | **24.4** | 13.8 | 12.9 |
58
+ | **Alignment** | | | |
59
+ | IFEval | 74.5 | **83.7** | 81.2 | 83.4 |
60
+ | Arena-Hard v2* | 15.9 | 24.8 | 9.5 | **43.4** |
61
+ | Creative Writing v3 | 72.7 | 68.1 | 53.6 | **83.5** |
62
+ | WritingBench | 66.9 | 72.2 | 68.5 | **83.4** |
63
+ | **Agent** | | | |
64
+ | BFCL-v3 | 53.0 | 58.6 | 57.6 | **61.9** |
65
+ | TAU1-Retail | 23.5 | 38.3 | 24.3 | **48.7** |
66
+ | TAU1-Airline | 14.0 | 18.0 | 16.0 | **32.0** |
67
+ | TAU2-Retail | - | 31.6 | 28.1 | **40.4** |
68
+ | TAU2-Airline | - | 18.0 | 12.0 | **24.0** |
69
+ | TAU2-Telecom | - | **18.4** | 17.5 | 13.2 |
70
+ | **Multilingualism** | | | |
71
+ | MultiIF | 60.7 | **70.8** | 61.3 | 69.0 |
72
+ | MMLU-ProX | 56.2 | **65.1** | 49.6 | 61.6 |
73
+ | INCLUDE | 58.6 | **67.8** | 53.8 | 60.1 |
74
+ | PolyMATH | 15.6 | 23.3 | 16.6 | **31.1** |
75
+
76
+ *: For reproducibility, we report the win rates evaluated by GPT-4.1.
77
+
78
+
79
+ ## Quickstart
80
+
81
+ The code of Qwen3 has been in the latest Hugging Face `transformers` and we advise you to use the latest version of `transformers`.
82
+
83
+ With `transformers<4.51.0`, you will encounter the following error:
84
+ ```
85
+ KeyError: 'qwen3'
86
+ ```
87
+
88
+ The following contains a code snippet illustrating how to use the model generate content based on given inputs.
89
+ ```python
90
+ from transformers import AutoModelForCausalLM, AutoTokenizer
91
+
92
+ model_name = "Qwen/Qwen3-4B-Instruct-2507"
93
+
94
+ # load the tokenizer and the model
95
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
96
+ model = AutoModelForCausalLM.from_pretrained(
97
+ model_name,
98
+ torch_dtype="auto",
99
+ device_map="auto"
100
+ )
101
+
102
+ # prepare the model input
103
+ prompt = "Give me a short introduction to large language model."
104
+ messages = [
105
+ {"role": "user", "content": prompt}
106
+ ]
107
+ text = tokenizer.apply_chat_template(
108
+ messages,
109
+ tokenize=False,
110
+ add_generation_prompt=True,
111
+ )
112
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
113
+
114
+ # conduct text completion
115
+ generated_ids = model.generate(
116
+ **model_inputs,
117
+ max_new_tokens=16384
118
+ )
119
+ output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
120
+
121
+ content = tokenizer.decode(output_ids, skip_special_tokens=True)
122
+
123
+ print("content:", content)
124
+ ```
125
+
126
+ For deployment, you can use `sglang>=0.4.6.post1` or `vllm>=0.8.5` or to create an OpenAI-compatible API endpoint:
127
+ - SGLang:
128
+ ```shell
129
+ python -m sglang.launch_server --model-path Qwen/Qwen3-4B-Instruct-2507 --context-length 262144
130
+ ```
131
+ - vLLM:
132
+ ```shell
133
+ vllm serve Qwen/Qwen3-4B-Instruct-2507 --max-model-len 262144
134
+ ```
135
+
136
+ **Note: If you encounter out-of-memory (OOM) issues, consider reducing the context length to a shorter value, such as `32,768`.**
137
+
138
+ For local use, applications such as Ollama, LMStudio, MLX-LM, llama.cpp, and KTransformers have also supported Qwen3.
139
+
140
+ ## Agentic Use
141
+
142
+ Qwen3 excels in tool calling capabilities. We recommend using [Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) to make the best use of agentic ability of Qwen3. Qwen-Agent encapsulates tool-calling templates and tool-calling parsers internally, greatly reducing coding complexity.
143
+
144
+ To define the available tools, you can use the MCP configuration file, use the integrated tool of Qwen-Agent, or integrate other tools by yourself.
145
+ ```python
146
+ from qwen_agent.agents import Assistant
147
+
148
+ # Define LLM
149
+ llm_cfg = {
150
+ 'model': 'Qwen3-4B-Instruct-2507',
151
+
152
+ # Use a custom endpoint compatible with OpenAI API:
153
+ 'model_server': 'http://localhost:8000/v1', # api_base
154
+ 'api_key': 'EMPTY',
155
+ }
156
+
157
+ # Define Tools
158
+ tools = [
159
+ {'mcpServers': { # You can specify the MCP configuration file
160
+ 'time': {
161
+ 'command': 'uvx',
162
+ 'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']
163
+ },
164
+ "fetch": {
165
+ "command": "uvx",
166
+ "args": ["mcp-server-fetch"]
167
+ }
168
+ }
169
+ },
170
+ 'code_interpreter', # Built-in tools
171
+ ]
172
+
173
+ # Define Agent
174
+ bot = Assistant(llm=llm_cfg, function_list=tools)
175
+
176
+ # Streaming generation
177
+ messages = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ Introduce the latest developments of Qwen'}]
178
+ for responses in bot.run(messages=messages):
179
+ pass
180
+ print(responses)
181
+ ```
182
+
183
+ ## Best Practices
184
+
185
+ To achieve optimal performance, we recommend the following settings:
186
+
187
+ 1. **Sampling Parameters**:
188
+ - We suggest using `Temperature=0.7`, `TopP=0.8`, `TopK=20`, and `MinP=0`.
189
+ - For supported frameworks, you can adjust the `presence_penalty` parameter between 0 and 2 to reduce endless repetitions. However, using a higher value may occasionally result in language mixing and a slight decrease in model performance.
190
+
191
+ 2. **Adequate Output Length**: We recommend using an output length of 16,384 tokens for most queries, which is adequate for instruct models.
192
+
193
+ 3. **Standardize Output Format**: We recommend using prompts to standardize model outputs when benchmarking.
194
+ - **Math Problems**: Include "Please reason step by step, and put your final answer within \boxed{}." in the prompt.
195
+ - **Multiple-Choice Questions**: Add the following JSON structure to the prompt to standardize responses: "Please show your choice in the `answer` field with only the choice letter, e.g., `"answer": "C"`."
196
+
197
+ ### Citation
198
+
199
+ If you find our work helpful, feel free to give us a cite.
200
+
201
+ ```
202
+ @misc{qwen3technicalreport,
203
+ title={Qwen3 Technical Report},
204
+ author={Qwen Team},
205
+ year={2025},
206
+ eprint={2505.09388},
207
+ archivePrefix={arXiv},
208
+ primaryClass={cs.CL},
209
+ url={https://arxiv.org/abs/2505.09388},
210
+ }
211
+ ```
attn.xclbin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb8e7bef68c19797d9f57c163ba8943fa3bd474af6c9e82c0c4a7554852afd4a
3
+ size 698331
config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "qwen3",
3
+ "vocab_size": 151936,
4
+ "max_position_embeddings": 40960,
5
+ "hidden_size": 2560,
6
+ "intermediate_size": 9728,
7
+ "num_hidden_layers": 36,
8
+ "num_attention_heads": 32,
9
+ "use_sliding_window": false,
10
+ "sliding_window": null,
11
+ "max_window_layers": 36,
12
+ "num_key_value_heads": 8,
13
+ "head_dim": 128,
14
+ "hidden_act": "silu",
15
+ "initializer_range": 0.02,
16
+ "rms_norm_eps": 1e-06,
17
+ "use_cache": true,
18
+ "rope_theta": 1000000,
19
+ "rope_scaling": null,
20
+ "attention_bias": false,
21
+ "attention_dropout": 0.0,
22
+ "architectures": [
23
+ "LlamaForCausalLM"
24
+ ],
25
+ "torch_dtype": "bfloat16",
26
+ "transformers_version": "4.45.0.dev0",
27
+ "use_cache": true,
28
+ "addr_qk": 9216,
29
+ "addr_kv": 34816,
30
+ "addr_l_begin_mha": 54272,
31
+ "addr_l_end_mha": 25600,
32
+ "addr_kk": 45056,
33
+ "flm_version": "0.9.3"
34
+ }
dequant.xclbin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a1be8893482f4d6f3634621e9f1c52355ce082cb768300ead02a54b05026b74c
3
+ size 115179
layer.xclbin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9f6ff116ac1f0dd1f258eb67af5ae45a6f21e11eb6ab6bdd975cafd04127cd2b
3
+ size 302379
lm_head.xclbin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb3d42b4f9c518dd34af7ea473d4ef3a20544155b27b10264af57b5dc66aecb5
3
+ size 153355
mm.xclbin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b1e88cd899e3fbef3b402ecaf2ab644f21cca2ee85dafe6e2521d89222c5a644
3
+ size 347675
model.q4nx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c59e75474f85e7ba43e30bd0e4c40b46d542263255db00166750e0c7ec4a26c2
3
+ size 3292269616
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,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '</think>' in content %}\n {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content.strip('\\n') + '\\n</think>\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}",
231
+ "clean_up_tokenization_spaces": false,
232
+ "eos_token": "<|im_end|>",
233
+ "errors": "replace",
234
+ "model_max_length": 131072,
235
+ "pad_token": "<|endoftext|>",
236
+ "split_special_tokens": false,
237
+ "tokenizer_class": "Qwen2Tokenizer",
238
+ "unk_token": null,
239
+ "eos_token_id": [
240
+ 151645
241
+ ]
242
+ }