nightmedia commited on
Commit
80a2be9
·
verified ·
1 Parent(s): e2a50f9

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ {}
3
+ ---
4
+
5
+ # Qwen3.5-27B-Engineer-Deckard-Gemini-qx86-hi-mlx
6
+
7
+ ## Use with mlx
8
+
9
+ ```bash
10
+ pip install mlx-lm
11
+ ```
12
+
13
+ ```python
14
+ from mlx_lm import load, generate
15
+
16
+ model, tokenizer = load("Qwen3.5-27B-Engineer-Deckard-Gemini-qx86-hi-mlx")
17
+
18
+ prompt = "hello"
19
+
20
+ if tokenizer.chat_template is not None:
21
+ messages = [{"role": "user", "content": prompt}]
22
+ prompt = tokenizer.apply_chat_template(
23
+ messages, add_generation_prompt=True, return_dict=False,
24
+ )
25
+
26
+ response = generate(model, tokenizer, prompt=prompt, verbose=True)
27
+ ```
chat_template.jinja ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {# Define the macros for XML conversion #}
2
+ {%- macro render_item_list(item_list, tag_name='required') -%}
3
+ {%- if item_list is defined and item_list is iterable and item_list | length > 0 -%}
4
+ <{{ tag_name }}>[{{- item_list | join(", ") -}}]</{{ tag_name }}>
5
+ {%- endif -%}
6
+ {%- endmacro -%}
7
+ {%- macro render_extra_keys(json_dict, handled_keys) -%}
8
+ {%- if json_dict is mapping -%}
9
+ {%- for json_key in json_dict if json_key not in handled_keys -%}
10
+ <{{ json_key }}>{{ json_dict[json_key] }}</{{ json_key }}>
11
+ {%- endfor -%}
12
+ {%- endif -%}
13
+ {%- endmacro -%}
14
+ {%- set enable_thinking = false %}
15
+ {%- set image_count = namespace(value=0) %}
16
+ {%- set video_count = namespace(value=0) %}
17
+ {%- macro render_content(content, do_vision_count, is_system_content=false) -%}
18
+ {%- if content is string -%}
19
+ {{- content -}}
20
+ {%- elif content is iterable and content is not mapping -%}
21
+ {%- for item in content -%}
22
+ {%- if 'image' in item or 'image_url' in item or item.type == 'image' -%}
23
+ {%- if is_system_content -%}{{- raise_exception('System message cannot contain images.') -}}{%- endif -%}
24
+ {%- if do_vision_count -%}{%- set image_count.value = image_count.value + 1 -%}{%- endif -%}
25
+ {%- if add_vision_id -%}{{- 'Picture ' ~ image_count.value ~ ': ' -}}{%- endif -%}
26
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' -}}
27
+ {%- elif 'video' in item or item.type == 'video' -%}
28
+ {%- if is_system_content -%}{{- raise_exception('System message cannot contain videos.') -}}{%- endif -%}
29
+ {%- if do_vision_count -%}{%- set video_count.value = video_count.value + 1 -%}{%- endif -%}
30
+ {%- if add_vision_id -%}{{- 'Video ' ~ video_count.value ~ ': ' -}}{%- endif -%}
31
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' -}}
32
+ {%- elif 'text' in item -%}
33
+ {{- item.text -}}
34
+ {%- else -%}
35
+ {{- raise_exception('Unexpected item type in content.') -}}
36
+ {%- endif -%}
37
+ {%- endfor -%}
38
+ {%- elif content is none or content is undefined -%}
39
+ {{- '' -}}
40
+ {%- else -%}
41
+ {{- raise_exception('Unexpected content type.') -}}
42
+ {%- endif -%}
43
+ {%- endmacro -%}
44
+ {%- if not messages -%}{{- raise_exception('No messages provided.') -}}{%- endif -%}
45
+ {# Handle System Prompt & Tools #}
46
+ {%- if tools and tools is iterable and tools is not mapping -%}
47
+ {{- '<|im_start|>system\n# Tools\n\nYou have access to the following functions:\n\n<tools>' -}}
48
+ {%- for tool in tools -%}
49
+ {%- set function = tool.function -%}
50
+ {{- "\n<tool>\n<name>" + function.name + "</name>\n<description>" + function.description + "</description>" -}}
51
+ {%- if function.parameters and function.parameters.properties -%}
52
+ {%- for param_name, param_details in function.parameters.properties.items() -%}
53
+ {{- "\n<parameter>\n<name>" + param_name + "</name>\n<type>" + param_details.type + "</type>\n<description>" + (param_details.description | default('')) + "</description>" -}}
54
+ {{- render_item_list(function.parameters.required) -}}
55
+ {{- render_extra_keys(param_details, ['type', 'description']) -}}
56
+ {{- "\n</parameter>" -}}
57
+ {%- endfor -%}
58
+ {%- endif -%}
59
+ {{- "\n</tool>" -}}
60
+ {%- endfor -%}
61
+ {{- "\n</tools>\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</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</IMPORTANT>" -}}
62
+ {%- if messages[0].role == 'system' -%}
63
+ {%- set content = render_content(messages[0].content, false, true)|trim -%}
64
+ {%- if content -%}{{- '\n\n' + content -}}{%- endif -%}
65
+ {%- endif -%}
66
+ {{- '<|im_end|>\n' -}}
67
+ {%- else -%}
68
+ {%- if messages[0].role == 'system' -%}
69
+ {%- set content = render_content(messages[0].content, false, true)|trim -%}
70
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' -}}
71
+ {%- endif -%}
72
+ {%- endif -%}
73
+ {# Logic for Multi-Step Tool Handling #}
74
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) -%}
75
+ {%- for message in messages[::-1] -%}
76
+ {%- set index = (messages|length - 1) - loop.index0 -%}
77
+ {%- if ns.multi_step_tool and message.role == "user" -%}
78
+ {%- set content = render_content(message.content, false)|trim -%}
79
+ {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) -%}
80
+ {%- set ns.multi_step_tool = false -%}
81
+ {%- set ns.last_query_index = index -%}
82
+ {%- endif -%}
83
+ {%- endif -%}
84
+ {%- endfor -%}
85
+ {# Render Chat History #}
86
+ {%- for message in messages -%}
87
+ {%- set content = render_content(message.content, true)|trim -%}
88
+ {%- if message.role == "system" -%}
89
+ {%- if not loop.first -%}{{- raise_exception('System message must be at the beginning.') -}}{%- endif -%}
90
+ {%- elif message.role == "user" -%}
91
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>\n' -}}
92
+ {%- elif message.role == "assistant" -%}
93
+ {%- set reasoning_content = '' -%}
94
+ {%- if message.reasoning_content is string -%}
95
+ {%- set reasoning_content = message.reasoning_content -%}
96
+ {%- else -%}
97
+ {%- if '</think>' in content -%}
98
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') -%}
99
+ {%- set content = content.split('</think>')[-1].lstrip('\n') -%}
100
+ {%- endif -%}
101
+ {%- endif -%}
102
+ {%- set reasoning_content = reasoning_content|trim -%}
103
+ {%- if loop.index0 > ns.last_query_index -%}
104
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content + '\n</think>\n\n' + content -}}
105
+ {%- else -%}
106
+ {{- '<|im_start|>' + message.role + '\n' + content -}}
107
+ {%- endif -%}
108
+ {%- if message.tool_calls -%}
109
+ {%- for tool_call in message.tool_calls -%}
110
+ {%- if tool_call.function is defined -%}{%- set tool_call = tool_call.function -%}{%- endif -%}
111
+ {{- ('\n\n' if content|trim and loop.first else '\n') + '<tool_call>\n<function=' + tool_call.name + '>\n' -}}
112
+ {%- if tool_call.arguments is defined -%}
113
+ {%- for args_name, args_value in tool_call.arguments|items -%}
114
+ {{- '<parameter=' + args_name + '>\n' -}}
115
+ {%- set args_value = args_value | tojson | safe if args_value is mapping or (args_value is sequence and args_value is not string) else args_value | string -%}
116
+ {{- args_value + '\n</parameter>\n' -}}
117
+ {%- endfor -%}
118
+ {%- endif -%}
119
+ {{- '</function>\n</tool_call>' -}}
120
+ {%- endfor -%}
121
+ {%- endif -%}
122
+ {{- '<|im_end|>\n' -}}
123
+ {%- elif message.role == "tool" -%}
124
+ {%- if loop.previtem and loop.previtem.role != "tool" -%}
125
+ {{- '<|im_start|>user\n' -}}
126
+ {%- endif -%}
127
+ {{- '<tool_response>\n<result>\n' + content + '\n</result>\n</tool_response>' -}}
128
+ {%- if (not loop.last and loop.nextitem.role != "tool") or loop.last -%}
129
+ {{- '<|im_end|>\n' -}}
130
+ {%- endif -%}
131
+ {%- endif -%}
132
+ {%- endfor -%}
133
+ {# Generation Prompt #}
134
+ {%- if add_generation_prompt -%}
135
+ {{- '<|im_start|>assistant\n<think>\n' -}}
136
+ {%- if enable_thinking is defined and enable_thinking is false -%}{{- '\n</think>\n\n' -}}{%- endif -%}
137
+ {%- endif -%}
chat_template_default.jinja ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {# Define the macros for XML conversion #}
2
+ {%- macro render_item_list(item_list, tag_name='required') -%}
3
+ {%- if item_list is defined and item_list is iterable and item_list | length > 0 -%}
4
+ <{{ tag_name }}>[{{- item_list | join(", ") -}}]</{{ tag_name }}>
5
+ {%- endif -%}
6
+ {%- endmacro -%}
7
+
8
+ {%- macro render_extra_keys(json_dict, handled_keys) -%}
9
+ {%- if json_dict is mapping -%}
10
+ {%- for json_key in json_dict if json_key not in handled_keys -%}
11
+ <{{ json_key }}>{{ json_dict[json_key] }}</{{ json_key }}>
12
+ {%- endfor -%}
13
+ {%- endif -%}
14
+ {%- endmacro -%}
15
+
16
+
17
+ {%- set image_count = namespace(value=0) %}
18
+ {%- set video_count = namespace(value=0) %}
19
+ {%- set add_vision_id = add_vision_id if add_vision_id is defined else true %}
20
+
21
+ {# Set Instruct mode here #}
22
+ {%- set enable_thinking = false %}
23
+
24
+ {%- macro render_content(content, do_vision_count, is_system_content=false) %}
25
+ {%- if content is string %}
26
+ {{- content }}
27
+ {%- elif content is iterable and content is not mapping %}
28
+ {%- for item in content %}
29
+ {%- if 'image' in item or 'image_url' in item or (item is mapping and item.get('type') == 'image') %}
30
+ {%- if is_system_content %}
31
+ {{- raise_exception('System message cannot contain images.') }}
32
+ {%- endif %}
33
+ {%- if do_vision_count %}
34
+ {%- set image_count.value = image_count.value + 1 %}
35
+ {%- endif %}
36
+ {%- if add_vision_id %}
37
+ {{- 'Picture ' ~ image_count.value ~ ': ' }}
38
+ {%- endif %}
39
+ {{- '<|vision_start|><|image_pad|><|vision_end|>' }}
40
+ {%- elif 'video' in item or (item is mapping and item.get('type') == 'video') %}
41
+ {%- if is_system_content %}
42
+ {{- raise_exception('System message cannot contain videos.') }}
43
+ {%- endif %}
44
+ {%- if do_vision_count %}
45
+ {%- set video_count.value = video_count.value + 1 %}
46
+ {%- endif %}
47
+ {%- if add_vision_id %}
48
+ {{- 'Video ' ~ video_count.value ~ ': ' }}
49
+ {%- endif %}
50
+ {{- '<|vision_start|><|video_pad|><|vision_end|>' }}
51
+ {%- elif item is mapping and 'text' in item %}
52
+ {{- item.text }}
53
+ {%- else %}
54
+ {{- raise_exception('Unexpected item type in content.') }}
55
+ {%- endif %}
56
+ {%- endfor %}
57
+ {%- elif content is none or content is undefined %}
58
+ {{- '' }}
59
+ {%- else %}
60
+ {{- raise_exception('Unexpected content type.') }}
61
+ {%- endif %}
62
+ {%- endmacro %}
63
+
64
+ {%- if not messages %}
65
+ {{- raise_exception('No messages provided.') }}
66
+ {%- endif %}
67
+
68
+ {# Flag to prevent double-rendering system prompt #}
69
+ {%- set ns = namespace(system_rendered=false) %}
70
+
71
+ {%- if tools and tools is iterable and tools is not mapping %}
72
+
73
+ {{- '<|im_start|>system\n# Tools\n\nYou have access to the following functions:\n\n<tools>' -}}
74
+ {%- for tool in tools -%}
75
+ {%- set function = tool.function -%}
76
+ {{- "\n<tool>\n<name>" + function.name + "</name>\n<description>" + function.description + "</description>" -}}
77
+ {%- if function.parameters and function.parameters.properties -%}
78
+ {%- for param_name, param_details in function.parameters.properties.items() -%}
79
+ {{- "\n<parameter>\n<name>" + param_name + "</name>\n<type>" + param_details.type + "</type>\n<description>" + (param_details.description | default('')) + "</description>" -}}
80
+ {{- render_item_list(function.parameters.required) -}}
81
+ {{- render_extra_keys(param_details, ['type', 'description']) -}}
82
+ {{- "\n</parameter>" -}}
83
+ {%- endfor -%}
84
+ {%- endif -%}
85
+ {{- "\n</tool>" -}}
86
+ {%- endfor -%}
87
+
88
+ {{- '\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>' }}
89
+
90
+ {%- if messages[0].role == 'system' %}
91
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
92
+ {%- if content %}
93
+ {{- '\n\n' + content }}
94
+ {%- endif %}
95
+ {%- set ns.system_rendered = true %}
96
+ {%- endif %}
97
+ {{- '<|im_end|>\n' }}
98
+ {%- else %}
99
+ {%- if messages[0].role == 'system' %}
100
+ {%- set content = render_content(messages[0].content, false, true)|trim %}
101
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
102
+ {%- set ns.system_rendered = true %}
103
+ {%- endif %}
104
+ {%- endif %}
105
+
106
+ {# Main Message Loop #}
107
+ {%- for message in messages %}
108
+ {%- if message.role == "system" and ns.system_rendered and loop.first %}
109
+ {%- continue %}
110
+ {%- endif %}
111
+
112
+ {%- set content = render_content(message.content, true)|trim %}
113
+
114
+ {%- if message.role == "system" %}
115
+ {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }}
116
+ {%- elif message.role == "user" %}
117
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>\n' }}
118
+ {%- elif message.role == "assistant" %}
119
+ {%- set reasoning_content = '' %}
120
+ {%- if message.reasoning_content is defined and message.reasoning_content is string %}
121
+ {%- set reasoning_content = message.reasoning_content | trim %}
122
+ {%- elif '<think>' in content and '</think>' in content %}
123
+ {%- set reasoning_content = content.split('</think>')[0].split('<think>')[-1] | trim %}
124
+ {%- set content = content.split('</think>')[-1] | trim %}
125
+ {%- endif %}
126
+
127
+ {{- '<|im_start|>' + message.role + '\n' }}
128
+
129
+ {%- if reasoning_content %}
130
+ {{- '<think>\n' + reasoning_content + '\n</think>\n\n' }}
131
+ {%- endif %}
132
+
133
+ {{- content }}
134
+
135
+ {# Tool call formatting #}
136
+ {%- if message.tool_calls %}
137
+ {%- for tool_call in message.tool_calls %}
138
+ {%- set tc = tool_call.function if tool_call.function is defined else tool_call %}
139
+ {%- if loop.first and content %}{{- '\n\n' }}{%- elif not loop.first %}{{- '\n' }}{%- endif %}
140
+ {{- '<tool_call>\n<function=' + tc.name + '>\n' }}
141
+ {%- for args_name, args_value in tc.arguments|items %}
142
+ {{- '<parameter=' + args_name + '>\n' }}
143
+ {{- (args_value | tojson | safe if args_value is mapping or args_value is sequence else args_value | string) + '\n</parameter>\n' }}
144
+ {%- endfor %}
145
+ {{- '</function>\n</tool_call>' }}
146
+ {%- endfor %}
147
+ {%- endif %}
148
+ {{- '<|im_end|>\n' }}
149
+ {%- elif message.role == "tool" %}
150
+ {%- if loop.previtem and loop.previtem.role != "tool" %}{{- '<|im_start|>user' }}{%- endif %}
151
+ {{- '\n<tool_response>\n' + content + '\n</tool_response>' }}
152
+ {%- if loop.last or (loop.nextitem and loop.nextitem.role != "tool") %}{{- '<|im_end|>\n' }}{%- endif %}
153
+ {%- endif %}
154
+ {%- endfor %}
155
+
156
+ {# Final Generation Prompt #}
157
+ {%- if add_generation_prompt %}
158
+ {{- '<|im_start|>assistant\n' }}
159
+ {%- if enable_thinking is defined and enable_thinking is false %}
160
+ {{- '<think>\n\n</think>\n\n' }}
161
+ {%- else %}
162
+ {{- '<think>\n' }}
163
+ {%- endif %}
164
+ {%- endif %}
config.json ADDED
The diff for this file is too large to render. See raw diff
 
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": 0.6,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "transformers_version": "5.2.0"
13
+ }
model-00001-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6d72672db0b8a4eff7ebc485880212a4b0de927c905e63c4f1d36341e5a7a564
3
+ size 5367846066
model-00002-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50bb6754a47dbbac99faf219cf6173aa613bd7a1b88ac39ed0caf02054b12c2f
3
+ size 5368386665
model-00003-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d5504ba76903a48648224795a616e61493e7622f62cb486d762034fbde5e3659
3
+ size 5366075033
model-00004-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9374d150a5fa383af5685f2bbfef9b5b71a671c45f196dc44021da1ae3e15d67
3
+ size 5305921984
model-00005-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f82ba4ebcf160857279066fa5e0b8b8fdfe9c27bc1866fc3f9374a4d40d5fa39
3
+ size 4858623541
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "size": {
3
+ "longest_edge": 16777216,
4
+ "shortest_edge": 65536
5
+ },
6
+ "patch_size": 16,
7
+ "temporal_patch_size": 2,
8
+ "merge_size": 2,
9
+ "image_mean": [
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "processor_class": "Qwen3VLProcessor",
20
+ "image_processor_type": "Qwen2VLImageProcessorFast"
21
+ }
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": true,
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
+ }
video_preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "size": {
3
+ "longest_edge": 25165824,
4
+ "shortest_edge": 4096
5
+ },
6
+ "patch_size": 16,
7
+ "temporal_patch_size": 2,
8
+ "merge_size": 2,
9
+ "image_mean": [
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "processor_class": "Qwen3VLProcessor",
20
+ "video_processor_type": "Qwen3VLVideoProcessor"
21
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff