Irfanuruchi commited on
Commit
d747c22
·
verified ·
1 Parent(s): 067c141

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
LICENSE ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
README.md ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ base_model: Irfanuruchi/Qwen3-4B-Computer-Science
6
+ library_name: optimum
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - qwen3
10
+ - computer-science
11
+ - software-engineering
12
+ - coding
13
+ - openvino
14
+ - int4
15
+ - cpu
16
+ - optimization
17
+ ---
18
+
19
+ # Qwen3-4B-Computer-Science OpenVINO INT4
20
+
21
+ This repository provides an **OpenVINO INT4** version of **Qwen3-4B-Computer-Science**, optimized for efficient inference on Intel CPUs and other OpenVINO-supported hardware.
22
+
23
+ The model has been exported using **Optimum Intel** with OpenVINO IR format and INT4 weight compression, providing a significantly smaller footprint while maintaining strong performance for software engineering and computer science workloads.
24
+
25
+ ---
26
+
27
+ # Model Information
28
+
29
+ | Property | Value |
30
+ |----------|-------|
31
+ | Base Model | Irfanuruchi/Qwen3-4B-Computer-Science |
32
+ | Architecture | Qwen3 |
33
+ | Parameters | ~4 Billion |
34
+ | Format | OpenVINO IR |
35
+ | Weight Compression | INT4 Asymmetric |
36
+ | Group Size | 128 |
37
+ | Framework | OpenVINO + Optimum Intel |
38
+ | Primary Device | CPU |
39
+ | License | Apache License 2.0 |
40
+
41
+ ---
42
+
43
+ # Features
44
+
45
+ - OpenVINO IR optimized for CPU inference
46
+ - INT4 asymmetric weight compression
47
+ - Reduced storage requirements
48
+ - Lower memory usage
49
+ - Fast local inference
50
+ - Compatible with Hugging Face Transformers through Optimum Intel
51
+ - Includes tokenizer, detokenizer, and chat template
52
+
53
+ ---
54
+
55
+ # Export Configuration
56
+
57
+ The model was exported using:
58
+
59
+ ```bash
60
+ optimum-cli export openvino \
61
+ --model Irfanuruchi/Qwen3-4B-Computer-Science \
62
+ --task text-generation-with-past \
63
+ --weight-format int4 \
64
+ Qwen3-4B-Computer-Science-OpenVINO-INT4
65
+ ```
66
+
67
+ Compression statistics:
68
+
69
+ - **252** transformer layers compressed to **INT4 asymmetric** (group size 128)
70
+ - **1** auxiliary layer stored as **INT8 per-channel**
71
+
72
+ ---
73
+
74
+ # Installation
75
+
76
+ ```bash
77
+ pip install -U openvino optimum-intel transformers
78
+ ```
79
+
80
+ ---
81
+
82
+ # Example Usage
83
+
84
+ ```python
85
+ from transformers import AutoTokenizer
86
+ from optimum.intel.openvino import OVModelForCausalLM
87
+
88
+ model_id = "Irfanuruchi/Qwen3-4B-Computer-Science-OpenVINO-INT4"
89
+
90
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
91
+
92
+ model = OVModelForCausalLM.from_pretrained(
93
+ model_id,
94
+ device="CPU",
95
+ )
96
+
97
+ messages = [
98
+ {
99
+ "role": "system",
100
+ "content": "You are a computer science assistant."
101
+ },
102
+ {
103
+ "role": "user",
104
+ "content": "Explain Floyd's cycle detection algorithm."
105
+ },
106
+ ]
107
+
108
+ prompt = tokenizer.apply_chat_template(
109
+ messages,
110
+ tokenize=False,
111
+ add_generation_prompt=True,
112
+ )
113
+
114
+ inputs = tokenizer(prompt, return_tensors="pt")
115
+
116
+ outputs = model.generate(
117
+ **inputs,
118
+ max_new_tokens=256,
119
+ do_sample=False,
120
+ )
121
+
122
+ response = tokenizer.decode(
123
+ outputs[0][inputs["input_ids"].shape[1]:],
124
+ skip_special_tokens=True,
125
+ )
126
+
127
+ print(response)
128
+ ```
129
+
130
+ ---
131
+
132
+ # Validation
133
+
134
+ The exported model has been successfully validated using:
135
+
136
+ - OpenVINO 2026.2.1
137
+ - CPU inference
138
+ - Chat template support
139
+ - Greedy decoding
140
+ - Software engineering benchmark prompts
141
+
142
+ Validation confirmed successful generation of technically correct programming responses, including algorithm implementation and complexity analysis.
143
+
144
+ ---
145
+
146
+ # Intended Use
147
+
148
+ This model is intended for:
149
+
150
+ - Software engineering assistance
151
+ - Computer science education
152
+ - Code generation
153
+ - Code review
154
+ - Debugging
155
+ - Algorithm design
156
+ - Technical documentation
157
+ - Programming question answering
158
+
159
+ ---
160
+
161
+ # Limitations
162
+
163
+ As with other large language models, outputs should be reviewed before production use. The model may occasionally:
164
+
165
+ - Generate incorrect or incomplete code
166
+ - Hallucinate APIs or implementation details
167
+ - Produce inefficient solutions
168
+ - Misinterpret ambiguous instructions
169
+
170
+ INT4 compression may also introduce minor differences compared to higher-precision variants.
171
+
172
+ ---
173
+
174
+ # License
175
+
176
+ This model is distributed under the **Apache License 2.0**.
177
+
178
+ Please refer to the included **LICENSE** file for the complete license text and attribution requirements.
SHA256SUMS ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
2
+ 0be2cb80c883743c5478083e53a97c3d18e1f9ad91697b32d0213af37f75a3ec README.md
3
+ a55ee1b1660128b7098723e0abcd92caa0788061051c62d51cbe87d9cf1974d8 chat_template.jinja
4
+ 1f19f95e63d7dbd0307cfe4f453cbe443d9f9723a29e1be26fd342cb5db21f1d config.json
5
+ 1aba9f92f54121f603aaf2e56eb07261db91415e6be8e036202e0900f780dfda generation_config.json
6
+ 544e7c199c0ad656a928f54edb4fc11fde37cdd7acc9269e325f3299e3130c5d openvino_config.json
7
+ d73093f72c80ebcaffb76a192727170ecd3c6a06c4df52df0e76b3f70ad9d7f7 openvino_detokenizer.bin
8
+ d280e9242b728a00008f2a3113acfdc7c894f4eef1ab03a8aaf86861cecd3fea openvino_detokenizer.xml
9
+ 5364e5d566a0671e80e9c70cdd2e251ef07e7fbea8c409f05c183340dfbb5349 openvino_model.bin
10
+ e85f260992735a143ab5fd3f99f8c0f498166834701abbebd9867b7ea10af6b2 openvino_model.xml
11
+ 7be6e413f649a4ceb120e86c4b617b0c3cc469140c813152e0f288b010565429 openvino_tokenizer.bin
12
+ dc664b9d7998c87d06b6a4f0f77934035d4dd8b8506288d7113af304393953f1 openvino_tokenizer.xml
13
+ be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506 tokenizer.json
14
+ 81653599761b174770cb06d6b56031a7e1172ce98288a13ffc82b44a1cca3e00 tokenizer_config.json
chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3ForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 151643,
8
+ "dtype": "bfloat16",
9
+ "eos_token_id": 151645,
10
+ "head_dim": 128,
11
+ "hidden_act": "silu",
12
+ "hidden_size": 2560,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 9728,
15
+ "layer_types": [
16
+ "full_attention",
17
+ "full_attention",
18
+ "full_attention",
19
+ "full_attention",
20
+ "full_attention",
21
+ "full_attention",
22
+ "full_attention",
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
+ ],
53
+ "max_position_embeddings": 40960,
54
+ "max_window_layers": 36,
55
+ "model_type": "qwen3",
56
+ "num_attention_heads": 32,
57
+ "num_hidden_layers": 36,
58
+ "num_key_value_heads": 8,
59
+ "pad_token_id": null,
60
+ "rms_norm_eps": 1e-06,
61
+ "rope_parameters": {
62
+ "rope_theta": 1000000,
63
+ "rope_type": "default"
64
+ },
65
+ "sliding_window": null,
66
+ "tie_word_embeddings": true,
67
+ "transformers_version": "5.0.0",
68
+ "use_cache": true,
69
+ "use_sliding_window": false,
70
+ "vocab_size": 151936
71
+ }
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "temperature": 0.6,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.0.0"
13
+ }
openvino_config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dtype": "",
3
+ "input_info": null,
4
+ "optimum_version": "2.2.0",
5
+ "output_attentions": false,
6
+ "quantization_config": {
7
+ "_dataset_kwargs": {},
8
+ "dataset": null,
9
+ "default_config": {
10
+ "quant_method": "default"
11
+ },
12
+ "ignored_scope": null,
13
+ "num_samples": null,
14
+ "processor": null,
15
+ "quantization_configs": {},
16
+ "tokenizer": "Irfanuruchi/Qwen3-4B-Computer-Science"
17
+ },
18
+ "save_onnx_model": false,
19
+ "transformers_version": "5.0.0"
20
+ }
openvino_detokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d73093f72c80ebcaffb76a192727170ecd3c6a06c4df52df0e76b3f70ad9d7f7
3
+ size 2189717
openvino_detokenizer.xml ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="detokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_117722" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="Parameter_117722">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="Convert_117757" type="Convert" version="opset1">
14
+ <data destination_type="i32" />
15
+ <input>
16
+ <port id="0" precision="I64">
17
+ <dim>-1</dim>
18
+ <dim>-1</dim>
19
+ </port>
20
+ </input>
21
+ <output>
22
+ <port id="1" precision="I32">
23
+ <dim>-1</dim>
24
+ <dim>-1</dim>
25
+ </port>
26
+ </output>
27
+ </layer>
28
+ <layer id="2" name="Constant_117724" type="Const" version="opset1">
29
+ <data element_type="i32" shape="151669" offset="0" size="606676" />
30
+ <output>
31
+ <port id="0" precision="I32">
32
+ <dim>151669</dim>
33
+ </port>
34
+ </output>
35
+ </layer>
36
+ <layer id="3" name="Constant_117726" type="Const" version="opset1">
37
+ <data element_type="i32" shape="151669" offset="606676" size="606676" />
38
+ <output>
39
+ <port id="0" precision="I32">
40
+ <dim>151669</dim>
41
+ </port>
42
+ </output>
43
+ </layer>
44
+ <layer id="4" name="Constant_117728" type="Const" version="opset1">
45
+ <data element_type="u8" shape="976309" offset="1213352" size="976309" />
46
+ <output>
47
+ <port id="0" precision="U8">
48
+ <dim>976309</dim>
49
+ </port>
50
+ </output>
51
+ </layer>
52
+ <layer id="5" name="Slice_117733" type="Const" version="opset1">
53
+ <data element_type="i32" shape="14" offset="2189661" size="56" />
54
+ <output>
55
+ <port id="0" precision="I32">
56
+ <dim>14</dim>
57
+ </port>
58
+ </output>
59
+ </layer>
60
+ <layer id="6" name="VocabDecoder_117735" type="VocabDecoder" version="extension">
61
+ <data skip_tokens="" />
62
+ <input>
63
+ <port id="0" precision="I32">
64
+ <dim>-1</dim>
65
+ <dim>-1</dim>
66
+ </port>
67
+ <port id="1" precision="I32">
68
+ <dim>151669</dim>
69
+ </port>
70
+ <port id="2" precision="I32">
71
+ <dim>151669</dim>
72
+ </port>
73
+ <port id="3" precision="U8">
74
+ <dim>976309</dim>
75
+ </port>
76
+ <port id="4" precision="I32">
77
+ <dim>14</dim>
78
+ </port>
79
+ </input>
80
+ <output>
81
+ <port id="5" precision="I32">
82
+ <dim>-1</dim>
83
+ </port>
84
+ <port id="6" precision="I32">
85
+ <dim>-1</dim>
86
+ </port>
87
+ <port id="7" precision="I32">
88
+ <dim>-1</dim>
89
+ </port>
90
+ <port id="8" precision="I32">
91
+ <dim>-1</dim>
92
+ </port>
93
+ <port id="9" precision="U8">
94
+ <dim>-1</dim>
95
+ </port>
96
+ </output>
97
+ </layer>
98
+ <layer id="7" name="FuzeRagged_117736" type="FuzeRagged" version="extension">
99
+ <input>
100
+ <port id="0" precision="I32">
101
+ <dim>-1</dim>
102
+ </port>
103
+ <port id="1" precision="I32">
104
+ <dim>-1</dim>
105
+ </port>
106
+ <port id="2" precision="I32">
107
+ <dim>-1</dim>
108
+ </port>
109
+ <port id="3" precision="I32">
110
+ <dim>-1</dim>
111
+ </port>
112
+ </input>
113
+ <output>
114
+ <port id="4" precision="I32">
115
+ <dim>-1</dim>
116
+ </port>
117
+ <port id="5" precision="I32">
118
+ <dim>-1</dim>
119
+ </port>
120
+ </output>
121
+ </layer>
122
+ <layer id="8" name="UTF8Validate_117737" type="UTF8Validate" version="extension">
123
+ <data replace_mode="true" />
124
+ <input>
125
+ <port id="0" precision="I32">
126
+ <dim>-1</dim>
127
+ </port>
128
+ <port id="1" precision="I32">
129
+ <dim>-1</dim>
130
+ </port>
131
+ <port id="2" precision="U8">
132
+ <dim>-1</dim>
133
+ </port>
134
+ </input>
135
+ <output>
136
+ <port id="3" precision="I32">
137
+ <dim>-1</dim>
138
+ </port>
139
+ <port id="4" precision="I32">
140
+ <dim>-1</dim>
141
+ </port>
142
+ <port id="5" precision="U8">
143
+ <dim>-1</dim>
144
+ </port>
145
+ </output>
146
+ </layer>
147
+ <layer id="9" name="StringTensorPack_117738" type="StringTensorPack" version="opset15">
148
+ <input>
149
+ <port id="0" precision="I32">
150
+ <dim>-1</dim>
151
+ </port>
152
+ <port id="1" precision="I32">
153
+ <dim>-1</dim>
154
+ </port>
155
+ <port id="2" precision="U8">
156
+ <dim>-1</dim>
157
+ </port>
158
+ </input>
159
+ <output>
160
+ <port id="3" precision="STRING" names="Result_117739,string_output">
161
+ <dim>-1</dim>
162
+ </port>
163
+ </output>
164
+ </layer>
165
+ <layer id="10" name="Result_117739" type="Result" version="opset1" output_names="Result_117739,string_output">
166
+ <input>
167
+ <port id="0" precision="STRING">
168
+ <dim>-1</dim>
169
+ </port>
170
+ </input>
171
+ </layer>
172
+ </layers>
173
+ <edges>
174
+ <edge from-layer="0" from-port="0" to-layer="1" to-port="0" />
175
+ <edge from-layer="1" from-port="1" to-layer="6" to-port="0" />
176
+ <edge from-layer="2" from-port="0" to-layer="6" to-port="1" />
177
+ <edge from-layer="3" from-port="0" to-layer="6" to-port="2" />
178
+ <edge from-layer="4" from-port="0" to-layer="6" to-port="3" />
179
+ <edge from-layer="5" from-port="0" to-layer="6" to-port="4" />
180
+ <edge from-layer="6" from-port="7" to-layer="7" to-port="2" />
181
+ <edge from-layer="6" from-port="9" to-layer="8" to-port="2" />
182
+ <edge from-layer="6" from-port="8" to-layer="7" to-port="3" />
183
+ <edge from-layer="6" from-port="6" to-layer="7" to-port="1" />
184
+ <edge from-layer="6" from-port="5" to-layer="7" to-port="0" />
185
+ <edge from-layer="7" from-port="4" to-layer="8" to-port="0" />
186
+ <edge from-layer="7" from-port="5" to-layer="8" to-port="1" />
187
+ <edge from-layer="8" from-port="3" to-layer="9" to-port="0" />
188
+ <edge from-layer="8" from-port="4" to-layer="9" to-port="1" />
189
+ <edge from-layer="8" from-port="5" to-layer="9" to-port="2" />
190
+ <edge from-layer="9" from-port="3" to-layer="10" to-port="0" />
191
+ </edges>
192
+ <rt_info>
193
+ <info name="OpenVINO Runtime" value="2026.2.1-21919-ede283a88e3-releases/2026/2" />
194
+ <add_attention_mask value="True" />
195
+ <add_prefix_space />
196
+ <add_special_tokens value="True" />
197
+ <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and message.content is string and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if message.content is string %}&#10; {%- set content = message.content %}&#10; {%- else %}&#10; {%- set content = '' %}&#10; {%- endif %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is string %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in content %}&#10; {%- set reasoning_content = content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- set content = content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
198
+ <clean_up_tokenization_spaces />
199
+ <detokenizer_input_type value="i64" />
200
+ <eos_token_id value="151645" />
201
+ <handle_special_tokens_with_re />
202
+ <max_length />
203
+ <number_of_inputs value="1" />
204
+ <openvino_tokenizers_version value="2026.2.1.0-682-6da74a793f0" />
205
+ <openvino_version value="2026.2.1-21919-ede283a88e3-releases/2026/2" />
206
+ <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
207
+ <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2.Qwen2Tokenizer'>" />
208
+ <pad_token_id value="151643" />
209
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [-1], &quot;type_ids&quot;: [0]}, &quot;pair&quot;: {&quot;ids&quot;: [-1, -2], &quot;type_ids&quot;: [0, 0]}}" />
210
+ <skip_special_tokens value="True" />
211
+ <streaming_detokenizer value="False" />
212
+ <tokenizer_output_type value="i64" />
213
+ <tokenizers_version value="0.22.2" />
214
+ <transformers_version value="5.0.0" />
215
+ <use_max_padding value="False" />
216
+ <use_sentencepiece_backend value="False" />
217
+ <utf8_replace_mode value="replace" />
218
+ <with_detokenizer value="True" />
219
+ </rt_info>
220
+ </net>
openvino_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5364e5d566a0671e80e9c70cdd2e251ef07e7fbea8c409f05c183340dfbb5349
3
+ size 2277818085
openvino_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
openvino_tokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7be6e413f649a4ceb120e86c4b617b0c3cc469140c813152e0f288b010565429
3
+ size 5588835
openvino_tokenizer.xml ADDED
@@ -0,0 +1,771 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="tokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_117594" type="Parameter" version="opset1">
5
+ <data shape="?" element_type="string" />
6
+ <output>
7
+ <port id="0" precision="STRING" names="Parameter_117594">
8
+ <dim>-1</dim>
9
+ </port>
10
+ </output>
11
+ </layer>
12
+ <layer id="1" name="Constant_117600" type="Const" version="opset1">
13
+ <data element_type="i64" shape="" offset="0" size="8" />
14
+ <output>
15
+ <port id="0" precision="I64" />
16
+ </output>
17
+ </layer>
18
+ <layer id="2" name="StringTensorUnpack_117595" type="StringTensorUnpack" version="opset15">
19
+ <input>
20
+ <port id="0" precision="STRING">
21
+ <dim>-1</dim>
22
+ </port>
23
+ </input>
24
+ <output>
25
+ <port id="1" precision="I32">
26
+ <dim>-1</dim>
27
+ </port>
28
+ <port id="2" precision="I32">
29
+ <dim>-1</dim>
30
+ </port>
31
+ <port id="3" precision="U8">
32
+ <dim>-1</dim>
33
+ </port>
34
+ </output>
35
+ </layer>
36
+ <layer id="3" name="ShapeOf_117596" type="ShapeOf" version="opset3">
37
+ <data output_type="i64" />
38
+ <input>
39
+ <port id="0" precision="I32">
40
+ <dim>-1</dim>
41
+ </port>
42
+ </input>
43
+ <output>
44
+ <port id="1" precision="I64">
45
+ <dim>1</dim>
46
+ </port>
47
+ </output>
48
+ </layer>
49
+ <layer id="4" name="Constant_117597" type="Const" version="opset1">
50
+ <data element_type="i64" shape="" offset="0" size="8" />
51
+ <output>
52
+ <port id="0" precision="I64" />
53
+ </output>
54
+ </layer>
55
+ <layer id="5" name="Constant_117598" type="Const" version="opset1">
56
+ <data element_type="i64" shape="" offset="0" size="8" />
57
+ <output>
58
+ <port id="0" precision="I64" />
59
+ </output>
60
+ </layer>
61
+ <layer id="6" name="Gather_117599" type="Gather" version="opset8">
62
+ <data batch_dims="0" />
63
+ <input>
64
+ <port id="0" precision="I64">
65
+ <dim>1</dim>
66
+ </port>
67
+ <port id="1" precision="I64" />
68
+ <port id="2" precision="I64" />
69
+ </input>
70
+ <output>
71
+ <port id="3" precision="I64" />
72
+ </output>
73
+ </layer>
74
+ <layer id="7" name="Constant_117601" type="Const" version="opset1">
75
+ <data element_type="i64" shape="" offset="8" size="8" />
76
+ <output>
77
+ <port id="0" precision="I64" />
78
+ </output>
79
+ </layer>
80
+ <layer id="8" name="Range_117602" type="Range" version="opset4">
81
+ <data output_type="i32" />
82
+ <input>
83
+ <port id="0" precision="I64" />
84
+ <port id="1" precision="I64" />
85
+ <port id="2" precision="I64" />
86
+ </input>
87
+ <output>
88
+ <port id="3" precision="I32">
89
+ <dim>-1</dim>
90
+ </port>
91
+ </output>
92
+ </layer>
93
+ <layer id="9" name="Constant_117603" type="Const" version="opset1">
94
+ <data element_type="i64" shape="" offset="8" size="8" />
95
+ <output>
96
+ <port id="0" precision="I64" />
97
+ </output>
98
+ </layer>
99
+ <layer id="10" name="Constant_117604" type="Const" version="opset1">
100
+ <data element_type="i64" shape="" offset="8" size="8" />
101
+ <output>
102
+ <port id="0" precision="I64" />
103
+ </output>
104
+ </layer>
105
+ <layer id="11" name="Add_117605" type="Add" version="opset1">
106
+ <data auto_broadcast="numpy" />
107
+ <input>
108
+ <port id="0" precision="I64" />
109
+ <port id="1" precision="I64" />
110
+ </input>
111
+ <output>
112
+ <port id="2" precision="I64" />
113
+ </output>
114
+ </layer>
115
+ <layer id="12" name="Constant_117606" type="Const" version="opset1">
116
+ <data element_type="i64" shape="" offset="8" size="8" />
117
+ <output>
118
+ <port id="0" precision="I64" />
119
+ </output>
120
+ </layer>
121
+ <layer id="13" name="Range_117607" type="Range" version="opset4">
122
+ <data output_type="i32" />
123
+ <input>
124
+ <port id="0" precision="I64" />
125
+ <port id="1" precision="I64" />
126
+ <port id="2" precision="I64" />
127
+ </input>
128
+ <output>
129
+ <port id="3" precision="I32">
130
+ <dim>-1</dim>
131
+ </port>
132
+ </output>
133
+ </layer>
134
+ <layer id="14" name="Constant_117671" type="Const" version="opset1">
135
+ <data element_type="u8" shape="462" offset="16" size="462" />
136
+ <output>
137
+ <port id="0" precision="U8">
138
+ <dim>462</dim>
139
+ </port>
140
+ </output>
141
+ </layer>
142
+ <layer id="15" name="SpecialTokensSplit_117672" type="SpecialTokensSplit" version="extension">
143
+ <input>
144
+ <port id="0" precision="I32">
145
+ <dim>-1</dim>
146
+ </port>
147
+ <port id="1" precision="I32">
148
+ <dim>-1</dim>
149
+ </port>
150
+ <port id="2" precision="I32">
151
+ <dim>-1</dim>
152
+ </port>
153
+ <port id="3" precision="I32">
154
+ <dim>-1</dim>
155
+ </port>
156
+ <port id="4" precision="U8">
157
+ <dim>-1</dim>
158
+ </port>
159
+ <port id="5" precision="U8">
160
+ <dim>462</dim>
161
+ </port>
162
+ </input>
163
+ <output>
164
+ <port id="6" precision="I32">
165
+ <dim>-1</dim>
166
+ </port>
167
+ <port id="7" precision="I32">
168
+ <dim>-1</dim>
169
+ </port>
170
+ <port id="8" precision="I32">
171
+ <dim>-1</dim>
172
+ </port>
173
+ <port id="9" precision="I32">
174
+ <dim>-1</dim>
175
+ </port>
176
+ <port id="10" precision="U8">
177
+ <dim>-1</dim>
178
+ </port>
179
+ <port id="11" precision="BOOL">
180
+ <dim>-1</dim>
181
+ </port>
182
+ </output>
183
+ </layer>
184
+ <layer id="16" name="CharsMapNormalization_117673" type="CharsMapNormalization" version="extension">
185
+ <data add_dummy_prefix="false" remove_extra_whitespaces="false" escape_whitespaces="false" normalization_form="nfc" case_fold="false" nmt="false" />
186
+ <input>
187
+ <port id="0" precision="I32">
188
+ <dim>-1</dim>
189
+ </port>
190
+ <port id="1" precision="I32">
191
+ <dim>-1</dim>
192
+ </port>
193
+ <port id="2" precision="U8">
194
+ <dim>-1</dim>
195
+ </port>
196
+ <port id="3" precision="BOOL">
197
+ <dim>-1</dim>
198
+ </port>
199
+ </input>
200
+ <output>
201
+ <port id="4" precision="I32">
202
+ <dim>-1</dim>
203
+ </port>
204
+ <port id="5" precision="I32">
205
+ <dim>-1</dim>
206
+ </port>
207
+ <port id="6" precision="U8">
208
+ <dim>-1</dim>
209
+ </port>
210
+ <port id="7" precision="BOOL">
211
+ <dim>-1</dim>
212
+ </port>
213
+ </output>
214
+ </layer>
215
+ <layer id="17" name="Constant_117675" type="Const" version="opset1">
216
+ <data element_type="u8" shape="110" offset="478" size="110" />
217
+ <output>
218
+ <port id="0" precision="U8">
219
+ <dim>110</dim>
220
+ </port>
221
+ </output>
222
+ </layer>
223
+ <layer id="18" name="RegexSplit_117676" type="RegexSplit" version="extension">
224
+ <data behaviour="isolate" invert="false" max_splits="-1" />
225
+ <input>
226
+ <port id="0" precision="I32">
227
+ <dim>-1</dim>
228
+ </port>
229
+ <port id="1" precision="I32">
230
+ <dim>-1</dim>
231
+ </port>
232
+ <port id="2" precision="I32">
233
+ <dim>-1</dim>
234
+ </port>
235
+ <port id="3" precision="I32">
236
+ <dim>-1</dim>
237
+ </port>
238
+ <port id="4" precision="U8">
239
+ <dim>-1</dim>
240
+ </port>
241
+ <port id="5" precision="BOOL">
242
+ <dim>-1</dim>
243
+ </port>
244
+ <port id="6" precision="U8">
245
+ <dim>110</dim>
246
+ </port>
247
+ </input>
248
+ <output>
249
+ <port id="7" precision="I32">
250
+ <dim>-1</dim>
251
+ </port>
252
+ <port id="8" precision="I32">
253
+ <dim>-1</dim>
254
+ </port>
255
+ <port id="9" precision="I32">
256
+ <dim>-1</dim>
257
+ </port>
258
+ <port id="10" precision="I32">
259
+ <dim>-1</dim>
260
+ </port>
261
+ <port id="11" precision="U8">
262
+ <dim>-1</dim>
263
+ </port>
264
+ <port id="12" precision="BOOL">
265
+ <dim>-1</dim>
266
+ </port>
267
+ </output>
268
+ </layer>
269
+ <layer id="19" name="Constant_117678" type="Const" version="opset1">
270
+ <data element_type="i32" shape="151669" offset="588" size="606676" />
271
+ <output>
272
+ <port id="0" precision="I32">
273
+ <dim>151669</dim>
274
+ </port>
275
+ </output>
276
+ </layer>
277
+ <layer id="20" name="Constant_117680" type="Const" version="opset1">
278
+ <data element_type="i32" shape="151669" offset="607264" size="606676" />
279
+ <output>
280
+ <port id="0" precision="I32">
281
+ <dim>151669</dim>
282
+ </port>
283
+ </output>
284
+ </layer>
285
+ <layer id="21" name="Constant_117682" type="Const" version="opset1">
286
+ <data element_type="u8" shape="976309" offset="1213940" size="976309" />
287
+ <output>
288
+ <port id="0" precision="U8">
289
+ <dim>976309</dim>
290
+ </port>
291
+ </output>
292
+ </layer>
293
+ <layer id="22" name="Constant_117690" type="Const" version="opset1">
294
+ <data element_type="i32" shape="151387" offset="2190249" size="605548" />
295
+ <output>
296
+ <port id="0" precision="I32">
297
+ <dim>151387</dim>
298
+ </port>
299
+ </output>
300
+ </layer>
301
+ <layer id="23" name="Constant_117692" type="Const" version="opset1">
302
+ <data element_type="i32" shape="151387" offset="2795797" size="605548" />
303
+ <output>
304
+ <port id="0" precision="I32">
305
+ <dim>151387</dim>
306
+ </port>
307
+ </output>
308
+ </layer>
309
+ <layer id="24" name="Constant_117694" type="Const" version="opset1">
310
+ <data element_type="u8" shape="491359" offset="3401345" size="491359" />
311
+ <output>
312
+ <port id="0" precision="U8">
313
+ <dim>491359</dim>
314
+ </port>
315
+ </output>
316
+ </layer>
317
+ <layer id="25" name="Constant_117696" type="Const" version="opset1">
318
+ <data element_type="i32" shape="151387" offset="3892704" size="605548" />
319
+ <output>
320
+ <port id="0" precision="I32">
321
+ <dim>151387</dim>
322
+ </port>
323
+ </output>
324
+ </layer>
325
+ <layer id="26" name="Constant_117698" type="Const" version="opset1">
326
+ <data element_type="i32" shape="151387" offset="4498252" size="605548" />
327
+ <output>
328
+ <port id="0" precision="I32">
329
+ <dim>151387</dim>
330
+ </port>
331
+ </output>
332
+ </layer>
333
+ <layer id="27" name="Constant_117700" type="Const" version="opset1">
334
+ <data element_type="u8" shape="484354" offset="5103800" size="484354" />
335
+ <output>
336
+ <port id="0" precision="U8">
337
+ <dim>484354</dim>
338
+ </port>
339
+ </output>
340
+ </layer>
341
+ <layer id="28" name="Constant_117684" type="Const" version="opset1">
342
+ <data element_type="i32" shape="26" offset="5588154" size="104" />
343
+ <output>
344
+ <port id="0" precision="I32">
345
+ <dim>26</dim>
346
+ </port>
347
+ </output>
348
+ </layer>
349
+ <layer id="29" name="Constant_117686" type="Const" version="opset1">
350
+ <data element_type="i32" shape="26" offset="5588258" size="104" />
351
+ <output>
352
+ <port id="0" precision="I32">
353
+ <dim>26</dim>
354
+ </port>
355
+ </output>
356
+ </layer>
357
+ <layer id="30" name="Constant_117688" type="Const" version="opset1">
358
+ <data element_type="u8" shape="340" offset="5588362" size="340" />
359
+ <output>
360
+ <port id="0" precision="U8">
361
+ <dim>340</dim>
362
+ </port>
363
+ </output>
364
+ </layer>
365
+ <layer id="31" name="Constant_117701" type="Const" version="opset1">
366
+ <data element_type="i32" shape="26" offset="5588702" size="104" />
367
+ <output>
368
+ <port id="0" precision="I32">
369
+ <dim>26</dim>
370
+ </port>
371
+ </output>
372
+ </layer>
373
+ <layer id="32" name="BPETokenizer_117702" type="BPETokenizer" version="extension">
374
+ <data unk_token="" fuse_unk="false" suffix_indicator="" end_suffix="" byte_fallback="false" cache_capacity="30328" />
375
+ <input>
376
+ <port id="0" precision="I32">
377
+ <dim>-1</dim>
378
+ </port>
379
+ <port id="1" precision="I32">
380
+ <dim>-1</dim>
381
+ </port>
382
+ <port id="2" precision="I32">
383
+ <dim>-1</dim>
384
+ </port>
385
+ <port id="3" precision="I32">
386
+ <dim>-1</dim>
387
+ </port>
388
+ <port id="4" precision="U8">
389
+ <dim>-1</dim>
390
+ </port>
391
+ <port id="5" precision="I32">
392
+ <dim>151669</dim>
393
+ </port>
394
+ <port id="6" precision="I32">
395
+ <dim>151669</dim>
396
+ </port>
397
+ <port id="7" precision="U8">
398
+ <dim>976309</dim>
399
+ </port>
400
+ <port id="8" precision="I32">
401
+ <dim>151387</dim>
402
+ </port>
403
+ <port id="9" precision="I32">
404
+ <dim>151387</dim>
405
+ </port>
406
+ <port id="10" precision="U8">
407
+ <dim>491359</dim>
408
+ </port>
409
+ <port id="11" precision="I32">
410
+ <dim>151387</dim>
411
+ </port>
412
+ <port id="12" precision="I32">
413
+ <dim>151387</dim>
414
+ </port>
415
+ <port id="13" precision="U8">
416
+ <dim>484354</dim>
417
+ </port>
418
+ <port id="14" precision="I32">
419
+ <dim>26</dim>
420
+ </port>
421
+ <port id="15" precision="I32">
422
+ <dim>26</dim>
423
+ </port>
424
+ <port id="16" precision="U8">
425
+ <dim>340</dim>
426
+ </port>
427
+ <port id="17" precision="I32">
428
+ <dim>26</dim>
429
+ </port>
430
+ </input>
431
+ <output>
432
+ <port id="18" precision="I32">
433
+ <dim>-1</dim>
434
+ </port>
435
+ <port id="19" precision="I32">
436
+ <dim>-1</dim>
437
+ </port>
438
+ <port id="20" precision="I32">
439
+ <dim>-1</dim>
440
+ </port>
441
+ </output>
442
+ </layer>
443
+ <layer id="33" name="Constant_117703" type="Const" version="opset1">
444
+ <data element_type="i32" shape="" offset="5588806" size="4" />
445
+ <output>
446
+ <port id="0" precision="I32" />
447
+ </output>
448
+ </layer>
449
+ <layer id="34" name="Constant_117705" type="Const" version="opset1">
450
+ <data element_type="u8" shape="4" offset="5588810" size="4" />
451
+ <output>
452
+ <port id="0" precision="U8">
453
+ <dim>4</dim>
454
+ </port>
455
+ </output>
456
+ </layer>
457
+ <layer id="35" name="Constant_117707" type="Const" version="opset1">
458
+ <data element_type="u8" shape="13" offset="5588814" size="13" />
459
+ <output>
460
+ <port id="0" precision="U8">
461
+ <dim>13</dim>
462
+ </port>
463
+ </output>
464
+ </layer>
465
+ <layer id="36" name="Truncate_117708" type="Truncate" version="extension">
466
+ <data m_num_inputs="1" />
467
+ <input>
468
+ <port id="0" precision="I32">
469
+ <dim>-1</dim>
470
+ </port>
471
+ <port id="1" precision="I32">
472
+ <dim>-1</dim>
473
+ </port>
474
+ <port id="2" precision="I32">
475
+ <dim>-1</dim>
476
+ </port>
477
+ <port id="3" precision="I32" />
478
+ <port id="4" precision="U8">
479
+ <dim>4</dim>
480
+ </port>
481
+ <port id="5" precision="U8">
482
+ <dim>13</dim>
483
+ </port>
484
+ </input>
485
+ <output>
486
+ <port id="6" precision="I32">
487
+ <dim>-1</dim>
488
+ </port>
489
+ <port id="7" precision="I32">
490
+ <dim>-1</dim>
491
+ </port>
492
+ <port id="8" precision="I32">
493
+ <dim>-1</dim>
494
+ </port>
495
+ </output>
496
+ </layer>
497
+ <layer id="37" name="Constant_117709" type="Const" version="opset1">
498
+ <data element_type="i32" shape="1" offset="5588827" size="4" />
499
+ <output>
500
+ <port id="0" precision="I32">
501
+ <dim>1</dim>
502
+ </port>
503
+ </output>
504
+ </layer>
505
+ <layer id="38" name="CombineSegments_117710" type="CombineSegments" version="extension">
506
+ <input>
507
+ <port id="0" precision="I32">
508
+ <dim>-1</dim>
509
+ </port>
510
+ <port id="1" precision="I32">
511
+ <dim>-1</dim>
512
+ </port>
513
+ <port id="2" precision="I32">
514
+ <dim>-1</dim>
515
+ </port>
516
+ <port id="3" precision="I32">
517
+ <dim>1</dim>
518
+ </port>
519
+ </input>
520
+ <output>
521
+ <port id="4" precision="I32">
522
+ <dim>-1</dim>
523
+ </port>
524
+ <port id="5" precision="I32">
525
+ <dim>-1</dim>
526
+ </port>
527
+ <port id="6" precision="I32">
528
+ <dim>-1</dim>
529
+ </port>
530
+ <port id="7" precision="I32">
531
+ <dim>-1</dim>
532
+ </port>
533
+ <port id="8" precision="I32">
534
+ <dim>-1</dim>
535
+ </port>
536
+ <port id="9" precision="I32">
537
+ <dim>-1</dim>
538
+ </port>
539
+ </output>
540
+ </layer>
541
+ <layer id="39" name="Subtract_117711" type="Subtract" version="opset1">
542
+ <data auto_broadcast="numpy" />
543
+ <input>
544
+ <port id="0" precision="I32">
545
+ <dim>-1</dim>
546
+ </port>
547
+ <port id="1" precision="I32">
548
+ <dim>-1</dim>
549
+ </port>
550
+ </input>
551
+ <output>
552
+ <port id="2" precision="I32">
553
+ <dim>-1</dim>
554
+ </port>
555
+ </output>
556
+ </layer>
557
+ <layer id="40" name="Constant_117712" type="Const" version="opset1">
558
+ <data element_type="i32" shape="" offset="5588827" size="4" />
559
+ <output>
560
+ <port id="0" precision="I32" />
561
+ </output>
562
+ </layer>
563
+ <layer id="41" name="ReduceMax_117713" type="ReduceMax" version="opset1">
564
+ <data keep_dims="false" />
565
+ <input>
566
+ <port id="0" precision="I32">
567
+ <dim>-1</dim>
568
+ </port>
569
+ <port id="1" precision="I32" />
570
+ </input>
571
+ <output>
572
+ <port id="2" precision="I32" />
573
+ </output>
574
+ </layer>
575
+ <layer id="42" name="Constant_117714" type="Const" version="opset1">
576
+ <data element_type="i32" shape="" offset="5588831" size="4" />
577
+ <output>
578
+ <port id="0" precision="I32" />
579
+ </output>
580
+ </layer>
581
+ <layer id="43" name="RaggedToDense_117715" type="RaggedToDense" version="extension">
582
+ <data pad_right="false" m_pad_max_length="false" />
583
+ <input>
584
+ <port id="0" precision="I32">
585
+ <dim>-1</dim>
586
+ </port>
587
+ <port id="1" precision="I32">
588
+ <dim>-1</dim>
589
+ </port>
590
+ <port id="2" precision="I32">
591
+ <dim>-1</dim>
592
+ </port>
593
+ <port id="3" precision="I32" />
594
+ <port id="4" precision="I32" />
595
+ </input>
596
+ <output>
597
+ <port id="5" precision="I32">
598
+ <dim>-1</dim>
599
+ <dim>-1</dim>
600
+ </port>
601
+ <port id="6" precision="BOOL">
602
+ <dim>-1</dim>
603
+ <dim>-1</dim>
604
+ </port>
605
+ </output>
606
+ </layer>
607
+ <layer id="44" name="Convert_117716" type="Convert" version="opset1">
608
+ <data destination_type="i32" />
609
+ <input>
610
+ <port id="0" precision="BOOL">
611
+ <dim>-1</dim>
612
+ <dim>-1</dim>
613
+ </port>
614
+ </input>
615
+ <output>
616
+ <port id="1" precision="I32">
617
+ <dim>-1</dim>
618
+ <dim>-1</dim>
619
+ </port>
620
+ </output>
621
+ </layer>
622
+ <layer id="45" name="Convert_117716.0" type="Convert" version="opset1">
623
+ <data destination_type="i64" />
624
+ <input>
625
+ <port id="0" precision="I32">
626
+ <dim>-1</dim>
627
+ <dim>-1</dim>
628
+ </port>
629
+ </input>
630
+ <output>
631
+ <port id="1" precision="I64" names="attention_mask">
632
+ <dim>-1</dim>
633
+ <dim>-1</dim>
634
+ </port>
635
+ </output>
636
+ </layer>
637
+ <layer id="46" name="RaggedToDense_117715.0" type="Convert" version="opset1">
638
+ <data destination_type="i64" />
639
+ <input>
640
+ <port id="0" precision="I32">
641
+ <dim>-1</dim>
642
+ <dim>-1</dim>
643
+ </port>
644
+ </input>
645
+ <output>
646
+ <port id="1" precision="I64" names="input_ids">
647
+ <dim>-1</dim>
648
+ <dim>-1</dim>
649
+ </port>
650
+ </output>
651
+ </layer>
652
+ <layer id="47" name="Result_117719" type="Result" version="opset1" output_names="input_ids">
653
+ <input>
654
+ <port id="0" precision="I64">
655
+ <dim>-1</dim>
656
+ <dim>-1</dim>
657
+ </port>
658
+ </input>
659
+ </layer>
660
+ <layer id="48" name="Result_117721" type="Result" version="opset1" output_names="attention_mask">
661
+ <input>
662
+ <port id="0" precision="I64">
663
+ <dim>-1</dim>
664
+ <dim>-1</dim>
665
+ </port>
666
+ </input>
667
+ </layer>
668
+ </layers>
669
+ <edges>
670
+ <edge from-layer="0" from-port="0" to-layer="2" to-port="0" />
671
+ <edge from-layer="1" from-port="0" to-layer="8" to-port="0" />
672
+ <edge from-layer="2" from-port="1" to-layer="3" to-port="0" />
673
+ <edge from-layer="2" from-port="3" to-layer="15" to-port="4" />
674
+ <edge from-layer="2" from-port="2" to-layer="15" to-port="3" />
675
+ <edge from-layer="2" from-port="1" to-layer="15" to-port="2" />
676
+ <edge from-layer="3" from-port="1" to-layer="6" to-port="0" />
677
+ <edge from-layer="4" from-port="0" to-layer="6" to-port="1" />
678
+ <edge from-layer="5" from-port="0" to-layer="6" to-port="2" />
679
+ <edge from-layer="6" from-port="3" to-layer="11" to-port="0" />
680
+ <edge from-layer="6" from-port="3" to-layer="8" to-port="1" />
681
+ <edge from-layer="7" from-port="0" to-layer="8" to-port="2" />
682
+ <edge from-layer="8" from-port="3" to-layer="15" to-port="0" />
683
+ <edge from-layer="9" from-port="0" to-layer="13" to-port="0" />
684
+ <edge from-layer="10" from-port="0" to-layer="11" to-port="1" />
685
+ <edge from-layer="11" from-port="2" to-layer="13" to-port="1" />
686
+ <edge from-layer="12" from-port="0" to-layer="13" to-port="2" />
687
+ <edge from-layer="13" from-port="3" to-layer="15" to-port="1" />
688
+ <edge from-layer="14" from-port="0" to-layer="15" to-port="5" />
689
+ <edge from-layer="15" from-port="10" to-layer="16" to-port="2" />
690
+ <edge from-layer="15" from-port="7" to-layer="18" to-port="1" />
691
+ <edge from-layer="15" from-port="6" to-layer="18" to-port="0" />
692
+ <edge from-layer="15" from-port="11" to-layer="16" to-port="3" />
693
+ <edge from-layer="15" from-port="9" to-layer="16" to-port="1" />
694
+ <edge from-layer="15" from-port="8" to-layer="16" to-port="0" />
695
+ <edge from-layer="16" from-port="4" to-layer="18" to-port="2" />
696
+ <edge from-layer="16" from-port="5" to-layer="18" to-port="3" />
697
+ <edge from-layer="16" from-port="6" to-layer="18" to-port="4" />
698
+ <edge from-layer="16" from-port="7" to-layer="18" to-port="5" />
699
+ <edge from-layer="17" from-port="0" to-layer="18" to-port="6" />
700
+ <edge from-layer="18" from-port="7" to-layer="32" to-port="0" />
701
+ <edge from-layer="18" from-port="8" to-layer="32" to-port="1" />
702
+ <edge from-layer="18" from-port="9" to-layer="32" to-port="2" />
703
+ <edge from-layer="18" from-port="10" to-layer="32" to-port="3" />
704
+ <edge from-layer="18" from-port="11" to-layer="32" to-port="4" />
705
+ <edge from-layer="19" from-port="0" to-layer="32" to-port="5" />
706
+ <edge from-layer="20" from-port="0" to-layer="32" to-port="6" />
707
+ <edge from-layer="21" from-port="0" to-layer="32" to-port="7" />
708
+ <edge from-layer="22" from-port="0" to-layer="32" to-port="8" />
709
+ <edge from-layer="23" from-port="0" to-layer="32" to-port="9" />
710
+ <edge from-layer="24" from-port="0" to-layer="32" to-port="10" />
711
+ <edge from-layer="25" from-port="0" to-layer="32" to-port="11" />
712
+ <edge from-layer="26" from-port="0" to-layer="32" to-port="12" />
713
+ <edge from-layer="27" from-port="0" to-layer="32" to-port="13" />
714
+ <edge from-layer="28" from-port="0" to-layer="32" to-port="14" />
715
+ <edge from-layer="29" from-port="0" to-layer="32" to-port="15" />
716
+ <edge from-layer="30" from-port="0" to-layer="32" to-port="16" />
717
+ <edge from-layer="31" from-port="0" to-layer="32" to-port="17" />
718
+ <edge from-layer="32" from-port="18" to-layer="36" to-port="0" />
719
+ <edge from-layer="32" from-port="19" to-layer="36" to-port="1" />
720
+ <edge from-layer="32" from-port="20" to-layer="36" to-port="2" />
721
+ <edge from-layer="33" from-port="0" to-layer="36" to-port="3" />
722
+ <edge from-layer="34" from-port="0" to-layer="36" to-port="4" />
723
+ <edge from-layer="35" from-port="0" to-layer="36" to-port="5" />
724
+ <edge from-layer="36" from-port="6" to-layer="38" to-port="0" />
725
+ <edge from-layer="36" from-port="8" to-layer="38" to-port="2" />
726
+ <edge from-layer="36" from-port="7" to-layer="38" to-port="1" />
727
+ <edge from-layer="37" from-port="0" to-layer="38" to-port="3" />
728
+ <edge from-layer="38" from-port="5" to-layer="39" to-port="0" />
729
+ <edge from-layer="38" from-port="4" to-layer="39" to-port="1" />
730
+ <edge from-layer="38" from-port="4" to-layer="43" to-port="0" />
731
+ <edge from-layer="38" from-port="5" to-layer="43" to-port="1" />
732
+ <edge from-layer="38" from-port="6" to-layer="43" to-port="2" />
733
+ <edge from-layer="39" from-port="2" to-layer="41" to-port="0" />
734
+ <edge from-layer="40" from-port="0" to-layer="41" to-port="1" />
735
+ <edge from-layer="41" from-port="2" to-layer="43" to-port="3" />
736
+ <edge from-layer="42" from-port="0" to-layer="43" to-port="4" />
737
+ <edge from-layer="43" from-port="6" to-layer="44" to-port="0" />
738
+ <edge from-layer="43" from-port="5" to-layer="46" to-port="0" />
739
+ <edge from-layer="44" from-port="1" to-layer="45" to-port="0" />
740
+ <edge from-layer="45" from-port="1" to-layer="48" to-port="0" />
741
+ <edge from-layer="46" from-port="1" to-layer="47" to-port="0" />
742
+ </edges>
743
+ <rt_info>
744
+ <info name="OpenVINO Runtime" value="2026.2.1-21919-ede283a88e3-releases/2026/2" />
745
+ <add_attention_mask value="True" />
746
+ <add_prefix_space />
747
+ <add_special_tokens value="True" />
748
+ <chat_template value="{%- if tools %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {%- if messages[0].role == 'system' %}&#10; {{- messages[0].content + '\n\n' }}&#10; {%- endif %}&#10; {{- &quot;# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within &lt;tools>&lt;/tools> XML tags:\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>\n\nFor each function call, return a json object with function name and arguments within &lt;tool_call>&lt;/tool_call> XML tags:\n&lt;tool_call>\n{\&quot;name\&quot;: &lt;function-name>, \&quot;arguments\&quot;: &lt;args-json-object>}\n&lt;/tool_call>&lt;|im_end|>\n&quot; }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {{- '&lt;|im_start|>system\n' + messages[0].content + '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10;{%- endif %}&#10;{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}&#10;{%- for message in messages[::-1] %}&#10; {%- set index = (messages|length - 1) - loop.index0 %}&#10; {%- if ns.multi_step_tool and message.role == &quot;user&quot; and message.content is string and not(message.content.startswith('&lt;tool_response>') and message.content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- for message in messages %}&#10; {%- if message.content is string %}&#10; {%- set content = message.content %}&#10; {%- else %}&#10; {%- set content = '' %}&#10; {%- endif %}&#10; {%- if (message.role == &quot;user&quot;) or (message.role == &quot;system&quot; and not loop.first) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content + '&lt;|im_end|>' + '\n' }}&#10; {%- elif message.role == &quot;assistant&quot; %}&#10; {%- set reasoning_content = '' %}&#10; {%- if message.reasoning_content is string %}&#10; {%- set reasoning_content = message.reasoning_content %}&#10; {%- else %}&#10; {%- if '&lt;/think>' in content %}&#10; {%- set reasoning_content = content.split('&lt;/think>')[0].rstrip('\n').split('&lt;think>')[-1].lstrip('\n') %}&#10; {%- set content = content.split('&lt;/think>')[-1].lstrip('\n') %}&#10; {%- endif %}&#10; {%- endif %}&#10; {%- if loop.index0 > ns.last_query_index %}&#10; {%- if loop.last or (not loop.last and reasoning_content) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content.strip('\n') + '\n&lt;/think>\n\n' + content.lstrip('\n') }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if (loop.first and content) or (not loop.first) %}&#10; {{- '\n' }}&#10; {%- endif %}&#10; {%- if tool_call.function %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {{- '&lt;tool_call>\n{&quot;name&quot;: &quot;' }}&#10; {{- tool_call.name }}&#10; {{- '&quot;, &quot;arguments&quot;: ' }}&#10; {%- if tool_call.arguments is string %}&#10; {{- tool_call.arguments }}&#10; {%- else %}&#10; {{- tool_call.arguments | tojson }}&#10; {%- endif %}&#10; {{- '}\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.first or (messages[loop.index0 - 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_start|>user' }}&#10; {%- endif %}&#10; {{- '\n&lt;tool_response>\n' }}&#10; {{- content }}&#10; {{- '\n&lt;/tool_response>' }}&#10; {%- if loop.last or (messages[loop.index0 + 1].role != &quot;tool&quot;) %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if add_generation_prompt %}&#10; {{- '&lt;|im_start|>assistant\n' }}&#10; {%- if enable_thinking is defined and enable_thinking is false %}&#10; {{- '&lt;think>\n\n&lt;/think>\n\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
749
+ <clean_up_tokenization_spaces />
750
+ <detokenizer_input_type value="i64" />
751
+ <eos_token_id value="151645" />
752
+ <handle_special_tokens_with_re />
753
+ <max_length />
754
+ <number_of_inputs value="1" />
755
+ <openvino_tokenizers_version value="2026.2.1.0-682-6da74a793f0" />
756
+ <openvino_version value="2026.2.1-21919-ede283a88e3-releases/2026/2" />
757
+ <original_post_processor_template value="{&quot;type&quot;: &quot;ByteLevel&quot;, &quot;add_prefix_space&quot;: false, &quot;trim_offsets&quot;: false, &quot;use_regex&quot;: false}" />
758
+ <original_tokenizer_class value="&lt;class 'transformers.models.qwen2.tokenization_qwen2.Qwen2Tokenizer'>" />
759
+ <pad_token_id value="151643" />
760
+ <processed_post_processor_template value="{&quot;single&quot;: {&quot;ids&quot;: [-1], &quot;type_ids&quot;: [0]}, &quot;pair&quot;: {&quot;ids&quot;: [-1, -2], &quot;type_ids&quot;: [0, 0]}}" />
761
+ <skip_special_tokens value="True" />
762
+ <streaming_detokenizer value="False" />
763
+ <tokenizer_output_type value="i64" />
764
+ <tokenizers_version value="0.22.2" />
765
+ <transformers_version value="5.0.0" />
766
+ <use_max_padding value="False" />
767
+ <use_sentencepiece_backend value="False" />
768
+ <utf8_replace_mode value="replace" />
769
+ <with_detokenizer value="True" />
770
+ </rt_info>
771
+ </net>
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506
3
+ size 11422650
tokenizer_config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
+ ],
23
+ "is_local": false,
24
+ "model_max_length": 40960,
25
+ "model_specific_special_tokens": {},
26
+ "pad_token": "<|endoftext|>",
27
+ "padding_side": "right",
28
+ "split_special_tokens": false,
29
+ "tokenizer_class": "Qwen2Tokenizer",
30
+ "unk_token": null
31
+ }