Morteza89 commited on
Commit
6982f18
·
verified ·
1 Parent(s): 3f27de5

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -1,35 +1,9 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz 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
 
 
 
1
  *.bin filter=lfs diff=lfs merge=lfs -text
2
+ *.xml filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  *.safetensors filter=lfs diff=lfs merge=lfs -text
4
+ *.json text
5
+ *.md text
6
+ *.py text
7
+ *.txt text
8
+ *.jinja text
9
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
 
 
.ipynb_checkpoints/README-checkpoint.md ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen3.6-35B-A3B
4
+ library_name: openvino
5
+ pipeline_tag: image-text-to-text
6
+ tags:
7
+ - openvino
8
+ - optimum-intel
9
+ - int4
10
+ - vlm
11
+ - vision-language-model
12
+ - moe
13
+ - qwen
14
+ - qwen3.6
15
+ - converted
16
+ ---
17
+
18
+ # Qwen3.6 35B-A3B OpenVINO INT4
19
+
20
+ This repository contains an unofficial OpenVINO™ IR conversion of [`Qwen/Qwen3.6-35B-A3B`](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) with INT4 weight compression.
21
+
22
+ The model is intended for local vision-language generation using OpenVINO and Optimum Intel. It can take an image plus a text prompt and generate a natural-language response.
23
+
24
+ ## Original model
25
+
26
+ - Original model: `Qwen/Qwen3.6-35B-A3B`
27
+ - Model family: Qwen3.6
28
+ - Architecture: sparse Mixture-of-Experts vision-language model
29
+ - Converted format: OpenVINO IR
30
+ - Weight format: INT4
31
+ - Task: image-text-to-text / vision-language generation
32
+
33
+ This is an unofficial converted model repository. Please refer to the original model card for full model details, license terms, intended use, safety notes, and limitations.
34
+
35
+ ## Model summary
36
+
37
+ Qwen3.6-35B-A3B is a sparse Mixture-of-Experts model from the Qwen3.6 family. The upstream model is distributed on Hugging Face and is intended for multimodal use cases including image understanding and text generation.
38
+
39
+ This OpenVINO version is designed for local inference on Intel hardware through the Optimum Intel OpenVINO runtime path.
40
+
41
+ ## Conversion
42
+
43
+ This model was converted with Optimum Intel using the OpenVINO export path.
44
+
45
+ ```bash
46
+ optimum-cli export openvino \
47
+ --model Qwen/Qwen3.6-35B-A3B \
48
+ --weight-format int4 \
49
+ --trust-remote-code \
50
+ ov_Qwen3.6-35B-A3B_int4
51
+
52
+ Runtime note
53
+
54
+ This model currently uses the Optimum Intel OVModelForVisualCausalLM path for inference.
55
+
56
+ The tested environment used a Qwen3.5/Qwen3.6 support branch of Optimum Intel and nightly OpenVINO packages:
57
+ pip install -U git+https://github.com/rkazants/optimum-intel.git@support_qwen3_5
58
+ pip install --pre -U openvino openvino-tokenizers nncf --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
59
+ pip install transformers==5.2.0
60
+ pip install requests torchvision opencv-python
61
+ OpenVINO Model Server compatibility is not claimed for this model. In local testing, OVMS 2026.1 rejected this model type during VLM initialization with an unsupported model-type error, while direct Optimum Intel OpenVINO inference worked.
62
+
63
+ Quantization
64
+ Weight format: INT4
65
+ Export tool: Optimum Intel
66
+ Runtime: Optimum Intel OpenVINO
67
+ Model format: OpenVINO IR
68
+
69
+ INT4 compression is intended to reduce model size and memory usage compared with higher precision weights. As with any converted and quantized model, quality and numerical behavior may differ from the original model and should be validated for your use case.
70
+ Usage
71
+ Run from inside the model directory
72
+ python examples/run_qwen36_vlm_openvino.py \
73
+ --model-dir . \
74
+ --device CPU \
75
+ --max-new-tokens 64 \
76
+ --prompt "What animal is on the candy? Answer in one sentence."
77
+
78
+ Notes
79
+ This is a vision-language model, not a text-only model.
80
+ Depending on package versions, you may see:
81
+ The following generation flags are not valid and may be ignored: ['top_p', 'top_k']
82
+ The demo script uses deterministic generation with do_sample=False.
83
+ OpenVINO Model Server compatibility is not claimed unless separately validated.
84
+ Limitations
85
+
86
+ This repository inherits the limitations of the original Qwen/Qwen3.6-35B-A3B model. Additional differences may arise from OpenVINO conversion, INT4 compression, and runtime configuration.
87
+
88
+ Attribution
89
+
90
+ This is an unofficial OpenVINO conversion of the original Qwen3.6 model. All rights to the original model, training, and licensing remain with the original authors.
README.md ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen3.6-35B-A3B
4
+ library_name: openvino
5
+ pipeline_tag: image-text-to-text
6
+ tags:
7
+ - openvino
8
+ - optimum-intel
9
+ - int4
10
+ - vlm
11
+ - vision-language-model
12
+ - moe
13
+ - qwen
14
+ - qwen3.6
15
+ - converted
16
+ ---
17
+
18
+ # Qwen3.6 35B-A3B OpenVINO INT4
19
+
20
+ This repository contains an unofficial OpenVINO™ IR conversion of [`Qwen/Qwen3.6-35B-A3B`](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) with INT4 weight compression.
21
+
22
+ The model is intended for local vision-language generation using OpenVINO and Optimum Intel. It can take an image plus a text prompt and generate a natural-language response.
23
+
24
+ ## Original model
25
+
26
+ - Original model: `Qwen/Qwen3.6-35B-A3B`
27
+ - Model family: Qwen3.6
28
+ - Architecture: sparse Mixture-of-Experts vision-language model
29
+ - Converted format: OpenVINO IR
30
+ - Weight format: INT4
31
+ - Task: image-text-to-text / vision-language generation
32
+
33
+ This is an unofficial converted model repository. Please refer to the original model card for full model details, license terms, intended use, safety notes, and limitations.
34
+
35
+ ## Model summary
36
+
37
+ Qwen3.6-35B-A3B is a sparse Mixture-of-Experts model from the Qwen3.6 family. The upstream model is distributed on Hugging Face and is intended for multimodal use cases including image understanding and text generation.
38
+
39
+ This OpenVINO version is designed for local inference on Intel hardware through the Optimum Intel OpenVINO runtime path.
40
+
41
+ ## Conversion
42
+
43
+ This model was converted with Optimum Intel using the OpenVINO export path.
44
+
45
+ ```bash
46
+ optimum-cli export openvino \
47
+ --model Qwen/Qwen3.6-35B-A3B \
48
+ --weight-format int4 \
49
+ --trust-remote-code \
50
+ ov_Qwen3.6-35B-A3B_int4
51
+
52
+ Runtime note
53
+
54
+ This model currently uses the Optimum Intel OVModelForVisualCausalLM path for inference.
55
+
56
+ The tested environment used a Qwen3.5/Qwen3.6 support branch of Optimum Intel and nightly OpenVINO packages:
57
+ pip install -U git+https://github.com/rkazants/optimum-intel.git@support_qwen3_5
58
+ pip install --pre -U openvino openvino-tokenizers nncf --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
59
+ pip install transformers==5.2.0
60
+ pip install requests torchvision opencv-python
61
+ OpenVINO Model Server compatibility is not claimed for this model. In local testing, OVMS 2026.1 rejected this model type during VLM initialization with an unsupported model-type error, while direct Optimum Intel OpenVINO inference worked.
62
+
63
+ Quantization
64
+ Weight format: INT4
65
+ Export tool: Optimum Intel
66
+ Runtime: Optimum Intel OpenVINO
67
+ Model format: OpenVINO IR
68
+
69
+ INT4 compression is intended to reduce model size and memory usage compared with higher precision weights. As with any converted and quantized model, quality and numerical behavior may differ from the original model and should be validated for your use case.
70
+ Usage
71
+ Run from inside the model directory
72
+ python examples/run_qwen36_vlm_openvino.py \
73
+ --model-dir . \
74
+ --device CPU \
75
+ --max-new-tokens 64 \
76
+ --prompt "What animal is on the candy? Answer in one sentence."
77
+
78
+ Notes
79
+ This is a vision-language model, not a text-only model.
80
+ Depending on package versions, you may see:
81
+ The following generation flags are not valid and may be ignored: ['top_p', 'top_k']
82
+ The demo script uses deterministic generation with do_sample=False.
83
+ OpenVINO Model Server compatibility is not claimed unless separately validated.
84
+ Limitations
85
+
86
+ This repository inherits the limitations of the original Qwen/Qwen3.6-35B-A3B model. Additional differences may arise from OpenVINO conversion, INT4 compression, and runtime configuration.
87
+
88
+ Attribution
89
+
90
+ This is an unofficial OpenVINO conversion of the original Qwen3.6 model. All rights to the original model, training, and licensing remain with the original authors.
chat_template.jinja ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- set image_count = namespace(value=0) %}
2
+ {%- set video_count = namespace(value=0) %}
3
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
4
+ {%- if content is string %}
5
+ {{- content }}
6
+ {%- elif content is iterable and content is not mapping %}
7
+ {%- for item in content %}
8
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}
9
+ {%- if is_system_content %}
10
+ {{- raise_exception('System message cannot contain images.') }}
11
+ {%- endif %}
12
+ {%- if do_vision_count %}
13
+ {%- set image_count.value = image_count.value + 1 %}
14
+ {%- endif %}
15
+ {%- if add_vision_id %}
16
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
17
+ {%- endif %}
18
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
19
+ {%- elif 'video' in item or item.type == 'video' %}
20
+ {%- if is_system_content %}
21
+ {{- raise_exception('System message cannot contain videos.') }}
22
+ {%- endif %}
23
+ {%- if do_vision_count %}
24
+ {%- set video_count.value = video_count.value + 1 %}
25
+ {%- endif %}
26
+ {%- if add_vision_id %}
27
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
28
+ {%- endif %}
29
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
30
+ {%- elif 'text' in item %}
31
+ {{- item.text }}
32
+ {%- else %}
33
+ {{- raise_exception('Unexpected item type in content.') }}
34
+ {%- endif %}
35
+ {%- endfor %}
36
+ {%- elif content is none or content is undefined %}
37
+ {{- '' }}
38
+ {%- else %}
39
+ {{- raise_exception('Unexpected content type.') }}
40
+ {%- endif %}
41
+ {%- endmacro %}
42
+ {%- if not messages %}
43
+ {{- raise_exception('No messages provided.') }}
44
+ {%- endif %}
45
+ {%- if tools and tools is iterable and tools is not mapping %}
46
+ {{- '<|im_start|>system\n' }}
47
+ {{- "# Tools\n\nYou have access to the following functions:\n\n<tools>" }}
48
+ {%- for tool in tools %}
49
+ {{- "\n" }}
50
+ {{- tool | tojson }}
51
+ {%- endfor %}
52
+ {{- "\n</tools>" }}
53
+ {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n<tool_call>\n<function=example_function_name>\n<parameter=example_parameter_1>\nvalue_1\n</parameter>\n<parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n</parameter>\n</function>\n</tool_call>\n\n<IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n</IMPORTANT>' }}
54
+ {%- if messages[0].role == 'system' %}
55
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
56
+ {%- if content %}
57
+ {{- '\n\n' + content }}
58
+ {%- endif %}
59
+ {%- endif %}
60
+ {{- '<|im_end|>\n' }}
61
+ {%- else %}
62
+ {%- if messages[0].role == 'system' %}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
64
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
65
+ {%- endif %}
66
+ {%- endif %}
67
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
68
+ {%- for message in messages[::-1] %}
69
+ {%- set index = (messages|length - 1) - loop.index0 %}
70
+ {%- if ns.multi_step_tool and message.role == "user" %}
71
+ {%- set content = render_content(message.content, false)|trim %}
72
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}
73
+ {%- set ns.multi_step_tool = false %}
74
+ {%- set ns.last_query_index = index %}
75
+ {%- endif %}
76
+ {%- endif %}
77
+ {%- endfor %}
78
+ {%- if ns.multi_step_tool %}
79
+ {{- raise_exception('No user query found in messages.') }}
80
+ {%- endif %}
81
+ {%- for message in messages %}
82
+ {%- set content = render_content(message.content, true)|trim %}
83
+ {%- if message.role == "system" %}
84
+ {%- if not loop.first %}
85
+ {{- raise_exception('System message must be at the beginning.') }}
86
+ {%- endif %}
87
+ {%- elif message.role == "user" %}
88
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
89
+ {%- elif message.role == "assistant" %}
90
+ {%- set reasoning_content = '' %}
91
+ {%- if message.reasoning_content is string %}
92
+ {%- set reasoning_content = message.reasoning_content %}
93
+ {%- else %}
94
+ {%- if '</think>' in content %}
95
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
96
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
97
+ {%- endif %}
98
+ {%- endif %}
99
+ {%- set reasoning_content = reasoning_content|trim %}
100
+ {%- if (preserve_thinking is defined and preserve_thinking is true) or (loop.index0 > ns.last_query_index) %}
101
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content }}
102
+ {%- else %}
103
+ {{- '<|im_start|>' + message.role + '\n' + content }}
104
+ {%- endif %}
105
+ {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}
106
+ {%- for tool_call in message.tool_calls %}
107
+ {%- if tool_call.function is defined %}
108
+ {%- set tool_call = tool_call.function %}
109
+ {%- endif %}
110
+ {%- if loop.first %}
111
+ {%- if content|trim %}
112
+ {{- '\n\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
113
+ {%- else %}
114
+ {{- '<tool_call>\n<function=' + tool_call.name + '>\n' }}
115
+ {%- endif %}
116
+ {%- else %}
117
+ {{- '\n<tool_call>\n<function=' + tool_call.name + '>\n' }}
118
+ {%- endif %}
119
+ {%- if tool_call.arguments is defined %}
120
+ {%- for args_name, args_value in tool_call.arguments|items %}
121
+ {{- '<parameter=' + args_name + '>\n' }}
122
+ {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}
123
+ {{- args_value }}
124
+ {{- '\n</parameter>\n' }}
125
+ {%- endfor %}
126
+ {%- endif %}
127
+ {{- '</function>\n</tool_call>' }}
128
+ {%- endfor %}
129
+ {%- endif %}
130
+ {{- '<|im_end|>\n' }}
131
+ {%- elif message.role == "tool" %}
132
+ {%- if loop.previtem and loop.previtem.role != "tool" %}
133
+ {{- '<|im_start|>user' }}
134
+ {%- endif %}
135
+ {{- '\n<tool_response>\n' }}
136
+ {{- content }}
137
+ {{- '\n</tool_response>' }}
138
+ {%- if not loop.last and loop.nextitem.role != "tool" %}
139
+ {{- '<|im_end|>\n' }}
140
+ {%- elif loop.last %}
141
+ {{- '<|im_end|>\n' }}
142
+ {%- endif %}
143
+ {%- else %}
144
+ {{- raise_exception('Unexpected message role.') }}
145
+ {%- endif %}
146
+ {%- endfor %}
147
+ {%- if add_generation_prompt %}
148
+ {{- '<|im_start|>assistant\n' }}
149
+ {%- if enable_thinking is defined and enable_thinking is false %}
150
+ {{- '<think>\n\n</think>\n\n' }}
151
+ {%- else %}
152
+ {{- '<think>\n' }}
153
+ {%- endif %}
154
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3_5MoeForConditionalGeneration"
4
+ ],
5
+ "dtype": "bfloat16",
6
+ "image_token_id": 248056,
7
+ "model_type": "qwen3_5_moe",
8
+ "text_config": {
9
+ "attention_bias": false,
10
+ "attention_dropout": 0.0,
11
+ "attn_output_gate": true,
12
+ "bos_token_id": 248044,
13
+ "dtype": "bfloat16",
14
+ "eos_token_id": 248044,
15
+ "full_attention_interval": 4,
16
+ "head_dim": 256,
17
+ "hidden_act": "silu",
18
+ "hidden_size": 2048,
19
+ "initializer_range": 0.02,
20
+ "layer_types": [
21
+ "linear_attention",
22
+ "linear_attention",
23
+ "linear_attention",
24
+ "full_attention",
25
+ "linear_attention",
26
+ "linear_attention",
27
+ "linear_attention",
28
+ "full_attention",
29
+ "linear_attention",
30
+ "linear_attention",
31
+ "linear_attention",
32
+ "full_attention",
33
+ "linear_attention",
34
+ "linear_attention",
35
+ "linear_attention",
36
+ "full_attention",
37
+ "linear_attention",
38
+ "linear_attention",
39
+ "linear_attention",
40
+ "full_attention",
41
+ "linear_attention",
42
+ "linear_attention",
43
+ "linear_attention",
44
+ "full_attention",
45
+ "linear_attention",
46
+ "linear_attention",
47
+ "linear_attention",
48
+ "full_attention",
49
+ "linear_attention",
50
+ "linear_attention",
51
+ "linear_attention",
52
+ "full_attention",
53
+ "linear_attention",
54
+ "linear_attention",
55
+ "linear_attention",
56
+ "full_attention",
57
+ "linear_attention",
58
+ "linear_attention",
59
+ "linear_attention",
60
+ "full_attention"
61
+ ],
62
+ "linear_conv_kernel_dim": 4,
63
+ "linear_key_head_dim": 128,
64
+ "linear_num_key_heads": 16,
65
+ "linear_num_value_heads": 32,
66
+ "linear_value_head_dim": 128,
67
+ "mamba_ssm_dtype": "float32",
68
+ "max_position_embeddings": 262144,
69
+ "model_type": "qwen3_5_moe_text",
70
+ "moe_intermediate_size": 512,
71
+ "mtp_num_hidden_layers": 1,
72
+ "mtp_use_dedicated_embeddings": false,
73
+ "num_attention_heads": 16,
74
+ "num_experts": 256,
75
+ "num_experts_per_tok": 8,
76
+ "num_hidden_layers": 40,
77
+ "num_key_value_heads": 2,
78
+ "output_router_logits": false,
79
+ "pad_token_id": null,
80
+ "partial_rotary_factor": 0.25,
81
+ "rms_norm_eps": 1e-06,
82
+ "rope_parameters": {
83
+ "mrope_interleaved": true,
84
+ "mrope_section": [
85
+ 11,
86
+ 11,
87
+ 10
88
+ ],
89
+ "partial_rotary_factor": 0.25,
90
+ "rope_theta": 10000000,
91
+ "rope_type": "default"
92
+ },
93
+ "router_aux_loss_coef": 0.001,
94
+ "shared_expert_intermediate_size": 512,
95
+ "tie_word_embeddings": false,
96
+ "use_cache": true,
97
+ "vocab_size": 248320
98
+ },
99
+ "tie_word_embeddings": false,
100
+ "transformers_version": "5.2.0",
101
+ "video_token_id": 248057,
102
+ "vision_config": {
103
+ "deepstack_visual_indexes": [],
104
+ "depth": 27,
105
+ "dtype": "bfloat16",
106
+ "hidden_act": "gelu_pytorch_tanh",
107
+ "hidden_size": 1152,
108
+ "in_channels": 3,
109
+ "initializer_range": 0.02,
110
+ "intermediate_size": 4304,
111
+ "model_type": "qwen3_5_moe",
112
+ "num_heads": 16,
113
+ "num_position_embeddings": 2304,
114
+ "out_hidden_size": 2048,
115
+ "patch_size": 16,
116
+ "spatial_merge_size": 2,
117
+ "temporal_patch_size": 2
118
+ },
119
+ "vision_end_token_id": 248054,
120
+ "vision_start_token_id": 248053
121
+ }
examples/requirements.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ git+https://github.com/rkazants/optimum-intel.git@support_qwen3_5
2
+ --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
3
+ openvino
4
+ openvino-tokenizers
5
+ nncf
6
+ transformers==5.2.0
7
+ torch
8
+ pillow
9
+ requests
10
+ torchvision
11
+ opencv-python
12
+ huggingface-hub
examples/run_qwen36_vlm_openvino.py ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+ from io import BytesIO
3
+ import argparse
4
+ import requests
5
+ import torch
6
+ from PIL import Image
7
+
8
+ from transformers import AutoProcessor
9
+
10
+ try:
11
+ from optimum.intel import OVModelForVisualCausalLM
12
+ except ImportError:
13
+ from optimum.intel.openvino import OVModelForVisualCausalLM
14
+
15
+
16
+ def load_image(path_or_url: str) -> Image.Image:
17
+ path_or_url = str(path_or_url)
18
+
19
+ if path_or_url.startswith(("http://", "https://")):
20
+ response = requests.get(path_or_url, timeout=30)
21
+ response.raise_for_status()
22
+ return Image.open(BytesIO(response.content)).convert("RGB")
23
+
24
+ return Image.open(path_or_url).convert("RGB")
25
+
26
+
27
+ def main() -> None:
28
+ parser = argparse.ArgumentParser()
29
+
30
+ parser.add_argument(
31
+ "--model-dir",
32
+ default=".",
33
+ help="Path to the OpenVINO-converted Qwen3.6 model directory.",
34
+ )
35
+
36
+ parser.add_argument(
37
+ "--device",
38
+ default="CPU",
39
+ help="OpenVINO device, for example CPU, GPU, GPU.0, or AUTO.",
40
+ )
41
+
42
+ parser.add_argument(
43
+ "--max-new-tokens",
44
+ type=int,
45
+ default=64,
46
+ help="Maximum number of newly generated tokens.",
47
+ )
48
+
49
+ parser.add_argument(
50
+ "--image",
51
+ default="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG",
52
+ help="Image path or image URL.",
53
+ )
54
+
55
+ parser.add_argument(
56
+ "--prompt",
57
+ default="What animal is on the candy? Answer in one sentence.",
58
+ help="Prompt for the image.",
59
+ )
60
+
61
+ args = parser.parse_args()
62
+
63
+ model_dir = Path(args.model_dir)
64
+
65
+ if not model_dir.exists():
66
+ raise FileNotFoundError(f"Model directory not found: {model_dir}")
67
+
68
+ print("Using model:", model_dir)
69
+ print("Using device:", args.device)
70
+
71
+ processor = AutoProcessor.from_pretrained(
72
+ model_dir,
73
+ trust_remote_code=True,
74
+ )
75
+
76
+ model = OVModelForVisualCausalLM.from_pretrained(
77
+ model_dir,
78
+ device=args.device,
79
+ trust_remote_code=True,
80
+ )
81
+
82
+ image = load_image(args.image)
83
+
84
+ messages = [
85
+ {
86
+ "role": "user",
87
+ "content": [
88
+ {"type": "image", "image": image},
89
+ {"type": "text", "text": args.prompt},
90
+ ],
91
+ }
92
+ ]
93
+
94
+ inputs = processor.apply_chat_template(
95
+ messages,
96
+ add_generation_prompt=True,
97
+ tokenize=True,
98
+ return_dict=True,
99
+ return_tensors="pt",
100
+ )
101
+
102
+ with torch.no_grad():
103
+ output_ids = model.generate(
104
+ **inputs,
105
+ max_new_tokens=args.max_new_tokens,
106
+ do_sample=False,
107
+ )
108
+
109
+ prompt_len = inputs["input_ids"].shape[-1]
110
+ generated_ids = output_ids[0][prompt_len:]
111
+
112
+ answer = processor.decode(
113
+ generated_ids,
114
+ skip_special_tokens=True,
115
+ ).strip()
116
+
117
+ print("\nGenerated answer:")
118
+ print(answer)
119
+
120
+
121
+ if __name__ == "__main__":
122
+ main()
generation_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 248044,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 248046,
6
+ 248044
7
+ ],
8
+ "pad_token_id": 248044,
9
+ "temperature": 1.0,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.2.0"
13
+ }
openvino_config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dtype": "int4",
3
+ "input_info": null,
4
+ "optimum_version": "2.1.0.dev0",
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": "Qwen/Qwen3.6-35B-A3B",
15
+ "quantization_configs": {
16
+ "lm_model": {
17
+ "_dataset_kwargs": {},
18
+ "all_layers": null,
19
+ "backup_precision": null,
20
+ "bits": 4,
21
+ "dataset": null,
22
+ "dq_group_size": null,
23
+ "dtype": "int4",
24
+ "gptq": null,
25
+ "group_size": 128,
26
+ "group_size_fallback": null,
27
+ "ignored_scope": null,
28
+ "lora_correction": null,
29
+ "num_samples": null,
30
+ "processor": "Qwen/Qwen3.6-35B-A3B",
31
+ "quant_method": "default",
32
+ "ratio": 1.0,
33
+ "scale_estimation": null,
34
+ "sensitivity_metric": null,
35
+ "statistics_path": null,
36
+ "sym": false,
37
+ "tokenizer": "Qwen/Qwen3.6-35B-A3B"
38
+ }
39
+ },
40
+ "tokenizer": "Qwen/Qwen3.6-35B-A3B"
41
+ },
42
+ "save_onnx_model": false,
43
+ "transformers_version": "5.2.0"
44
+ }
openvino_detokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48fc2c6a7a1056994982911eb9695826acef933c3d742364c56d16317a0b2a79
3
+ size 3828184
openvino_detokenizer.xml ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="detokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_489734" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="Parameter_489734">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="Convert_489769" 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_489736" type="Const" version="opset1">
29
+ <data element_type="i32" shape="248077" offset="0" size="992308" />
30
+ <output>
31
+ <port id="0" precision="I32">
32
+ <dim>248077</dim>
33
+ </port>
34
+ </output>
35
+ </layer>
36
+ <layer id="3" name="Constant_489738" type="Const" version="opset1">
37
+ <data element_type="i32" shape="248077" offset="992308" size="992308" />
38
+ <output>
39
+ <port id="0" precision="I32">
40
+ <dim>248077</dim>
41
+ </port>
42
+ </output>
43
+ </layer>
44
+ <layer id="4" name="Constant_489740" type="Const" version="opset1">
45
+ <data element_type="u8" shape="1843484" offset="1984616" size="1843484" />
46
+ <output>
47
+ <port id="0" precision="U8">
48
+ <dim>1843484</dim>
49
+ </port>
50
+ </output>
51
+ </layer>
52
+ <layer id="5" name="Slice_489745" type="Const" version="opset1">
53
+ <data element_type="i32" shape="21" offset="3828100" size="84" />
54
+ <output>
55
+ <port id="0" precision="I32">
56
+ <dim>21</dim>
57
+ </port>
58
+ </output>
59
+ </layer>
60
+ <layer id="6" name="VocabDecoder_489747" 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>248077</dim>
69
+ </port>
70
+ <port id="2" precision="I32">
71
+ <dim>248077</dim>
72
+ </port>
73
+ <port id="3" precision="U8">
74
+ <dim>1843484</dim>
75
+ </port>
76
+ <port id="4" precision="I32">
77
+ <dim>21</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_489748" 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_489749" 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_489750" 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_489751,string_output">
161
+ <dim>-1</dim>
162
+ </port>
163
+ </output>
164
+ </layer>
165
+ <layer id="10" name="Result_489751" type="Result" version="opset1" output_names="Result_489751,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.0-21860-7be1ffd093f" />
194
+ <add_attention_mask value="True" />
195
+ <add_prefix_space />
196
+ <add_special_tokens value="True" />
197
+ <chat_template value="{%- set image_count = namespace(value=0) %}&#10;{%- set video_count = namespace(value=0) %}&#10;{%- macro render_content(content, do_vision_count, is_system_content=false) %}&#10; {%- if content is string %}&#10; {{- content }}&#10; {%- elif content is iterable and content is not mapping %}&#10; {%- for item in content %}&#10; {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}&#10; {%- if is_system_content %}&#10; {{- raise_exception('System message cannot contain images.') }}&#10; {%- endif %}&#10; {%- if do_vision_count %}&#10; {%- set image_count.value = image_count.value + 1 %}&#10; {%- endif %}&#10; {%- if add_vision_id %}&#10; {{- 'Picture ' ~ image_count.value ~ ': ' }}&#10; {%- endif %}&#10; {{- '&lt;|vision_start|>&lt;|image_pad|>&lt;|vision_end|>' }}&#10; {%- elif 'video' in item or item.type == 'video' %}&#10; {%- if is_system_content %}&#10; {{- raise_exception('System message cannot contain videos.') }}&#10; {%- endif %}&#10; {%- if do_vision_count %}&#10; {%- set video_count.value = video_count.value + 1 %}&#10; {%- endif %}&#10; {%- if add_vision_id %}&#10; {{- 'Video ' ~ video_count.value ~ ': ' }}&#10; {%- endif %}&#10; {{- '&lt;|vision_start|>&lt;|video_pad|>&lt;|vision_end|>' }}&#10; {%- elif 'text' in item %}&#10; {{- item.text }}&#10; {%- else %}&#10; {{- raise_exception('Unexpected item type in content.') }}&#10; {%- endif %}&#10; {%- endfor %}&#10; {%- elif content is none or content is undefined %}&#10; {{- '' }}&#10; {%- else %}&#10; {{- raise_exception('Unexpected content type.') }}&#10; {%- endif %}&#10;{%- endmacro %}&#10;{%- if not messages %}&#10; {{- raise_exception('No messages provided.') }}&#10;{%- endif %}&#10;{%- if tools and tools is iterable and tools is not mapping %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {{- &quot;# Tools\n\nYou have access to the following functions:\n\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>&quot; }}&#10; {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n&lt;tool_call>\n&lt;function=example_function_name>\n&lt;parameter=example_parameter_1>\nvalue_1\n&lt;/parameter>\n&lt;parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n&lt;/parameter>\n&lt;/function>\n&lt;/tool_call>\n\n&lt;IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner &lt;function=...>&lt;/function> block must be nested within &lt;tool_call>&lt;/tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n&lt;/IMPORTANT>' }}&#10; {%- if messages[0].role == 'system' %}&#10; {%- set content = render_content(messages[0].content, false, true)|trim %}&#10; {%- if content %}&#10; {{- '\n\n' + content }}&#10; {%- endif %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {%- set content = render_content(messages[0].content, false, true)|trim %}&#10; {{- '&lt;|im_start|>system\n' + 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; %}&#10; {%- set content = render_content(message.content, false)|trim %}&#10; {%- if not(content.startswith('&lt;tool_response>') and content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if ns.multi_step_tool %}&#10; {{- raise_exception('No user query found in messages.') }}&#10;{%- endif %}&#10;{%- for message in messages %}&#10; {%- set content = render_content(message.content, true)|trim %}&#10; {%- if message.role == &quot;system&quot; %}&#10; {%- if not loop.first %}&#10; {{- raise_exception('System message must be at the beginning.') }}&#10; {%- endif %}&#10; {%- elif message.role == &quot;user&quot; %}&#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; {%- set reasoning_content = reasoning_content|trim %}&#10; {%- if (preserve_thinking is defined and preserve_thinking is true) or (loop.index0 > ns.last_query_index) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content + '\n&lt;/think>\n\n' + content }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if tool_call.function is defined %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {%- if loop.first %}&#10; {%- if content|trim %}&#10; {{- '\n\n&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- else %}&#10; {{- '&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '\n&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- endif %}&#10; {%- if tool_call.arguments is defined %}&#10; {%- for args_name, args_value in tool_call.arguments|items %}&#10; {{- '&lt;parameter=' + args_name + '>\n' }}&#10; {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}&#10; {{- args_value }}&#10; {{- '\n&lt;/parameter>\n' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;/function>\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.previtem and loop.previtem.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 not loop.last and loop.nextitem.role != &quot;tool&quot; %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif loop.last %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- raise_exception('Unexpected message role.') }}&#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; {%- else %}&#10; {{- '&lt;think>\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
198
+ <clean_up_tokenization_spaces />
199
+ <detokenizer_input_type value="i64" />
200
+ <eos_token_id value="248046" />
201
+ <handle_special_tokens_with_re />
202
+ <max_length />
203
+ <number_of_inputs value="1" />
204
+ <openvino_tokenizers_version value="2026.2.0.0-677-b5eb36f08b1" />
205
+ <openvino_version value="2026.2.0-21860-7be1ffd093f" />
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.tokenization_utils_tokenizers.TokenizersBackend'>" />
208
+ <pad_token_id value="248044" />
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
+ <sentencepiece_version value="0.2.1" />
211
+ <skip_special_tokens value="True" />
212
+ <streaming_detokenizer value="False" />
213
+ <tokenizer_output_type value="i64" />
214
+ <tokenizers_version value="0.22.2" />
215
+ <transformers_version value="5.2.0" />
216
+ <use_max_padding value="False" />
217
+ <use_sentencepiece_backend value="False" />
218
+ <utf8_replace_mode value="replace" />
219
+ <with_detokenizer value="True" />
220
+ </rt_info>
221
+ </net>
openvino_language_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7ffdcd60a3cb7332c5eabd3a4d9ec2c6c80498d42b62e722b5cb19d93fde9f29
3
+ size 17989975554
openvino_language_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
openvino_text_embeddings_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b9957db96d6aca2a8cb0e193cf970f801dbbea183cfd01bf04e649405d9b8b51
3
+ size 509056004
openvino_text_embeddings_model.xml ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="Model69" version="11">
3
+ <layers>
4
+ <layer id="0" name="input" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="input">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="self.weight" type="Const" version="opset1">
14
+ <data element_type="i8" shape="248320, 2048" offset="0" size="508559360" />
15
+ <output>
16
+ <port id="0" precision="I8">
17
+ <dim>248320</dim>
18
+ <dim>2048</dim>
19
+ </port>
20
+ </output>
21
+ </layer>
22
+ <layer id="2" name="Convert_3160785" type="Convert" version="opset1">
23
+ <data destination_type="f16" />
24
+ <input>
25
+ <port id="0" precision="I8">
26
+ <dim>248320</dim>
27
+ <dim>2048</dim>
28
+ </port>
29
+ </input>
30
+ <output>
31
+ <port id="1" precision="FP16">
32
+ <dim>248320</dim>
33
+ <dim>2048</dim>
34
+ </port>
35
+ </output>
36
+ </layer>
37
+ <layer id="3" name="self.weight/scale" type="Const" version="opset1">
38
+ <data element_type="f16" shape="248320, 1" offset="508559360" size="496640" />
39
+ <output>
40
+ <port id="0" precision="FP16">
41
+ <dim>248320</dim>
42
+ <dim>1</dim>
43
+ </port>
44
+ </output>
45
+ </layer>
46
+ <layer id="4" name="self.weight/fq_weights_0" type="Multiply" version="opset1">
47
+ <data auto_broadcast="numpy" />
48
+ <input>
49
+ <port id="0" precision="FP16">
50
+ <dim>248320</dim>
51
+ <dim>2048</dim>
52
+ </port>
53
+ <port id="1" precision="FP16">
54
+ <dim>248320</dim>
55
+ <dim>1</dim>
56
+ </port>
57
+ </input>
58
+ <output>
59
+ <port id="2" precision="FP16">
60
+ <dim>248320</dim>
61
+ <dim>2048</dim>
62
+ </port>
63
+ </output>
64
+ </layer>
65
+ <layer id="5" name="ov_ext::embedding/Convert" type="Convert" version="opset1">
66
+ <data destination_type="f32" />
67
+ <rt_info>
68
+ <attribute name="decompression" version="0" />
69
+ </rt_info>
70
+ <input>
71
+ <port id="0" precision="FP16">
72
+ <dim>248320</dim>
73
+ <dim>2048</dim>
74
+ </port>
75
+ </input>
76
+ <output>
77
+ <port id="1" precision="FP32">
78
+ <dim>248320</dim>
79
+ <dim>2048</dim>
80
+ </port>
81
+ </output>
82
+ </layer>
83
+ <layer id="6" name="ov_ext::embedding/Convert_1" type="Convert" version="opset1">
84
+ <data destination_type="i32" />
85
+ <input>
86
+ <port id="0" precision="I64">
87
+ <dim>-1</dim>
88
+ <dim>-1</dim>
89
+ </port>
90
+ </input>
91
+ <output>
92
+ <port id="1" precision="I32">
93
+ <dim>-1</dim>
94
+ <dim>-1</dim>
95
+ </port>
96
+ </output>
97
+ </layer>
98
+ <layer id="7" name="ov_ext::embedding/Constant" type="Const" version="opset1">
99
+ <data element_type="i32" shape="" offset="509056000" size="4" />
100
+ <output>
101
+ <port id="0" precision="I32" />
102
+ </output>
103
+ </layer>
104
+ <layer id="8" name="ov_ext::embedding/Gather" type="Gather" version="opset8">
105
+ <data batch_dims="0" />
106
+ <input>
107
+ <port id="0" precision="FP32">
108
+ <dim>248320</dim>
109
+ <dim>2048</dim>
110
+ </port>
111
+ <port id="1" precision="I32">
112
+ <dim>-1</dim>
113
+ <dim>-1</dim>
114
+ </port>
115
+ <port id="2" precision="I32" />
116
+ </input>
117
+ <output>
118
+ <port id="3" precision="FP32" names="inputs_embeds">
119
+ <dim>-1</dim>
120
+ <dim>-1</dim>
121
+ <dim>2048</dim>
122
+ </port>
123
+ </output>
124
+ </layer>
125
+ <layer id="9" name="Result_485002" type="Result" version="opset1" output_names="inputs_embeds">
126
+ <input>
127
+ <port id="0" precision="FP32">
128
+ <dim>-1</dim>
129
+ <dim>-1</dim>
130
+ <dim>2048</dim>
131
+ </port>
132
+ </input>
133
+ </layer>
134
+ </layers>
135
+ <edges>
136
+ <edge from-layer="0" from-port="0" to-layer="6" to-port="0" />
137
+ <edge from-layer="1" from-port="0" to-layer="2" to-port="0" />
138
+ <edge from-layer="2" from-port="1" to-layer="4" to-port="0" />
139
+ <edge from-layer="3" from-port="0" to-layer="4" to-port="1" />
140
+ <edge from-layer="4" from-port="2" to-layer="5" to-port="0" />
141
+ <edge from-layer="5" from-port="1" to-layer="8" to-port="0" />
142
+ <edge from-layer="6" from-port="1" to-layer="8" to-port="1" />
143
+ <edge from-layer="7" from-port="0" to-layer="8" to-port="2" />
144
+ <edge from-layer="8" from-port="3" to-layer="9" to-port="0" />
145
+ </edges>
146
+ <rt_info>
147
+ <info name="OpenVINO Runtime" value="2026.2.0-21860-7be1ffd093f" />
148
+ <Runtime_version value="2026.2.0-21860-7be1ffd093f" />
149
+ <conversion_parameters>
150
+ <framework value="pytorch" />
151
+ <is_python_object value="True" />
152
+ </conversion_parameters>
153
+ <nncf>
154
+ <friendly_names_were_updated value="True" />
155
+ <version value="3.1.0" />
156
+ <weight_compression>
157
+ <advanced_parameters value="{'statistics_path': None, 'lora_adapter_rank': 256, 'group_size_fallback_mode': 'error', 'min_adjusted_group_size': 32, 'awq_params': {'subset_size': 32, 'percent_to_apply': 0.002, 'alpha_min': 0.0, 'alpha_max': 1.0, 'steps': 100, 'prefer_data_aware_scaling': True}, 'scale_estimation_params': {'subset_size': 64, 'initial_steps': 5, 'scale_steps': 5, 'weight_penalty': -1.0}, 'gptq_params': {'damp_percent': 0.1, 'block_size': 128, 'subset_size': 128}, 'lora_correction_params': {'adapter_rank': 8, 'num_iterations': 3, 'apply_regularization': True, 'subset_size': 128, 'use_int8_adapters': True}, 'backend_params': {}, 'codebook': None, 'adaptive_codebook_params': {'value_type': 'f8e4m3', 'across_blocks': False, 'num_elements': 16}}" />
158
+ <all_layers value="False" />
159
+ <awq value="False" />
160
+ <backup_mode value="int8_asym" />
161
+ <compression_format value="dequantize" />
162
+ <gptq value="False" />
163
+ <group_size value="-1" />
164
+ <ignored_scope value="[]" />
165
+ <lora_correction value="False" />
166
+ <mode value="int8_sym" />
167
+ <ratio value="1.0" />
168
+ <scale_estimation value="False" />
169
+ <sensitivity_metric value="weight_quantization_error" />
170
+ </weight_compression>
171
+ </nncf>
172
+ <optimum>
173
+ <nncf_version value="3.1.0" />
174
+ <optimum_intel_version value="1.27.0.dev0+ff1fb6d" />
175
+ <optimum_version value="2.1.0.dev0" />
176
+ <pytorch_version value="2.11.0" />
177
+ <transformers_version value="5.2.0" />
178
+ </optimum>
179
+ </rt_info>
180
+ </net>
openvino_tokenizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ea3fcce2251902efffbc774cbc8ffff69e981412347a1e510e430c6557a63701
3
+ size 9631154
openvino_tokenizer.xml ADDED
@@ -0,0 +1,772 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="tokenizer" version="11">
3
+ <layers>
4
+ <layer id="0" name="Parameter_489606" type="Parameter" version="opset1">
5
+ <data shape="?" element_type="string" />
6
+ <output>
7
+ <port id="0" precision="STRING" names="Parameter_489606">
8
+ <dim>-1</dim>
9
+ </port>
10
+ </output>
11
+ </layer>
12
+ <layer id="1" name="Constant_489612" 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_489607" 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_489608" 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_489609" 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_489610" 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_489611" 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_489613" 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_489614" 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_489615" 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_489616" 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_489617" 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_489618" 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_489619" 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_489683" type="Const" version="opset1">
135
+ <data element_type="u8" shape="588" offset="16" size="588" />
136
+ <output>
137
+ <port id="0" precision="U8">
138
+ <dim>588</dim>
139
+ </port>
140
+ </output>
141
+ </layer>
142
+ <layer id="15" name="SpecialTokensSplit_489684" 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>588</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_489685" 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_489687" type="Const" version="opset1">
216
+ <data element_type="u8" shape="122" offset="604" size="122" />
217
+ <output>
218
+ <port id="0" precision="U8">
219
+ <dim>122</dim>
220
+ </port>
221
+ </output>
222
+ </layer>
223
+ <layer id="18" name="RegexSplit_489688" 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>122</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_489690" type="Const" version="opset1">
270
+ <data element_type="i32" shape="248077" offset="726" size="992308" />
271
+ <output>
272
+ <port id="0" precision="I32">
273
+ <dim>248077</dim>
274
+ </port>
275
+ </output>
276
+ </layer>
277
+ <layer id="20" name="Constant_489692" type="Const" version="opset1">
278
+ <data element_type="i32" shape="248077" offset="993034" size="992308" />
279
+ <output>
280
+ <port id="0" precision="I32">
281
+ <dim>248077</dim>
282
+ </port>
283
+ </output>
284
+ </layer>
285
+ <layer id="21" name="Constant_489694" type="Const" version="opset1">
286
+ <data element_type="u8" shape="1843484" offset="1985342" size="1843484" />
287
+ <output>
288
+ <port id="0" precision="U8">
289
+ <dim>1843484</dim>
290
+ </port>
291
+ </output>
292
+ </layer>
293
+ <layer id="22" name="Constant_489702" type="Const" version="opset1">
294
+ <data element_type="i32" shape="247587" offset="3828826" size="990348" />
295
+ <output>
296
+ <port id="0" precision="I32">
297
+ <dim>247587</dim>
298
+ </port>
299
+ </output>
300
+ </layer>
301
+ <layer id="23" name="Constant_489704" type="Const" version="opset1">
302
+ <data element_type="i32" shape="247587" offset="4819174" size="990348" />
303
+ <output>
304
+ <port id="0" precision="I32">
305
+ <dim>247587</dim>
306
+ </port>
307
+ </output>
308
+ </layer>
309
+ <layer id="24" name="Constant_489706" type="Const" version="opset1">
310
+ <data element_type="u8" shape="938547" offset="5809522" size="938547" />
311
+ <output>
312
+ <port id="0" precision="U8">
313
+ <dim>938547</dim>
314
+ </port>
315
+ </output>
316
+ </layer>
317
+ <layer id="25" name="Constant_489708" type="Const" version="opset1">
318
+ <data element_type="i32" shape="247587" offset="6748069" size="990348" />
319
+ <output>
320
+ <port id="0" precision="I32">
321
+ <dim>247587</dim>
322
+ </port>
323
+ </output>
324
+ </layer>
325
+ <layer id="26" name="Constant_489710" type="Const" version="opset1">
326
+ <data element_type="i32" shape="247587" offset="7738417" size="990348" />
327
+ <output>
328
+ <port id="0" precision="I32">
329
+ <dim>247587</dim>
330
+ </port>
331
+ </output>
332
+ </layer>
333
+ <layer id="27" name="Constant_489712" type="Const" version="opset1">
334
+ <data element_type="u8" shape="901525" offset="8728765" size="901525" />
335
+ <output>
336
+ <port id="0" precision="U8">
337
+ <dim>901525</dim>
338
+ </port>
339
+ </output>
340
+ </layer>
341
+ <layer id="28" name="Constant_489696" type="Const" version="opset1">
342
+ <data element_type="i32" shape="33" offset="9630290" size="132" />
343
+ <output>
344
+ <port id="0" precision="I32">
345
+ <dim>33</dim>
346
+ </port>
347
+ </output>
348
+ </layer>
349
+ <layer id="29" name="Constant_489698" type="Const" version="opset1">
350
+ <data element_type="i32" shape="33" offset="9630422" size="132" />
351
+ <output>
352
+ <port id="0" precision="I32">
353
+ <dim>33</dim>
354
+ </port>
355
+ </output>
356
+ </layer>
357
+ <layer id="30" name="Constant_489700" type="Const" version="opset1">
358
+ <data element_type="u8" shape="439" offset="9630554" size="439" />
359
+ <output>
360
+ <port id="0" precision="U8">
361
+ <dim>439</dim>
362
+ </port>
363
+ </output>
364
+ </layer>
365
+ <layer id="31" name="Constant_489713" type="Const" version="opset1">
366
+ <data element_type="i32" shape="33" offset="9630993" size="132" />
367
+ <output>
368
+ <port id="0" precision="I32">
369
+ <dim>33</dim>
370
+ </port>
371
+ </output>
372
+ </layer>
373
+ <layer id="32" name="BPETokenizer_489714" type="BPETokenizer" version="extension">
374
+ <data unk_token="" fuse_unk="false" suffix_indicator="" end_suffix="" byte_fallback="false" cache_capacity="49608" />
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>248077</dim>
393
+ </port>
394
+ <port id="6" precision="I32">
395
+ <dim>248077</dim>
396
+ </port>
397
+ <port id="7" precision="U8">
398
+ <dim>1843484</dim>
399
+ </port>
400
+ <port id="8" precision="I32">
401
+ <dim>247587</dim>
402
+ </port>
403
+ <port id="9" precision="I32">
404
+ <dim>247587</dim>
405
+ </port>
406
+ <port id="10" precision="U8">
407
+ <dim>938547</dim>
408
+ </port>
409
+ <port id="11" precision="I32">
410
+ <dim>247587</dim>
411
+ </port>
412
+ <port id="12" precision="I32">
413
+ <dim>247587</dim>
414
+ </port>
415
+ <port id="13" precision="U8">
416
+ <dim>901525</dim>
417
+ </port>
418
+ <port id="14" precision="I32">
419
+ <dim>33</dim>
420
+ </port>
421
+ <port id="15" precision="I32">
422
+ <dim>33</dim>
423
+ </port>
424
+ <port id="16" precision="U8">
425
+ <dim>439</dim>
426
+ </port>
427
+ <port id="17" precision="I32">
428
+ <dim>33</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_489715" type="Const" version="opset1">
444
+ <data element_type="i32" shape="" offset="9631125" size="4" />
445
+ <output>
446
+ <port id="0" precision="I32" />
447
+ </output>
448
+ </layer>
449
+ <layer id="34" name="Constant_489717" type="Const" version="opset1">
450
+ <data element_type="u8" shape="4" offset="9631129" 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_489719" type="Const" version="opset1">
458
+ <data element_type="u8" shape="13" offset="9631133" 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_489720" 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_489721" type="Const" version="opset1">
498
+ <data element_type="i32" shape="1" offset="9631146" 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_489722" 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_489723" 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_489724" type="Const" version="opset1">
558
+ <data element_type="i32" shape="" offset="9631146" size="4" />
559
+ <output>
560
+ <port id="0" precision="I32" />
561
+ </output>
562
+ </layer>
563
+ <layer id="41" name="ReduceMax_489725" 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_489726" type="Const" version="opset1">
576
+ <data element_type="i32" shape="" offset="9631150" size="4" />
577
+ <output>
578
+ <port id="0" precision="I32" />
579
+ </output>
580
+ </layer>
581
+ <layer id="43" name="RaggedToDense_489727" 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_489728" 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_489728.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_489727.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_489731" 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_489733" 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.0-21860-7be1ffd093f" />
745
+ <add_attention_mask value="True" />
746
+ <add_prefix_space />
747
+ <add_special_tokens value="True" />
748
+ <chat_template value="{%- set image_count = namespace(value=0) %}&#10;{%- set video_count = namespace(value=0) %}&#10;{%- macro render_content(content, do_vision_count, is_system_content=false) %}&#10; {%- if content is string %}&#10; {{- content }}&#10; {%- elif content is iterable and content is not mapping %}&#10; {%- for item in content %}&#10; {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}&#10; {%- if is_system_content %}&#10; {{- raise_exception('System message cannot contain images.') }}&#10; {%- endif %}&#10; {%- if do_vision_count %}&#10; {%- set image_count.value = image_count.value + 1 %}&#10; {%- endif %}&#10; {%- if add_vision_id %}&#10; {{- 'Picture ' ~ image_count.value ~ ': ' }}&#10; {%- endif %}&#10; {{- '&lt;|vision_start|>&lt;|image_pad|>&lt;|vision_end|>' }}&#10; {%- elif 'video' in item or item.type == 'video' %}&#10; {%- if is_system_content %}&#10; {{- raise_exception('System message cannot contain videos.') }}&#10; {%- endif %}&#10; {%- if do_vision_count %}&#10; {%- set video_count.value = video_count.value + 1 %}&#10; {%- endif %}&#10; {%- if add_vision_id %}&#10; {{- 'Video ' ~ video_count.value ~ ': ' }}&#10; {%- endif %}&#10; {{- '&lt;|vision_start|>&lt;|video_pad|>&lt;|vision_end|>' }}&#10; {%- elif 'text' in item %}&#10; {{- item.text }}&#10; {%- else %}&#10; {{- raise_exception('Unexpected item type in content.') }}&#10; {%- endif %}&#10; {%- endfor %}&#10; {%- elif content is none or content is undefined %}&#10; {{- '' }}&#10; {%- else %}&#10; {{- raise_exception('Unexpected content type.') }}&#10; {%- endif %}&#10;{%- endmacro %}&#10;{%- if not messages %}&#10; {{- raise_exception('No messages provided.') }}&#10;{%- endif %}&#10;{%- if tools and tools is iterable and tools is not mapping %}&#10; {{- '&lt;|im_start|>system\n' }}&#10; {{- &quot;# Tools\n\nYou have access to the following functions:\n\n&lt;tools>&quot; }}&#10; {%- for tool in tools %}&#10; {{- &quot;\n&quot; }}&#10; {{- tool | tojson }}&#10; {%- endfor %}&#10; {{- &quot;\n&lt;/tools>&quot; }}&#10; {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n&lt;tool_call>\n&lt;function=example_function_name>\n&lt;parameter=example_parameter_1>\nvalue_1\n&lt;/parameter>\n&lt;parameter=example_parameter_2>\nThis is the value for the second parameter\nthat can span\nmultiple lines\n&lt;/parameter>\n&lt;/function>\n&lt;/tool_call>\n\n&lt;IMPORTANT>\nReminder:\n- Function calls MUST follow the specified format: an inner &lt;function=...>&lt;/function> block must be nested within &lt;tool_call>&lt;/tool_call> XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n&lt;/IMPORTANT>' }}&#10; {%- if messages[0].role == 'system' %}&#10; {%- set content = render_content(messages[0].content, false, true)|trim %}&#10; {%- if content %}&#10; {{- '\n\n' + content }}&#10; {%- endif %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10;{%- else %}&#10; {%- if messages[0].role == 'system' %}&#10; {%- set content = render_content(messages[0].content, false, true)|trim %}&#10; {{- '&lt;|im_start|>system\n' + 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; %}&#10; {%- set content = render_content(message.content, false)|trim %}&#10; {%- if not(content.startswith('&lt;tool_response>') and content.endswith('&lt;/tool_response>')) %}&#10; {%- set ns.multi_step_tool = false %}&#10; {%- set ns.last_query_index = index %}&#10; {%- endif %}&#10; {%- endif %}&#10;{%- endfor %}&#10;{%- if ns.multi_step_tool %}&#10; {{- raise_exception('No user query found in messages.') }}&#10;{%- endif %}&#10;{%- for message in messages %}&#10; {%- set content = render_content(message.content, true)|trim %}&#10; {%- if message.role == &quot;system&quot; %}&#10; {%- if not loop.first %}&#10; {{- raise_exception('System message must be at the beginning.') }}&#10; {%- endif %}&#10; {%- elif message.role == &quot;user&quot; %}&#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; {%- set reasoning_content = reasoning_content|trim %}&#10; {%- if (preserve_thinking is defined and preserve_thinking is true) or (loop.index0 > ns.last_query_index) %}&#10; {{- '&lt;|im_start|>' + message.role + '\n&lt;think>\n' + reasoning_content + '\n&lt;/think>\n\n' + content }}&#10; {%- else %}&#10; {{- '&lt;|im_start|>' + message.role + '\n' + content }}&#10; {%- endif %}&#10; {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}&#10; {%- for tool_call in message.tool_calls %}&#10; {%- if tool_call.function is defined %}&#10; {%- set tool_call = tool_call.function %}&#10; {%- endif %}&#10; {%- if loop.first %}&#10; {%- if content|trim %}&#10; {{- '\n\n&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- else %}&#10; {{- '&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- '\n&lt;tool_call>\n&lt;function=' + tool_call.name + '>\n' }}&#10; {%- endif %}&#10; {%- if tool_call.arguments is defined %}&#10; {%- for args_name, args_value in tool_call.arguments|items %}&#10; {{- '&lt;parameter=' + args_name + '>\n' }}&#10; {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}&#10; {{- args_value }}&#10; {{- '\n&lt;/parameter>\n' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;/function>\n&lt;/tool_call>' }}&#10; {%- endfor %}&#10; {%- endif %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif message.role == &quot;tool&quot; %}&#10; {%- if loop.previtem and loop.previtem.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 not loop.last and loop.nextitem.role != &quot;tool&quot; %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- elif loop.last %}&#10; {{- '&lt;|im_end|>\n' }}&#10; {%- endif %}&#10; {%- else %}&#10; {{- raise_exception('Unexpected message role.') }}&#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; {%- else %}&#10; {{- '&lt;think>\n' }}&#10; {%- endif %}&#10;{%- endif %}" />
749
+ <clean_up_tokenization_spaces />
750
+ <detokenizer_input_type value="i64" />
751
+ <eos_token_id value="248046" />
752
+ <handle_special_tokens_with_re />
753
+ <max_length />
754
+ <number_of_inputs value="1" />
755
+ <openvino_tokenizers_version value="2026.2.0.0-677-b5eb36f08b1" />
756
+ <openvino_version value="2026.2.0-21860-7be1ffd093f" />
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.tokenization_utils_tokenizers.TokenizersBackend'>" />
759
+ <pad_token_id value="248044" />
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
+ <sentencepiece_version value="0.2.1" />
762
+ <skip_special_tokens value="True" />
763
+ <streaming_detokenizer value="False" />
764
+ <tokenizer_output_type value="i64" />
765
+ <tokenizers_version value="0.22.2" />
766
+ <transformers_version value="5.2.0" />
767
+ <use_max_padding value="False" />
768
+ <use_sentencepiece_backend value="False" />
769
+ <utf8_replace_mode value="replace" />
770
+ <with_detokenizer value="True" />
771
+ </rt_info>
772
+ </net>
openvino_vision_embeddings_merger_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a995b0d1c23a3247d580f74b491e82fc6fc023238d1248bf9fd1baa12d41b578
3
+ size 443361892
openvino_vision_embeddings_merger_model.xml ADDED
The diff for this file is too large to render. See raw diff
 
openvino_vision_embeddings_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:22d5ef784a6235cb837763e77638e8ace72b2d6001dc6347a7300c8310bd0b48
3
+ size 1776440
openvino_vision_embeddings_model.xml ADDED
@@ -0,0 +1,291 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="Model63" version="11">
3
+ <layers>
4
+ <layer id="0" name="hidden_states" type="Parameter" version="opset1">
5
+ <data shape="?,?" element_type="f32" />
6
+ <output>
7
+ <port id="0" precision="FP32" names="hidden_states">
8
+ <dim>-1</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="Constant_409129" type="Const" version="opset1">
14
+ <data element_type="i64" shape="5" offset="0" size="40" />
15
+ <output>
16
+ <port id="0" precision="I64">
17
+ <dim>5</dim>
18
+ </port>
19
+ </output>
20
+ </layer>
21
+ <layer id="2" name="aten::view/Reshape" type="Reshape" version="opset1">
22
+ <data special_zero="false" />
23
+ <input>
24
+ <port id="0" precision="FP32">
25
+ <dim>-1</dim>
26
+ <dim>-1</dim>
27
+ </port>
28
+ <port id="1" precision="I64">
29
+ <dim>5</dim>
30
+ </port>
31
+ </input>
32
+ <output>
33
+ <port id="2" precision="FP32" names="14,9,hidden_states_1,input">
34
+ <dim>-1</dim>
35
+ <dim>3</dim>
36
+ <dim>2</dim>
37
+ <dim>16</dim>
38
+ <dim>16</dim>
39
+ </port>
40
+ </output>
41
+ </layer>
42
+ <layer id="3" name="self.proj.weight" type="Const" version="opset1">
43
+ <data element_type="i8" shape="1152, 3, 2, 16, 16" offset="40" size="1769472" />
44
+ <output>
45
+ <port id="0" precision="I8">
46
+ <dim>1152</dim>
47
+ <dim>3</dim>
48
+ <dim>2</dim>
49
+ <dim>16</dim>
50
+ <dim>16</dim>
51
+ </port>
52
+ </output>
53
+ </layer>
54
+ <layer id="4" name="Convert_3165957" type="Convert" version="opset1">
55
+ <data destination_type="f16" />
56
+ <input>
57
+ <port id="0" precision="I8">
58
+ <dim>1152</dim>
59
+ <dim>3</dim>
60
+ <dim>2</dim>
61
+ <dim>16</dim>
62
+ <dim>16</dim>
63
+ </port>
64
+ </input>
65
+ <output>
66
+ <port id="1" precision="FP16">
67
+ <dim>1152</dim>
68
+ <dim>3</dim>
69
+ <dim>2</dim>
70
+ <dim>16</dim>
71
+ <dim>16</dim>
72
+ </port>
73
+ </output>
74
+ </layer>
75
+ <layer id="5" name="self.proj.weight/scale" type="Const" version="opset1">
76
+ <data element_type="f16" shape="1152, 1, 1, 1, 1" offset="1769512" size="2304" />
77
+ <output>
78
+ <port id="0" precision="FP16">
79
+ <dim>1152</dim>
80
+ <dim>1</dim>
81
+ <dim>1</dim>
82
+ <dim>1</dim>
83
+ <dim>1</dim>
84
+ </port>
85
+ </output>
86
+ </layer>
87
+ <layer id="6" name="self.proj.weight/fq_weights_1" type="Multiply" version="opset1">
88
+ <data auto_broadcast="numpy" />
89
+ <input>
90
+ <port id="0" precision="FP16">
91
+ <dim>1152</dim>
92
+ <dim>3</dim>
93
+ <dim>2</dim>
94
+ <dim>16</dim>
95
+ <dim>16</dim>
96
+ </port>
97
+ <port id="1" precision="FP16">
98
+ <dim>1152</dim>
99
+ <dim>1</dim>
100
+ <dim>1</dim>
101
+ <dim>1</dim>
102
+ <dim>1</dim>
103
+ </port>
104
+ </input>
105
+ <output>
106
+ <port id="2" precision="FP16">
107
+ <dim>1152</dim>
108
+ <dim>3</dim>
109
+ <dim>2</dim>
110
+ <dim>16</dim>
111
+ <dim>16</dim>
112
+ </port>
113
+ </output>
114
+ </layer>
115
+ <layer id="7" name="self.proj.weight/fq_weights_1/convert" type="Convert" version="opset1">
116
+ <data destination_type="f32" />
117
+ <input>
118
+ <port id="0" precision="FP16">
119
+ <dim>1152</dim>
120
+ <dim>3</dim>
121
+ <dim>2</dim>
122
+ <dim>16</dim>
123
+ <dim>16</dim>
124
+ </port>
125
+ </input>
126
+ <output>
127
+ <port id="1" precision="FP32">
128
+ <dim>1152</dim>
129
+ <dim>3</dim>
130
+ <dim>2</dim>
131
+ <dim>16</dim>
132
+ <dim>16</dim>
133
+ </port>
134
+ </output>
135
+ </layer>
136
+ <layer id="8" name="__module.proj/aten::_convolution/Convolution" type="Convolution" version="opset1">
137
+ <data strides="2, 16, 16" dilations="1, 1, 1" pads_begin="0, 0, 0" pads_end="0, 0, 0" auto_pad="explicit" />
138
+ <input>
139
+ <port id="0" precision="FP32">
140
+ <dim>-1</dim>
141
+ <dim>3</dim>
142
+ <dim>2</dim>
143
+ <dim>16</dim>
144
+ <dim>16</dim>
145
+ </port>
146
+ <port id="1" precision="FP32">
147
+ <dim>1152</dim>
148
+ <dim>3</dim>
149
+ <dim>2</dim>
150
+ <dim>16</dim>
151
+ <dim>16</dim>
152
+ </port>
153
+ </input>
154
+ <output>
155
+ <port id="2" precision="FP32">
156
+ <dim>-1</dim>
157
+ <dim>1152</dim>
158
+ <dim>1</dim>
159
+ <dim>1</dim>
160
+ <dim>1</dim>
161
+ </port>
162
+ </output>
163
+ </layer>
164
+ <layer id="9" name="__module.proj/aten::_convolution/Reshape" type="Const" version="opset1">
165
+ <data element_type="f32" shape="1, 1152, 1, 1, 1" offset="1771816" size="4608" />
166
+ <output>
167
+ <port id="0" precision="FP32">
168
+ <dim>1</dim>
169
+ <dim>1152</dim>
170
+ <dim>1</dim>
171
+ <dim>1</dim>
172
+ <dim>1</dim>
173
+ </port>
174
+ </output>
175
+ </layer>
176
+ <layer id="10" name="__module.proj/aten::_convolution/Add" type="Add" version="opset1">
177
+ <data auto_broadcast="numpy" />
178
+ <input>
179
+ <port id="0" precision="FP32">
180
+ <dim>-1</dim>
181
+ <dim>1152</dim>
182
+ <dim>1</dim>
183
+ <dim>1</dim>
184
+ <dim>1</dim>
185
+ </port>
186
+ <port id="1" precision="FP32">
187
+ <dim>1</dim>
188
+ <dim>1152</dim>
189
+ <dim>1</dim>
190
+ <dim>1</dim>
191
+ <dim>1</dim>
192
+ </port>
193
+ </input>
194
+ <output>
195
+ <port id="2" precision="FP32" names="33">
196
+ <dim>-1</dim>
197
+ <dim>1152</dim>
198
+ <dim>1</dim>
199
+ <dim>1</dim>
200
+ <dim>1</dim>
201
+ </port>
202
+ </output>
203
+ </layer>
204
+ <layer id="11" name="Constant_409202" type="Const" version="opset1">
205
+ <data element_type="i64" shape="2" offset="1776424" size="16" />
206
+ <output>
207
+ <port id="0" precision="I64">
208
+ <dim>2</dim>
209
+ </port>
210
+ </output>
211
+ </layer>
212
+ <layer id="12" name="aten::view/Reshape_1" type="Reshape" version="opset1">
213
+ <data special_zero="false" />
214
+ <input>
215
+ <port id="0" precision="FP32">
216
+ <dim>-1</dim>
217
+ <dim>1152</dim>
218
+ <dim>1</dim>
219
+ <dim>1</dim>
220
+ <dim>1</dim>
221
+ </port>
222
+ <port id="1" precision="I64">
223
+ <dim>2</dim>
224
+ </port>
225
+ </input>
226
+ <output>
227
+ <port id="2" precision="FP32" names="last_hidden_state">
228
+ <dim>-1</dim>
229
+ <dim>1152</dim>
230
+ </port>
231
+ </output>
232
+ </layer>
233
+ <layer id="13" name="Result_409230" type="Result" version="opset1" output_names="last_hidden_state">
234
+ <input>
235
+ <port id="0" precision="FP32">
236
+ <dim>-1</dim>
237
+ <dim>1152</dim>
238
+ </port>
239
+ </input>
240
+ </layer>
241
+ </layers>
242
+ <edges>
243
+ <edge from-layer="0" from-port="0" to-layer="2" to-port="0" />
244
+ <edge from-layer="1" from-port="0" to-layer="2" to-port="1" />
245
+ <edge from-layer="2" from-port="2" to-layer="8" to-port="0" />
246
+ <edge from-layer="3" from-port="0" to-layer="4" to-port="0" />
247
+ <edge from-layer="4" from-port="1" to-layer="6" to-port="0" />
248
+ <edge from-layer="5" from-port="0" to-layer="6" to-port="1" />
249
+ <edge from-layer="6" from-port="2" to-layer="7" to-port="0" />
250
+ <edge from-layer="7" from-port="1" to-layer="8" to-port="1" />
251
+ <edge from-layer="8" from-port="2" to-layer="10" to-port="0" />
252
+ <edge from-layer="9" from-port="0" to-layer="10" to-port="1" />
253
+ <edge from-layer="10" from-port="2" to-layer="12" to-port="0" />
254
+ <edge from-layer="11" from-port="0" to-layer="12" to-port="1" />
255
+ <edge from-layer="12" from-port="2" to-layer="13" to-port="0" />
256
+ </edges>
257
+ <rt_info>
258
+ <info name="OpenVINO Runtime" value="2026.2.0-21860-7be1ffd093f" />
259
+ <Runtime_version value="2026.2.0-21860-7be1ffd093f" />
260
+ <conversion_parameters>
261
+ <framework value="pytorch" />
262
+ <is_python_object value="True" />
263
+ </conversion_parameters>
264
+ <nncf>
265
+ <friendly_names_were_updated value="True" />
266
+ <version value="3.1.0" />
267
+ <weight_compression>
268
+ <advanced_parameters value="{'statistics_path': None, 'lora_adapter_rank': 256, 'group_size_fallback_mode': 'error', 'min_adjusted_group_size': 32, 'awq_params': {'subset_size': 32, 'percent_to_apply': 0.002, 'alpha_min': 0.0, 'alpha_max': 1.0, 'steps': 100, 'prefer_data_aware_scaling': True}, 'scale_estimation_params': {'subset_size': 64, 'initial_steps': 5, 'scale_steps': 5, 'weight_penalty': -1.0}, 'gptq_params': {'damp_percent': 0.1, 'block_size': 128, 'subset_size': 128}, 'lora_correction_params': {'adapter_rank': 8, 'num_iterations': 3, 'apply_regularization': True, 'subset_size': 128, 'use_int8_adapters': True}, 'backend_params': {}, 'codebook': None, 'adaptive_codebook_params': {'value_type': 'f8e4m3', 'across_blocks': False, 'num_elements': 16}}" />
269
+ <all_layers value="False" />
270
+ <awq value="False" />
271
+ <backup_mode value="int8_asym" />
272
+ <compression_format value="dequantize" />
273
+ <gptq value="False" />
274
+ <group_size value="-1" />
275
+ <ignored_scope value="[]" />
276
+ <lora_correction value="False" />
277
+ <mode value="int8_sym" />
278
+ <ratio value="1.0" />
279
+ <scale_estimation value="False" />
280
+ <sensitivity_metric value="weight_quantization_error" />
281
+ </weight_compression>
282
+ </nncf>
283
+ <optimum>
284
+ <nncf_version value="3.1.0" />
285
+ <optimum_intel_version value="1.27.0.dev0+ff1fb6d" />
286
+ <optimum_version value="2.1.0.dev0" />
287
+ <pytorch_version value="2.11.0" />
288
+ <transformers_version value="5.2.0" />
289
+ </optimum>
290
+ </rt_info>
291
+ </net>
openvino_vision_embeddings_pos_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:261db08f77e8fe70b1624f2472433e90cfa04fd7e579abfca7febdfa8e236799
3
+ size 2658820
openvino_vision_embeddings_pos_model.xml ADDED
@@ -0,0 +1,180 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <net name="Model72" version="11">
3
+ <layers>
4
+ <layer id="0" name="input" type="Parameter" version="opset1">
5
+ <data shape="4,?" element_type="i64" />
6
+ <output>
7
+ <port id="0" precision="I64" names="input">
8
+ <dim>4</dim>
9
+ <dim>-1</dim>
10
+ </port>
11
+ </output>
12
+ </layer>
13
+ <layer id="1" name="self.weight" type="Const" version="opset1">
14
+ <data element_type="i8" shape="2304, 1152" offset="0" size="2654208" />
15
+ <output>
16
+ <port id="0" precision="I8">
17
+ <dim>2304</dim>
18
+ <dim>1152</dim>
19
+ </port>
20
+ </output>
21
+ </layer>
22
+ <layer id="2" name="Convert_3741987" type="Convert" version="opset1">
23
+ <data destination_type="f16" />
24
+ <input>
25
+ <port id="0" precision="I8">
26
+ <dim>2304</dim>
27
+ <dim>1152</dim>
28
+ </port>
29
+ </input>
30
+ <output>
31
+ <port id="1" precision="FP16">
32
+ <dim>2304</dim>
33
+ <dim>1152</dim>
34
+ </port>
35
+ </output>
36
+ </layer>
37
+ <layer id="3" name="self.weight/scale" type="Const" version="opset1">
38
+ <data element_type="f16" shape="2304, 1" offset="2654208" size="4608" />
39
+ <output>
40
+ <port id="0" precision="FP16">
41
+ <dim>2304</dim>
42
+ <dim>1</dim>
43
+ </port>
44
+ </output>
45
+ </layer>
46
+ <layer id="4" name="self.weight/fq_weights_0" type="Multiply" version="opset1">
47
+ <data auto_broadcast="numpy" />
48
+ <input>
49
+ <port id="0" precision="FP16">
50
+ <dim>2304</dim>
51
+ <dim>1152</dim>
52
+ </port>
53
+ <port id="1" precision="FP16">
54
+ <dim>2304</dim>
55
+ <dim>1</dim>
56
+ </port>
57
+ </input>
58
+ <output>
59
+ <port id="2" precision="FP16">
60
+ <dim>2304</dim>
61
+ <dim>1152</dim>
62
+ </port>
63
+ </output>
64
+ </layer>
65
+ <layer id="5" name="ov_ext::embedding/Convert" type="Convert" version="opset1">
66
+ <data destination_type="f32" />
67
+ <rt_info>
68
+ <attribute name="decompression" version="0" />
69
+ </rt_info>
70
+ <input>
71
+ <port id="0" precision="FP16">
72
+ <dim>2304</dim>
73
+ <dim>1152</dim>
74
+ </port>
75
+ </input>
76
+ <output>
77
+ <port id="1" precision="FP32">
78
+ <dim>2304</dim>
79
+ <dim>1152</dim>
80
+ </port>
81
+ </output>
82
+ </layer>
83
+ <layer id="6" name="ov_ext::embedding/Convert_1" type="Convert" version="opset1">
84
+ <data destination_type="i32" />
85
+ <input>
86
+ <port id="0" precision="I64">
87
+ <dim>4</dim>
88
+ <dim>-1</dim>
89
+ </port>
90
+ </input>
91
+ <output>
92
+ <port id="1" precision="I32">
93
+ <dim>4</dim>
94
+ <dim>-1</dim>
95
+ </port>
96
+ </output>
97
+ </layer>
98
+ <layer id="7" name="ov_ext::embedding/Constant" type="Const" version="opset1">
99
+ <data element_type="i32" shape="" offset="2658816" size="4" />
100
+ <output>
101
+ <port id="0" precision="I32" />
102
+ </output>
103
+ </layer>
104
+ <layer id="8" name="ov_ext::embedding/Gather" type="Gather" version="opset8">
105
+ <data batch_dims="0" />
106
+ <input>
107
+ <port id="0" precision="FP32">
108
+ <dim>2304</dim>
109
+ <dim>1152</dim>
110
+ </port>
111
+ <port id="1" precision="I32">
112
+ <dim>4</dim>
113
+ <dim>-1</dim>
114
+ </port>
115
+ <port id="2" precision="I32" />
116
+ </input>
117
+ <output>
118
+ <port id="3" precision="FP32" names="last_hidden_state">
119
+ <dim>4</dim>
120
+ <dim>-1</dim>
121
+ <dim>1152</dim>
122
+ </port>
123
+ </output>
124
+ </layer>
125
+ <layer id="9" name="Result_487321" type="Result" version="opset1" output_names="last_hidden_state">
126
+ <input>
127
+ <port id="0" precision="FP32">
128
+ <dim>4</dim>
129
+ <dim>-1</dim>
130
+ <dim>1152</dim>
131
+ </port>
132
+ </input>
133
+ </layer>
134
+ </layers>
135
+ <edges>
136
+ <edge from-layer="0" from-port="0" to-layer="6" to-port="0" />
137
+ <edge from-layer="1" from-port="0" to-layer="2" to-port="0" />
138
+ <edge from-layer="2" from-port="1" to-layer="4" to-port="0" />
139
+ <edge from-layer="3" from-port="0" to-layer="4" to-port="1" />
140
+ <edge from-layer="4" from-port="2" to-layer="5" to-port="0" />
141
+ <edge from-layer="5" from-port="1" to-layer="8" to-port="0" />
142
+ <edge from-layer="6" from-port="1" to-layer="8" to-port="1" />
143
+ <edge from-layer="7" from-port="0" to-layer="8" to-port="2" />
144
+ <edge from-layer="8" from-port="3" to-layer="9" to-port="0" />
145
+ </edges>
146
+ <rt_info>
147
+ <info name="OpenVINO Runtime" value="2026.2.0-21860-7be1ffd093f" />
148
+ <Runtime_version value="2026.2.0-21860-7be1ffd093f" />
149
+ <conversion_parameters>
150
+ <framework value="pytorch" />
151
+ <is_python_object value="True" />
152
+ </conversion_parameters>
153
+ <nncf>
154
+ <friendly_names_were_updated value="True" />
155
+ <version value="3.1.0" />
156
+ <weight_compression>
157
+ <advanced_parameters value="{'statistics_path': None, 'lora_adapter_rank': 256, 'group_size_fallback_mode': 'error', 'min_adjusted_group_size': 32, 'awq_params': {'subset_size': 32, 'percent_to_apply': 0.002, 'alpha_min': 0.0, 'alpha_max': 1.0, 'steps': 100, 'prefer_data_aware_scaling': True}, 'scale_estimation_params': {'subset_size': 64, 'initial_steps': 5, 'scale_steps': 5, 'weight_penalty': -1.0}, 'gptq_params': {'damp_percent': 0.1, 'block_size': 128, 'subset_size': 128}, 'lora_correction_params': {'adapter_rank': 8, 'num_iterations': 3, 'apply_regularization': True, 'subset_size': 128, 'use_int8_adapters': True}, 'backend_params': {}, 'codebook': None, 'adaptive_codebook_params': {'value_type': 'f8e4m3', 'across_blocks': False, 'num_elements': 16}}" />
158
+ <all_layers value="False" />
159
+ <awq value="False" />
160
+ <backup_mode value="int8_asym" />
161
+ <compression_format value="dequantize" />
162
+ <gptq value="False" />
163
+ <group_size value="-1" />
164
+ <ignored_scope value="[]" />
165
+ <lora_correction value="False" />
166
+ <mode value="int8_sym" />
167
+ <ratio value="1.0" />
168
+ <scale_estimation value="False" />
169
+ <sensitivity_metric value="weight_quantization_error" />
170
+ </weight_compression>
171
+ </nncf>
172
+ <optimum>
173
+ <nncf_version value="3.1.0" />
174
+ <optimum_intel_version value="1.27.0.dev0+ff1fb6d" />
175
+ <optimum_version value="2.1.0.dev0" />
176
+ <pytorch_version value="2.11.0" />
177
+ <transformers_version value="5.2.0" />
178
+ </optimum>
179
+ </rt_info>
180
+ </net>
preprocessor_config.json ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "data_format": "channels_first",
3
+ "do_convert_rgb": true,
4
+ "do_normalize": true,
5
+ "do_rescale": true,
6
+ "do_resize": true,
7
+ "image_mean": [
8
+ 0.5,
9
+ 0.5,
10
+ 0.5
11
+ ],
12
+ "image_processor_type": "Qwen2VLImageProcessorFast",
13
+ "image_std": [
14
+ 0.5,
15
+ 0.5,
16
+ 0.5
17
+ ],
18
+ "merge_size": 2,
19
+ "patch_size": 16,
20
+ "resample": 3,
21
+ "rescale_factor": 0.00392156862745098,
22
+ "size": {
23
+ "longest_edge": 16777216,
24
+ "shortest_edge": 65536
25
+ },
26
+ "temporal_patch_size": 2
27
+ }
processor_config.json ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "image_processor": {
3
+ "data_format": "channels_first",
4
+ "do_convert_rgb": true,
5
+ "do_normalize": true,
6
+ "do_rescale": true,
7
+ "do_resize": true,
8
+ "image_mean": [
9
+ 0.5,
10
+ 0.5,
11
+ 0.5
12
+ ],
13
+ "image_processor_type": "Qwen2VLImageProcessorFast",
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "merge_size": 2,
20
+ "patch_size": 16,
21
+ "resample": 3,
22
+ "rescale_factor": 0.00392156862745098,
23
+ "size": {
24
+ "longest_edge": 16777216,
25
+ "shortest_edge": 65536
26
+ },
27
+ "temporal_patch_size": 2
28
+ },
29
+ "processor_class": "Qwen3VLProcessor",
30
+ "video_processor": {
31
+ "data_format": "channels_first",
32
+ "default_to_square": true,
33
+ "do_convert_rgb": true,
34
+ "do_normalize": true,
35
+ "do_rescale": true,
36
+ "do_resize": true,
37
+ "do_sample_frames": true,
38
+ "fps": 2,
39
+ "image_mean": [
40
+ 0.5,
41
+ 0.5,
42
+ 0.5
43
+ ],
44
+ "image_std": [
45
+ 0.5,
46
+ 0.5,
47
+ 0.5
48
+ ],
49
+ "max_frames": 768,
50
+ "merge_size": 2,
51
+ "min_frames": 4,
52
+ "patch_size": 16,
53
+ "resample": 3,
54
+ "rescale_factor": 0.00392156862745098,
55
+ "return_metadata": false,
56
+ "size": {
57
+ "longest_edge": 25165824,
58
+ "shortest_edge": 4096
59
+ },
60
+ "temporal_patch_size": 2,
61
+ "video_processor_type": "Qwen3VLVideoProcessor"
62
+ }
63
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:87a7830d63fcf43bf241c3c5242e96e62dd3fdc29224ca26fed8ea333db72de4
3
+ size 19989343
tokenizer_config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "audio_bos_token": "<|audio_start|>",
4
+ "audio_eos_token": "<|audio_end|>",
5
+ "audio_token": "<|audio_pad|>",
6
+ "backend": "tokenizers",
7
+ "bos_token": null,
8
+ "clean_up_tokenization_spaces": false,
9
+ "eos_token": "<|im_end|>",
10
+ "errors": "replace",
11
+ "image_token": "<|image_pad|>",
12
+ "is_local": false,
13
+ "model_max_length": 262144,
14
+ "model_specific_special_tokens": {
15
+ "audio_bos_token": "<|audio_start|>",
16
+ "audio_eos_token": "<|audio_end|>",
17
+ "audio_token": "<|audio_pad|>",
18
+ "image_token": "<|image_pad|>",
19
+ "video_token": "<|video_pad|>",
20
+ "vision_bos_token": "<|vision_start|>",
21
+ "vision_eos_token": "<|vision_end|>"
22
+ },
23
+ "pad_token": "<|endoftext|>",
24
+ "pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
25
+ "processor_class": "Qwen3VLProcessor",
26
+ "split_special_tokens": false,
27
+ "tokenizer_class": "TokenizersBackend",
28
+ "unk_token": null,
29
+ "video_token": "<|video_pad|>",
30
+ "vision_bos_token": "<|vision_start|>",
31
+ "vision_eos_token": "<|vision_end|>"
32
+ }