maxbsoft commited on
Commit
5f5d86d
·
verified ·
1 Parent(s): 9f5981a

Upload model trained with Unsloth

Browse files

Upload model trained with Unsloth 2x faster

.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
chat_template.jinja ADDED
@@ -0,0 +1,263 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- macro format_parameters(properties, required) -%}
2
+ {%- set standard_keys = ['description', 'type', 'properties', 'required', 'nullable'] -%}
3
+ {%- set ns = namespace(found_first=false) -%}
4
+ {%- for key, value in properties | dictsort -%}
5
+ {%- set add_comma = false -%}
6
+ {%- if key not in standard_keys -%}
7
+ {%- if ns.found_first %},{% endif -%}
8
+ {%- set ns.found_first = true -%}
9
+ {{ key }}:{
10
+ {%- if value['description'] -%}
11
+ description:<|"|>{{ value['description'] }}<|"|>
12
+ {%- set add_comma = true -%}
13
+ {%- endif -%}
14
+ {%- if value['nullable'] %}
15
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
16
+ nullable:true
17
+ {%- endif -%}
18
+ {%- if value['type'] | upper == 'STRING' -%}
19
+ {%- if value['enum'] -%}
20
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
21
+ enum:{{ format_argument(value['enum']) }}
22
+ {%- endif -%}
23
+ {%- elif value['type'] | upper == 'OBJECT' -%}
24
+ ,properties:{
25
+ {%- if value['properties'] is defined and value['properties'] is mapping -%}
26
+ {{- format_parameters(value['properties'], value['required'] | default([])) -}}
27
+ {%- elif value is mapping -%}
28
+ {{- format_parameters(value, value['required'] | default([])) -}}
29
+ {%- endif -%}
30
+ }
31
+ {%- if value['required'] -%}
32
+ ,required:[
33
+ {%- for item in value['required'] | default([]) -%}
34
+ <|"|>{{- item -}}<|"|>
35
+ {%- if not loop.last %},{% endif -%}
36
+ {%- endfor -%}
37
+ ]
38
+ {%- endif -%}
39
+ {%- elif value['type'] | upper == 'ARRAY' -%}
40
+ {%- if value['items'] is mapping and value['items'] -%}
41
+ ,items:{
42
+ {%- set ns_items = namespace(found_first=false) -%}
43
+ {%- for item_key, item_value in value['items'] | dictsort -%}
44
+ {%- if item_value is not none -%}
45
+ {%- if ns_items.found_first %},{% endif -%}
46
+ {%- set ns_items.found_first = true -%}
47
+ {%- if item_key == 'properties' -%}
48
+ properties:{
49
+ {%- if item_value is mapping -%}
50
+ {{- format_parameters(item_value, value['items']['required'] | default([])) -}}
51
+ {%- endif -%}
52
+ }
53
+ {%- elif item_key == 'required' -%}
54
+ required:[
55
+ {%- for req_item in item_value -%}
56
+ <|"|>{{- req_item -}}<|"|>
57
+ {%- if not loop.last %},{% endif -%}
58
+ {%- endfor -%}
59
+ ]
60
+ {%- elif item_key == 'type' -%}
61
+ {%- if item_value is string -%}
62
+ type:{{ format_argument(item_value | upper) }}
63
+ {%- else -%}
64
+ type:{{ format_argument(item_value | map('upper') | list) }}
65
+ {%- endif -%}
66
+ {%- else -%}
67
+ {{ item_key }}:{{ format_argument(item_value) }}
68
+ {%- endif -%}
69
+ {%- endif -%}
70
+ {%- endfor -%}
71
+ }
72
+ {%- endif -%}
73
+ {%- endif -%}
74
+ {%- if add_comma %},{%- else -%} {%- set add_comma = true -%} {% endif -%}
75
+ type:<|"|>{{ value['type'] | upper }}<|"|>}
76
+ {%- endif -%}
77
+ {%- endfor -%}
78
+ {%- endmacro -%}
79
+ {%- macro format_function_declaration(tool_data) -%}
80
+ declaration:{{- tool_data['function']['name'] -}}{description:<|"|>{{- tool_data['function']['description'] -}}<|"|>
81
+ {%- set params = tool_data['function']['parameters'] -%}
82
+ {%- if params -%}
83
+ ,parameters:{
84
+ {%- if params['properties'] -%}
85
+ properties:{ {{- format_parameters(params['properties'], params['required']) -}} },
86
+ {%- endif -%}
87
+ {%- if params['required'] -%}
88
+ required:[
89
+ {%- for item in params['required'] -%}
90
+ <|"|>{{- item -}}<|"|>
91
+ {{- ',' if not loop.last -}}
92
+ {%- endfor -%}
93
+ ],
94
+ {%- endif -%}
95
+ {%- if params['type'] -%}
96
+ type:<|"|>{{- params['type'] | upper -}}<|"|>}
97
+ {%- endif -%}
98
+ {%- endif -%}
99
+ {%- if 'response' in tool_data['function'] -%}
100
+ {%- set response_declaration = tool_data['function']['response'] -%}
101
+ ,response:{
102
+ {%- if response_declaration['description'] -%}
103
+ description:<|"|>{{- response_declaration['description'] -}}<|"|>,
104
+ {%- endif -%}
105
+ {%- if response_declaration['type'] | upper == 'OBJECT' -%}
106
+ type:<|"|>{{- response_declaration['type'] | upper -}}<|"|>}
107
+ {%- endif -%}
108
+ {%- endif -%}
109
+ }
110
+ {%- endmacro -%}
111
+ {%- macro format_argument(argument, escape_keys=True) -%}
112
+ {%- if argument is string -%}
113
+ {{- '<|"|>' + argument + '<|"|>' -}}
114
+ {%- elif argument is boolean -%}
115
+ {{- 'true' if argument else 'false' -}}
116
+ {%- elif argument is mapping -%}
117
+ {{- '{' -}}
118
+ {%- set ns = namespace(found_first=false) -%}
119
+ {%- for key, value in argument | dictsort -%}
120
+ {%- if ns.found_first %},{% endif -%}
121
+ {%- set ns.found_first = true -%}
122
+ {%- if escape_keys -%}
123
+ {{- '<|"|>' + key + '<|"|>' -}}
124
+ {%- else -%}
125
+ {{- key -}}
126
+ {%- endif -%}
127
+ :{{- format_argument(value, escape_keys=escape_keys) -}}
128
+ {%- endfor -%}
129
+ {{- '}' -}}
130
+ {%- elif argument is sequence -%}
131
+ {{- '[' -}}
132
+ {%- for item in argument -%}
133
+ {{- format_argument(item, escape_keys=escape_keys) -}}
134
+ {%- if not loop.last %},{% endif -%}
135
+ {%- endfor -%}
136
+ {{- ']' -}}
137
+ {%- else -%}
138
+ {{- argument -}}
139
+ {%- endif -%}
140
+ {%- endmacro -%}
141
+ {%- macro strip_thinking(text) -%}
142
+ {%- set ns = namespace(result='') -%}
143
+ {%- for part in text.split('<channel|>') -%}
144
+ {%- if '<|channel>' in part -%}
145
+ {%- set ns.result = ns.result + part.split('<|channel>')[0] -%}
146
+ {%- else -%}
147
+ {%- set ns.result = ns.result + part -%}
148
+ {%- endif -%}
149
+ {%- endfor -%}
150
+ {{- ns.result | trim -}}
151
+ {%- endmacro -%}
152
+
153
+ {%- set ns = namespace(prev_message_type=None) -%}
154
+ {%- set loop_messages = messages -%}
155
+ {{ bos_token }}
156
+ {#- Handle System/Tool Definitions Block -#}
157
+ {%- if (enable_thinking is defined and enable_thinking) or tools or messages[0]['role'] in ['system', 'developer'] -%}
158
+ {{- '<|turn>system\n' -}}
159
+
160
+ {#- Inject Thinking token at the very top of the FIRST system turn -#}
161
+ {%- if enable_thinking is defined and enable_thinking -%}
162
+ {{- '<|think|>' -}}
163
+ {%- set ns.prev_message_type = 'think' -%}
164
+ {%- endif -%}
165
+
166
+ {%- if messages[0]['role'] in ['system', 'developer'] -%}
167
+ {{- messages[0]['content'] | trim -}}
168
+ {%- set loop_messages = messages[1:] -%}
169
+ {%- endif -%}
170
+
171
+ {%- if tools -%}
172
+ {%- for tool in tools %}
173
+ {{- '<|tool>' -}}
174
+ {{- format_function_declaration(tool) | trim -}}
175
+ {{- '<tool|>' -}}
176
+ {%- endfor %}
177
+ {%- set ns.prev_message_type = 'tool' -%}
178
+ {%- endif -%}
179
+
180
+ {{- '<turn|>\n' -}}
181
+ {%- endif %}
182
+
183
+ {#- Loop through messages -#}
184
+ {%- for message in loop_messages -%}
185
+ {%- set ns.prev_message_type = None -%}
186
+ {%- set role = 'model' if message['role'] == 'assistant' else message['role'] -%}
187
+ {{- '<|turn>' + role + '\n' }}
188
+
189
+ {%- if message['tool_calls'] -%}
190
+ {%- for tool_call in message['tool_calls'] -%}
191
+ {%- set function = tool_call['function'] -%}
192
+ {{- '<|tool_call>call:' + function['name'] + '{' -}}
193
+ {%- if function['arguments'] is mapping -%}
194
+ {%- set ns_args = namespace(found_first=false) -%}
195
+ {%- for key, value in function['arguments'] | dictsort -%}
196
+ {%- if ns_args.found_first %},{% endif -%}
197
+ {%- set ns_args.found_first = true -%}
198
+ {{- key -}}:{{- format_argument(value, escape_keys=False) -}}
199
+ {%- endfor -%}
200
+ {%- elif function['arguments'] is string -%}
201
+ {{- function['arguments'] -}}
202
+ {%- endif -%}
203
+ {{- '}<tool_call|>' -}}
204
+ {%- endfor -%}
205
+ {%- set ns.prev_message_type = 'tool_call' -%}
206
+ {%- endif -%}
207
+
208
+ {%- if message['tool_responses'] -%}
209
+ {#- Tool Response handling -#}
210
+ {%- for tool_response in message['tool_responses'] -%}
211
+ {{- '<|tool_response>' -}}
212
+ {%- if tool_response['response'] is mapping -%}
213
+ {{- 'response:' + tool_response['name'] | default('unknown') + '{' -}}
214
+ {%- for key, value in tool_response['response'] | dictsort -%}
215
+ {{- key -}}:{{- format_argument(value, escape_keys=False) -}}
216
+ {%- if not loop.last %},{% endif -%}
217
+ {%- endfor -%}
218
+ {{- '}' -}}
219
+ {%- else -%}
220
+ {{- 'response:' + tool_response['name'] | default('unknown') + '{value:' + format_argument(tool_response['response'], escape_keys=False) + '}' -}}
221
+ {%- endif -%}
222
+ {{- '<tool_response|>' -}}
223
+ {%- endfor -%}
224
+ {%- set ns.prev_message_type = 'tool_response' -%}
225
+ {%- endif -%}
226
+
227
+ {%- if message['content'] is string -%}
228
+ {%- if role == 'model' -%}
229
+ {{- strip_thinking(message['content']) -}}
230
+ {%- else -%}
231
+ {{- message['content'] | trim -}}
232
+ {%- endif -%}
233
+ {%- elif message['content'] is sequence -%}
234
+ {%- for item in message['content'] -%}
235
+ {%- if item['type'] == 'text' -%}
236
+ {%- if role == 'model' -%}
237
+ {{- strip_thinking(item['text']) -}}
238
+ {%- else -%}
239
+ {{- item['text'] | trim -}}
240
+ {%- endif -%}
241
+ {%- elif item['type'] == 'image' -%}
242
+ {{- '\n\n<|image|>\n\n' -}}
243
+ {%- set ns.prev_message_type = 'image' -%}
244
+ {%- elif item['type'] == 'audio' -%}
245
+ {{- '<|audio|>' -}}
246
+ {%- set ns.prev_message_type = 'audio' -%}
247
+ {%- elif item['type'] == 'video' -%}
248
+ {{- '\n\n<|video|>\n\n' -}}
249
+ {%- set ns.prev_message_type = 'video' -%}
250
+ {%- endif -%}
251
+ {%- endfor -%}
252
+ {%- endif -%}
253
+
254
+ {%- if not (message['tool_responses'] and not message['content']) -%}
255
+ {{- '<turn|>\n' -}}
256
+ {%- endif -%}
257
+ {%- endfor -%}
258
+
259
+ {%- if add_generation_prompt -%}
260
+ {%- if ns.prev_message_type != 'tool_response' -%}
261
+ {{- '<|turn>model\n' -}}
262
+ {%- endif -%}
263
+ {%- endif -%}
processor_config.json ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_ms_per_token": 40,
3
+ "audio_seq_length": 750,
4
+ "feature_extractor": {
5
+ "dither": 0.0,
6
+ "feature_extractor_type": "Gemma4AudioFeatureExtractor",
7
+ "feature_size": 128,
8
+ "fft_length": 512,
9
+ "fft_overdrive": false,
10
+ "frame_length": 320,
11
+ "hop_length": 160,
12
+ "input_scale_factor": 1.0,
13
+ "max_frequency": 8000.0,
14
+ "mel_floor": 0.001,
15
+ "min_frequency": 0.0,
16
+ "padding_side": "left",
17
+ "padding_value": 0.0,
18
+ "per_bin_mean": null,
19
+ "per_bin_stddev": null,
20
+ "preemphasis": 0.0,
21
+ "preemphasis_htk_flavor": true,
22
+ "return_attention_mask": true,
23
+ "sampling_rate": 16000
24
+ },
25
+ "image_processor": {
26
+ "do_convert_rgb": true,
27
+ "do_normalize": false,
28
+ "do_rescale": true,
29
+ "do_resize": true,
30
+ "image_mean": [
31
+ 0.0,
32
+ 0.0,
33
+ 0.0
34
+ ],
35
+ "image_processor_type": "Gemma4ImageProcessor",
36
+ "image_seq_length": 280,
37
+ "image_std": [
38
+ 1.0,
39
+ 1.0,
40
+ 1.0
41
+ ],
42
+ "max_soft_tokens": 280,
43
+ "patch_size": 16,
44
+ "pooling_kernel_size": 3,
45
+ "resample": 3,
46
+ "rescale_factor": 0.00392156862745098
47
+ },
48
+ "image_seq_length": 280,
49
+ "processor_class": "Gemma4Processor",
50
+ "video_processor": {
51
+ "do_convert_rgb": true,
52
+ "do_normalize": true,
53
+ "do_rescale": true,
54
+ "do_resize": true,
55
+ "do_sample_frames": true,
56
+ "image_mean": [
57
+ 0.0,
58
+ 0.0,
59
+ 0.0
60
+ ],
61
+ "image_std": [
62
+ 1.0,
63
+ 1.0,
64
+ 1.0
65
+ ],
66
+ "max_soft_tokens": 70,
67
+ "num_frames": 32,
68
+ "patch_size": 16,
69
+ "pooling_kernel_size": 3,
70
+ "resample": 3,
71
+ "rescale_factor": 0.00392156862745098,
72
+ "return_metadata": false,
73
+ "video_processor_type": "Gemma4VideoProcessor"
74
+ }
75
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc49cb3a1486c3a8a5d92051de97f978889927b1a0a040ebeb70458343e2fea6
3
+ size 32265570
tokenizer_config.json ADDED
@@ -0,0 +1,606 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_token": "<|audio|>",
3
+ "backend": "tokenizers",
4
+ "boa_token": "<|audio>",
5
+ "boi_token": "<|image>",
6
+ "bos_token": "<bos>",
7
+ "eoa_token": "<audio|>",
8
+ "eoc_token": "<channel|>",
9
+ "eoi_token": "<image|>",
10
+ "eos_token": "<turn|>",
11
+ "eot_token": "<turn|>",
12
+ "escape_token": "<|\"|>",
13
+ "etc_token": "<tool_call|>",
14
+ "etd_token": "<tool|>",
15
+ "etr_token": "<tool_response|>",
16
+ "extra_special_tokens": [
17
+ "<unused0>",
18
+ "<unused1>",
19
+ "<unused2>",
20
+ "<unused3>",
21
+ "<unused4>",
22
+ "<unused5>",
23
+ "<unused6>",
24
+ "<unused7>",
25
+ "<unused8>",
26
+ "<unused9>",
27
+ "<unused10>",
28
+ "<unused11>",
29
+ "<unused12>",
30
+ "<unused13>",
31
+ "<unused14>",
32
+ "<unused15>",
33
+ "<unused16>",
34
+ "<unused17>",
35
+ "<unused18>",
36
+ "<unused19>",
37
+ "<unused20>",
38
+ "<unused21>",
39
+ "<unused22>",
40
+ "<unused23>",
41
+ "<unused24>",
42
+ "<unused25>",
43
+ "<unused26>",
44
+ "<unused27>",
45
+ "<unused28>",
46
+ "<unused29>",
47
+ "<unused30>",
48
+ "<unused31>",
49
+ "<unused32>",
50
+ "<unused33>",
51
+ "<unused34>",
52
+ "<unused35>",
53
+ "<unused36>",
54
+ "<unused37>",
55
+ "<unused38>",
56
+ "<unused39>",
57
+ "<unused40>",
58
+ "<unused41>",
59
+ "<unused42>",
60
+ "<unused43>",
61
+ "<unused44>",
62
+ "<unused45>",
63
+ "<unused46>",
64
+ "<unused47>",
65
+ "<unused48>",
66
+ "<unused49>",
67
+ "<unused50>",
68
+ "<unused51>",
69
+ "<unused52>",
70
+ "<unused53>",
71
+ "<unused54>",
72
+ "<unused55>",
73
+ "<unused56>",
74
+ "<unused57>",
75
+ "<unused58>",
76
+ "<unused59>",
77
+ "<unused60>",
78
+ "<unused61>",
79
+ "<unused62>",
80
+ "<unused63>",
81
+ "<unused64>",
82
+ "<unused65>",
83
+ "<unused66>",
84
+ "<unused67>",
85
+ "<unused68>",
86
+ "<unused69>",
87
+ "<unused70>",
88
+ "<unused71>",
89
+ "<unused72>",
90
+ "<unused73>",
91
+ "<unused74>",
92
+ "<unused75>",
93
+ "<unused76>",
94
+ "<unused77>",
95
+ "<unused78>",
96
+ "<unused79>",
97
+ "<unused80>",
98
+ "<unused81>",
99
+ "<unused82>",
100
+ "<unused83>",
101
+ "<unused84>",
102
+ "<unused85>",
103
+ "<unused86>",
104
+ "<unused87>",
105
+ "<unused88>",
106
+ "<unused89>",
107
+ "<unused90>",
108
+ "<unused91>",
109
+ "<unused92>",
110
+ "<unused93>",
111
+ "<unused94>",
112
+ "<unused95>",
113
+ "<unused96>",
114
+ "<unused97>",
115
+ "<unused98>",
116
+ "<unused99>",
117
+ "<unused100>",
118
+ "<unused101>",
119
+ "<unused102>",
120
+ "<unused103>",
121
+ "<unused104>",
122
+ "<unused105>",
123
+ "<unused106>",
124
+ "<unused107>",
125
+ "<unused108>",
126
+ "<unused109>",
127
+ "<unused110>",
128
+ "<unused111>",
129
+ "<unused112>",
130
+ "<unused113>",
131
+ "<unused114>",
132
+ "<unused115>",
133
+ "<unused116>",
134
+ "<unused117>",
135
+ "<unused118>",
136
+ "<unused119>",
137
+ "<unused120>",
138
+ "<unused121>",
139
+ "<unused122>",
140
+ "<unused123>",
141
+ "<unused124>",
142
+ "<unused125>",
143
+ "<unused126>",
144
+ "<unused127>",
145
+ "<unused128>",
146
+ "<unused129>",
147
+ "<unused130>",
148
+ "<unused131>",
149
+ "<unused132>",
150
+ "<unused133>",
151
+ "<unused134>",
152
+ "<unused135>",
153
+ "<unused136>",
154
+ "<unused137>",
155
+ "<unused138>",
156
+ "<unused139>",
157
+ "<unused140>",
158
+ "<unused141>",
159
+ "<unused142>",
160
+ "<unused143>",
161
+ "<unused144>",
162
+ "<unused145>",
163
+ "<unused146>",
164
+ "<unused147>",
165
+ "<unused148>",
166
+ "<unused149>",
167
+ "<unused150>",
168
+ "<unused151>",
169
+ "<unused152>",
170
+ "<unused153>",
171
+ "<unused154>",
172
+ "<unused155>",
173
+ "<unused156>",
174
+ "<unused157>",
175
+ "<unused158>",
176
+ "<unused159>",
177
+ "<unused160>",
178
+ "<unused161>",
179
+ "<unused162>",
180
+ "<unused163>",
181
+ "<unused164>",
182
+ "<unused165>",
183
+ "<unused166>",
184
+ "<unused167>",
185
+ "<unused168>",
186
+ "<unused169>",
187
+ "<unused170>",
188
+ "<unused171>",
189
+ "<unused172>",
190
+ "<unused173>",
191
+ "<unused174>",
192
+ "<unused175>",
193
+ "<unused176>",
194
+ "<unused177>",
195
+ "<unused178>",
196
+ "<unused179>",
197
+ "<unused180>",
198
+ "<unused181>",
199
+ "<unused182>",
200
+ "<unused183>",
201
+ "<unused184>",
202
+ "<unused185>",
203
+ "<unused186>",
204
+ "<unused187>",
205
+ "<unused188>",
206
+ "<unused189>",
207
+ "<unused190>",
208
+ "<unused191>",
209
+ "<unused192>",
210
+ "<unused193>",
211
+ "<unused194>",
212
+ "<unused195>",
213
+ "<unused196>",
214
+ "<unused197>",
215
+ "<unused198>",
216
+ "<unused199>",
217
+ "<unused200>",
218
+ "<unused201>",
219
+ "<unused202>",
220
+ "<unused203>",
221
+ "<unused204>",
222
+ "<unused205>",
223
+ "<unused206>",
224
+ "<unused207>",
225
+ "<unused208>",
226
+ "<unused209>",
227
+ "<unused210>",
228
+ "<unused211>",
229
+ "<unused212>",
230
+ "<unused213>",
231
+ "<unused214>",
232
+ "<unused215>",
233
+ "<unused216>",
234
+ "<unused217>",
235
+ "<unused218>",
236
+ "<unused219>",
237
+ "<unused220>",
238
+ "<unused221>",
239
+ "<unused222>",
240
+ "<unused223>",
241
+ "<unused224>",
242
+ "<unused225>",
243
+ "<unused226>",
244
+ "<unused227>",
245
+ "<unused228>",
246
+ "<unused229>",
247
+ "<unused230>",
248
+ "<unused231>",
249
+ "<unused232>",
250
+ "<unused233>",
251
+ "<unused234>",
252
+ "<unused235>",
253
+ "<unused236>",
254
+ "<unused237>",
255
+ "<unused238>",
256
+ "<unused239>",
257
+ "<unused240>",
258
+ "<unused241>",
259
+ "<unused242>",
260
+ "<unused243>",
261
+ "<unused244>",
262
+ "<unused245>",
263
+ "<unused246>",
264
+ "<unused247>",
265
+ "<unused248>",
266
+ "<unused249>",
267
+ "<unused250>",
268
+ "<unused251>",
269
+ "<unused252>",
270
+ "<unused253>",
271
+ "<unused254>",
272
+ "<unused255>",
273
+ "<unused256>",
274
+ "<unused257>",
275
+ "<unused258>",
276
+ "<unused259>",
277
+ "<unused260>",
278
+ "<unused261>",
279
+ "<unused262>",
280
+ "<unused263>",
281
+ "<unused264>",
282
+ "<unused265>",
283
+ "<unused266>",
284
+ "<unused267>",
285
+ "<unused268>",
286
+ "<unused269>",
287
+ "<unused270>",
288
+ "<unused271>",
289
+ "<unused272>",
290
+ "<unused273>",
291
+ "<unused274>",
292
+ "<unused275>",
293
+ "<unused276>",
294
+ "<unused277>",
295
+ "<unused278>",
296
+ "<unused279>",
297
+ "<unused280>",
298
+ "<unused281>",
299
+ "<unused282>",
300
+ "<unused283>",
301
+ "<unused284>",
302
+ "<unused285>",
303
+ "<unused286>",
304
+ "<unused287>",
305
+ "<unused288>",
306
+ "<unused289>",
307
+ "<unused290>",
308
+ "<unused291>",
309
+ "<unused292>",
310
+ "<unused293>",
311
+ "<unused294>",
312
+ "<unused295>",
313
+ "<unused296>",
314
+ "<unused297>",
315
+ "<unused298>",
316
+ "<unused299>",
317
+ "<unused300>",
318
+ "<unused301>",
319
+ "<unused302>",
320
+ "<unused303>",
321
+ "<unused304>",
322
+ "<unused305>",
323
+ "<unused306>",
324
+ "<unused307>",
325
+ "<unused308>",
326
+ "<unused309>",
327
+ "<unused310>",
328
+ "<unused311>",
329
+ "<unused312>",
330
+ "<unused313>",
331
+ "<unused314>",
332
+ "<unused315>",
333
+ "<unused316>",
334
+ "<unused317>",
335
+ "<unused318>",
336
+ "<unused319>",
337
+ "<unused320>",
338
+ "<unused321>",
339
+ "<unused322>",
340
+ "<unused323>",
341
+ "<unused324>",
342
+ "<unused325>",
343
+ "<unused326>",
344
+ "<unused327>",
345
+ "<unused328>",
346
+ "<unused329>",
347
+ "<unused330>",
348
+ "<unused331>",
349
+ "<unused332>",
350
+ "<unused333>",
351
+ "<unused334>",
352
+ "<unused335>",
353
+ "<unused336>",
354
+ "<unused337>",
355
+ "<unused338>",
356
+ "<unused339>",
357
+ "<unused340>",
358
+ "<unused341>",
359
+ "<unused342>",
360
+ "<unused343>",
361
+ "<unused344>",
362
+ "<unused345>",
363
+ "<unused346>",
364
+ "<unused347>",
365
+ "<unused348>",
366
+ "<unused349>",
367
+ "<unused350>",
368
+ "<unused351>",
369
+ "<unused352>",
370
+ "<unused353>",
371
+ "<unused354>",
372
+ "<unused355>",
373
+ "<unused356>",
374
+ "<unused357>",
375
+ "<unused358>",
376
+ "<unused359>",
377
+ "<unused360>",
378
+ "<unused361>",
379
+ "<unused362>",
380
+ "<unused363>",
381
+ "<unused364>",
382
+ "<unused365>",
383
+ "<unused366>",
384
+ "<unused367>",
385
+ "<unused368>",
386
+ "<unused369>",
387
+ "<unused370>",
388
+ "<unused371>",
389
+ "<unused372>",
390
+ "<unused373>",
391
+ "<unused374>",
392
+ "<unused375>",
393
+ "<unused376>",
394
+ "<unused377>",
395
+ "<unused378>",
396
+ "<unused379>",
397
+ "<unused380>",
398
+ "<unused381>",
399
+ "<unused382>",
400
+ "<unused383>",
401
+ "<unused384>",
402
+ "<unused385>",
403
+ "<unused386>",
404
+ "<unused387>",
405
+ "<unused388>",
406
+ "<unused389>",
407
+ "<unused390>",
408
+ "<unused391>",
409
+ "<unused392>",
410
+ "<unused393>",
411
+ "<unused394>",
412
+ "<unused395>",
413
+ "<unused396>",
414
+ "<unused397>",
415
+ "<unused398>",
416
+ "<unused399>",
417
+ "<unused400>",
418
+ "<unused401>",
419
+ "<unused402>",
420
+ "<unused403>",
421
+ "<unused404>",
422
+ "<unused405>",
423
+ "<unused406>",
424
+ "<unused407>",
425
+ "<unused408>",
426
+ "<unused409>",
427
+ "<unused410>",
428
+ "<unused411>",
429
+ "<unused412>",
430
+ "<unused413>",
431
+ "<unused414>",
432
+ "<unused415>",
433
+ "<unused416>",
434
+ "<unused417>",
435
+ "<unused418>",
436
+ "<unused419>",
437
+ "<unused420>",
438
+ "<unused421>",
439
+ "<unused422>",
440
+ "<unused423>",
441
+ "<unused424>",
442
+ "<unused425>",
443
+ "<unused426>",
444
+ "<unused427>",
445
+ "<unused428>",
446
+ "<unused429>",
447
+ "<unused430>",
448
+ "<unused431>",
449
+ "<unused432>",
450
+ "<unused433>",
451
+ "<unused434>",
452
+ "<unused435>",
453
+ "<unused436>",
454
+ "<unused437>",
455
+ "<unused438>",
456
+ "<unused439>",
457
+ "<unused440>",
458
+ "<unused441>",
459
+ "<unused442>",
460
+ "<unused443>",
461
+ "<unused444>",
462
+ "<unused445>",
463
+ "<unused446>",
464
+ "<unused447>",
465
+ "<unused448>",
466
+ "<unused449>",
467
+ "<unused450>",
468
+ "<unused451>",
469
+ "<unused452>",
470
+ "<unused453>",
471
+ "<unused454>",
472
+ "<unused455>",
473
+ "<unused456>",
474
+ "<unused457>",
475
+ "<unused458>",
476
+ "<unused459>",
477
+ "<unused460>",
478
+ "<unused461>",
479
+ "<unused462>",
480
+ "<unused463>",
481
+ "<unused464>",
482
+ "<unused465>",
483
+ "<unused466>",
484
+ "<unused467>",
485
+ "<unused468>",
486
+ "<unused469>",
487
+ "<unused470>",
488
+ "<unused471>",
489
+ "<unused472>",
490
+ "<unused473>",
491
+ "<unused474>",
492
+ "<unused475>",
493
+ "<unused476>",
494
+ "<unused477>",
495
+ "<unused478>",
496
+ "<unused479>",
497
+ "<unused480>",
498
+ "<unused481>",
499
+ "<unused482>",
500
+ "<unused483>",
501
+ "<unused484>",
502
+ "<unused485>",
503
+ "<unused486>",
504
+ "<unused487>",
505
+ "<unused488>",
506
+ "<unused489>",
507
+ "<unused490>",
508
+ "<unused491>",
509
+ "<unused492>",
510
+ "<unused493>",
511
+ "<unused494>",
512
+ "<unused495>",
513
+ "<unused496>",
514
+ "<unused497>",
515
+ "<unused498>",
516
+ "<unused499>",
517
+ "<unused500>",
518
+ "<unused501>",
519
+ "<unused502>",
520
+ "<unused503>",
521
+ "<unused504>",
522
+ "<unused505>",
523
+ "<unused506>",
524
+ "<unused507>",
525
+ "<unused508>",
526
+ "<unused509>",
527
+ "<unused510>",
528
+ "<unused511>"
529
+ ],
530
+ "image_token": "<|image|>",
531
+ "is_local": false,
532
+ "mask_token": "<mask>",
533
+ "model_max_length": 131072,
534
+ "model_specific_special_tokens": {
535
+ "audio_token": "<|audio|>",
536
+ "boa_token": "<|audio>",
537
+ "boi_token": "<|image>",
538
+ "eoa_token": "<audio|>",
539
+ "eoc_token": "<channel|>",
540
+ "eoi_token": "<image|>",
541
+ "eot_token": "<turn|>",
542
+ "escape_token": "<|\"|>",
543
+ "etc_token": "<tool_call|>",
544
+ "etd_token": "<tool|>",
545
+ "etr_token": "<tool_response|>",
546
+ "image_token": "<|image|>",
547
+ "soc_token": "<|channel>",
548
+ "sot_token": "<|turn>",
549
+ "stc_token": "<|tool_call>",
550
+ "std_token": "<|tool>",
551
+ "str_token": "<|tool_response>",
552
+ "think_token": "<|think|>"
553
+ },
554
+ "pad_token": "<pad>",
555
+ "padding_side": "right",
556
+ "processor_class": "Gemma4Processor",
557
+ "response_schema": {
558
+ "properties": {
559
+ "content": {
560
+ "type": "string"
561
+ },
562
+ "role": {
563
+ "const": "assistant"
564
+ },
565
+ "thinking": {
566
+ "type": "string"
567
+ },
568
+ "tool_calls": {
569
+ "items": {
570
+ "properties": {
571
+ "function": {
572
+ "properties": {
573
+ "arguments": {
574
+ "additionalProperties": {},
575
+ "type": "object",
576
+ "x-parser": "gemma4-tool-call"
577
+ },
578
+ "name": {
579
+ "type": "string"
580
+ }
581
+ },
582
+ "type": "object",
583
+ "x-regex": "call\\:(?P<name>\\w+)(?P<arguments>\\{.*\\})"
584
+ },
585
+ "type": {
586
+ "const": "function"
587
+ }
588
+ },
589
+ "type": "object"
590
+ },
591
+ "type": "array",
592
+ "x-regex-iterator": "<\\|tool_call>(.*?)<tool_call\\|>"
593
+ }
594
+ },
595
+ "type": "object",
596
+ "x-regex": "(\\<\\|channel\\>thought\\n(?P<thinking>.*?)\\<channel\\|\\>)?(?P<content>(?:(?!\\<\\|tool_call\\>)(?!\\<turn\\|\\>).)+)?(?P<tool_calls>\\<\\|tool_call\\>.*\\<tool_call\\|\\>)?(?:\\<turn\\|\\>)?"
597
+ },
598
+ "soc_token": "<|channel>",
599
+ "sot_token": "<|turn>",
600
+ "stc_token": "<|tool_call>",
601
+ "std_token": "<|tool>",
602
+ "str_token": "<|tool_response>",
603
+ "think_token": "<|think|>",
604
+ "tokenizer_class": "GemmaTokenizer",
605
+ "unk_token": "<unk>"
606
+ }