Tnt3o5 commited on
Commit
3b9c02c
·
verified ·
1 Parent(s): f422b1d

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
added_tokens.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<think>": 151667,
6
+ "<tool_call>": 151657,
7
+ "<tool_response>": 151665,
8
+ "<|box_end|>": 151649,
9
+ "<|box_start|>": 151648,
10
+ "<|endoftext|>": 151643,
11
+ "<|file_sep|>": 151664,
12
+ "<|fim_middle|>": 151660,
13
+ "<|fim_pad|>": 151662,
14
+ "<|fim_prefix|>": 151659,
15
+ "<|fim_suffix|>": 151661,
16
+ "<|im_end|>": 151645,
17
+ "<|im_start|>": 151644,
18
+ "<|image_pad|>": 151655,
19
+ "<|object_ref_end|>": 151647,
20
+ "<|object_ref_start|>": 151646,
21
+ "<|quad_end|>": 151651,
22
+ "<|quad_start|>": 151650,
23
+ "<|repo_name|>": 151663,
24
+ "<|video_pad|>": 151656,
25
+ "<|vision_end|>": 151653,
26
+ "<|vision_pad|>": 151654,
27
+ "<|vision_start|>": 151652
28
+ }
args.json ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "output_dir": "/kaggle/working/outputs/ovis2_5/v0-20250919-162228",
3
+ "overwrite_output_dir": false,
4
+ "do_train": false,
5
+ "do_eval": false,
6
+ "do_predict": false,
7
+ "eval_strategy": "no",
8
+ "prediction_loss_only": false,
9
+ "per_device_train_batch_size": 2,
10
+ "per_device_eval_batch_size": 2,
11
+ "per_gpu_train_batch_size": null,
12
+ "per_gpu_eval_batch_size": null,
13
+ "gradient_accumulation_steps": 64,
14
+ "eval_accumulation_steps": null,
15
+ "eval_delay": 0,
16
+ "torch_empty_cache_steps": null,
17
+ "learning_rate": 1.928e-05,
18
+ "weight_decay": 0.1,
19
+ "adam_beta1": 0.9,
20
+ "adam_beta2": 0.95,
21
+ "adam_epsilon": 1e-08,
22
+ "max_grad_norm": 1.0,
23
+ "num_train_epochs": 1.0,
24
+ "max_steps": -1,
25
+ "lr_scheduler_type": "cosine",
26
+ "lr_scheduler_kwargs": null,
27
+ "warmup_ratio": 0.0,
28
+ "warmup_steps": 0,
29
+ "log_level": "passive",
30
+ "log_level_replica": "warning",
31
+ "log_on_each_node": true,
32
+ "logging_dir": "/kaggle/working/outputs/ovis2_5/v0-20250919-162228/runs",
33
+ "logging_strategy": "steps",
34
+ "logging_first_step": true,
35
+ "logging_steps": 20,
36
+ "logging_nan_inf_filter": true,
37
+ "save_strategy": "steps",
38
+ "save_steps": 20.0,
39
+ "save_total_limit": 1,
40
+ "save_safetensors": true,
41
+ "save_on_each_node": false,
42
+ "save_only_model": true,
43
+ "restore_callback_states_from_checkpoint": false,
44
+ "no_cuda": false,
45
+ "use_cpu": false,
46
+ "use_mps_device": false,
47
+ "seed": 42,
48
+ "data_seed": 42,
49
+ "jit_mode_eval": false,
50
+ "use_ipex": false,
51
+ "bf16": true,
52
+ "fp16": false,
53
+ "fp16_opt_level": "O1",
54
+ "half_precision_backend": "auto",
55
+ "bf16_full_eval": false,
56
+ "fp16_full_eval": false,
57
+ "tf32": null,
58
+ "local_rank": 0,
59
+ "ddp_backend": null,
60
+ "tpu_num_cores": null,
61
+ "tpu_metrics_debug": false,
62
+ "debug": null,
63
+ "dataloader_drop_last": false,
64
+ "eval_steps": 20.0,
65
+ "dataloader_num_workers": 8,
66
+ "dataloader_prefetch_factor": null,
67
+ "past_index": -1,
68
+ "run_name": "/kaggle/working/outputs/ovis2_5/v0-20250919-162228",
69
+ "disable_tqdm": null,
70
+ "remove_unused_columns": true,
71
+ "label_names": null,
72
+ "load_best_model_at_end": false,
73
+ "metric_for_best_model": "loss",
74
+ "greater_is_better": false,
75
+ "ignore_data_skip": false,
76
+ "fsdp": "",
77
+ "fsdp_min_num_params": 0,
78
+ "fsdp_config": null,
79
+ "tp_size": 0,
80
+ "fsdp_transformer_layer_cls_to_wrap": null,
81
+ "accelerator_config": {
82
+ "dispatch_batches": false
83
+ },
84
+ "deepspeed": null,
85
+ "label_smoothing_factor": 0.0,
86
+ "optim": "adamw_torch",
87
+ "optim_args": null,
88
+ "adafactor": false,
89
+ "group_by_length": false,
90
+ "length_column_name": "length",
91
+ "report_to": [
92
+ "tensorboard"
93
+ ],
94
+ "ddp_find_unused_parameters": true,
95
+ "ddp_bucket_cap_mb": null,
96
+ "ddp_broadcast_buffers": null,
97
+ "dataloader_pin_memory": true,
98
+ "dataloader_persistent_workers": false,
99
+ "skip_memory_metrics": true,
100
+ "use_legacy_prediction_loop": false,
101
+ "push_to_hub": false,
102
+ "resume_from_checkpoint": null,
103
+ "hub_model_id": null,
104
+ "hub_strategy": "every_save",
105
+ "hub_token": null,
106
+ "hub_private_repo": null,
107
+ "hub_always_push": false,
108
+ "gradient_checkpointing": true,
109
+ "gradient_checkpointing_kwargs": null,
110
+ "include_inputs_for_metrics": false,
111
+ "include_for_metrics": [],
112
+ "eval_do_concat_batches": true,
113
+ "fp16_backend": "auto",
114
+ "push_to_hub_model_id": null,
115
+ "push_to_hub_organization": null,
116
+ "push_to_hub_token": null,
117
+ "mp_parameters": "",
118
+ "auto_find_batch_size": false,
119
+ "full_determinism": false,
120
+ "torchdynamo": null,
121
+ "ray_scope": "last",
122
+ "ddp_timeout": 18000000,
123
+ "torch_compile": false,
124
+ "torch_compile_backend": null,
125
+ "torch_compile_mode": null,
126
+ "include_tokens_per_second": false,
127
+ "include_num_input_tokens_seen": false,
128
+ "neftune_noise_alpha": null,
129
+ "optim_target_modules": null,
130
+ "batch_eval_metrics": false,
131
+ "eval_on_start": false,
132
+ "use_liger_kernel": false,
133
+ "eval_use_gather_object": false,
134
+ "average_tokens_across_devices": false,
135
+ "sortish_sampler": false,
136
+ "predict_with_generate": false,
137
+ "generation_max_length": null,
138
+ "generation_num_beams": null,
139
+ "generation_config": null,
140
+ "tuner_backend": "peft",
141
+ "vit_gradient_checkpointing": null,
142
+ "router_aux_loss_coef": 0.0,
143
+ "enable_dft_loss": false,
144
+ "enable_channel_loss": false,
145
+ "check_model": true,
146
+ "acc_strategy": "token",
147
+ "train_dataloader_shuffle": true,
148
+ "max_epochs": null,
149
+ "aligner_lr": null,
150
+ "vit_lr": null,
151
+ "use_logits_to_keep": null,
152
+ "ds3_gather_for_generation": true,
153
+ "resume_only_model": false,
154
+ "optimizer": null,
155
+ "loss_type": null,
156
+ "metric": null,
157
+ "eval_use_evalscope": false,
158
+ "eval_dataset": [],
159
+ "eval_dataset_args": null,
160
+ "eval_limit": null,
161
+ "eval_generation_config": null,
162
+ "extra_eval_args": null,
163
+ "use_flash_ckpt": false,
164
+ "model": "/kaggle/working/Ovis2.5-2B-Pretrained-v1",
165
+ "model_type": "ovis2_5",
166
+ "model_revision": null,
167
+ "task_type": "causal_lm",
168
+ "torch_dtype": "bfloat16",
169
+ "attn_impl": "flash_attn",
170
+ "new_special_tokens": [],
171
+ "num_labels": null,
172
+ "problem_type": null,
173
+ "rope_scaling": null,
174
+ "device_map": null,
175
+ "max_memory": {},
176
+ "max_model_len": null,
177
+ "local_repo_path": null,
178
+ "init_strategy": null,
179
+ "template": "ovis2_5",
180
+ "system": null,
181
+ "max_length": 4096,
182
+ "truncation_strategy": "delete",
183
+ "max_pixels": null,
184
+ "agent_template": null,
185
+ "norm_bbox": null,
186
+ "use_chat_template": false,
187
+ "padding_free": false,
188
+ "padding_side": "right",
189
+ "loss_scale": "all",
190
+ "sequence_parallel_size": 1,
191
+ "response_prefix": null,
192
+ "template_backend": "swift",
193
+ "dataset": [
194
+ "/kaggle/working/pretraining_vqa_fixed.jsonl"
195
+ ],
196
+ "val_dataset": [],
197
+ "split_dataset_ratio": 0.0,
198
+ "dataset_num_proc": 1,
199
+ "load_from_cache_file": true,
200
+ "dataset_shuffle": true,
201
+ "val_dataset_shuffle": false,
202
+ "streaming": false,
203
+ "interleave_prob": null,
204
+ "stopping_strategy": "first_exhausted",
205
+ "shuffle_buffer_size": 1000,
206
+ "download_mode": "reuse_dataset_if_exists",
207
+ "columns": {},
208
+ "strict": false,
209
+ "model_name": null,
210
+ "model_author": null,
211
+ "custom_dataset_info": [],
212
+ "quant_method": null,
213
+ "quant_bits": null,
214
+ "hqq_axis": null,
215
+ "bnb_4bit_compute_dtype": "bfloat16",
216
+ "bnb_4bit_quant_type": "nf4",
217
+ "bnb_4bit_use_double_quant": true,
218
+ "bnb_4bit_quant_storage": null,
219
+ "max_new_tokens": 64,
220
+ "temperature": 0.0,
221
+ "top_k": null,
222
+ "top_p": null,
223
+ "repetition_penalty": null,
224
+ "num_beams": 1,
225
+ "stream": false,
226
+ "stop_words": [],
227
+ "logprobs": false,
228
+ "top_logprobs": null,
229
+ "ckpt_dir": "/kaggle/working/Ovis2.5-2B-Pretrained-v1",
230
+ "lora_modules": [],
231
+ "train_type": "full",
232
+ "adapters": [],
233
+ "external_plugins": [],
234
+ "model_kwargs": {},
235
+ "load_args": false,
236
+ "load_data_args": false,
237
+ "packing": false,
238
+ "packing_length": null,
239
+ "lazy_tokenize": true,
240
+ "cached_dataset": [],
241
+ "custom_register_path": [],
242
+ "use_hf": true,
243
+ "ignore_args_error": false,
244
+ "use_swift_lora": false,
245
+ "freeze_parameters": [
246
+ "llm"
247
+ ],
248
+ "freeze_parameters_regex": null,
249
+ "freeze_parameters_ratio": 0.0,
250
+ "trainable_parameters": [
251
+ "visual_tokenizer.head"
252
+ ],
253
+ "trainable_parameters_regex": null,
254
+ "freeze_llm": true,
255
+ "freeze_vit": false,
256
+ "freeze_aligner": false,
257
+ "target_modules": [
258
+ "all-linear"
259
+ ],
260
+ "target_regex": null,
261
+ "target_parameters": null,
262
+ "modules_to_save": [],
263
+ "lora_rank": 8,
264
+ "lora_alpha": 32,
265
+ "lora_dropout": 0.05,
266
+ "lora_bias": "none",
267
+ "lora_dtype": null,
268
+ "lorap_lr_ratio": null,
269
+ "use_rslora": false,
270
+ "use_dora": false,
271
+ "lora_ga_batch_size": 2,
272
+ "lora_ga_iters": 2,
273
+ "lora_ga_max_length": 1024,
274
+ "lora_ga_direction": "ArB2r",
275
+ "lora_ga_scale": "stable",
276
+ "lora_ga_stable_gamma": 16,
277
+ "init_weights": true,
278
+ "fourier_n_frequency": 2000,
279
+ "fourier_scaling": 300.0,
280
+ "boft_block_size": 4,
281
+ "boft_block_num": 0,
282
+ "boft_n_butterfly_factor": 1,
283
+ "boft_dropout": 0.0,
284
+ "vera_rank": 256,
285
+ "vera_projection_prng_key": 0,
286
+ "vera_dropout": 0.0,
287
+ "vera_d_initial": 0.1,
288
+ "adapter_act": "gelu",
289
+ "adapter_length": 128,
290
+ "use_galore": false,
291
+ "galore_target_modules": null,
292
+ "galore_rank": 128,
293
+ "galore_update_proj_gap": 50,
294
+ "galore_scale": 1.0,
295
+ "galore_proj_type": "std",
296
+ "galore_optim_per_parameter": false,
297
+ "galore_with_embedding": false,
298
+ "galore_quantization": false,
299
+ "galore_proj_quant": false,
300
+ "galore_proj_bits": 4,
301
+ "galore_proj_group_size": 256,
302
+ "galore_cos_threshold": 0.4,
303
+ "galore_gamma_proj": 2,
304
+ "galore_queue_size": 5,
305
+ "adalora_target_r": 8,
306
+ "adalora_init_r": 12,
307
+ "adalora_tinit": 0,
308
+ "adalora_tfinal": 0,
309
+ "adalora_deltaT": 1,
310
+ "adalora_beta1": 0.85,
311
+ "adalora_beta2": 0.85,
312
+ "adalora_orth_reg_weight": 0.5,
313
+ "llamapro_num_new_blocks": 4,
314
+ "llamapro_num_groups": null,
315
+ "lisa_activated_layers": 0,
316
+ "lisa_step_interval": 20,
317
+ "reft_layer_key": null,
318
+ "reft_layers": null,
319
+ "reft_rank": 4,
320
+ "reft_intervention_type": "LoreftIntervention",
321
+ "reft_args": null,
322
+ "swanlab_token": null,
323
+ "swanlab_project": null,
324
+ "swanlab_workspace": null,
325
+ "swanlab_exp_name": null,
326
+ "swanlab_lark_webhook_url": null,
327
+ "swanlab_lark_secret": null,
328
+ "swanlab_mode": "cloud",
329
+ "add_version": true,
330
+ "create_checkpoint_symlink": false,
331
+ "zero_hpz_partition_size": null,
332
+ "deepspeed_autotp_size": null,
333
+ "early_stop_interval": null,
334
+ "rank": 0,
335
+ "global_world_size": 4,
336
+ "local_world_size": 4,
337
+ "model_suffix": "Ovis2.5-2B-Pretrained-v1",
338
+ "model_info": "ModelInfo(model_type='ovis2_5', model_dir='/kaggle/working/Ovis2.5-2B-Pretrained-v1', torch_dtype=torch.bfloat16, max_model_len=40960, quant_method=None, quant_bits=None, rope_scaling=None, is_moe_model=False, config=None, task_type='causal_lm', num_labels=None)",
339
+ "model_meta": "ModelMeta(model_type='ovis2_5', model_groups=[ModelGroup(models=[Model(ms_model_id='AIDC-AI/Ovis2.5-2B', hf_model_id='AIDC-AI/Ovis2.5-2B', model_path=None, ms_revision=None, hf_revision=None), Model(ms_model_id='AIDC-AI/Ovis2.5-9B', hf_model_id='AIDC-AI/Ovis2.5-9B', model_path=None, ms_revision=None, hf_revision=None)], ignore_patterns=None, requires=None, tags=[])], template='ovis2_5', get_function=<function get_model_tokenizer_ovis2_5 at 0x7a131960ae80>, model_arch=MultiModelKeys(arch_name='ovis2_5', embedding=None, module_list=None, lm_head=None, q_proj=None, k_proj=None, v_proj=None, o_proj=None, attention=None, mlp=None, down_proj=None, qkv_proj=None, qk_proj=None, qa_proj=None, qb_proj=None, kv_proj=None, kva_proj=None, kvb_proj=None, language_model=['llm'], aligner=['visual_tokenizer.head'], vision_tower=['visual_tokenizer.vit', 'vte'], generator=[]), architectures=['Ovis'], additional_saved_files=[], torch_dtype=None, is_multimodal=True, is_reward=False, task_type=None, ignore_patterns=None, requires=['transformers>=4.46.2', 'moviepy<2'], tags=['vision'])",
340
+ "model_dir": "/kaggle/working/Ovis2.5-2B-Pretrained-v1",
341
+ "hub": "<class 'swift.hub.hub.HFHub'>",
342
+ "evaluation_strategy": "steps",
343
+ "training_args": "Seq2SeqTrainingArguments(output_dir='/kaggle/working/outputs/ovis2_5/v0-20250919-162228', overwrite_output_dir=False, do_train=False, do_eval=False, do_predict=False, eval_strategy=<IntervalStrategy.NO: 'no'>, prediction_loss_only=False, per_device_train_batch_size=2, per_device_eval_batch_size=2, per_gpu_train_batch_size=None, per_gpu_eval_batch_size=None, gradient_accumulation_steps=64, eval_accumulation_steps=None, eval_delay=0, torch_empty_cache_steps=None, learning_rate=1.928e-05, weight_decay=0.1, adam_beta1=0.9, adam_beta2=0.95, adam_epsilon=1e-08, max_grad_norm=1.0, num_train_epochs=1.0, max_steps=-1, lr_scheduler_type=<SchedulerType.COSINE: 'cosine'>, lr_scheduler_kwargs=None, warmup_ratio=0.0, warmup_steps=0, log_level='passive', log_level_replica='warning', log_on_each_node=True, logging_dir='/kaggle/working/outputs/ovis2_5/v0-20250919-162228/runs', logging_strategy=<IntervalStrategy.STEPS: 'steps'>, logging_first_step=True, logging_steps=20, logging_nan_inf_filter=True, save_strategy=<SaveStrategy.STEPS: 'steps'>, save_steps=20, save_total_limit=1, save_safetensors=True, save_on_each_node=False, save_only_model=True, restore_callback_states_from_checkpoint=False, no_cuda=False, use_cpu=False, use_mps_device=False, seed=42, data_seed=42, jit_mode_eval=False, use_ipex=False, bf16=True, fp16=False, fp16_opt_level='O1', half_precision_backend='auto', bf16_full_eval=False, fp16_full_eval=False, tf32=None, local_rank=0, ddp_backend=None, tpu_num_cores=None, tpu_metrics_debug=False, debug=[], dataloader_drop_last=False, eval_steps=20.0, dataloader_num_workers=8, dataloader_prefetch_factor=10, past_index=-1, run_name='/kaggle/working/outputs/ovis2_5/v0-20250919-162228', disable_tqdm=False, remove_unused_columns=False, label_names=None, load_best_model_at_end=False, metric_for_best_model='loss', greater_is_better=False, ignore_data_skip=False, fsdp=[], fsdp_min_num_params=0, fsdp_config={'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}, tp_size=0, fsdp_transformer_layer_cls_to_wrap=None, accelerator_config=AcceleratorConfig(split_batches=False, dispatch_batches=False, even_batches=True, use_seedable_sampler=True, non_blocking=False, gradient_accumulation_kwargs=None, use_configured_state=False), deepspeed=None, label_smoothing_factor=0.0, optim=<OptimizerNames.ADAMW_TORCH: 'adamw_torch'>, optim_args=None, adafactor=False, group_by_length=False, length_column_name='length', report_to=['tensorboard'], ddp_find_unused_parameters=True, ddp_bucket_cap_mb=None, ddp_broadcast_buffers=None, dataloader_pin_memory=True, dataloader_persistent_workers=False, skip_memory_metrics=True, use_legacy_prediction_loop=False, push_to_hub=False, resume_from_checkpoint=None, hub_model_id=None, hub_strategy=<HubStrategy.EVERY_SAVE: 'every_save'>, hub_token=None, hub_private_repo=None, hub_always_push=False, gradient_checkpointing=True, gradient_checkpointing_kwargs=None, include_inputs_for_metrics=False, include_for_metrics=[], eval_do_concat_batches=True, fp16_backend='auto', push_to_hub_model_id=None, push_to_hub_organization=None, push_to_hub_token=None, mp_parameters='', auto_find_batch_size=False, full_determinism=False, torchdynamo=None, ray_scope='last', ddp_timeout=18000000, torch_compile=False, torch_compile_backend=None, torch_compile_mode=None, include_tokens_per_second=None, include_num_input_tokens_seen=None, neftune_noise_alpha=None, optim_target_modules=None, batch_eval_metrics=False, eval_on_start=False, use_liger_kernel=False, eval_use_gather_object=False, average_tokens_across_devices=None, sortish_sampler=False, predict_with_generate=False, generation_max_length=None, generation_num_beams=None, generation_config=None, tuner_backend='peft', vit_gradient_checkpointing=True, router_aux_loss_coef=0.0, enable_dft_loss=False, enable_channel_loss=False, check_model=True, acc_strategy='token', train_dataloader_shuffle=True, max_epochs=None, aligner_lr=None, vit_lr=None, use_logits_to_keep=None, ds3_gather_for_generation=True, resume_only_model=False, optimizer=None, loss_type=None, metric=None, eval_use_evalscope=False, eval_dataset=[], eval_dataset_args=None, eval_limit=None, eval_generation_config=None, extra_eval_args=None, use_flash_ckpt=False, sft_alpha=0, train_type='full', local_repo_path=None, galore_config=None)"
344
+ }
config.json ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Ovis2_5"
4
+ ],
5
+ "auto_map": {
6
+ "AutoConfig": "configuration_ovis2_5.Ovis2_5_Config",
7
+ "AutoModelForCausalLM": "modeling_ovis2_5.Ovis2_5"
8
+ },
9
+ "conversation_formatter_class": "Qwen3ConversationFormatter",
10
+ "hidden_size": 2048,
11
+ "keys_to_ignore_at_inference": [
12
+ "past_key_values"
13
+ ],
14
+ "llm_config": {
15
+ "_attn_implementation_autoset": true,
16
+ "_name_or_path": "Qwen/Qwen3-1.7B",
17
+ "architectures": [
18
+ "Qwen3ForCausalLM"
19
+ ],
20
+ "attention_bias": false,
21
+ "attention_dropout": 0.0,
22
+ "bos_token_id": 151643,
23
+ "eos_token_id": 151645,
24
+ "head_dim": 128,
25
+ "hidden_act": "silu",
26
+ "hidden_size": 2048,
27
+ "initializer_range": 0.02,
28
+ "intermediate_size": 6144,
29
+ "max_position_embeddings": 40960,
30
+ "max_window_layers": 28,
31
+ "model_type": "qwen3",
32
+ "num_attention_heads": 16,
33
+ "num_hidden_layers": 28,
34
+ "num_key_value_heads": 8,
35
+ "rms_norm_eps": 1e-06,
36
+ "rope_scaling": null,
37
+ "rope_theta": 1000000,
38
+ "sliding_window": null,
39
+ "tie_word_embeddings": true,
40
+ "torch_dtype": "bfloat16",
41
+ "use_cache": true,
42
+ "use_sliding_window": false,
43
+ "vocab_size": 151936
44
+ },
45
+ "max_position_embeddings": 40960,
46
+ "model_type": "ovis2_5",
47
+ "num_attention_heads": 32,
48
+ "pad_token_id": 151643,
49
+ "torch_dtype": "bfloat16",
50
+ "transformers_version": "4.51.3",
51
+ "use_cache": false,
52
+ "visual_vocab_size": 65536,
53
+ "vit_config": {
54
+ "_attn_implementation_autoset": true,
55
+ "_name_or_path": "google/siglip2-so400m-patch16-512",
56
+ "attention_dropout": 0.0,
57
+ "fullatt_block_indexes": null,
58
+ "hidden_act": "gelu_pytorch_tanh",
59
+ "hidden_size": 1152,
60
+ "hidden_stride": 2,
61
+ "image_size": 512,
62
+ "intermediate_size": 4304,
63
+ "layer_norm_eps": 1e-06,
64
+ "model_type": "siglip2_navit",
65
+ "num_attention_heads": 16,
66
+ "num_channels": 3,
67
+ "num_hidden_layers": 27,
68
+ "num_patches": -1,
69
+ "patch_size": 16,
70
+ "preserve_original_pe": true,
71
+ "temporal_patch_size": 1,
72
+ "torch_dtype": "bfloat16",
73
+ "use_rope": true,
74
+ "window_size": 112
75
+ },
76
+ "vocab_size": 151936
77
+ }
configuration_ovis2_5.py ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any, Optional, List, Union
2
+
3
+ from transformers import Qwen3Config
4
+ from transformers.configuration_utils import PretrainedConfig
5
+
6
+ __all__ = ["Siglip2NavitConfig", "Ovis2_5_Config"]
7
+
8
+
9
+ class Siglip2NavitConfig(PretrainedConfig):
10
+ """This is the configuration class to store the configuration of an [`AIMv2Model`].
11
+
12
+ Instantiating a configuration with the defaults will yield a similar configuration
13
+ to that of the [apple/aimv2-large-patch14-224](https://huggingface.co/apple/aimv2-large-patch14-224).
14
+
15
+ Args:
16
+ hidden_size: Dimension of the hidden representations.
17
+ intermediate_size: Dimension of the SwiGLU representations.
18
+ num_hidden_layers: Number of hidden layers in the Transformer.
19
+ num_attention_heads: Number of attention heads for each attention layer
20
+ in the Transformer.
21
+ num_channels: Number of input channels.
22
+ image_size: Image size.
23
+ patch_size: Patch size.
24
+ rms_norm_eps: Epsilon value used for the RMS normalization layer.
25
+ attention_dropout: Dropout ratio for attention probabilities.
26
+ projection_dropout: Dropout ratio for the projection layer after the attention.
27
+ qkv_bias: Whether to add a bias to the queries, keys and values.
28
+ use_bias: Whether to add a bias in the feed-forward and projection layers.
29
+ kwargs: Keyword arguments for the [`PretrainedConfig`].
30
+ """
31
+
32
+ model_type: str = "siglip2_navit"
33
+
34
+ def __init__(
35
+ self,
36
+ hidden_size: int = 1024,
37
+ intermediate_size: int = 4096,
38
+ num_hidden_layers: int = 24,
39
+ num_attention_heads: int = 16,
40
+ num_channels: int = 3,
41
+ num_patches: int = -1,
42
+ image_size: int = 512,
43
+ patch_size: int = 16,
44
+ hidden_act: str="gelu_pytorch_tanh",
45
+ layer_norm_eps: float = 1e-6,
46
+ attention_dropout: float = 0.0,
47
+ hidden_stride: int = 2,
48
+ window_size: int = 112,
49
+ fullatt_block_indexes: Optional[list] = None,
50
+ temporal_patch_size: int = 1,
51
+ preserve_original_pe: bool = True,
52
+ use_rope: bool = True,
53
+ **kwargs: Any,
54
+ ):
55
+ super().__init__(**kwargs)
56
+ self.hidden_size = hidden_size
57
+ self.intermediate_size = intermediate_size
58
+ self.num_hidden_layers = num_hidden_layers
59
+ self.num_attention_heads = num_attention_heads
60
+ self.num_channels = num_channels
61
+ self.num_patches = num_patches
62
+ self.patch_size = patch_size
63
+ self.image_size = image_size
64
+ self.hidden_act = hidden_act
65
+ self.attention_dropout = attention_dropout
66
+ self.layer_norm_eps = layer_norm_eps
67
+ self.hidden_stride = hidden_stride
68
+ self.window_size = window_size
69
+ self.fullatt_block_indexes = fullatt_block_indexes
70
+ self.temporal_patch_size = temporal_patch_size
71
+ self.preserve_original_pe = preserve_original_pe
72
+ self.use_rope = use_rope
73
+
74
+ class Ovis2_5_Config(PretrainedConfig):
75
+ model_type = "ovis2_5"
76
+ sub_configs = dict(llm_config=Qwen3Config, vit_config=Siglip2NavitConfig)
77
+
78
+ def __init__(self,
79
+ llm_config: Optional[Union[Qwen3Config, dict]] = None,
80
+ vit_config: Optional[Union[Siglip2NavitConfig, dict]] = None,
81
+ visual_vocab_size=65536,
82
+ hidden_size=None,
83
+ **kwargs
84
+ ):
85
+ super().__init__(**kwargs)
86
+ if isinstance(llm_config, dict):
87
+ llm_config = Qwen3Config(**llm_config)
88
+ self.llm_config = llm_config
89
+ if isinstance(vit_config, dict):
90
+ vit_config = Siglip2NavitConfig(**vit_config)
91
+ self.vit_config = vit_config
92
+ self.visual_vocab_size = visual_vocab_size
93
+ self.hidden_size = hidden_size
94
+ if kwargs.get('attn_implementation'):
95
+ self.llm_config._attn_implementation = kwargs['attn_implementation']
96
+ self.vit_config._attn_implementation = kwargs['attn_implementation']
generation_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 151645,
6
+ 151643
7
+ ],
8
+ "multimodal_max_length": 8192,
9
+ "pad_token_id": 151643,
10
+ "repetition_penalty": 1.05,
11
+ "temperature": 0.6,
12
+ "top_k": 20,
13
+ "top_p": 0.95,
14
+ "transformers_version": "4.51.3"
15
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46f8bdacf8d624422f68025bdd50cd92c0f19a0ee094e8eb7e7661a656ca8356
3
+ size 4872524976
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ebdf960a2b985c87547c2b4da61403e360728d306d27b756bf82f83d11711c0
3
+ size 268435576
model.safetensors.index.json ADDED
@@ -0,0 +1,758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 5140859344
4
+ },
5
+ "weight_map": {
6
+ "llm.model.embed_tokens.weight": "model-00001-of-00002.safetensors",
7
+ "llm.model.layers.0.input_layernorm.weight": "model-00001-of-00002.safetensors",
8
+ "llm.model.layers.0.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
9
+ "llm.model.layers.0.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
10
+ "llm.model.layers.0.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
11
+ "llm.model.layers.0.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
12
+ "llm.model.layers.0.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
13
+ "llm.model.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
14
+ "llm.model.layers.0.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
15
+ "llm.model.layers.0.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
16
+ "llm.model.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
17
+ "llm.model.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
18
+ "llm.model.layers.1.input_layernorm.weight": "model-00001-of-00002.safetensors",
19
+ "llm.model.layers.1.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
20
+ "llm.model.layers.1.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
21
+ "llm.model.layers.1.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
22
+ "llm.model.layers.1.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
23
+ "llm.model.layers.1.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
24
+ "llm.model.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
25
+ "llm.model.layers.1.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
26
+ "llm.model.layers.1.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
27
+ "llm.model.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
28
+ "llm.model.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
29
+ "llm.model.layers.10.input_layernorm.weight": "model-00001-of-00002.safetensors",
30
+ "llm.model.layers.10.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
31
+ "llm.model.layers.10.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
32
+ "llm.model.layers.10.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
33
+ "llm.model.layers.10.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
34
+ "llm.model.layers.10.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
35
+ "llm.model.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
36
+ "llm.model.layers.10.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
37
+ "llm.model.layers.10.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
38
+ "llm.model.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
39
+ "llm.model.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
40
+ "llm.model.layers.11.input_layernorm.weight": "model-00001-of-00002.safetensors",
41
+ "llm.model.layers.11.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
42
+ "llm.model.layers.11.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
43
+ "llm.model.layers.11.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
44
+ "llm.model.layers.11.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
45
+ "llm.model.layers.11.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
46
+ "llm.model.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
47
+ "llm.model.layers.11.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
48
+ "llm.model.layers.11.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
49
+ "llm.model.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
50
+ "llm.model.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
51
+ "llm.model.layers.12.input_layernorm.weight": "model-00001-of-00002.safetensors",
52
+ "llm.model.layers.12.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
53
+ "llm.model.layers.12.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
54
+ "llm.model.layers.12.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
55
+ "llm.model.layers.12.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
56
+ "llm.model.layers.12.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
57
+ "llm.model.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
58
+ "llm.model.layers.12.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
59
+ "llm.model.layers.12.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
60
+ "llm.model.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
61
+ "llm.model.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
62
+ "llm.model.layers.13.input_layernorm.weight": "model-00001-of-00002.safetensors",
63
+ "llm.model.layers.13.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
64
+ "llm.model.layers.13.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
65
+ "llm.model.layers.13.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
66
+ "llm.model.layers.13.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
67
+ "llm.model.layers.13.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
68
+ "llm.model.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
69
+ "llm.model.layers.13.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
70
+ "llm.model.layers.13.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
71
+ "llm.model.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
72
+ "llm.model.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
73
+ "llm.model.layers.14.input_layernorm.weight": "model-00001-of-00002.safetensors",
74
+ "llm.model.layers.14.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
75
+ "llm.model.layers.14.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
76
+ "llm.model.layers.14.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
77
+ "llm.model.layers.14.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
78
+ "llm.model.layers.14.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
79
+ "llm.model.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
80
+ "llm.model.layers.14.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
81
+ "llm.model.layers.14.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
82
+ "llm.model.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
83
+ "llm.model.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
84
+ "llm.model.layers.15.input_layernorm.weight": "model-00001-of-00002.safetensors",
85
+ "llm.model.layers.15.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
86
+ "llm.model.layers.15.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
87
+ "llm.model.layers.15.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
88
+ "llm.model.layers.15.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
89
+ "llm.model.layers.15.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
90
+ "llm.model.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
91
+ "llm.model.layers.15.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
92
+ "llm.model.layers.15.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
93
+ "llm.model.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
94
+ "llm.model.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
95
+ "llm.model.layers.16.input_layernorm.weight": "model-00001-of-00002.safetensors",
96
+ "llm.model.layers.16.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
97
+ "llm.model.layers.16.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
98
+ "llm.model.layers.16.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
99
+ "llm.model.layers.16.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
100
+ "llm.model.layers.16.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
101
+ "llm.model.layers.16.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
102
+ "llm.model.layers.16.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
103
+ "llm.model.layers.16.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
104
+ "llm.model.layers.16.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
105
+ "llm.model.layers.16.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
106
+ "llm.model.layers.17.input_layernorm.weight": "model-00001-of-00002.safetensors",
107
+ "llm.model.layers.17.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
108
+ "llm.model.layers.17.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
109
+ "llm.model.layers.17.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
110
+ "llm.model.layers.17.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
111
+ "llm.model.layers.17.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
112
+ "llm.model.layers.17.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
113
+ "llm.model.layers.17.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
114
+ "llm.model.layers.17.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
115
+ "llm.model.layers.17.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
116
+ "llm.model.layers.17.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
117
+ "llm.model.layers.18.input_layernorm.weight": "model-00001-of-00002.safetensors",
118
+ "llm.model.layers.18.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
119
+ "llm.model.layers.18.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
120
+ "llm.model.layers.18.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
121
+ "llm.model.layers.18.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
122
+ "llm.model.layers.18.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
123
+ "llm.model.layers.18.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
124
+ "llm.model.layers.18.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
125
+ "llm.model.layers.18.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
126
+ "llm.model.layers.18.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
127
+ "llm.model.layers.18.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
128
+ "llm.model.layers.19.input_layernorm.weight": "model-00001-of-00002.safetensors",
129
+ "llm.model.layers.19.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
130
+ "llm.model.layers.19.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
131
+ "llm.model.layers.19.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
132
+ "llm.model.layers.19.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
133
+ "llm.model.layers.19.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
134
+ "llm.model.layers.19.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
135
+ "llm.model.layers.19.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
136
+ "llm.model.layers.19.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
137
+ "llm.model.layers.19.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
138
+ "llm.model.layers.19.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
139
+ "llm.model.layers.2.input_layernorm.weight": "model-00001-of-00002.safetensors",
140
+ "llm.model.layers.2.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
141
+ "llm.model.layers.2.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
142
+ "llm.model.layers.2.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
143
+ "llm.model.layers.2.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
144
+ "llm.model.layers.2.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
145
+ "llm.model.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
146
+ "llm.model.layers.2.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
147
+ "llm.model.layers.2.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
148
+ "llm.model.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
149
+ "llm.model.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
150
+ "llm.model.layers.20.input_layernorm.weight": "model-00001-of-00002.safetensors",
151
+ "llm.model.layers.20.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
152
+ "llm.model.layers.20.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
153
+ "llm.model.layers.20.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
154
+ "llm.model.layers.20.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
155
+ "llm.model.layers.20.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
156
+ "llm.model.layers.20.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
157
+ "llm.model.layers.20.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
158
+ "llm.model.layers.20.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
159
+ "llm.model.layers.20.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
160
+ "llm.model.layers.20.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
161
+ "llm.model.layers.21.input_layernorm.weight": "model-00001-of-00002.safetensors",
162
+ "llm.model.layers.21.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
163
+ "llm.model.layers.21.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
164
+ "llm.model.layers.21.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
165
+ "llm.model.layers.21.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
166
+ "llm.model.layers.21.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
167
+ "llm.model.layers.21.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
168
+ "llm.model.layers.21.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
169
+ "llm.model.layers.21.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
170
+ "llm.model.layers.21.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
171
+ "llm.model.layers.21.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
172
+ "llm.model.layers.22.input_layernorm.weight": "model-00001-of-00002.safetensors",
173
+ "llm.model.layers.22.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
174
+ "llm.model.layers.22.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
175
+ "llm.model.layers.22.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
176
+ "llm.model.layers.22.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
177
+ "llm.model.layers.22.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
178
+ "llm.model.layers.22.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
179
+ "llm.model.layers.22.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
180
+ "llm.model.layers.22.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
181
+ "llm.model.layers.22.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
182
+ "llm.model.layers.22.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
183
+ "llm.model.layers.23.input_layernorm.weight": "model-00001-of-00002.safetensors",
184
+ "llm.model.layers.23.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
185
+ "llm.model.layers.23.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
186
+ "llm.model.layers.23.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
187
+ "llm.model.layers.23.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
188
+ "llm.model.layers.23.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
189
+ "llm.model.layers.23.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
190
+ "llm.model.layers.23.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
191
+ "llm.model.layers.23.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
192
+ "llm.model.layers.23.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
193
+ "llm.model.layers.23.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
194
+ "llm.model.layers.24.input_layernorm.weight": "model-00001-of-00002.safetensors",
195
+ "llm.model.layers.24.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
196
+ "llm.model.layers.24.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
197
+ "llm.model.layers.24.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
198
+ "llm.model.layers.24.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
199
+ "llm.model.layers.24.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
200
+ "llm.model.layers.24.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
201
+ "llm.model.layers.24.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
202
+ "llm.model.layers.24.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
203
+ "llm.model.layers.24.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
204
+ "llm.model.layers.24.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
205
+ "llm.model.layers.25.input_layernorm.weight": "model-00001-of-00002.safetensors",
206
+ "llm.model.layers.25.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
207
+ "llm.model.layers.25.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
208
+ "llm.model.layers.25.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
209
+ "llm.model.layers.25.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
210
+ "llm.model.layers.25.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
211
+ "llm.model.layers.25.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
212
+ "llm.model.layers.25.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
213
+ "llm.model.layers.25.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
214
+ "llm.model.layers.25.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
215
+ "llm.model.layers.25.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
216
+ "llm.model.layers.26.input_layernorm.weight": "model-00001-of-00002.safetensors",
217
+ "llm.model.layers.26.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
218
+ "llm.model.layers.26.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
219
+ "llm.model.layers.26.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
220
+ "llm.model.layers.26.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
221
+ "llm.model.layers.26.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
222
+ "llm.model.layers.26.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
223
+ "llm.model.layers.26.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
224
+ "llm.model.layers.26.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
225
+ "llm.model.layers.26.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
226
+ "llm.model.layers.26.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
227
+ "llm.model.layers.27.input_layernorm.weight": "model-00001-of-00002.safetensors",
228
+ "llm.model.layers.27.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
229
+ "llm.model.layers.27.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
230
+ "llm.model.layers.27.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
231
+ "llm.model.layers.27.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
232
+ "llm.model.layers.27.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
233
+ "llm.model.layers.27.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
234
+ "llm.model.layers.27.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
235
+ "llm.model.layers.27.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
236
+ "llm.model.layers.27.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
237
+ "llm.model.layers.27.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
238
+ "llm.model.layers.3.input_layernorm.weight": "model-00001-of-00002.safetensors",
239
+ "llm.model.layers.3.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
240
+ "llm.model.layers.3.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
241
+ "llm.model.layers.3.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
242
+ "llm.model.layers.3.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
243
+ "llm.model.layers.3.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
244
+ "llm.model.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
245
+ "llm.model.layers.3.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
246
+ "llm.model.layers.3.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
247
+ "llm.model.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
248
+ "llm.model.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
249
+ "llm.model.layers.4.input_layernorm.weight": "model-00001-of-00002.safetensors",
250
+ "llm.model.layers.4.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
251
+ "llm.model.layers.4.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
252
+ "llm.model.layers.4.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
253
+ "llm.model.layers.4.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
254
+ "llm.model.layers.4.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
255
+ "llm.model.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
256
+ "llm.model.layers.4.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
257
+ "llm.model.layers.4.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
258
+ "llm.model.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
259
+ "llm.model.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
260
+ "llm.model.layers.5.input_layernorm.weight": "model-00001-of-00002.safetensors",
261
+ "llm.model.layers.5.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
262
+ "llm.model.layers.5.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
263
+ "llm.model.layers.5.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
264
+ "llm.model.layers.5.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
265
+ "llm.model.layers.5.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
266
+ "llm.model.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
267
+ "llm.model.layers.5.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
268
+ "llm.model.layers.5.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
269
+ "llm.model.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
270
+ "llm.model.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
271
+ "llm.model.layers.6.input_layernorm.weight": "model-00001-of-00002.safetensors",
272
+ "llm.model.layers.6.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
273
+ "llm.model.layers.6.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
274
+ "llm.model.layers.6.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
275
+ "llm.model.layers.6.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
276
+ "llm.model.layers.6.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
277
+ "llm.model.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
278
+ "llm.model.layers.6.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
279
+ "llm.model.layers.6.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
280
+ "llm.model.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
281
+ "llm.model.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
282
+ "llm.model.layers.7.input_layernorm.weight": "model-00001-of-00002.safetensors",
283
+ "llm.model.layers.7.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
284
+ "llm.model.layers.7.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
285
+ "llm.model.layers.7.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
286
+ "llm.model.layers.7.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
287
+ "llm.model.layers.7.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
288
+ "llm.model.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
289
+ "llm.model.layers.7.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
290
+ "llm.model.layers.7.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
291
+ "llm.model.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
292
+ "llm.model.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
293
+ "llm.model.layers.8.input_layernorm.weight": "model-00001-of-00002.safetensors",
294
+ "llm.model.layers.8.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
295
+ "llm.model.layers.8.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
296
+ "llm.model.layers.8.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
297
+ "llm.model.layers.8.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
298
+ "llm.model.layers.8.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
299
+ "llm.model.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
300
+ "llm.model.layers.8.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
301
+ "llm.model.layers.8.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
302
+ "llm.model.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
303
+ "llm.model.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
304
+ "llm.model.layers.9.input_layernorm.weight": "model-00001-of-00002.safetensors",
305
+ "llm.model.layers.9.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
306
+ "llm.model.layers.9.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
307
+ "llm.model.layers.9.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
308
+ "llm.model.layers.9.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
309
+ "llm.model.layers.9.self_attn.k_norm.weight": "model-00001-of-00002.safetensors",
310
+ "llm.model.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
311
+ "llm.model.layers.9.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
312
+ "llm.model.layers.9.self_attn.q_norm.weight": "model-00001-of-00002.safetensors",
313
+ "llm.model.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
314
+ "llm.model.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
315
+ "llm.model.norm.weight": "model-00001-of-00002.safetensors",
316
+ "visual_tokenizer.head.0.weight": "model-00001-of-00002.safetensors",
317
+ "visual_tokenizer.head.1.bias": "model-00001-of-00002.safetensors",
318
+ "visual_tokenizer.head.1.weight": "model-00001-of-00002.safetensors",
319
+ "visual_tokenizer.vit.vision_model.embeddings.patch_embedding.bias": "model-00001-of-00002.safetensors",
320
+ "visual_tokenizer.vit.vision_model.embeddings.patch_embedding.weight": "model-00001-of-00002.safetensors",
321
+ "visual_tokenizer.vit.vision_model.embeddings.position_embedding.weight": "model-00001-of-00002.safetensors",
322
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.layer_norm1.bias": "model-00001-of-00002.safetensors",
323
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.layer_norm1.weight": "model-00001-of-00002.safetensors",
324
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.layer_norm2.bias": "model-00001-of-00002.safetensors",
325
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.layer_norm2.weight": "model-00001-of-00002.safetensors",
326
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.mlp.fc1.bias": "model-00001-of-00002.safetensors",
327
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.mlp.fc1.weight": "model-00001-of-00002.safetensors",
328
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.mlp.fc2.bias": "model-00001-of-00002.safetensors",
329
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.mlp.fc2.weight": "model-00001-of-00002.safetensors",
330
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
331
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
332
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
333
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
334
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
335
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
336
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
337
+ "visual_tokenizer.vit.vision_model.encoder.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
338
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.layer_norm1.bias": "model-00001-of-00002.safetensors",
339
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.layer_norm1.weight": "model-00001-of-00002.safetensors",
340
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.layer_norm2.bias": "model-00001-of-00002.safetensors",
341
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.layer_norm2.weight": "model-00001-of-00002.safetensors",
342
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.mlp.fc1.bias": "model-00001-of-00002.safetensors",
343
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.mlp.fc1.weight": "model-00001-of-00002.safetensors",
344
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.mlp.fc2.bias": "model-00001-of-00002.safetensors",
345
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.mlp.fc2.weight": "model-00001-of-00002.safetensors",
346
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
347
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
348
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
349
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
350
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
351
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
352
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
353
+ "visual_tokenizer.vit.vision_model.encoder.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
354
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.layer_norm1.bias": "model-00001-of-00002.safetensors",
355
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.layer_norm1.weight": "model-00001-of-00002.safetensors",
356
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.layer_norm2.bias": "model-00001-of-00002.safetensors",
357
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.layer_norm2.weight": "model-00001-of-00002.safetensors",
358
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.mlp.fc1.bias": "model-00001-of-00002.safetensors",
359
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.mlp.fc1.weight": "model-00001-of-00002.safetensors",
360
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.mlp.fc2.bias": "model-00001-of-00002.safetensors",
361
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.mlp.fc2.weight": "model-00001-of-00002.safetensors",
362
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
363
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
364
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
365
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
366
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
367
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
368
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
369
+ "visual_tokenizer.vit.vision_model.encoder.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
370
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.layer_norm1.bias": "model-00001-of-00002.safetensors",
371
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.layer_norm1.weight": "model-00001-of-00002.safetensors",
372
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.layer_norm2.bias": "model-00001-of-00002.safetensors",
373
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.layer_norm2.weight": "model-00001-of-00002.safetensors",
374
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.mlp.fc1.bias": "model-00001-of-00002.safetensors",
375
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.mlp.fc1.weight": "model-00001-of-00002.safetensors",
376
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.mlp.fc2.bias": "model-00001-of-00002.safetensors",
377
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.mlp.fc2.weight": "model-00001-of-00002.safetensors",
378
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
379
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
380
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
381
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
382
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
383
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
384
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
385
+ "visual_tokenizer.vit.vision_model.encoder.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
386
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.layer_norm1.bias": "model-00001-of-00002.safetensors",
387
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.layer_norm1.weight": "model-00001-of-00002.safetensors",
388
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.layer_norm2.bias": "model-00001-of-00002.safetensors",
389
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.layer_norm2.weight": "model-00001-of-00002.safetensors",
390
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.mlp.fc1.bias": "model-00001-of-00002.safetensors",
391
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.mlp.fc1.weight": "model-00001-of-00002.safetensors",
392
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.mlp.fc2.bias": "model-00001-of-00002.safetensors",
393
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.mlp.fc2.weight": "model-00001-of-00002.safetensors",
394
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
395
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
396
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
397
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
398
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
399
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
400
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
401
+ "visual_tokenizer.vit.vision_model.encoder.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
402
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.layer_norm1.bias": "model-00001-of-00002.safetensors",
403
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.layer_norm1.weight": "model-00001-of-00002.safetensors",
404
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.layer_norm2.bias": "model-00001-of-00002.safetensors",
405
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.layer_norm2.weight": "model-00001-of-00002.safetensors",
406
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.mlp.fc1.bias": "model-00001-of-00002.safetensors",
407
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.mlp.fc1.weight": "model-00001-of-00002.safetensors",
408
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.mlp.fc2.bias": "model-00001-of-00002.safetensors",
409
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.mlp.fc2.weight": "model-00001-of-00002.safetensors",
410
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
411
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
412
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
413
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
414
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
415
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
416
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
417
+ "visual_tokenizer.vit.vision_model.encoder.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
418
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.layer_norm1.bias": "model-00001-of-00002.safetensors",
419
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.layer_norm1.weight": "model-00001-of-00002.safetensors",
420
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.layer_norm2.bias": "model-00001-of-00002.safetensors",
421
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.layer_norm2.weight": "model-00001-of-00002.safetensors",
422
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.mlp.fc1.bias": "model-00001-of-00002.safetensors",
423
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.mlp.fc1.weight": "model-00001-of-00002.safetensors",
424
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.mlp.fc2.bias": "model-00001-of-00002.safetensors",
425
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.mlp.fc2.weight": "model-00001-of-00002.safetensors",
426
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
427
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
428
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
429
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
430
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
431
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
432
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
433
+ "visual_tokenizer.vit.vision_model.encoder.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
434
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.layer_norm1.bias": "model-00001-of-00002.safetensors",
435
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.layer_norm1.weight": "model-00001-of-00002.safetensors",
436
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.layer_norm2.bias": "model-00001-of-00002.safetensors",
437
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.layer_norm2.weight": "model-00001-of-00002.safetensors",
438
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.mlp.fc1.bias": "model-00001-of-00002.safetensors",
439
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.mlp.fc1.weight": "model-00001-of-00002.safetensors",
440
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.mlp.fc2.bias": "model-00001-of-00002.safetensors",
441
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.mlp.fc2.weight": "model-00001-of-00002.safetensors",
442
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
443
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
444
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
445
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
446
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
447
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
448
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
449
+ "visual_tokenizer.vit.vision_model.encoder.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
450
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.layer_norm1.bias": "model-00001-of-00002.safetensors",
451
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.layer_norm1.weight": "model-00001-of-00002.safetensors",
452
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.layer_norm2.bias": "model-00001-of-00002.safetensors",
453
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.layer_norm2.weight": "model-00001-of-00002.safetensors",
454
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.mlp.fc1.bias": "model-00001-of-00002.safetensors",
455
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.mlp.fc1.weight": "model-00001-of-00002.safetensors",
456
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.mlp.fc2.bias": "model-00001-of-00002.safetensors",
457
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.mlp.fc2.weight": "model-00001-of-00002.safetensors",
458
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
459
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
460
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
461
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
462
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
463
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
464
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
465
+ "visual_tokenizer.vit.vision_model.encoder.layers.16.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
466
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.layer_norm1.bias": "model-00001-of-00002.safetensors",
467
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.layer_norm1.weight": "model-00001-of-00002.safetensors",
468
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.layer_norm2.bias": "model-00001-of-00002.safetensors",
469
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.layer_norm2.weight": "model-00001-of-00002.safetensors",
470
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.mlp.fc1.bias": "model-00001-of-00002.safetensors",
471
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.mlp.fc1.weight": "model-00001-of-00002.safetensors",
472
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.mlp.fc2.bias": "model-00001-of-00002.safetensors",
473
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.mlp.fc2.weight": "model-00001-of-00002.safetensors",
474
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
475
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
476
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
477
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
478
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
479
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
480
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
481
+ "visual_tokenizer.vit.vision_model.encoder.layers.17.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
482
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.layer_norm1.bias": "model-00001-of-00002.safetensors",
483
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.layer_norm1.weight": "model-00001-of-00002.safetensors",
484
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.layer_norm2.bias": "model-00001-of-00002.safetensors",
485
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.layer_norm2.weight": "model-00001-of-00002.safetensors",
486
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.mlp.fc1.bias": "model-00001-of-00002.safetensors",
487
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.mlp.fc1.weight": "model-00001-of-00002.safetensors",
488
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.mlp.fc2.bias": "model-00001-of-00002.safetensors",
489
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.mlp.fc2.weight": "model-00001-of-00002.safetensors",
490
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
491
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
492
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
493
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
494
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
495
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
496
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
497
+ "visual_tokenizer.vit.vision_model.encoder.layers.18.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
498
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.layer_norm1.bias": "model-00001-of-00002.safetensors",
499
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.layer_norm1.weight": "model-00001-of-00002.safetensors",
500
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.layer_norm2.bias": "model-00001-of-00002.safetensors",
501
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.layer_norm2.weight": "model-00001-of-00002.safetensors",
502
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.mlp.fc1.bias": "model-00001-of-00002.safetensors",
503
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.mlp.fc1.weight": "model-00001-of-00002.safetensors",
504
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.mlp.fc2.bias": "model-00001-of-00002.safetensors",
505
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.mlp.fc2.weight": "model-00001-of-00002.safetensors",
506
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
507
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
508
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
509
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
510
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
511
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
512
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
513
+ "visual_tokenizer.vit.vision_model.encoder.layers.19.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
514
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.layer_norm1.bias": "model-00001-of-00002.safetensors",
515
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.layer_norm1.weight": "model-00001-of-00002.safetensors",
516
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.layer_norm2.bias": "model-00001-of-00002.safetensors",
517
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.layer_norm2.weight": "model-00001-of-00002.safetensors",
518
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.mlp.fc1.bias": "model-00001-of-00002.safetensors",
519
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.mlp.fc1.weight": "model-00001-of-00002.safetensors",
520
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.mlp.fc2.bias": "model-00001-of-00002.safetensors",
521
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.mlp.fc2.weight": "model-00001-of-00002.safetensors",
522
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
523
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
524
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
525
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
526
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
527
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
528
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
529
+ "visual_tokenizer.vit.vision_model.encoder.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
530
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.layer_norm1.bias": "model-00001-of-00002.safetensors",
531
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.layer_norm1.weight": "model-00001-of-00002.safetensors",
532
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.layer_norm2.bias": "model-00001-of-00002.safetensors",
533
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.layer_norm2.weight": "model-00001-of-00002.safetensors",
534
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.mlp.fc1.bias": "model-00001-of-00002.safetensors",
535
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.mlp.fc1.weight": "model-00001-of-00002.safetensors",
536
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.mlp.fc2.bias": "model-00001-of-00002.safetensors",
537
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.mlp.fc2.weight": "model-00001-of-00002.safetensors",
538
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
539
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
540
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
541
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
542
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
543
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
544
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
545
+ "visual_tokenizer.vit.vision_model.encoder.layers.20.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
546
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.layer_norm1.bias": "model-00001-of-00002.safetensors",
547
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.layer_norm1.weight": "model-00001-of-00002.safetensors",
548
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.layer_norm2.bias": "model-00001-of-00002.safetensors",
549
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.layer_norm2.weight": "model-00001-of-00002.safetensors",
550
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.mlp.fc1.bias": "model-00001-of-00002.safetensors",
551
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.mlp.fc1.weight": "model-00001-of-00002.safetensors",
552
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.mlp.fc2.bias": "model-00001-of-00002.safetensors",
553
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.mlp.fc2.weight": "model-00001-of-00002.safetensors",
554
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
555
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
556
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
557
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
558
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
559
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
560
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
561
+ "visual_tokenizer.vit.vision_model.encoder.layers.21.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
562
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.layer_norm1.bias": "model-00001-of-00002.safetensors",
563
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.layer_norm1.weight": "model-00001-of-00002.safetensors",
564
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.layer_norm2.bias": "model-00001-of-00002.safetensors",
565
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.layer_norm2.weight": "model-00001-of-00002.safetensors",
566
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.mlp.fc1.bias": "model-00001-of-00002.safetensors",
567
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.mlp.fc1.weight": "model-00001-of-00002.safetensors",
568
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.mlp.fc2.bias": "model-00001-of-00002.safetensors",
569
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.mlp.fc2.weight": "model-00001-of-00002.safetensors",
570
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
571
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
572
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
573
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
574
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
575
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
576
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
577
+ "visual_tokenizer.vit.vision_model.encoder.layers.22.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
578
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.layer_norm1.bias": "model-00001-of-00002.safetensors",
579
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.layer_norm1.weight": "model-00001-of-00002.safetensors",
580
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.layer_norm2.bias": "model-00001-of-00002.safetensors",
581
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.layer_norm2.weight": "model-00001-of-00002.safetensors",
582
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.mlp.fc1.bias": "model-00001-of-00002.safetensors",
583
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.mlp.fc1.weight": "model-00001-of-00002.safetensors",
584
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.mlp.fc2.bias": "model-00001-of-00002.safetensors",
585
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.mlp.fc2.weight": "model-00001-of-00002.safetensors",
586
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
587
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
588
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
589
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
590
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
591
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
592
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
593
+ "visual_tokenizer.vit.vision_model.encoder.layers.23.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
594
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.layer_norm1.bias": "model-00001-of-00002.safetensors",
595
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.layer_norm1.weight": "model-00001-of-00002.safetensors",
596
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.layer_norm2.bias": "model-00001-of-00002.safetensors",
597
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.layer_norm2.weight": "model-00001-of-00002.safetensors",
598
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.mlp.fc1.bias": "model-00001-of-00002.safetensors",
599
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.mlp.fc1.weight": "model-00001-of-00002.safetensors",
600
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.mlp.fc2.bias": "model-00001-of-00002.safetensors",
601
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.mlp.fc2.weight": "model-00001-of-00002.safetensors",
602
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
603
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
604
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
605
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
606
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
607
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
608
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
609
+ "visual_tokenizer.vit.vision_model.encoder.layers.24.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
610
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.layer_norm1.bias": "model-00001-of-00002.safetensors",
611
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.layer_norm1.weight": "model-00001-of-00002.safetensors",
612
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.layer_norm2.bias": "model-00001-of-00002.safetensors",
613
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.layer_norm2.weight": "model-00001-of-00002.safetensors",
614
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.mlp.fc1.bias": "model-00001-of-00002.safetensors",
615
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.mlp.fc1.weight": "model-00001-of-00002.safetensors",
616
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.mlp.fc2.bias": "model-00001-of-00002.safetensors",
617
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.mlp.fc2.weight": "model-00001-of-00002.safetensors",
618
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
619
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
620
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
621
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
622
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
623
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
624
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
625
+ "visual_tokenizer.vit.vision_model.encoder.layers.25.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
626
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.layer_norm1.bias": "model-00001-of-00002.safetensors",
627
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.layer_norm1.weight": "model-00001-of-00002.safetensors",
628
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.layer_norm2.bias": "model-00001-of-00002.safetensors",
629
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.layer_norm2.weight": "model-00001-of-00002.safetensors",
630
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.mlp.fc1.bias": "model-00001-of-00002.safetensors",
631
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.mlp.fc1.weight": "model-00001-of-00002.safetensors",
632
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.mlp.fc2.bias": "model-00001-of-00002.safetensors",
633
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.mlp.fc2.weight": "model-00001-of-00002.safetensors",
634
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
635
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
636
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
637
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
638
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
639
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
640
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
641
+ "visual_tokenizer.vit.vision_model.encoder.layers.26.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
642
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.layer_norm1.bias": "model-00001-of-00002.safetensors",
643
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.layer_norm1.weight": "model-00001-of-00002.safetensors",
644
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.layer_norm2.bias": "model-00001-of-00002.safetensors",
645
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.layer_norm2.weight": "model-00001-of-00002.safetensors",
646
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.mlp.fc1.bias": "model-00001-of-00002.safetensors",
647
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.mlp.fc1.weight": "model-00001-of-00002.safetensors",
648
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.mlp.fc2.bias": "model-00001-of-00002.safetensors",
649
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.mlp.fc2.weight": "model-00001-of-00002.safetensors",
650
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
651
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
652
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
653
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
654
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
655
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
656
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
657
+ "visual_tokenizer.vit.vision_model.encoder.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
658
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.layer_norm1.bias": "model-00001-of-00002.safetensors",
659
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.layer_norm1.weight": "model-00001-of-00002.safetensors",
660
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.layer_norm2.bias": "model-00001-of-00002.safetensors",
661
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.layer_norm2.weight": "model-00001-of-00002.safetensors",
662
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.mlp.fc1.bias": "model-00001-of-00002.safetensors",
663
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.mlp.fc1.weight": "model-00001-of-00002.safetensors",
664
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.mlp.fc2.bias": "model-00001-of-00002.safetensors",
665
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.mlp.fc2.weight": "model-00001-of-00002.safetensors",
666
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
667
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
668
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
669
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
670
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
671
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
672
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
673
+ "visual_tokenizer.vit.vision_model.encoder.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
674
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.layer_norm1.bias": "model-00001-of-00002.safetensors",
675
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.layer_norm1.weight": "model-00001-of-00002.safetensors",
676
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.layer_norm2.bias": "model-00001-of-00002.safetensors",
677
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.layer_norm2.weight": "model-00001-of-00002.safetensors",
678
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.mlp.fc1.bias": "model-00001-of-00002.safetensors",
679
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.mlp.fc1.weight": "model-00001-of-00002.safetensors",
680
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.mlp.fc2.bias": "model-00001-of-00002.safetensors",
681
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.mlp.fc2.weight": "model-00001-of-00002.safetensors",
682
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
683
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
684
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
685
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
686
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
687
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
688
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
689
+ "visual_tokenizer.vit.vision_model.encoder.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
690
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.layer_norm1.bias": "model-00001-of-00002.safetensors",
691
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.layer_norm1.weight": "model-00001-of-00002.safetensors",
692
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.layer_norm2.bias": "model-00001-of-00002.safetensors",
693
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.layer_norm2.weight": "model-00001-of-00002.safetensors",
694
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.mlp.fc1.bias": "model-00001-of-00002.safetensors",
695
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.mlp.fc1.weight": "model-00001-of-00002.safetensors",
696
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.mlp.fc2.bias": "model-00001-of-00002.safetensors",
697
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.mlp.fc2.weight": "model-00001-of-00002.safetensors",
698
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
699
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
700
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
701
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
702
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
703
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
704
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
705
+ "visual_tokenizer.vit.vision_model.encoder.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
706
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.layer_norm1.bias": "model-00001-of-00002.safetensors",
707
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.layer_norm1.weight": "model-00001-of-00002.safetensors",
708
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.layer_norm2.bias": "model-00001-of-00002.safetensors",
709
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.layer_norm2.weight": "model-00001-of-00002.safetensors",
710
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.mlp.fc1.bias": "model-00001-of-00002.safetensors",
711
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.mlp.fc1.weight": "model-00001-of-00002.safetensors",
712
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.mlp.fc2.bias": "model-00001-of-00002.safetensors",
713
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.mlp.fc2.weight": "model-00001-of-00002.safetensors",
714
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
715
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
716
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
717
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
718
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
719
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
720
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
721
+ "visual_tokenizer.vit.vision_model.encoder.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
722
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.layer_norm1.bias": "model-00001-of-00002.safetensors",
723
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.layer_norm1.weight": "model-00001-of-00002.safetensors",
724
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.layer_norm2.bias": "model-00001-of-00002.safetensors",
725
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.layer_norm2.weight": "model-00001-of-00002.safetensors",
726
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.mlp.fc1.bias": "model-00001-of-00002.safetensors",
727
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.mlp.fc1.weight": "model-00001-of-00002.safetensors",
728
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.mlp.fc2.bias": "model-00001-of-00002.safetensors",
729
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.mlp.fc2.weight": "model-00001-of-00002.safetensors",
730
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
731
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
732
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
733
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
734
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
735
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
736
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
737
+ "visual_tokenizer.vit.vision_model.encoder.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
738
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.layer_norm1.bias": "model-00001-of-00002.safetensors",
739
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.layer_norm1.weight": "model-00001-of-00002.safetensors",
740
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.layer_norm2.bias": "model-00001-of-00002.safetensors",
741
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.layer_norm2.weight": "model-00001-of-00002.safetensors",
742
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.mlp.fc1.bias": "model-00001-of-00002.safetensors",
743
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.mlp.fc1.weight": "model-00001-of-00002.safetensors",
744
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.mlp.fc2.bias": "model-00001-of-00002.safetensors",
745
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.mlp.fc2.weight": "model-00001-of-00002.safetensors",
746
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.k_proj.bias": "model-00001-of-00002.safetensors",
747
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
748
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
749
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
750
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
751
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
752
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
753
+ "visual_tokenizer.vit.vision_model.encoder.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
754
+ "visual_tokenizer.vit.vision_model.post_layernorm.bias": "model-00001-of-00002.safetensors",
755
+ "visual_tokenizer.vit.vision_model.post_layernorm.weight": "model-00001-of-00002.safetensors",
756
+ "vte.weight": "model-00002-of-00002.safetensors"
757
+ }
758
+ }
modeling_ovis2_5.py ADDED
@@ -0,0 +1,1004 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import math
2
+ from typing import Dict, List, Optional, Tuple, Union
3
+
4
+ import PIL.Image
5
+ import numpy as np
6
+ import torch
7
+ from torch import Tensor, nn
8
+ from torch.nn import functional as F
9
+ from transformers import (
10
+ AutoConfig,
11
+ AutoImageProcessor,
12
+ AutoModel,
13
+ AutoModelForCausalLM,
14
+ AutoTokenizer,
15
+ )
16
+ from transformers.activations import ACT2FN
17
+ from transformers.generation.utils import GenerateOutput
18
+ from transformers.modeling_outputs import BaseModelOutputWithNoAttention
19
+ from transformers.modeling_utils import PreTrainedModel
20
+ from transformers.utils import is_flash_attn_2_available
21
+
22
+ from .configuration_ovis2_5 import Siglip2NavitConfig, Ovis2_5_Config
23
+
24
+
25
+ if is_flash_attn_2_available():
26
+ from flash_attn import flash_attn_varlen_func
27
+ from flash_attn.layers.rotary import apply_rotary_emb
28
+
29
+
30
+ IMAGE_PLACEHOLDER = "<image>"
31
+ IMAGE_PLACEHOLDER_ID = -200
32
+ VIDEO_PLACEHOLDER = "<video>"
33
+ VIDEO_PLACEHOLDER_ID = -201
34
+
35
+ VISUAL_ATOM_ID = -300
36
+ INDICATOR_IDS = [-301, -302, -303, -304]
37
+
38
+
39
+ # copied from qwen2.5-vl
40
+ class VisionRotaryEmbedding(nn.Module):
41
+ def __init__(self, dim: int, theta: float = 10000.0) -> None:
42
+ super().__init__()
43
+ inv_freq = 1.0 / (theta ** (torch.arange(0, dim, 2, dtype=torch.float) / dim))
44
+ self.register_buffer("inv_freq", inv_freq, persistent=False)
45
+
46
+ def forward(self, seqlen: int) -> torch.Tensor:
47
+ seq = torch.arange(seqlen, device=self.inv_freq.device, dtype=self.inv_freq.dtype)
48
+ freqs = torch.outer(seq, self.inv_freq)
49
+ return freqs
50
+
51
+
52
+ class Siglip2VisionEmbeddings(nn.Module):
53
+ def __init__(self, config: Siglip2NavitConfig):
54
+ super().__init__()
55
+ self.config = config
56
+ self.embed_dim = config.hidden_size
57
+ self.patch_size = config.patch_size
58
+ self.image_size = config.image_size
59
+ self.num_patches = config.num_patches
60
+ self.preserve_original_pe = config.preserve_original_pe
61
+ self.hidden_stride = config.hidden_stride
62
+
63
+
64
+ # siglip2 naflex
65
+ if self.num_patches > 0:
66
+ self.patch_embedding = nn.Linear(
67
+ in_features=config.num_channels * self.patch_size * self.patch_size,
68
+ out_features=self.embed_dim,
69
+ )
70
+ if self.preserve_original_pe:
71
+ self.position_embedding_size = int(self.num_patches**0.5)
72
+ self.position_embedding = nn.Embedding(self.num_patches, self.embed_dim)
73
+
74
+ else:
75
+ self.patch_embedding = nn.Conv2d(
76
+ in_channels=config.num_channels,
77
+ out_channels=self.embed_dim,
78
+ kernel_size=self.patch_size,
79
+ stride=self.patch_size,
80
+ padding="valid",
81
+ )
82
+ if self.preserve_original_pe:
83
+ self.num_patches = (self.image_size // self.patch_size) ** 2
84
+ self.position_embedding_size = self.image_size // self.patch_size
85
+ self.position_embedding = nn.Embedding(self.num_patches, self.embed_dim)
86
+
87
+ @staticmethod
88
+ def resize_positional_embeddings(
89
+ positional_embeddings: torch.Tensor,
90
+ spatial_shapes: torch.LongTensor,
91
+ max_length: int,
92
+ ) -> torch.Tensor:
93
+ """
94
+ Resize positional embeddings to image-specific size and pad to a fixed size.
95
+
96
+ Args:
97
+ positional_embeddings (`torch.Tensor`):
98
+ Position embeddings of shape (height, width, embed_dim)
99
+ spatial_shapes (`torch.LongTensor`):
100
+ Spatial shapes of shape (batch_size, 2) to resize the positional embeddings to
101
+ max_length (`int`):
102
+ Maximum length of the positional embeddings to pad resized positional embeddings to
103
+
104
+ Returns:
105
+ `torch.Tensor`: Embeddings of shape (batch_size, max_length, embed_dim)
106
+ """
107
+ batch_size = spatial_shapes.shape[0]
108
+ embed_dim = positional_embeddings.shape[-1]
109
+ source_dtype = positional_embeddings.dtype
110
+
111
+ resulted_positional_embeddings = torch.empty(
112
+ (batch_size, max_length, embed_dim),
113
+ device=positional_embeddings.device,
114
+ dtype=source_dtype,
115
+ )
116
+
117
+ # (height, width, embed_dim) -> (1, embed_dim, height, width) for interpolation
118
+ positional_embeddings = positional_embeddings.permute(2, 0, 1).unsqueeze(0)
119
+
120
+ # Upcast to float32 on CPU because antialias is not supported for bfloat16/float16 on CPU
121
+ if positional_embeddings.device.type == "cpu":
122
+ positional_embeddings = positional_embeddings.to(torch.float32)
123
+
124
+ for i in range(batch_size):
125
+ # (1, dim, height, width) -> (1, dim, target_height, target_width)
126
+ height, width = spatial_shapes[i]
127
+ resized_embeddings = F.interpolate(
128
+ positional_embeddings,
129
+ size=(height, width),
130
+ mode="bilinear",
131
+ align_corners=False,
132
+ antialias=True,
133
+ )
134
+
135
+ # (1, dim, target_height, target_width) -> (target_height * target_width, dim)
136
+ resized_embeddings = resized_embeddings.reshape(embed_dim, height * width).transpose(0, 1)
137
+
138
+ # Cast to original dtype
139
+ resized_embeddings = resized_embeddings.to(source_dtype)
140
+
141
+ resulted_positional_embeddings[i, : height * width] = resized_embeddings
142
+ resulted_positional_embeddings[i, height * width :] = resized_embeddings[0]
143
+
144
+ return resulted_positional_embeddings
145
+
146
+ def forward(self, pixel_values: torch.FloatTensor,
147
+ grid_thws: Optional[torch.LongTensor] = None) -> torch.Tensor:
148
+ """
149
+ Args:
150
+ pixel_values (`torch.FloatTensor`):
151
+ Pixel values of shape (num_patches, num_channels * temporal_patch_size * patch_size * patch_size)
152
+ grid_thws: (`torch.LongTensor`):
153
+ grid shape (num_patches, 3)
154
+ """
155
+
156
+ # Apply patch embeddings to already patchified pixel values
157
+ target_dtype = self.patch_embedding.weight.dtype
158
+ if isinstance(self.patch_embedding, nn.Linear):
159
+ patch_embeds = self.patch_embedding(pixel_values.to(dtype=target_dtype))
160
+ elif isinstance(self.patch_embedding, nn.Conv2d):
161
+ pixel_values = pixel_values.view(-1, self.config.num_channels * self.config.temporal_patch_size, self.patch_size,
162
+ self.patch_size)
163
+ patch_embeds = self.patch_embedding(pixel_values.to(dtype=target_dtype))
164
+ patch_embeds = patch_embeds.reshape(-1, self.embed_dim)
165
+
166
+
167
+ if self.preserve_original_pe:
168
+ assert grid_thws is not None
169
+ pos_embed_new = torch.zeros_like(patch_embeds)
170
+ ori_h = ori_w = self.position_embedding_size
171
+ positional_embeddings = self.position_embedding.weight.reshape(
172
+ self.position_embedding_size, self.position_embedding_size, -1
173
+ ).unsqueeze(0).permute(0,3,1,2)
174
+ # pos_embed = self.pos_embed.reshape(1, ori_h, ori_w, -1).permute(0, 3, 1, 2)
175
+ cnt = 0
176
+ for t, h, w in grid_thws:
177
+ thw = t * h * w
178
+ pe = F.interpolate(positional_embeddings, size=(h, w), mode='bicubic', align_corners=False)
179
+ pe = pe.permute(0, 2, 3, 1).reshape(1, h * w, -1)
180
+ pe = pe[0].repeat(t, 1)
181
+ pe = pe.reshape(t, h // self.hidden_stride, self.hidden_stride, w // self.hidden_stride,
182
+ self.hidden_stride, -1)
183
+ pe = pe.permute(0, 1, 3, 2, 4, 5).reshape(thw, -1)
184
+ pos_embed_new[cnt:cnt + thw] = pe
185
+ cnt += thw
186
+ patch_embeds = patch_embeds + pos_embed_new
187
+
188
+ return patch_embeds
189
+
190
+
191
+ # copied from qwen2.5-vl
192
+ def apply_rotary_pos_emb_flashatt(
193
+ q: torch.Tensor, k: torch.Tensor, cos: torch.Tensor, sin: torch.Tensor
194
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
195
+ cos = cos.chunk(2, dim=-1)[0].contiguous()
196
+ sin = sin.chunk(2, dim=-1)[0].contiguous()
197
+ q_embed = apply_rotary_emb(q.float(), cos.float(), sin.float()).type_as(q)
198
+ k_embed = apply_rotary_emb(k.float(), cos.float(), sin.float()).type_as(k)
199
+ return q_embed, k_embed
200
+
201
+
202
+ # Copied from transformers.models.llama.modeling_llama.rotate_half
203
+ def rotate_half(x):
204
+ """Rotates half the hidden dims of the input."""
205
+ x1 = x[..., : x.shape[-1] // 2]
206
+ x2 = x[..., x.shape[-1] // 2 :]
207
+ return torch.cat((-x2, x1), dim=-1)
208
+
209
+
210
+ def apply_rotary_pos_emb_vision(
211
+ q: torch.Tensor, k: torch.Tensor, cos: torch.Tensor, sin: torch.Tensor
212
+ ) -> tuple[torch.Tensor, torch.Tensor]:
213
+ orig_q_dtype = q.dtype
214
+ orig_k_dtype = k.dtype
215
+ q, k = q.float(), k.float()
216
+ cos, sin = cos.unsqueeze(-2).float(), sin.unsqueeze(-2).float()
217
+ q_embed = (q * cos) + (rotate_half(q) * sin)
218
+ k_embed = (k * cos) + (rotate_half(k) * sin)
219
+ q_embed = q_embed.to(orig_q_dtype)
220
+ k_embed = k_embed.to(orig_k_dtype)
221
+ return q_embed, k_embed
222
+
223
+
224
+ class Siglip2Attention(nn.Module):
225
+ """Multi-headed attention from 'Attention Is All You Need' paper"""
226
+
227
+ def __init__(self, config):
228
+ super().__init__()
229
+ self.config = config
230
+ self.embed_dim = config.hidden_size
231
+ self.num_heads = config.num_attention_heads
232
+ self.head_dim = self.embed_dim // self.num_heads
233
+ if self.head_dim * self.num_heads != self.embed_dim:
234
+ raise ValueError(
235
+ f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim} and `num_heads`:"
236
+ f" {self.num_heads})."
237
+ )
238
+ self.scale = self.head_dim**-0.5
239
+ self.dropout = config.attention_dropout
240
+ self.is_causal = False
241
+
242
+ self.k_proj = nn.Linear(self.embed_dim, self.embed_dim)
243
+ self.v_proj = nn.Linear(self.embed_dim, self.embed_dim)
244
+ self.q_proj = nn.Linear(self.embed_dim, self.embed_dim)
245
+ self.out_proj = nn.Linear(self.embed_dim, self.embed_dim)
246
+
247
+ self.use_rope = config.use_rope
248
+
249
+ def forward(
250
+ self,
251
+ hidden_states: torch.Tensor,
252
+ cu_seqlens: torch.Tensor,
253
+ position_embeddings: Optional[Tuple[torch.Tensor, torch.Tensor]] = None,
254
+ ) -> tuple[torch.Tensor, Optional[torch.Tensor]]:
255
+ """Input shape: Batch x Time x Channel"""
256
+
257
+ seq_length, embed_dim = hidden_states.shape
258
+
259
+ queries = self.q_proj(hidden_states)
260
+ keys = self.k_proj(hidden_states)
261
+ values = self.v_proj(hidden_states)
262
+
263
+ queries = queries.view(seq_length, self.num_heads, self.head_dim)
264
+ keys = keys.view(seq_length, self.num_heads, self.head_dim)
265
+ values = values.view(seq_length, self.num_heads, self.head_dim)
266
+
267
+ if self.use_rope:
268
+ cos, sin = position_embeddings
269
+ if is_flash_attn_2_available():
270
+ queries, keys = apply_rotary_pos_emb_flashatt(queries.unsqueeze(0), keys.unsqueeze(0), cos, sin)
271
+ else:
272
+ queries, keys = apply_rotary_pos_emb_vision(queries.unsqueeze(0), keys.unsqueeze(0), cos, sin)
273
+ queries = queries.squeeze(0)
274
+ keys = keys.squeeze(0)
275
+
276
+ max_seqlen = (cu_seqlens[1:] - cu_seqlens[:-1]).max().item()
277
+ if is_flash_attn_2_available():
278
+ attn_output = flash_attn_varlen_func(queries, keys, values, cu_seqlens, cu_seqlens, max_seqlen, max_seqlen).reshape(
279
+ seq_length, -1
280
+ )
281
+ else:
282
+ batch_size = cu_seqlens.shape[0] - 1
283
+ outputs = []
284
+ cu = cu_seqlens.tolist()
285
+ for i in range(batch_size):
286
+ start_idx = cu[i]
287
+ end_idx = cu[i + 1]
288
+ # Each sequence is processed independently.
289
+ q_i = queries[start_idx:end_idx].unsqueeze(0)
290
+ k_i = keys[start_idx:end_idx].unsqueeze(0)
291
+ v_i = values[start_idx:end_idx].unsqueeze(0)
292
+ # (1, seq_len, num_heads, head_dim) ->
293
+ # (1, num_heads, seq_len, head_dim)
294
+ q_i, k_i, v_i = [x.transpose(1, 2) for x in (q_i, k_i, v_i)]
295
+ output_i = F.scaled_dot_product_attention(q_i,
296
+ k_i,
297
+ v_i,
298
+ dropout_p=0.0)
299
+ # (1, num_heads, seq_len, head_dim) -> (seq_len, embed_dim)
300
+ output_i = output_i.transpose(1, 2).reshape(-1, self.embed_dim)
301
+ outputs.append(output_i)
302
+ attn_output = torch.cat(outputs, dim=0)
303
+
304
+ attn_output = self.out_proj(attn_output)
305
+ return attn_output
306
+
307
+ class Siglip2MLP(nn.Module):
308
+ def __init__(self, config):
309
+ super().__init__()
310
+ self.config = config
311
+ self.activation_fn = ACT2FN[config.hidden_act]
312
+ self.fc1 = nn.Linear(config.hidden_size, config.intermediate_size)
313
+ self.fc2 = nn.Linear(config.intermediate_size, config.hidden_size)
314
+
315
+ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
316
+ hidden_states = self.fc1(hidden_states)
317
+ hidden_states = self.activation_fn(hidden_states)
318
+ hidden_states = self.fc2(hidden_states)
319
+ return hidden_states
320
+
321
+
322
+ class Siglip2EncoderLayer(nn.Module):
323
+ def __init__(self, config: Siglip2NavitConfig):
324
+ super().__init__()
325
+ self.embed_dim = config.hidden_size
326
+ self.layer_norm1 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps)
327
+ self.self_attn = Siglip2Attention(config)
328
+ self.layer_norm2 = nn.LayerNorm(self.embed_dim, eps=config.layer_norm_eps)
329
+ self.mlp = Siglip2MLP(config)
330
+
331
+ def forward(
332
+ self,
333
+ hidden_states: torch.Tensor,
334
+ cu_seqlens: torch.Tensor,
335
+ position_embeddings: torch.Tensor
336
+ ) -> tuple[torch.FloatTensor]:
337
+ """
338
+ Args:
339
+ hidden_states (`torch.FloatTensor`):
340
+ Input to the layer of shape `(batch, seq_len, embed_dim)`.
341
+ attention_mask (`torch.FloatTensor`):
342
+ Attention mask of shape `(batch, 1, q_len, k_v_seq_len)` where padding elements are indicated by very large negative values.
343
+ output_attentions (`bool`, *optional*, defaults to `False`):
344
+ Whether or not to return the attentions tensors of all attention layers. See `attentions` under
345
+ returned tensors for more detail.
346
+ """
347
+ residual = hidden_states
348
+
349
+ hidden_states = self.layer_norm1(hidden_states)
350
+ hidden_states = self.self_attn(
351
+ hidden_states=hidden_states,
352
+ cu_seqlens=cu_seqlens,
353
+ position_embeddings=position_embeddings
354
+ )
355
+ hidden_states = residual + hidden_states
356
+
357
+ residual = hidden_states
358
+ hidden_states = self.layer_norm2(hidden_states)
359
+ hidden_states = self.mlp(hidden_states)
360
+ hidden_states = residual + hidden_states
361
+
362
+ return hidden_states
363
+
364
+ class Siglip2Encoder(nn.Module):
365
+ """
366
+ Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
367
+ [`Siglip2EncoderLayer`].
368
+
369
+ Args:
370
+ config: Siglip2NavitConfig
371
+ """
372
+
373
+ def __init__(self, config: Siglip2NavitConfig):
374
+ super().__init__()
375
+ self.config = config
376
+ self.layers = nn.ModuleList([Siglip2EncoderLayer(config) for _ in range(config.num_hidden_layers)])
377
+ self.gradient_checkpointing = False
378
+
379
+ self.rotary_pos_emb = VisionRotaryEmbedding(config.hidden_size // config.num_attention_heads // 2)
380
+ self.patch_size = config.patch_size
381
+ self.hidden_stride = config.hidden_stride
382
+ self.window_size = config.window_size
383
+ self.spatial_merge_unit = config.hidden_stride * config.hidden_stride
384
+ self.fullatt_block_indexes = None if config.fullatt_block_indexes is None else [int(i) for i in config.fullatt_block_indexes.split('|')]
385
+
386
+
387
+ # copied from qwen2.5_vl
388
+ def rot_pos_emb(self, grid_thw):
389
+ pos_ids = []
390
+ for t, h, w in grid_thw:
391
+ hpos_ids = torch.arange(h).unsqueeze(1).expand(-1, w)
392
+ hpos_ids = hpos_ids.reshape(
393
+ h // self.hidden_stride,
394
+ self.hidden_stride,
395
+ w // self.hidden_stride,
396
+ self.hidden_stride,
397
+ )
398
+ hpos_ids = hpos_ids.permute(0, 2, 1, 3)
399
+ hpos_ids = hpos_ids.flatten()
400
+
401
+ wpos_ids = torch.arange(w).unsqueeze(0).expand(h, -1)
402
+ wpos_ids = wpos_ids.reshape(
403
+ h // self.hidden_stride,
404
+ self.hidden_stride,
405
+ w // self.hidden_stride,
406
+ self.hidden_stride,
407
+ )
408
+ wpos_ids = wpos_ids.permute(0, 2, 1, 3)
409
+ wpos_ids = wpos_ids.flatten()
410
+ pos_ids.append(torch.stack([hpos_ids, wpos_ids], dim=-1).repeat(t, 1))
411
+ pos_ids = torch.cat(pos_ids, dim=0)
412
+ max_grid_size = grid_thw[:, 1:].max()
413
+ rotary_pos_emb_full = self.rotary_pos_emb(max_grid_size)
414
+ rotary_pos_emb = rotary_pos_emb_full[pos_ids].flatten(1)
415
+ return rotary_pos_emb
416
+
417
+ def get_window_index(self, grid_thw):
418
+ window_index: list = []
419
+ cu_window_seqlens: list = [0]
420
+ window_index_id = 0
421
+ vit_merger_window_size = self.window_size // self.hidden_stride // self.patch_size # patch (after merge) number in each window
422
+
423
+ for grid_t, grid_h, grid_w in grid_thw:
424
+ llm_grid_h, llm_grid_w = (
425
+ grid_h // self.hidden_stride, # number of patch after merge
426
+ grid_w // self.hidden_stride,
427
+ )
428
+ index = torch.arange(grid_t * llm_grid_h * llm_grid_w).reshape(grid_t, llm_grid_h, llm_grid_w)
429
+ pad_h = vit_merger_window_size - llm_grid_h % vit_merger_window_size
430
+ pad_w = vit_merger_window_size - llm_grid_w % vit_merger_window_size
431
+ num_windows_h = (llm_grid_h + pad_h) // vit_merger_window_size
432
+ num_windows_w = (llm_grid_w + pad_w) // vit_merger_window_size
433
+ index_padded = F.pad(index, (0, pad_w, 0, pad_h), "constant", -100)
434
+ index_padded = index_padded.reshape(
435
+ grid_t,
436
+ num_windows_h,
437
+ vit_merger_window_size,
438
+ num_windows_w,
439
+ vit_merger_window_size,
440
+ )
441
+ index_padded = index_padded.permute(0, 1, 3, 2, 4).reshape(
442
+ grid_t,
443
+ num_windows_h * num_windows_w,
444
+ vit_merger_window_size,
445
+ vit_merger_window_size,
446
+ )
447
+ seqlens = (index_padded != -100).sum([2, 3]).reshape(-1)
448
+ index_padded = index_padded.reshape(-1)
449
+ index_new = index_padded[index_padded != -100]
450
+ window_index.append(index_new + window_index_id)
451
+ cu_seqlens_tmp = seqlens.cumsum(0) * self.spatial_merge_unit + cu_window_seqlens[-1]
452
+ cu_window_seqlens.extend(cu_seqlens_tmp.tolist())
453
+ window_index_id += (grid_t * llm_grid_h * llm_grid_w).item()
454
+ window_index = torch.cat(window_index, dim=0)
455
+
456
+ return window_index, cu_window_seqlens
457
+
458
+ # Ignore copy
459
+ def forward(
460
+ self,
461
+ inputs_embeds,
462
+ grid_thws: torch.Tensor,
463
+ output_hidden_states: bool = False,
464
+ ) -> Tuple[torch.Tensor, Optional[Tuple[torch.Tensor, ...]]]:
465
+ r"""
466
+ Args:
467
+ inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
468
+ Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
469
+ This is useful if you want more control over how to convert `input_ids` indices into associated vectors
470
+ than the model's internal embedding lookup matrix.
471
+ attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
472
+ Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
473
+
474
+ - 1 for tokens that are **not masked**,
475
+ - 0 for tokens that are **masked**.
476
+
477
+ [What are attention masks?](../glossary#attention-mask)
478
+ output_attentions (`bool`, *optional*):
479
+ Whether or not to return the attentions tensors of all attention layers. See `attentions` under
480
+ returned tensors for more detail.
481
+ output_hidden_states (`bool`, *optional*):
482
+ Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
483
+ for more detail.
484
+ return_dict (`bool`, *optional*):
485
+ Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
486
+ """
487
+
488
+ rotary_pos_emb = self.rot_pos_emb(grid_thws)
489
+ window_index, cu_window_seqlens = self.get_window_index(grid_thws)
490
+ cu_window_seqlens = torch.tensor(
491
+ cu_window_seqlens,
492
+ device=inputs_embeds.device,
493
+ dtype=grid_thws.dtype if torch.jit.is_tracing() else torch.int32,
494
+ )
495
+ cu_window_seqlens = torch.unique_consecutive(cu_window_seqlens)
496
+
497
+ seq_len, _ = inputs_embeds.size()
498
+ inputs_embeds = inputs_embeds.reshape(seq_len // self.spatial_merge_unit, self.spatial_merge_unit, -1)
499
+ inputs_embeds = inputs_embeds[window_index, :, :]
500
+ inputs_embeds = inputs_embeds.reshape(seq_len, -1)
501
+ rotary_pos_emb = rotary_pos_emb.reshape(seq_len // self.spatial_merge_unit, self.spatial_merge_unit, -1)
502
+ rotary_pos_emb = rotary_pos_emb[window_index, :, :]
503
+ rotary_pos_emb = rotary_pos_emb.reshape(seq_len, -1)
504
+ emb = torch.cat((rotary_pos_emb, rotary_pos_emb), dim=-1)
505
+ position_embeddings = (emb.cos(), emb.sin())
506
+
507
+ cu_seqlens = torch.repeat_interleave(grid_thws[:, 1] * grid_thws[:, 2], grid_thws[:, 0]).cumsum(
508
+ dim=0,
509
+ # Select dtype based on the following factors:
510
+ # - FA2 requires that cu_seqlens_q must have dtype int32
511
+ # - torch.onnx.export requires that cu_seqlens_q must have same dtype as grid_thw
512
+ # See https://github.com/huggingface/transformers/pull/34852 for more information
513
+ dtype=grid_thws.dtype if torch.jit.is_tracing() else torch.int32,
514
+ )
515
+ cu_seqlens = F.pad(cu_seqlens, (1, 0), value=0)
516
+
517
+ reverse_indices = torch.argsort(window_index)
518
+ encoder_states = () if output_hidden_states else None
519
+
520
+ hidden_states = inputs_embeds
521
+ for index, block in enumerate(self.layers):
522
+ if self.fullatt_block_indexes is None or index in self.fullatt_block_indexes:
523
+ cu_seqlens_tmp = cu_seqlens
524
+ else:
525
+ cu_seqlens_tmp = cu_window_seqlens
526
+ if self.gradient_checkpointing and self.training:
527
+ hidden_states = self._gradient_checkpointing_func(block.__call__, hidden_states, cu_seqlens_tmp, position_embeddings)
528
+ else:
529
+ hidden_states = block(hidden_states, cu_seqlens_tmp, position_embeddings)
530
+ if output_hidden_states:
531
+ hidden_states_ = hidden_states.reshape(seq_len // self.spatial_merge_unit, self.spatial_merge_unit, -1)
532
+ encoder_states += (hidden_states_[reverse_indices, :].reshape(seq_len, -1),)
533
+ # tokens = self.post_trunk_norm(tokens)
534
+ hidden_states = hidden_states.reshape(seq_len // self.spatial_merge_unit, self.spatial_merge_unit, -1)
535
+ hidden_states = hidden_states[reverse_indices, :].reshape(seq_len, -1)
536
+
537
+ return hidden_states, encoder_states
538
+
539
+ class Siglip2VisionTransformer(nn.Module):
540
+ def __init__(self, config: Siglip2NavitConfig):
541
+ super().__init__()
542
+ self.config = config
543
+ embed_dim = config.hidden_size
544
+
545
+ self.embeddings = Siglip2VisionEmbeddings(config)
546
+ self.encoder = Siglip2Encoder(config)
547
+ self.post_layernorm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps)
548
+ self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2"
549
+
550
+ def forward(
551
+ self,
552
+ pixel_values: torch.FloatTensor,
553
+ grid_thws: torch.LongTensor,
554
+ output_hidden_states: Optional[bool] = True,
555
+ return_dict: Optional[bool] = True,
556
+ ) -> Union[
557
+ Tuple[torch.Tensor],
558
+ Tuple[torch.Tensor, Tuple[torch.Tensor, ...]],
559
+ BaseModelOutputWithNoAttention,
560
+ ]:
561
+ r"""
562
+ spatial_shapes (`torch.LongTensor` of shape `(batch_size, 2)`):
563
+ Tensor containing the spatial dimensions (height, width) of the input images.
564
+ """
565
+ # output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
566
+ # output_hidden_states = (
567
+ # output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
568
+ # )
569
+
570
+ hidden_states = self.embeddings(pixel_values, grid_thws)
571
+
572
+ last_hidden_state, hidden_states = self.encoder(hidden_states, grid_thws, output_hidden_states)
573
+ last_hidden_state = self.post_layernorm(last_hidden_state)
574
+
575
+ if not return_dict:
576
+ output = (last_hidden_state,)
577
+ output += (hidden_states,) if output_hidden_states else ()
578
+ return output
579
+
580
+ return BaseModelOutputWithNoAttention(
581
+ last_hidden_state=last_hidden_state,
582
+ hidden_states=hidden_states
583
+ )
584
+
585
+ class Siglip2PreTrainedModel(PreTrainedModel):
586
+ config_class = Siglip2NavitConfig
587
+ base_model_prefix = "siglip2_navit"
588
+ supports_gradient_checkpointing = True
589
+
590
+ _no_split_modules = [
591
+ "Siglip2VisionEmbeddings",
592
+ "Siglip2EncoderLayer",
593
+ ]
594
+ _supports_flash_attn_2 = True
595
+ _supports_sdpa = False
596
+ _supports_flex_attn = False
597
+ _supports_attention_backend = True
598
+
599
+
600
+ class Siglip2NavitModel(Siglip2PreTrainedModel):
601
+ config_class = Siglip2NavitConfig
602
+ main_input_name = "pixel_values"
603
+
604
+ def __init__(self, config: Siglip2NavitConfig):
605
+ super().__init__(config)
606
+
607
+ self.vision_model = Siglip2VisionTransformer(config)
608
+
609
+ def get_input_embeddings(self) -> nn.Module:
610
+ return self.vision_model.embeddings.patch_embedding
611
+
612
+ def forward(
613
+ self,
614
+ pixel_values: torch.FloatTensor,
615
+ grid_thws: torch.LongTensor,
616
+ output_hidden_states: Optional[bool] = None,
617
+ return_dict: Optional[bool] = None,
618
+ ) -> Union[
619
+ Tuple[torch.Tensor],
620
+ Tuple[torch.Tensor, Tuple[torch.Tensor, ...]],
621
+ BaseModelOutputWithNoAttention,
622
+ ]:
623
+
624
+ if output_hidden_states is None:
625
+ output_hidden_states = self.config.output_hidden_states
626
+ if return_dict is None:
627
+ return_dict = self.config.use_return_dict
628
+
629
+ return self.vision_model(
630
+ pixel_values=pixel_values,
631
+ grid_thws=grid_thws,
632
+ output_hidden_states=output_hidden_states,
633
+ return_dict=return_dict,
634
+ )
635
+
636
+ class VisualEmbedding(torch.nn.Embedding):
637
+ """
638
+ A visual embedding layer that can handle both discrete token IDs (long) and continuous
639
+ soft-token probabilities (float).
640
+ """
641
+
642
+ def forward(self, visual_tokens: Tensor) -> Tensor:
643
+ if visual_tokens.dtype in [torch.int8, torch.int16, torch.int32, torch.int64, torch.long]:
644
+ return super().forward(visual_tokens)
645
+ # Handle soft tokens (probabilities) by matrix multiplication with the embedding weight
646
+ return torch.matmul(visual_tokens, self.weight)
647
+
648
+
649
+ class VisualTokenizer(torch.nn.Module):
650
+ """
651
+ Tokenizes images or videos into a sequence of continuous visual tokens.
652
+ """
653
+
654
+ def __init__(self, vit, visual_vocab_size, image_processor_name_or_path, *args, **kwargs):
655
+ super().__init__(*args, **kwargs)
656
+ self.vit = vit
657
+ self.image_processor = AutoImageProcessor.from_pretrained(image_processor_name_or_path, do_center_crop=False)
658
+ head_dim = visual_vocab_size - len(INDICATOR_IDS)
659
+ self.head = torch.nn.Sequential(
660
+ torch.nn.Linear(self.vit.config.hidden_size * self.vit.config.hidden_stride ** 2, head_dim, bias=False),
661
+ torch.nn.LayerNorm(head_dim)
662
+ )
663
+
664
+ def _encode(self, pixel_values, grid_thws):
665
+ output = self.vit(pixel_values, grid_thws, output_hidden_states=True, return_dict=True)
666
+ features = output.hidden_states[-1]
667
+ seq_len, _ = features.shape
668
+ features = features.reshape(seq_len // (self.vit.config.hidden_stride ** 2), -1)
669
+ return features
670
+
671
+ # Adapted from qwen2_vl
672
+ @staticmethod
673
+ def smart_resize(
674
+ height: int, width: int, factor: int = 28, min_pixels: int = 448 * 448, max_pixels: int = 1344 * 1792
675
+ ):
676
+ """Rescales the image so that the following conditions are met:
677
+ 1. Both dimensions are divisible by 'factor'.
678
+ 2. The total number of pixels is within ['min_pixels', 'max_pixels'].
679
+ 3. The aspect ratio is maintained as closely as possible.
680
+ """
681
+ if height < factor or width < factor:
682
+ if height < width:
683
+ width = round(factor / height * width)
684
+ height = factor
685
+ else:
686
+ height = round(factor / width * height)
687
+ width = factor
688
+
689
+ elif max(height, width) / min(height, width) > 200:
690
+ if height > width:
691
+ height = 200 * width
692
+ else:
693
+ width = 200 * height
694
+
695
+ h_bar = round(height / factor) * factor
696
+ w_bar = round(width / factor) * factor
697
+ if h_bar * w_bar > max_pixels:
698
+ beta = math.sqrt((height * width) / max_pixels)
699
+ h_bar = math.floor(height / beta / factor) * factor
700
+ w_bar = math.floor(width / beta / factor) * factor
701
+ elif h_bar * w_bar < min_pixels:
702
+ beta = math.sqrt(min_pixels / (height * width))
703
+ h_bar = math.ceil(height * beta / factor) * factor
704
+ w_bar = math.ceil(width * beta / factor) * factor
705
+ return h_bar, w_bar
706
+
707
+ def preprocess(
708
+ self,
709
+ image: Optional[PIL.Image.Image] = None,
710
+ video: Optional[List[PIL.Image.Image]] = None,
711
+ min_pixels: Optional[int] = None,
712
+ max_pixels: Optional[int] = None
713
+ ):
714
+ patch_size = self.vit.config.patch_size
715
+ temporal_patch_size = self.vit.config.temporal_patch_size
716
+ hidden_stride = self.vit.config.hidden_stride
717
+ assert (image is None) ^ (video is None), "Invalid input: expect either image or video"
718
+ if image is not None:
719
+ images = [image]
720
+ else:
721
+ images = video
722
+ images = [image.convert("RGB") if image.mode != 'RGB' else image for image in images]
723
+ width, height = images[0].size
724
+ processed_images = []
725
+ for image in images:
726
+ resized_height, resized_width = self.smart_resize(
727
+ height,
728
+ width,
729
+ factor=patch_size * hidden_stride,
730
+ min_pixels=min_pixels,
731
+ max_pixels=max_pixels,
732
+ )
733
+ new_size = dict(height=resized_height, width=resized_width)
734
+ new_image = self.image_processor.preprocess(image, size=new_size, return_tensors="np")['pixel_values'][0]
735
+ processed_images.append(new_image)
736
+
737
+ patches = np.array(processed_images)
738
+ if patches.shape[0] % temporal_patch_size != 0:
739
+ repeats = np.repeat(patches[-1][np.newaxis], temporal_patch_size - 1, axis=0)
740
+ patches = np.concatenate([patches, repeats], axis=0)
741
+ channel = patches.shape[1]
742
+ grid_t = patches.shape[0] // temporal_patch_size
743
+ grid_h, grid_w = resized_height // patch_size, resized_width // patch_size
744
+ grid_thw = torch.tensor([[grid_t, grid_h, grid_w]])
745
+
746
+ patches = patches.reshape(
747
+ grid_t, temporal_patch_size, channel,
748
+ grid_h // hidden_stride, hidden_stride, patch_size,
749
+ grid_w // hidden_stride, hidden_stride, patch_size,
750
+ )
751
+ patches = patches.transpose(0, 3, 6, 4, 7, 2, 1, 5, 8)
752
+ flatten_patches = patches.reshape(
753
+ grid_t * grid_h * grid_w, channel * temporal_patch_size * patch_size * patch_size
754
+ )
755
+ flatten_patches = torch.tensor(flatten_patches)
756
+
757
+ return flatten_patches, grid_thw
758
+
759
+ def forward(
760
+ self, pixel_values, grid_thws
761
+ ) -> torch.Tensor: # [BatchSize, ImageShape] -> [BatchSize, #Token, VocabSize]
762
+ features = self._encode(pixel_values, grid_thws)
763
+ logits = self.head(features)
764
+ tokens = torch.softmax(logits, dim=-1, dtype=torch.float32).to(logits.dtype)
765
+
766
+ token_len, _ = tokens.shape
767
+ padding_tensor = torch.zeros(size=(token_len, len(INDICATOR_IDS)),
768
+ dtype=tokens.dtype,
769
+ device=tokens.device,
770
+ layout=tokens.layout,
771
+ requires_grad=False)
772
+ tokens = torch.cat((tokens, padding_tensor), dim=1)
773
+ return tokens
774
+
775
+
776
+ class OvisPreTrainedModel(PreTrainedModel):
777
+ config_class = Ovis2_5_Config
778
+ base_model_prefix = "ovis2_5"
779
+
780
+
781
+ class Ovis2_5(OvisPreTrainedModel):
782
+ _supports_flash_attn_2 = True
783
+
784
+ def __init__(self, config: Ovis2_5_Config, *inputs, **kwargs):
785
+ super().__init__(config, *inputs, **kwargs)
786
+
787
+ self.llm = AutoModelForCausalLM.from_config(self.config.llm_config)
788
+ assert self.config.hidden_size == self.llm.config.hidden_size, "hidden size mismatch"
789
+ self.text_tokenizer = AutoTokenizer.from_pretrained(self.config.name_or_path)
790
+ self.visual_tokenizer = VisualTokenizer(vit=AutoModel.from_config(self.config.vit_config),
791
+ visual_vocab_size=self.config.visual_vocab_size,
792
+ image_processor_name_or_path=self.config.name_or_path)
793
+
794
+ self.vte = VisualEmbedding(self.config.visual_vocab_size, self.config.hidden_size,
795
+ device=self.visual_tokenizer.vit.device, dtype=self.visual_tokenizer.vit.dtype)
796
+ indicator_token_indices = torch.arange(
797
+ self.config.visual_vocab_size - len(INDICATOR_IDS),
798
+ self.config.visual_vocab_size,
799
+ dtype=torch.long
800
+ )
801
+ self.register_buffer("indicator_token_indices", indicator_token_indices, persistent=False)
802
+
803
+ def _merge_modules(modules_list: tuple):
804
+ merged_modules = []
805
+ for modules in modules_list:
806
+ merged_modules.extend(modules if modules else [])
807
+ return merged_modules
808
+
809
+ # Standard model configurations for parallelism and device placement
810
+ self._no_split_modules = _merge_modules(
811
+ (self.llm._no_split_modules, self.visual_tokenizer.vit._no_split_modules))
812
+ self._skip_keys_device_placement = self.llm._skip_keys_device_placement
813
+ self._keep_in_fp32_modules = _merge_modules(
814
+ (self.llm._keep_in_fp32_modules, self.visual_tokenizer.vit._keep_in_fp32_modules))
815
+ self.is_parallelizable = all((self.llm.is_parallelizable, self.visual_tokenizer.vit.is_parallelizable))
816
+ self.supports_gradient_checkpointing = True
817
+
818
+ def tie_weights(self):
819
+ self.llm.tie_weights()
820
+
821
+ def get_wte(self):
822
+ return self.llm.get_input_embeddings()
823
+
824
+ def forward(
825
+ self,
826
+ input_ids: torch.Tensor,
827
+ attention_mask: torch.Tensor,
828
+ pixel_values: Optional[torch.Tensor],
829
+ grid_thws: Optional[torch.Tensor],
830
+ labels: Optional[torch.Tensor] = None,
831
+ **kwargs
832
+ ):
833
+ inputs_embeds = self.merge_multimodal(
834
+ input_ids=input_ids,
835
+ pixel_values=pixel_values,
836
+ grid_thws=grid_thws,
837
+ )
838
+ return self.llm(inputs_embeds=inputs_embeds, attention_mask=attention_mask, labels=labels, **kwargs)
839
+
840
+ def merge_multimodal(
841
+ self,
842
+ input_ids: torch.Tensor,
843
+ pixel_values: Optional[torch.Tensor],
844
+ grid_thws: Optional[torch.Tensor],
845
+ ):
846
+ placeholder_token_mask = torch.lt(input_ids, 0)
847
+ multimodal_embeds = self.get_wte()(torch.masked_fill(input_ids, placeholder_token_mask, 0))
848
+
849
+ if pixel_values is not None:
850
+ visual_indicator_embeds = self.vte(self.indicator_token_indices).to(
851
+ dtype=multimodal_embeds.dtype, device=multimodal_embeds.device
852
+ )
853
+ visual_tokens = self.visual_tokenizer(pixel_values, grid_thws)
854
+ visual_embeds = self.vte(visual_tokens).to(dtype=multimodal_embeds.dtype, device=multimodal_embeds.device)
855
+
856
+ for i, indicator_id in enumerate(INDICATOR_IDS):
857
+ multimodal_embeds[input_ids == indicator_id] = visual_indicator_embeds[i]
858
+ multimodal_embeds[input_ids == VISUAL_ATOM_ID] = visual_embeds
859
+
860
+ return multimodal_embeds
861
+
862
+ def _merge_inputs(
863
+ self, raw_input_ids, placeholder_id, grid_thws, indicator_begin_id, indicator_end_id
864
+ ):
865
+ input_ids = []
866
+ prev_index = 0
867
+ placeholder_indexes = [i for i, v in enumerate(raw_input_ids) if v == placeholder_id]
868
+ for placeholder_index, grid_thw in zip(placeholder_indexes, grid_thws):
869
+ input_ids.extend(raw_input_ids[prev_index:placeholder_index])
870
+ num_image_atoms = grid_thw.prod().item()
871
+ num_image_atoms //= self.visual_tokenizer.vit.config.hidden_stride ** 2
872
+ num_image_atoms //= self.visual_tokenizer.vit.config.temporal_patch_size
873
+ input_ids.extend([indicator_begin_id] + [VISUAL_ATOM_ID] * num_image_atoms + [indicator_end_id])
874
+ prev_index = placeholder_index + 1
875
+ input_ids.extend(raw_input_ids[prev_index:])
876
+ return input_ids
877
+
878
+ def _tokenize_with_visual_placeholder(self, text):
879
+ placeholder = VIDEO_PLACEHOLDER if VIDEO_PLACEHOLDER in text else IMAGE_PLACEHOLDER
880
+ placeholder_id = VIDEO_PLACEHOLDER_ID if VIDEO_PLACEHOLDER in text else IMAGE_PLACEHOLDER_ID
881
+ chunks = [self.text_tokenizer(chunk, add_special_tokens=False).input_ids for chunk in text.split(placeholder)]
882
+ input_ids = chunks[0]
883
+ for chunk in chunks[1:]:
884
+ input_ids.append(placeholder_id)
885
+ input_ids.extend(chunk)
886
+ return input_ids
887
+
888
+ def preprocess_inputs(
889
+ self,
890
+ messages: List[Union[str, Dict]],
891
+ min_pixels=448 * 448,
892
+ max_pixels=1344 * 1792,
893
+ add_generation_prompt=True,
894
+ enable_thinking=False
895
+ ):
896
+ text = self.text_tokenizer.apply_chat_template(
897
+ messages,
898
+ tokenize=False,
899
+ add_generation_prompt=add_generation_prompt,
900
+ enable_thinking=enable_thinking
901
+ )
902
+ input_ids = self._tokenize_with_visual_placeholder(text)
903
+ images = []
904
+ videos = []
905
+ for message in messages:
906
+ content = message["content"]
907
+ if isinstance(content, list):
908
+ images.extend([item["image"] for item in content if item.get("image") is not None])
909
+ videos.extend([item["video"] for item in content if item.get("video") is not None])
910
+ if images and videos:
911
+ raise ValueError(
912
+ "Multiple visual input data types detected (both image and video provided). "
913
+ "This model supports only one type of visual input data at a time. "
914
+ "Please provide either image or video, but not both."
915
+ )
916
+
917
+ pixel_values, grid_thws = None, None
918
+ if images:
919
+ pixel_values, grid_thws = zip(
920
+ *(self.visual_tokenizer.preprocess(image=image, min_pixels=min_pixels, max_pixels=max_pixels)
921
+ for image in images)
922
+ )
923
+ input_ids = self._merge_inputs(
924
+ input_ids, IMAGE_PLACEHOLDER_ID, grid_thws, INDICATOR_IDS[0], INDICATOR_IDS[1]
925
+ )
926
+ pixel_values = torch.cat(pixel_values, dim=0)
927
+ grid_thws = torch.cat(grid_thws, dim=0)
928
+ elif videos:
929
+ assert len(videos) == 1, "only support single video"
930
+ pixel_values, grid_thws = self.visual_tokenizer.preprocess(
931
+ video=videos[0], min_pixels=min_pixels, max_pixels=max_pixels
932
+ )
933
+ input_ids = self._merge_inputs(
934
+ input_ids, VIDEO_PLACEHOLDER_ID, grid_thws, INDICATOR_IDS[2], INDICATOR_IDS[3]
935
+ )
936
+
937
+ input_ids = torch.tensor(input_ids, dtype=torch.long).unsqueeze(0)
938
+
939
+ return input_ids, pixel_values, grid_thws
940
+
941
+ def generate(
942
+ self,
943
+ inputs: Optional[torch.Tensor] = None,
944
+ **kwargs,
945
+ ) -> Union[GenerateOutput, torch.LongTensor]:
946
+ attention_mask = torch.ne(inputs, self.text_tokenizer.pad_token_id).to(device=inputs.device)
947
+ inputs_embeds = self.merge_multimodal(
948
+ input_ids=inputs,
949
+ pixel_values=kwargs.pop('pixel_values', None),
950
+ grid_thws=kwargs.pop('grid_thws', None)
951
+ )
952
+ enable_thinking = kwargs.pop('enable_thinking', False)
953
+ enable_thinking_budget = kwargs.pop('enable_thinking_budget', False)
954
+ thinking_budget = kwargs.pop('thinking_budget', 1024)
955
+
956
+ if enable_thinking and enable_thinking_budget:
957
+ actual_max_new_tokens = kwargs['max_new_tokens']
958
+ kwargs['max_new_tokens'] = thinking_budget
959
+ generated_ids = self.llm.generate(inputs=None, inputs_embeds=inputs_embeds, attention_mask=attention_mask, **kwargs)
960
+ output_ids = generated_ids
961
+ output_ids_list = generated_ids[0]
962
+
963
+ # check if the generation has already finished (151645 is <|im_end|>)
964
+ if 151645 not in output_ids_list:
965
+ # check if the thinking process has finished (151668 is </think>)
966
+ # and prepare the second model input
967
+ if 151668 not in output_ids_list:
968
+ early_stopping_text = "\n\nConsidering the limited time by the user, I have to give the solution based on the thinking directly now.\n</think>\n\n"
969
+ early_stopping_ids = self.text_tokenizer(early_stopping_text, return_tensors="pt", return_attention_mask=False).input_ids.to(inputs.device)
970
+ input_ids_appendent = torch.cat([output_ids, early_stopping_ids], dim=-1)
971
+ kwargs['streamer'].put(early_stopping_ids) if 'streamer' in kwargs else None
972
+ else:
973
+ input_ids_appendent = output_ids
974
+
975
+
976
+ # second generation
977
+ new_inputs = torch.cat([inputs, input_ids_appendent], dim=-1)
978
+ attention_mask = torch.ne(new_inputs, self.text_tokenizer.pad_token_id).to(device=inputs.device)
979
+ inputs_embeds_appendent = self.merge_multimodal(
980
+ input_ids=input_ids_appendent,
981
+ pixel_values=None,
982
+ grid_thws=None
983
+ )
984
+ new_inputs_embeds = torch.cat([inputs_embeds, inputs_embeds_appendent], dim=-2)
985
+
986
+ kwargs['max_new_tokens'] = inputs_embeds.size(-2) + actual_max_new_tokens - new_inputs_embeds.size(-2)
987
+ generated_ids2 = self.llm.generate(inputs=None, inputs_embeds=new_inputs_embeds, attention_mask=attention_mask, **kwargs)
988
+ kwargs['streamer'].manual_end() if 'streamer' in kwargs else None
989
+ return torch.cat([input_ids_appendent, generated_ids2], dim=-1)
990
+
991
+ else:
992
+ kwargs['streamer'].manual_end() if 'streamer' in kwargs else None
993
+ return generated_ids
994
+
995
+ else:
996
+ generated_ids = self.llm.generate(inputs=None, inputs_embeds=inputs_embeds, attention_mask=attention_mask, **kwargs)
997
+ kwargs['streamer'].manual_end() if 'streamer' in kwargs else None
998
+ return generated_ids
999
+
1000
+
1001
+ AutoConfig.register('siglip2_navit', Siglip2NavitConfig)
1002
+ AutoModel.register(Siglip2NavitConfig, Siglip2NavitModel)
1003
+ AutoConfig.register("ovis2_5", Ovis2_5_Config)
1004
+ AutoModelForCausalLM.register(Ovis2_5_Config, Ovis2_5)
preprocessor_config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_convert_rgb": null,
3
+ "do_normalize": true,
4
+ "do_rescale": true,
5
+ "do_resize": true,
6
+ "image_mean": [
7
+ 0.5,
8
+ 0.5,
9
+ 0.5
10
+ ],
11
+ "image_processor_type": "SiglipImageProcessor",
12
+ "image_std": [
13
+ 0.5,
14
+ 0.5,
15
+ 0.5
16
+ ],
17
+ "processor_class": "SiglipProcessor",
18
+ "resample": 2,
19
+ "rescale_factor": 0.00392156862745098,
20
+ "size": {
21
+ "height": 512,
22
+ "width": 512
23
+ }
24
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>"
16
+ ],
17
+ "eos_token": {
18
+ "content": "<|im_end|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4
3
+ size 11422654
tokenizer_config.json ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ }
213
+ },
214
+ "additional_special_tokens": [
215
+ "<|im_start|>",
216
+ "<|im_end|>",
217
+ "<|object_ref_start|>",
218
+ "<|object_ref_end|>",
219
+ "<|box_start|>",
220
+ "<|box_end|>",
221
+ "<|quad_start|>",
222
+ "<|quad_end|>",
223
+ "<|vision_start|>",
224
+ "<|vision_end|>",
225
+ "<|vision_pad|>",
226
+ "<|image_pad|>",
227
+ "<|video_pad|>"
228
+ ],
229
+ "bos_token": null,
230
+ "chat_template": "{%- for message in messages %}{{- '<|im_start|>' + message.role + '\n'}}{%- if message.role == 'system' or message.role == 'user' %}{%- if message.content is string %}{{- message.content | replace('<image>', '') | replace('<video>', '') }}{%- else %}{%- for item in message.content %}{%- if item.type == 'text' and 'text' in item %}{{- item.text | replace('<image>', '') | replace('<video>', '') }}{%- elif item.type == 'image' %}{{- '<image>'}}{%- elif item.type == 'video' %}{{- '<video>'}}{%- else %}{{- raise_exception('Invalid content type. Supported types for system and user are text, image, video.')}}{%- endif %}{%- if not loop.last %}{{- '\n'}}{%- endif %}{%- endfor %}{%- endif %}{%- elif message.role == 'assistant' %}{%- set content = '' %}{%- if message.content is string %}{%- set content = message.content | replace('<image>', '') | replace('<video>', '') %}{%- else %}{%- for item in message.content %}{%- if item.type == 'text' and 'text' in item %}{%- set content = content ~ (item.text | replace('<image>', '') | replace('<video>', '')) %}{%- else %}{{- raise_exception('Invalid content type. Supported type for assistant is text.')}}{%- endif %}{%- endfor %}{%- endif %}{%- set content = content.split('</think>')[-1].lstrip('\n') %}{{- content }}{%- else %}{{- raise_exception('Invalid role. Supported roles are system, user, assistant.')}}{%- endif %}{{- '<|im_end|>\n'}}{%- endfor %}{%- if add_generation_prompt %}{{- '<|im_start|>assistant\n' }}{%- if enable_thinking is defined and enable_thinking is false %}{{- '<think>\n\n</think>\n\n' }}{%- endif %}{%- endif %}",
231
+ "clean_up_tokenization_spaces": false,
232
+ "eos_token": "<|im_end|>",
233
+ "errors": "replace",
234
+ "extra_special_tokens": {},
235
+ "model_max_length": 131072,
236
+ "pad_token": "<|endoftext|>",
237
+ "split_special_tokens": false,
238
+ "tokenizer_class": "Qwen2Tokenizer",
239
+ "unk_token": null
240
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c39c8e886913c7fc76647d8d9ed7b814a017e008f6d489f35b4e9a1d1ecc4972
3
+ size 6609
vocab.json ADDED
The diff for this file is too large to render. See raw diff