amitha commited on
Commit
d2b31cd
·
verified ·
1 Parent(s): 705c468

Upload folder using huggingface_hub

Browse files
added_tokens.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "<im_col>": 100281,
3
+ "<im_end>": 100279,
4
+ "<im_patch>": 100280,
5
+ "<im_start>": 100278,
6
+ "<|image|>": 100282
7
+ }
chat_template.jinja ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {% for message in messages %}{{'<|im_start|>' + message['role'] + '
2
+ ' + message['content'] + '<|im_end|>' + '
3
+ '}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant
4
+ ' }}{% endif %}
config.json ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "MolmoOlmo3ForConditionalGeneration"
4
+ ],
5
+ "auto_map": {
6
+ "AutoConfig": "configuration_molmo_olmo3.MolmoOlmo3Config",
7
+ "AutoModelForImageTextToText": "modeling_molmo_olmo3.MolmoOlmo3ForConditionalGeneration",
8
+ "AutoImageProcessor": "image_processing_molmo_olmo3.MolmoOlmo3ImageProcessor",
9
+ "AutoProcessor": "processing_molmo_olmo3.MolmoOlmo3Processor"
10
+ },
11
+ "bos_token_id": 100257,
12
+ "dtype": "float32",
13
+ "eos_token_id": 100257,
14
+ "image_col_token_id": 100281,
15
+ "image_end_token_id": 100279,
16
+ "image_prompt_token_id": 100282,
17
+ "image_start_token_id": 100278,
18
+ "image_token_id": 100280,
19
+ "include_cls_token": true,
20
+ "lm_head_vocab_size": 100352,
21
+ "model_type": "molmo_olmo3",
22
+ "projector_hidden_act": "silu",
23
+ "projector_intermediate_size": 11008,
24
+ "text_config": {
25
+ "architectures": [
26
+ "Olmo3ForCausalLM"
27
+ ],
28
+ "attention_bias": false,
29
+ "attention_dropout": 0.0,
30
+ "dtype": "bfloat16",
31
+ "eos_token_id": 100257,
32
+ "hidden_act": "silu",
33
+ "hidden_size": 4096,
34
+ "initializer_range": 0.02,
35
+ "intermediate_size": 11008,
36
+ "layer_types": [
37
+ "full_attention",
38
+ "full_attention",
39
+ "full_attention",
40
+ "full_attention",
41
+ "full_attention",
42
+ "full_attention",
43
+ "full_attention",
44
+ "full_attention",
45
+ "full_attention",
46
+ "full_attention",
47
+ "full_attention",
48
+ "full_attention",
49
+ "full_attention",
50
+ "full_attention",
51
+ "full_attention",
52
+ "full_attention",
53
+ "full_attention",
54
+ "full_attention",
55
+ "full_attention",
56
+ "full_attention",
57
+ "full_attention",
58
+ "full_attention",
59
+ "full_attention",
60
+ "full_attention",
61
+ "full_attention",
62
+ "full_attention",
63
+ "full_attention",
64
+ "full_attention",
65
+ "full_attention",
66
+ "full_attention",
67
+ "full_attention",
68
+ "full_attention"
69
+ ],
70
+ "max_position_embeddings": 65536,
71
+ "model_type": "olmo3",
72
+ "num_attention_heads": 32,
73
+ "num_hidden_layers": 32,
74
+ "num_key_value_heads": 32,
75
+ "pad_token_id": 100277,
76
+ "rms_norm_eps": 1e-06,
77
+ "rope_scaling": {
78
+ "attention_factor": 1.2079441541679836,
79
+ "beta_fast": 32,
80
+ "beta_slow": 1,
81
+ "factor": 8.0,
82
+ "original_max_position_embeddings": 8192,
83
+ "rope_type": "yarn"
84
+ },
85
+ "rope_theta": 500000,
86
+ "sliding_window": 4096,
87
+ "use_cache": true,
88
+ "vocab_size": 100480
89
+ },
90
+ "text_hidden_size": 4096,
91
+ "tie_word_embeddings": false,
92
+ "transformers_version": "4.57.1",
93
+ "vision_config": {
94
+ "attention_dropout": 0.0,
95
+ "hidden_act": "gelu",
96
+ "hidden_size": 768,
97
+ "image_size": 224,
98
+ "initializer_factor": 1.0,
99
+ "initializer_range": 0.02,
100
+ "intermediate_size": 3072,
101
+ "layer_norm_eps": 1e-05,
102
+ "model_type": "clip_vision_model",
103
+ "num_attention_heads": 12,
104
+ "num_channels": 3,
105
+ "num_hidden_layers": 12,
106
+ "patch_size": 16,
107
+ "projection_dim": 512
108
+ },
109
+ "vision_feature_layer": -1,
110
+ "vision_final_norm_attr": "norm",
111
+ "vision_hidden_size": 768,
112
+ "vision_strip_final_norm": false,
113
+ "vision_tower_name_or_path": "amitha/clip-vit-b16-datacomp-medium",
114
+ "vision_trust_remote_code": false
115
+ }
configuration_molmo_olmo3.py ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ """Configuration for the Molmo-v1 (CLIP vision) VLM in HuggingFace format.
3
+
4
+ LLaVA-style composition:
5
+ - vision_tower : a HuggingFace vision encoder (CLIPVisionModel), referenced by
6
+ `vision_tower_name_or_path`; its weights are NOT stored in this
7
+ checkpoint (loaded from the referenced repo at load time).
8
+ - multi_modal_projector : SwiGLU image projector + a separate CLS Linear projector.
9
+ - language_model : a native transformers `Olmo3ForCausalLM` (text_config).
10
+
11
+ The vision encoder architecture is stored in `vision_config` (metadata only) so the
12
+ module can be constructed without network access; the trained vision *weights* live
13
+ in the referenced `vision_tower_name_or_path` repo.
14
+ """
15
+
16
+ from transformers.configuration_utils import PretrainedConfig
17
+ from transformers.models.auto import CONFIG_MAPPING, AutoConfig
18
+ from transformers.models.olmo3.configuration_olmo3 import Olmo3Config
19
+
20
+
21
+ class MolmoOlmo3Config(PretrainedConfig):
22
+ model_type = "molmo_olmo3"
23
+ sub_configs = {"text_config": Olmo3Config, "vision_config": AutoConfig}
24
+
25
+ def __init__(
26
+ self,
27
+ text_config=None,
28
+ vision_config=None,
29
+ vision_tower_name_or_path="amitha/clip-vit-b16-datacomp-1b-medium-subset",
30
+ vision_trust_remote_code=False,
31
+ vision_feature_layer=-1, # Molmo vit_layers=[-1] -> last block output (pre-final-norm)
32
+ # DINOv3 applies a final LayerNorm to last_hidden_state that Molmo discards; strip it
33
+ # so the tower output is the pre-norm last-block features Molmo's connector consumes.
34
+ vision_strip_final_norm=False,
35
+ vision_final_norm_attr="norm",
36
+ projector_intermediate_size=11008,
37
+ projector_hidden_act="silu",
38
+ include_cls_token=True,
39
+ # lm_head covers the real vocab; ids >= lm_head_vocab_size are image
40
+ # placeholder tokens (never generation targets) and are masked to -inf.
41
+ lm_head_vocab_size=100352,
42
+ # Molmo's get_tokenizer pads to vocab_size=100278 (no padding tokens), so the
43
+ # 5 image special tokens land at 100278..100282 and index wte.embedding directly.
44
+ image_token_id=100280, # <im_patch>
45
+ image_start_token_id=100278, # <im_start>
46
+ image_end_token_id=100279, # <im_end>
47
+ image_col_token_id=100281, # <im_col>
48
+ image_prompt_token_id=100282, # <|image|>
49
+ bos_token_id=100257,
50
+ eos_token_id=100257,
51
+ pad_token_id=None,
52
+ tie_word_embeddings=False,
53
+ **kwargs,
54
+ ):
55
+ # --- text config (native Olmo3) ---
56
+ if text_config is None:
57
+ text_config = {}
58
+ if isinstance(text_config, dict):
59
+ text_config = Olmo3Config(**text_config)
60
+ self.text_config = text_config
61
+
62
+ # --- vision config (architecture metadata for the referenced encoder) ---
63
+ if vision_config is None:
64
+ # Default to the CLIP ViT-B/16 (224) vision tower used by this VLM family.
65
+ vision_config = CONFIG_MAPPING["clip_vision_model"](
66
+ hidden_size=768,
67
+ intermediate_size=3072,
68
+ num_hidden_layers=12,
69
+ num_attention_heads=12,
70
+ num_channels=3,
71
+ image_size=224,
72
+ patch_size=16,
73
+ hidden_act="quick_gelu",
74
+ layer_norm_eps=1e-5,
75
+ )
76
+ elif isinstance(vision_config, dict):
77
+ vision_model_type = vision_config.get("model_type", "clip_vision_model")
78
+ vision_config = CONFIG_MAPPING[vision_model_type](**vision_config)
79
+ self.vision_config = vision_config
80
+
81
+ self.vision_tower_name_or_path = vision_tower_name_or_path
82
+ self.vision_trust_remote_code = vision_trust_remote_code
83
+ self.vision_feature_layer = vision_feature_layer
84
+ self.vision_strip_final_norm = vision_strip_final_norm
85
+ self.vision_final_norm_attr = vision_final_norm_attr
86
+ self.vision_hidden_size = getattr(vision_config, "hidden_size", 768)
87
+ self.text_hidden_size = self.text_config.hidden_size
88
+
89
+ self.projector_intermediate_size = projector_intermediate_size
90
+ self.projector_hidden_act = projector_hidden_act
91
+ self.include_cls_token = include_cls_token
92
+
93
+ self.lm_head_vocab_size = lm_head_vocab_size
94
+ self.image_token_id = image_token_id
95
+ self.image_start_token_id = image_start_token_id
96
+ self.image_end_token_id = image_end_token_id
97
+ self.image_col_token_id = image_col_token_id
98
+ self.image_prompt_token_id = image_prompt_token_id
99
+
100
+ super().__init__(
101
+ bos_token_id=bos_token_id,
102
+ eos_token_id=eos_token_id,
103
+ pad_token_id=pad_token_id,
104
+ tie_word_embeddings=tie_word_embeddings,
105
+ **kwargs,
106
+ )
107
+
108
+
109
+ __all__ = ["MolmoOlmo3Config"]
generation_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 100257,
3
+ "eos_token_id": 100257,
4
+ "pad_token_id": 100257,
5
+ "transformers_version": "4.57.1"
6
+ }
image_processing_molmo_olmo3.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ """Image processor for the Molmo-v1 (CLIP vision) VLM.
3
+
4
+ Replicates Molmo's `hf_resize_and_center_crop` + OpenAI-CLIP normalization exactly
5
+ (PIL BICUBIC, shortest-edge resize, center crop, /255, normalize) so the resulting
6
+ (3, 224, 224) array is bit-identical to the Molmo preprocessor. The HF CLIPVisionModel
7
+ performs the Conv2d patchification internally, matching Molmo's un-patchify+Conv2d path.
8
+ """
9
+
10
+ from typing import Dict, List, Optional, Union
11
+
12
+ import numpy as np
13
+ import PIL.Image
14
+ import torch
15
+
16
+ from transformers.image_processing_utils import BaseImageProcessor, BatchFeature
17
+ from transformers.image_utils import ImageInput
18
+
19
+
20
+ OPENAI_CLIP_MEAN = (0.48145466, 0.4578275, 0.40821073)
21
+ OPENAI_CLIP_STD = (0.26862954, 0.26130258, 0.27577711)
22
+
23
+
24
+ def _to_uint8_rgb(image) -> np.ndarray:
25
+ if isinstance(image, PIL.Image.Image):
26
+ return np.array(image.convert("RGB"))
27
+ arr = np.asarray(image)
28
+ if arr.dtype != np.uint8:
29
+ # assume already in [0,255] if float
30
+ arr = arr.astype(np.uint8)
31
+ if arr.ndim == 2:
32
+ arr = np.stack([arr] * 3, axis=-1)
33
+ return arr[:, :, :3]
34
+
35
+
36
+ def hf_resize_and_center_crop(image: np.ndarray, output_size) -> np.ndarray:
37
+ """Exactly mirrors olmo/data/model_preprocessor.py:hf_resize_and_center_crop."""
38
+ desired_h, desired_w = output_size
39
+ height, width = image.shape[:2]
40
+ scale = max(desired_h / height, desired_w / width)
41
+ new_h = int(height * scale)
42
+ new_w = int(width * scale)
43
+
44
+ pil_image = PIL.Image.fromarray(image)
45
+ pil_image = pil_image.resize((new_w, new_h), PIL.Image.BICUBIC)
46
+
47
+ top = (new_h - desired_h) // 2
48
+ left = (new_w - desired_w) // 2
49
+ pil_image = pil_image.crop((left, top, left + desired_w, top + desired_h))
50
+
51
+ return np.array(pil_image).astype(np.float32) / 255.0
52
+
53
+
54
+ class MolmoOlmo3ImageProcessor(BaseImageProcessor):
55
+ model_input_names = ["pixel_values"]
56
+
57
+ def __init__(
58
+ self,
59
+ image_size: int = 224,
60
+ image_mean=OPENAI_CLIP_MEAN,
61
+ image_std=OPENAI_CLIP_STD,
62
+ **kwargs,
63
+ ):
64
+ super().__init__(**kwargs)
65
+ self.image_size = image_size
66
+ self.image_mean = list(image_mean)
67
+ self.image_std = list(image_std)
68
+
69
+ def preprocess_one(self, image) -> np.ndarray:
70
+ arr = _to_uint8_rgb(image)
71
+ resized = hf_resize_and_center_crop(arr, (self.image_size, self.image_size)) # (H,W,3) in [0,1]
72
+ resized = resized - np.array(self.image_mean, dtype=np.float32)[None, None, :]
73
+ resized = resized / np.array(self.image_std, dtype=np.float32)[None, None, :]
74
+ # HWC -> CHW
75
+ return np.transpose(resized, (2, 0, 1))
76
+
77
+ def preprocess(
78
+ self,
79
+ images: Union[ImageInput, List[ImageInput]],
80
+ return_tensors: Optional[str] = "pt",
81
+ **kwargs,
82
+ ) -> BatchFeature:
83
+ if not isinstance(images, (list, tuple)):
84
+ images = [images]
85
+ pixel_values = np.stack([self.preprocess_one(im) for im in images], axis=0) # (n, 3, H, W)
86
+ data = {"pixel_values": pixel_values}
87
+ if return_tensors == "pt":
88
+ data = {"pixel_values": torch.from_numpy(pixel_values)}
89
+ return BatchFeature(data=data, tensor_type=None)
90
+
91
+
92
+ __all__ = ["MolmoOlmo3ImageProcessor"]
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model-00001-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2cad7f999b323ea993cf3fa3a2831739ca8a3f2c717762bc4d02728e945c4648
3
+ size 4964718424
model-00002-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:11d12d32c86599a8b80f968b49ae74422c18aa72ce4f57dd31fc5ad3875d8369
3
+ size 4857405840
model-00003-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa1faec702b61fbeada74ff49597659e205caa6eab5e2b8c12181cc94bb5ac89
3
+ size 4857405904
model-00004-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:110f3c8e62bd293022396152b35a4812f87fe04f569074c51c6d0235d76ddb6e
3
+ size 4857405904
model-00005-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6102fd06f1961c650427cf208446df21426ee55ff439ddc06a8fbd13392b8cb8
3
+ size 4857405904
model-00006-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:11bf1fe86d5e55c426d8713e0a11eb448ac30297e7187533e2e898e34d072810
3
+ size 3418675336
model-00007-of-00007.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f5d1ff492b1e20a8a430e3ebf37818482af15aa632c73829fd77fa08d20a854
3
+ size 1989489064
model.safetensors.index.json ADDED
@@ -0,0 +1,566 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_parameters": 7450608128,
4
+ "total_size": 29802432512
5
+ },
6
+ "weight_map": {
7
+ "language_model.lm_head.weight": "model-00007-of-00007.safetensors",
8
+ "language_model.model.embed_tokens.weight": "model-00001-of-00007.safetensors",
9
+ "language_model.model.layers.0.mlp.down_proj.weight": "model-00001-of-00007.safetensors",
10
+ "language_model.model.layers.0.mlp.gate_proj.weight": "model-00001-of-00007.safetensors",
11
+ "language_model.model.layers.0.mlp.up_proj.weight": "model-00001-of-00007.safetensors",
12
+ "language_model.model.layers.0.post_attention_layernorm.weight": "model-00001-of-00007.safetensors",
13
+ "language_model.model.layers.0.post_feedforward_layernorm.weight": "model-00001-of-00007.safetensors",
14
+ "language_model.model.layers.0.self_attn.k_norm.weight": "model-00001-of-00007.safetensors",
15
+ "language_model.model.layers.0.self_attn.k_proj.weight": "model-00001-of-00007.safetensors",
16
+ "language_model.model.layers.0.self_attn.o_proj.weight": "model-00001-of-00007.safetensors",
17
+ "language_model.model.layers.0.self_attn.q_norm.weight": "model-00001-of-00007.safetensors",
18
+ "language_model.model.layers.0.self_attn.q_proj.weight": "model-00001-of-00007.safetensors",
19
+ "language_model.model.layers.0.self_attn.v_proj.weight": "model-00001-of-00007.safetensors",
20
+ "language_model.model.layers.1.mlp.down_proj.weight": "model-00001-of-00007.safetensors",
21
+ "language_model.model.layers.1.mlp.gate_proj.weight": "model-00001-of-00007.safetensors",
22
+ "language_model.model.layers.1.mlp.up_proj.weight": "model-00001-of-00007.safetensors",
23
+ "language_model.model.layers.1.post_attention_layernorm.weight": "model-00001-of-00007.safetensors",
24
+ "language_model.model.layers.1.post_feedforward_layernorm.weight": "model-00001-of-00007.safetensors",
25
+ "language_model.model.layers.1.self_attn.k_norm.weight": "model-00001-of-00007.safetensors",
26
+ "language_model.model.layers.1.self_attn.k_proj.weight": "model-00001-of-00007.safetensors",
27
+ "language_model.model.layers.1.self_attn.o_proj.weight": "model-00001-of-00007.safetensors",
28
+ "language_model.model.layers.1.self_attn.q_norm.weight": "model-00001-of-00007.safetensors",
29
+ "language_model.model.layers.1.self_attn.q_proj.weight": "model-00001-of-00007.safetensors",
30
+ "language_model.model.layers.1.self_attn.v_proj.weight": "model-00001-of-00007.safetensors",
31
+ "language_model.model.layers.10.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
32
+ "language_model.model.layers.10.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
33
+ "language_model.model.layers.10.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
34
+ "language_model.model.layers.10.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
35
+ "language_model.model.layers.10.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
36
+ "language_model.model.layers.10.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
37
+ "language_model.model.layers.10.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
38
+ "language_model.model.layers.10.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
39
+ "language_model.model.layers.10.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
40
+ "language_model.model.layers.10.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
41
+ "language_model.model.layers.10.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
42
+ "language_model.model.layers.11.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
43
+ "language_model.model.layers.11.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
44
+ "language_model.model.layers.11.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
45
+ "language_model.model.layers.11.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
46
+ "language_model.model.layers.11.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
47
+ "language_model.model.layers.11.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
48
+ "language_model.model.layers.11.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
49
+ "language_model.model.layers.11.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
50
+ "language_model.model.layers.11.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
51
+ "language_model.model.layers.11.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
52
+ "language_model.model.layers.11.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
53
+ "language_model.model.layers.12.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
54
+ "language_model.model.layers.12.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
55
+ "language_model.model.layers.12.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
56
+ "language_model.model.layers.12.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
57
+ "language_model.model.layers.12.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
58
+ "language_model.model.layers.12.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
59
+ "language_model.model.layers.12.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
60
+ "language_model.model.layers.12.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
61
+ "language_model.model.layers.12.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
62
+ "language_model.model.layers.12.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
63
+ "language_model.model.layers.12.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
64
+ "language_model.model.layers.13.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
65
+ "language_model.model.layers.13.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
66
+ "language_model.model.layers.13.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
67
+ "language_model.model.layers.13.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
68
+ "language_model.model.layers.13.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
69
+ "language_model.model.layers.13.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
70
+ "language_model.model.layers.13.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
71
+ "language_model.model.layers.13.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
72
+ "language_model.model.layers.13.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
73
+ "language_model.model.layers.13.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
74
+ "language_model.model.layers.13.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
75
+ "language_model.model.layers.14.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
76
+ "language_model.model.layers.14.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
77
+ "language_model.model.layers.14.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
78
+ "language_model.model.layers.14.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
79
+ "language_model.model.layers.14.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
80
+ "language_model.model.layers.14.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
81
+ "language_model.model.layers.14.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
82
+ "language_model.model.layers.14.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
83
+ "language_model.model.layers.14.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
84
+ "language_model.model.layers.14.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
85
+ "language_model.model.layers.14.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
86
+ "language_model.model.layers.15.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
87
+ "language_model.model.layers.15.mlp.gate_proj.weight": "model-00003-of-00007.safetensors",
88
+ "language_model.model.layers.15.mlp.up_proj.weight": "model-00003-of-00007.safetensors",
89
+ "language_model.model.layers.15.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
90
+ "language_model.model.layers.15.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
91
+ "language_model.model.layers.15.self_attn.k_norm.weight": "model-00003-of-00007.safetensors",
92
+ "language_model.model.layers.15.self_attn.k_proj.weight": "model-00003-of-00007.safetensors",
93
+ "language_model.model.layers.15.self_attn.o_proj.weight": "model-00003-of-00007.safetensors",
94
+ "language_model.model.layers.15.self_attn.q_norm.weight": "model-00003-of-00007.safetensors",
95
+ "language_model.model.layers.15.self_attn.q_proj.weight": "model-00003-of-00007.safetensors",
96
+ "language_model.model.layers.15.self_attn.v_proj.weight": "model-00003-of-00007.safetensors",
97
+ "language_model.model.layers.16.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
98
+ "language_model.model.layers.16.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
99
+ "language_model.model.layers.16.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
100
+ "language_model.model.layers.16.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
101
+ "language_model.model.layers.16.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
102
+ "language_model.model.layers.16.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
103
+ "language_model.model.layers.16.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
104
+ "language_model.model.layers.16.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
105
+ "language_model.model.layers.16.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
106
+ "language_model.model.layers.16.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
107
+ "language_model.model.layers.16.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
108
+ "language_model.model.layers.17.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
109
+ "language_model.model.layers.17.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
110
+ "language_model.model.layers.17.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
111
+ "language_model.model.layers.17.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
112
+ "language_model.model.layers.17.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
113
+ "language_model.model.layers.17.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
114
+ "language_model.model.layers.17.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
115
+ "language_model.model.layers.17.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
116
+ "language_model.model.layers.17.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
117
+ "language_model.model.layers.17.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
118
+ "language_model.model.layers.17.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
119
+ "language_model.model.layers.18.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
120
+ "language_model.model.layers.18.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
121
+ "language_model.model.layers.18.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
122
+ "language_model.model.layers.18.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
123
+ "language_model.model.layers.18.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
124
+ "language_model.model.layers.18.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
125
+ "language_model.model.layers.18.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
126
+ "language_model.model.layers.18.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
127
+ "language_model.model.layers.18.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
128
+ "language_model.model.layers.18.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
129
+ "language_model.model.layers.18.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
130
+ "language_model.model.layers.19.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
131
+ "language_model.model.layers.19.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
132
+ "language_model.model.layers.19.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
133
+ "language_model.model.layers.19.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
134
+ "language_model.model.layers.19.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
135
+ "language_model.model.layers.19.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
136
+ "language_model.model.layers.19.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
137
+ "language_model.model.layers.19.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
138
+ "language_model.model.layers.19.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
139
+ "language_model.model.layers.19.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
140
+ "language_model.model.layers.19.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
141
+ "language_model.model.layers.2.mlp.down_proj.weight": "model-00001-of-00007.safetensors",
142
+ "language_model.model.layers.2.mlp.gate_proj.weight": "model-00001-of-00007.safetensors",
143
+ "language_model.model.layers.2.mlp.up_proj.weight": "model-00001-of-00007.safetensors",
144
+ "language_model.model.layers.2.post_attention_layernorm.weight": "model-00001-of-00007.safetensors",
145
+ "language_model.model.layers.2.post_feedforward_layernorm.weight": "model-00001-of-00007.safetensors",
146
+ "language_model.model.layers.2.self_attn.k_norm.weight": "model-00001-of-00007.safetensors",
147
+ "language_model.model.layers.2.self_attn.k_proj.weight": "model-00001-of-00007.safetensors",
148
+ "language_model.model.layers.2.self_attn.o_proj.weight": "model-00001-of-00007.safetensors",
149
+ "language_model.model.layers.2.self_attn.q_norm.weight": "model-00001-of-00007.safetensors",
150
+ "language_model.model.layers.2.self_attn.q_proj.weight": "model-00001-of-00007.safetensors",
151
+ "language_model.model.layers.2.self_attn.v_proj.weight": "model-00001-of-00007.safetensors",
152
+ "language_model.model.layers.20.mlp.down_proj.weight": "model-00004-of-00007.safetensors",
153
+ "language_model.model.layers.20.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
154
+ "language_model.model.layers.20.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
155
+ "language_model.model.layers.20.post_attention_layernorm.weight": "model-00004-of-00007.safetensors",
156
+ "language_model.model.layers.20.post_feedforward_layernorm.weight": "model-00004-of-00007.safetensors",
157
+ "language_model.model.layers.20.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
158
+ "language_model.model.layers.20.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
159
+ "language_model.model.layers.20.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
160
+ "language_model.model.layers.20.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
161
+ "language_model.model.layers.20.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
162
+ "language_model.model.layers.20.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
163
+ "language_model.model.layers.21.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
164
+ "language_model.model.layers.21.mlp.gate_proj.weight": "model-00004-of-00007.safetensors",
165
+ "language_model.model.layers.21.mlp.up_proj.weight": "model-00004-of-00007.safetensors",
166
+ "language_model.model.layers.21.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
167
+ "language_model.model.layers.21.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
168
+ "language_model.model.layers.21.self_attn.k_norm.weight": "model-00004-of-00007.safetensors",
169
+ "language_model.model.layers.21.self_attn.k_proj.weight": "model-00004-of-00007.safetensors",
170
+ "language_model.model.layers.21.self_attn.o_proj.weight": "model-00004-of-00007.safetensors",
171
+ "language_model.model.layers.21.self_attn.q_norm.weight": "model-00004-of-00007.safetensors",
172
+ "language_model.model.layers.21.self_attn.q_proj.weight": "model-00004-of-00007.safetensors",
173
+ "language_model.model.layers.21.self_attn.v_proj.weight": "model-00004-of-00007.safetensors",
174
+ "language_model.model.layers.22.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
175
+ "language_model.model.layers.22.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
176
+ "language_model.model.layers.22.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
177
+ "language_model.model.layers.22.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
178
+ "language_model.model.layers.22.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
179
+ "language_model.model.layers.22.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
180
+ "language_model.model.layers.22.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
181
+ "language_model.model.layers.22.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
182
+ "language_model.model.layers.22.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
183
+ "language_model.model.layers.22.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
184
+ "language_model.model.layers.22.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
185
+ "language_model.model.layers.23.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
186
+ "language_model.model.layers.23.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
187
+ "language_model.model.layers.23.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
188
+ "language_model.model.layers.23.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
189
+ "language_model.model.layers.23.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
190
+ "language_model.model.layers.23.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
191
+ "language_model.model.layers.23.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
192
+ "language_model.model.layers.23.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
193
+ "language_model.model.layers.23.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
194
+ "language_model.model.layers.23.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
195
+ "language_model.model.layers.23.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
196
+ "language_model.model.layers.24.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
197
+ "language_model.model.layers.24.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
198
+ "language_model.model.layers.24.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
199
+ "language_model.model.layers.24.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
200
+ "language_model.model.layers.24.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
201
+ "language_model.model.layers.24.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
202
+ "language_model.model.layers.24.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
203
+ "language_model.model.layers.24.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
204
+ "language_model.model.layers.24.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
205
+ "language_model.model.layers.24.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
206
+ "language_model.model.layers.24.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
207
+ "language_model.model.layers.25.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
208
+ "language_model.model.layers.25.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
209
+ "language_model.model.layers.25.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
210
+ "language_model.model.layers.25.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
211
+ "language_model.model.layers.25.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
212
+ "language_model.model.layers.25.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
213
+ "language_model.model.layers.25.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
214
+ "language_model.model.layers.25.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
215
+ "language_model.model.layers.25.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
216
+ "language_model.model.layers.25.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
217
+ "language_model.model.layers.25.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
218
+ "language_model.model.layers.26.mlp.down_proj.weight": "model-00005-of-00007.safetensors",
219
+ "language_model.model.layers.26.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
220
+ "language_model.model.layers.26.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
221
+ "language_model.model.layers.26.post_attention_layernorm.weight": "model-00005-of-00007.safetensors",
222
+ "language_model.model.layers.26.post_feedforward_layernorm.weight": "model-00005-of-00007.safetensors",
223
+ "language_model.model.layers.26.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
224
+ "language_model.model.layers.26.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
225
+ "language_model.model.layers.26.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
226
+ "language_model.model.layers.26.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
227
+ "language_model.model.layers.26.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
228
+ "language_model.model.layers.26.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
229
+ "language_model.model.layers.27.mlp.down_proj.weight": "model-00006-of-00007.safetensors",
230
+ "language_model.model.layers.27.mlp.gate_proj.weight": "model-00005-of-00007.safetensors",
231
+ "language_model.model.layers.27.mlp.up_proj.weight": "model-00005-of-00007.safetensors",
232
+ "language_model.model.layers.27.post_attention_layernorm.weight": "model-00006-of-00007.safetensors",
233
+ "language_model.model.layers.27.post_feedforward_layernorm.weight": "model-00006-of-00007.safetensors",
234
+ "language_model.model.layers.27.self_attn.k_norm.weight": "model-00005-of-00007.safetensors",
235
+ "language_model.model.layers.27.self_attn.k_proj.weight": "model-00005-of-00007.safetensors",
236
+ "language_model.model.layers.27.self_attn.o_proj.weight": "model-00005-of-00007.safetensors",
237
+ "language_model.model.layers.27.self_attn.q_norm.weight": "model-00005-of-00007.safetensors",
238
+ "language_model.model.layers.27.self_attn.q_proj.weight": "model-00005-of-00007.safetensors",
239
+ "language_model.model.layers.27.self_attn.v_proj.weight": "model-00005-of-00007.safetensors",
240
+ "language_model.model.layers.28.mlp.down_proj.weight": "model-00006-of-00007.safetensors",
241
+ "language_model.model.layers.28.mlp.gate_proj.weight": "model-00006-of-00007.safetensors",
242
+ "language_model.model.layers.28.mlp.up_proj.weight": "model-00006-of-00007.safetensors",
243
+ "language_model.model.layers.28.post_attention_layernorm.weight": "model-00006-of-00007.safetensors",
244
+ "language_model.model.layers.28.post_feedforward_layernorm.weight": "model-00006-of-00007.safetensors",
245
+ "language_model.model.layers.28.self_attn.k_norm.weight": "model-00006-of-00007.safetensors",
246
+ "language_model.model.layers.28.self_attn.k_proj.weight": "model-00006-of-00007.safetensors",
247
+ "language_model.model.layers.28.self_attn.o_proj.weight": "model-00006-of-00007.safetensors",
248
+ "language_model.model.layers.28.self_attn.q_norm.weight": "model-00006-of-00007.safetensors",
249
+ "language_model.model.layers.28.self_attn.q_proj.weight": "model-00006-of-00007.safetensors",
250
+ "language_model.model.layers.28.self_attn.v_proj.weight": "model-00006-of-00007.safetensors",
251
+ "language_model.model.layers.29.mlp.down_proj.weight": "model-00006-of-00007.safetensors",
252
+ "language_model.model.layers.29.mlp.gate_proj.weight": "model-00006-of-00007.safetensors",
253
+ "language_model.model.layers.29.mlp.up_proj.weight": "model-00006-of-00007.safetensors",
254
+ "language_model.model.layers.29.post_attention_layernorm.weight": "model-00006-of-00007.safetensors",
255
+ "language_model.model.layers.29.post_feedforward_layernorm.weight": "model-00006-of-00007.safetensors",
256
+ "language_model.model.layers.29.self_attn.k_norm.weight": "model-00006-of-00007.safetensors",
257
+ "language_model.model.layers.29.self_attn.k_proj.weight": "model-00006-of-00007.safetensors",
258
+ "language_model.model.layers.29.self_attn.o_proj.weight": "model-00006-of-00007.safetensors",
259
+ "language_model.model.layers.29.self_attn.q_norm.weight": "model-00006-of-00007.safetensors",
260
+ "language_model.model.layers.29.self_attn.q_proj.weight": "model-00006-of-00007.safetensors",
261
+ "language_model.model.layers.29.self_attn.v_proj.weight": "model-00006-of-00007.safetensors",
262
+ "language_model.model.layers.3.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
263
+ "language_model.model.layers.3.mlp.gate_proj.weight": "model-00001-of-00007.safetensors",
264
+ "language_model.model.layers.3.mlp.up_proj.weight": "model-00001-of-00007.safetensors",
265
+ "language_model.model.layers.3.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
266
+ "language_model.model.layers.3.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
267
+ "language_model.model.layers.3.self_attn.k_norm.weight": "model-00001-of-00007.safetensors",
268
+ "language_model.model.layers.3.self_attn.k_proj.weight": "model-00001-of-00007.safetensors",
269
+ "language_model.model.layers.3.self_attn.o_proj.weight": "model-00001-of-00007.safetensors",
270
+ "language_model.model.layers.3.self_attn.q_norm.weight": "model-00001-of-00007.safetensors",
271
+ "language_model.model.layers.3.self_attn.q_proj.weight": "model-00001-of-00007.safetensors",
272
+ "language_model.model.layers.3.self_attn.v_proj.weight": "model-00001-of-00007.safetensors",
273
+ "language_model.model.layers.30.mlp.down_proj.weight": "model-00006-of-00007.safetensors",
274
+ "language_model.model.layers.30.mlp.gate_proj.weight": "model-00006-of-00007.safetensors",
275
+ "language_model.model.layers.30.mlp.up_proj.weight": "model-00006-of-00007.safetensors",
276
+ "language_model.model.layers.30.post_attention_layernorm.weight": "model-00006-of-00007.safetensors",
277
+ "language_model.model.layers.30.post_feedforward_layernorm.weight": "model-00006-of-00007.safetensors",
278
+ "language_model.model.layers.30.self_attn.k_norm.weight": "model-00006-of-00007.safetensors",
279
+ "language_model.model.layers.30.self_attn.k_proj.weight": "model-00006-of-00007.safetensors",
280
+ "language_model.model.layers.30.self_attn.o_proj.weight": "model-00006-of-00007.safetensors",
281
+ "language_model.model.layers.30.self_attn.q_norm.weight": "model-00006-of-00007.safetensors",
282
+ "language_model.model.layers.30.self_attn.q_proj.weight": "model-00006-of-00007.safetensors",
283
+ "language_model.model.layers.30.self_attn.v_proj.weight": "model-00006-of-00007.safetensors",
284
+ "language_model.model.layers.31.mlp.down_proj.weight": "model-00006-of-00007.safetensors",
285
+ "language_model.model.layers.31.mlp.gate_proj.weight": "model-00006-of-00007.safetensors",
286
+ "language_model.model.layers.31.mlp.up_proj.weight": "model-00006-of-00007.safetensors",
287
+ "language_model.model.layers.31.post_attention_layernorm.weight": "model-00006-of-00007.safetensors",
288
+ "language_model.model.layers.31.post_feedforward_layernorm.weight": "model-00006-of-00007.safetensors",
289
+ "language_model.model.layers.31.self_attn.k_norm.weight": "model-00006-of-00007.safetensors",
290
+ "language_model.model.layers.31.self_attn.k_proj.weight": "model-00006-of-00007.safetensors",
291
+ "language_model.model.layers.31.self_attn.o_proj.weight": "model-00006-of-00007.safetensors",
292
+ "language_model.model.layers.31.self_attn.q_norm.weight": "model-00006-of-00007.safetensors",
293
+ "language_model.model.layers.31.self_attn.q_proj.weight": "model-00006-of-00007.safetensors",
294
+ "language_model.model.layers.31.self_attn.v_proj.weight": "model-00006-of-00007.safetensors",
295
+ "language_model.model.layers.4.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
296
+ "language_model.model.layers.4.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
297
+ "language_model.model.layers.4.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
298
+ "language_model.model.layers.4.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
299
+ "language_model.model.layers.4.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
300
+ "language_model.model.layers.4.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
301
+ "language_model.model.layers.4.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
302
+ "language_model.model.layers.4.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
303
+ "language_model.model.layers.4.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
304
+ "language_model.model.layers.4.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
305
+ "language_model.model.layers.4.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
306
+ "language_model.model.layers.5.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
307
+ "language_model.model.layers.5.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
308
+ "language_model.model.layers.5.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
309
+ "language_model.model.layers.5.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
310
+ "language_model.model.layers.5.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
311
+ "language_model.model.layers.5.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
312
+ "language_model.model.layers.5.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
313
+ "language_model.model.layers.5.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
314
+ "language_model.model.layers.5.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
315
+ "language_model.model.layers.5.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
316
+ "language_model.model.layers.5.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
317
+ "language_model.model.layers.6.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
318
+ "language_model.model.layers.6.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
319
+ "language_model.model.layers.6.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
320
+ "language_model.model.layers.6.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
321
+ "language_model.model.layers.6.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
322
+ "language_model.model.layers.6.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
323
+ "language_model.model.layers.6.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
324
+ "language_model.model.layers.6.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
325
+ "language_model.model.layers.6.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
326
+ "language_model.model.layers.6.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
327
+ "language_model.model.layers.6.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
328
+ "language_model.model.layers.7.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
329
+ "language_model.model.layers.7.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
330
+ "language_model.model.layers.7.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
331
+ "language_model.model.layers.7.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
332
+ "language_model.model.layers.7.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
333
+ "language_model.model.layers.7.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
334
+ "language_model.model.layers.7.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
335
+ "language_model.model.layers.7.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
336
+ "language_model.model.layers.7.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
337
+ "language_model.model.layers.7.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
338
+ "language_model.model.layers.7.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
339
+ "language_model.model.layers.8.mlp.down_proj.weight": "model-00002-of-00007.safetensors",
340
+ "language_model.model.layers.8.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
341
+ "language_model.model.layers.8.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
342
+ "language_model.model.layers.8.post_attention_layernorm.weight": "model-00002-of-00007.safetensors",
343
+ "language_model.model.layers.8.post_feedforward_layernorm.weight": "model-00002-of-00007.safetensors",
344
+ "language_model.model.layers.8.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
345
+ "language_model.model.layers.8.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
346
+ "language_model.model.layers.8.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
347
+ "language_model.model.layers.8.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
348
+ "language_model.model.layers.8.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
349
+ "language_model.model.layers.8.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
350
+ "language_model.model.layers.9.mlp.down_proj.weight": "model-00003-of-00007.safetensors",
351
+ "language_model.model.layers.9.mlp.gate_proj.weight": "model-00002-of-00007.safetensors",
352
+ "language_model.model.layers.9.mlp.up_proj.weight": "model-00002-of-00007.safetensors",
353
+ "language_model.model.layers.9.post_attention_layernorm.weight": "model-00003-of-00007.safetensors",
354
+ "language_model.model.layers.9.post_feedforward_layernorm.weight": "model-00003-of-00007.safetensors",
355
+ "language_model.model.layers.9.self_attn.k_norm.weight": "model-00002-of-00007.safetensors",
356
+ "language_model.model.layers.9.self_attn.k_proj.weight": "model-00002-of-00007.safetensors",
357
+ "language_model.model.layers.9.self_attn.o_proj.weight": "model-00002-of-00007.safetensors",
358
+ "language_model.model.layers.9.self_attn.q_norm.weight": "model-00002-of-00007.safetensors",
359
+ "language_model.model.layers.9.self_attn.q_proj.weight": "model-00002-of-00007.safetensors",
360
+ "language_model.model.layers.9.self_attn.v_proj.weight": "model-00002-of-00007.safetensors",
361
+ "language_model.model.norm.weight": "model-00006-of-00007.safetensors",
362
+ "multi_modal_projector.cls_projector.weight": "model-00001-of-00007.safetensors",
363
+ "multi_modal_projector.image_projector.w1.weight": "model-00001-of-00007.safetensors",
364
+ "multi_modal_projector.image_projector.w2.weight": "model-00001-of-00007.safetensors",
365
+ "multi_modal_projector.image_projector.w3.weight": "model-00001-of-00007.safetensors",
366
+ "vision_tower.vision_model.embeddings.class_embedding": "model-00007-of-00007.safetensors",
367
+ "vision_tower.vision_model.embeddings.patch_embedding.weight": "model-00007-of-00007.safetensors",
368
+ "vision_tower.vision_model.embeddings.position_embedding.weight": "model-00007-of-00007.safetensors",
369
+ "vision_tower.vision_model.encoder.layers.0.layer_norm1.bias": "model-00007-of-00007.safetensors",
370
+ "vision_tower.vision_model.encoder.layers.0.layer_norm1.weight": "model-00007-of-00007.safetensors",
371
+ "vision_tower.vision_model.encoder.layers.0.layer_norm2.bias": "model-00007-of-00007.safetensors",
372
+ "vision_tower.vision_model.encoder.layers.0.layer_norm2.weight": "model-00007-of-00007.safetensors",
373
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc1.bias": "model-00007-of-00007.safetensors",
374
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc1.weight": "model-00007-of-00007.safetensors",
375
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc2.bias": "model-00007-of-00007.safetensors",
376
+ "vision_tower.vision_model.encoder.layers.0.mlp.fc2.weight": "model-00007-of-00007.safetensors",
377
+ "vision_tower.vision_model.encoder.layers.0.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
378
+ "vision_tower.vision_model.encoder.layers.0.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
379
+ "vision_tower.vision_model.encoder.layers.0.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
380
+ "vision_tower.vision_model.encoder.layers.0.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
381
+ "vision_tower.vision_model.encoder.layers.0.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
382
+ "vision_tower.vision_model.encoder.layers.0.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
383
+ "vision_tower.vision_model.encoder.layers.0.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
384
+ "vision_tower.vision_model.encoder.layers.0.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
385
+ "vision_tower.vision_model.encoder.layers.1.layer_norm1.bias": "model-00007-of-00007.safetensors",
386
+ "vision_tower.vision_model.encoder.layers.1.layer_norm1.weight": "model-00007-of-00007.safetensors",
387
+ "vision_tower.vision_model.encoder.layers.1.layer_norm2.bias": "model-00007-of-00007.safetensors",
388
+ "vision_tower.vision_model.encoder.layers.1.layer_norm2.weight": "model-00007-of-00007.safetensors",
389
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc1.bias": "model-00007-of-00007.safetensors",
390
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc1.weight": "model-00007-of-00007.safetensors",
391
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc2.bias": "model-00007-of-00007.safetensors",
392
+ "vision_tower.vision_model.encoder.layers.1.mlp.fc2.weight": "model-00007-of-00007.safetensors",
393
+ "vision_tower.vision_model.encoder.layers.1.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
394
+ "vision_tower.vision_model.encoder.layers.1.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
395
+ "vision_tower.vision_model.encoder.layers.1.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
396
+ "vision_tower.vision_model.encoder.layers.1.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
397
+ "vision_tower.vision_model.encoder.layers.1.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
398
+ "vision_tower.vision_model.encoder.layers.1.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
399
+ "vision_tower.vision_model.encoder.layers.1.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
400
+ "vision_tower.vision_model.encoder.layers.1.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
401
+ "vision_tower.vision_model.encoder.layers.10.layer_norm1.bias": "model-00007-of-00007.safetensors",
402
+ "vision_tower.vision_model.encoder.layers.10.layer_norm1.weight": "model-00007-of-00007.safetensors",
403
+ "vision_tower.vision_model.encoder.layers.10.layer_norm2.bias": "model-00007-of-00007.safetensors",
404
+ "vision_tower.vision_model.encoder.layers.10.layer_norm2.weight": "model-00007-of-00007.safetensors",
405
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc1.bias": "model-00007-of-00007.safetensors",
406
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc1.weight": "model-00007-of-00007.safetensors",
407
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc2.bias": "model-00007-of-00007.safetensors",
408
+ "vision_tower.vision_model.encoder.layers.10.mlp.fc2.weight": "model-00007-of-00007.safetensors",
409
+ "vision_tower.vision_model.encoder.layers.10.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
410
+ "vision_tower.vision_model.encoder.layers.10.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
411
+ "vision_tower.vision_model.encoder.layers.10.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
412
+ "vision_tower.vision_model.encoder.layers.10.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
413
+ "vision_tower.vision_model.encoder.layers.10.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
414
+ "vision_tower.vision_model.encoder.layers.10.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
415
+ "vision_tower.vision_model.encoder.layers.10.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
416
+ "vision_tower.vision_model.encoder.layers.10.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
417
+ "vision_tower.vision_model.encoder.layers.11.layer_norm1.bias": "model-00007-of-00007.safetensors",
418
+ "vision_tower.vision_model.encoder.layers.11.layer_norm1.weight": "model-00007-of-00007.safetensors",
419
+ "vision_tower.vision_model.encoder.layers.11.layer_norm2.bias": "model-00007-of-00007.safetensors",
420
+ "vision_tower.vision_model.encoder.layers.11.layer_norm2.weight": "model-00007-of-00007.safetensors",
421
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc1.bias": "model-00007-of-00007.safetensors",
422
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc1.weight": "model-00007-of-00007.safetensors",
423
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc2.bias": "model-00007-of-00007.safetensors",
424
+ "vision_tower.vision_model.encoder.layers.11.mlp.fc2.weight": "model-00007-of-00007.safetensors",
425
+ "vision_tower.vision_model.encoder.layers.11.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
426
+ "vision_tower.vision_model.encoder.layers.11.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
427
+ "vision_tower.vision_model.encoder.layers.11.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
428
+ "vision_tower.vision_model.encoder.layers.11.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
429
+ "vision_tower.vision_model.encoder.layers.11.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
430
+ "vision_tower.vision_model.encoder.layers.11.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
431
+ "vision_tower.vision_model.encoder.layers.11.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
432
+ "vision_tower.vision_model.encoder.layers.11.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
433
+ "vision_tower.vision_model.encoder.layers.2.layer_norm1.bias": "model-00007-of-00007.safetensors",
434
+ "vision_tower.vision_model.encoder.layers.2.layer_norm1.weight": "model-00007-of-00007.safetensors",
435
+ "vision_tower.vision_model.encoder.layers.2.layer_norm2.bias": "model-00007-of-00007.safetensors",
436
+ "vision_tower.vision_model.encoder.layers.2.layer_norm2.weight": "model-00007-of-00007.safetensors",
437
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc1.bias": "model-00007-of-00007.safetensors",
438
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc1.weight": "model-00007-of-00007.safetensors",
439
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc2.bias": "model-00007-of-00007.safetensors",
440
+ "vision_tower.vision_model.encoder.layers.2.mlp.fc2.weight": "model-00007-of-00007.safetensors",
441
+ "vision_tower.vision_model.encoder.layers.2.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
442
+ "vision_tower.vision_model.encoder.layers.2.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
443
+ "vision_tower.vision_model.encoder.layers.2.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
444
+ "vision_tower.vision_model.encoder.layers.2.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
445
+ "vision_tower.vision_model.encoder.layers.2.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
446
+ "vision_tower.vision_model.encoder.layers.2.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
447
+ "vision_tower.vision_model.encoder.layers.2.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
448
+ "vision_tower.vision_model.encoder.layers.2.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
449
+ "vision_tower.vision_model.encoder.layers.3.layer_norm1.bias": "model-00007-of-00007.safetensors",
450
+ "vision_tower.vision_model.encoder.layers.3.layer_norm1.weight": "model-00007-of-00007.safetensors",
451
+ "vision_tower.vision_model.encoder.layers.3.layer_norm2.bias": "model-00007-of-00007.safetensors",
452
+ "vision_tower.vision_model.encoder.layers.3.layer_norm2.weight": "model-00007-of-00007.safetensors",
453
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc1.bias": "model-00007-of-00007.safetensors",
454
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc1.weight": "model-00007-of-00007.safetensors",
455
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc2.bias": "model-00007-of-00007.safetensors",
456
+ "vision_tower.vision_model.encoder.layers.3.mlp.fc2.weight": "model-00007-of-00007.safetensors",
457
+ "vision_tower.vision_model.encoder.layers.3.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
458
+ "vision_tower.vision_model.encoder.layers.3.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
459
+ "vision_tower.vision_model.encoder.layers.3.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
460
+ "vision_tower.vision_model.encoder.layers.3.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
461
+ "vision_tower.vision_model.encoder.layers.3.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
462
+ "vision_tower.vision_model.encoder.layers.3.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
463
+ "vision_tower.vision_model.encoder.layers.3.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
464
+ "vision_tower.vision_model.encoder.layers.3.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
465
+ "vision_tower.vision_model.encoder.layers.4.layer_norm1.bias": "model-00007-of-00007.safetensors",
466
+ "vision_tower.vision_model.encoder.layers.4.layer_norm1.weight": "model-00007-of-00007.safetensors",
467
+ "vision_tower.vision_model.encoder.layers.4.layer_norm2.bias": "model-00007-of-00007.safetensors",
468
+ "vision_tower.vision_model.encoder.layers.4.layer_norm2.weight": "model-00007-of-00007.safetensors",
469
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc1.bias": "model-00007-of-00007.safetensors",
470
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc1.weight": "model-00007-of-00007.safetensors",
471
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc2.bias": "model-00007-of-00007.safetensors",
472
+ "vision_tower.vision_model.encoder.layers.4.mlp.fc2.weight": "model-00007-of-00007.safetensors",
473
+ "vision_tower.vision_model.encoder.layers.4.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
474
+ "vision_tower.vision_model.encoder.layers.4.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
475
+ "vision_tower.vision_model.encoder.layers.4.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
476
+ "vision_tower.vision_model.encoder.layers.4.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
477
+ "vision_tower.vision_model.encoder.layers.4.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
478
+ "vision_tower.vision_model.encoder.layers.4.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
479
+ "vision_tower.vision_model.encoder.layers.4.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
480
+ "vision_tower.vision_model.encoder.layers.4.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
481
+ "vision_tower.vision_model.encoder.layers.5.layer_norm1.bias": "model-00007-of-00007.safetensors",
482
+ "vision_tower.vision_model.encoder.layers.5.layer_norm1.weight": "model-00007-of-00007.safetensors",
483
+ "vision_tower.vision_model.encoder.layers.5.layer_norm2.bias": "model-00007-of-00007.safetensors",
484
+ "vision_tower.vision_model.encoder.layers.5.layer_norm2.weight": "model-00007-of-00007.safetensors",
485
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc1.bias": "model-00007-of-00007.safetensors",
486
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc1.weight": "model-00007-of-00007.safetensors",
487
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc2.bias": "model-00007-of-00007.safetensors",
488
+ "vision_tower.vision_model.encoder.layers.5.mlp.fc2.weight": "model-00007-of-00007.safetensors",
489
+ "vision_tower.vision_model.encoder.layers.5.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
490
+ "vision_tower.vision_model.encoder.layers.5.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
491
+ "vision_tower.vision_model.encoder.layers.5.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
492
+ "vision_tower.vision_model.encoder.layers.5.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
493
+ "vision_tower.vision_model.encoder.layers.5.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
494
+ "vision_tower.vision_model.encoder.layers.5.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
495
+ "vision_tower.vision_model.encoder.layers.5.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
496
+ "vision_tower.vision_model.encoder.layers.5.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
497
+ "vision_tower.vision_model.encoder.layers.6.layer_norm1.bias": "model-00007-of-00007.safetensors",
498
+ "vision_tower.vision_model.encoder.layers.6.layer_norm1.weight": "model-00007-of-00007.safetensors",
499
+ "vision_tower.vision_model.encoder.layers.6.layer_norm2.bias": "model-00007-of-00007.safetensors",
500
+ "vision_tower.vision_model.encoder.layers.6.layer_norm2.weight": "model-00007-of-00007.safetensors",
501
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc1.bias": "model-00007-of-00007.safetensors",
502
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc1.weight": "model-00007-of-00007.safetensors",
503
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc2.bias": "model-00007-of-00007.safetensors",
504
+ "vision_tower.vision_model.encoder.layers.6.mlp.fc2.weight": "model-00007-of-00007.safetensors",
505
+ "vision_tower.vision_model.encoder.layers.6.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
506
+ "vision_tower.vision_model.encoder.layers.6.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
507
+ "vision_tower.vision_model.encoder.layers.6.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
508
+ "vision_tower.vision_model.encoder.layers.6.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
509
+ "vision_tower.vision_model.encoder.layers.6.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
510
+ "vision_tower.vision_model.encoder.layers.6.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
511
+ "vision_tower.vision_model.encoder.layers.6.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
512
+ "vision_tower.vision_model.encoder.layers.6.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
513
+ "vision_tower.vision_model.encoder.layers.7.layer_norm1.bias": "model-00007-of-00007.safetensors",
514
+ "vision_tower.vision_model.encoder.layers.7.layer_norm1.weight": "model-00007-of-00007.safetensors",
515
+ "vision_tower.vision_model.encoder.layers.7.layer_norm2.bias": "model-00007-of-00007.safetensors",
516
+ "vision_tower.vision_model.encoder.layers.7.layer_norm2.weight": "model-00007-of-00007.safetensors",
517
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc1.bias": "model-00007-of-00007.safetensors",
518
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc1.weight": "model-00007-of-00007.safetensors",
519
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc2.bias": "model-00007-of-00007.safetensors",
520
+ "vision_tower.vision_model.encoder.layers.7.mlp.fc2.weight": "model-00007-of-00007.safetensors",
521
+ "vision_tower.vision_model.encoder.layers.7.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
522
+ "vision_tower.vision_model.encoder.layers.7.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
523
+ "vision_tower.vision_model.encoder.layers.7.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
524
+ "vision_tower.vision_model.encoder.layers.7.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
525
+ "vision_tower.vision_model.encoder.layers.7.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
526
+ "vision_tower.vision_model.encoder.layers.7.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
527
+ "vision_tower.vision_model.encoder.layers.7.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
528
+ "vision_tower.vision_model.encoder.layers.7.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
529
+ "vision_tower.vision_model.encoder.layers.8.layer_norm1.bias": "model-00007-of-00007.safetensors",
530
+ "vision_tower.vision_model.encoder.layers.8.layer_norm1.weight": "model-00007-of-00007.safetensors",
531
+ "vision_tower.vision_model.encoder.layers.8.layer_norm2.bias": "model-00007-of-00007.safetensors",
532
+ "vision_tower.vision_model.encoder.layers.8.layer_norm2.weight": "model-00007-of-00007.safetensors",
533
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc1.bias": "model-00007-of-00007.safetensors",
534
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc1.weight": "model-00007-of-00007.safetensors",
535
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc2.bias": "model-00007-of-00007.safetensors",
536
+ "vision_tower.vision_model.encoder.layers.8.mlp.fc2.weight": "model-00007-of-00007.safetensors",
537
+ "vision_tower.vision_model.encoder.layers.8.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
538
+ "vision_tower.vision_model.encoder.layers.8.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
539
+ "vision_tower.vision_model.encoder.layers.8.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
540
+ "vision_tower.vision_model.encoder.layers.8.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
541
+ "vision_tower.vision_model.encoder.layers.8.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
542
+ "vision_tower.vision_model.encoder.layers.8.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
543
+ "vision_tower.vision_model.encoder.layers.8.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
544
+ "vision_tower.vision_model.encoder.layers.8.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
545
+ "vision_tower.vision_model.encoder.layers.9.layer_norm1.bias": "model-00007-of-00007.safetensors",
546
+ "vision_tower.vision_model.encoder.layers.9.layer_norm1.weight": "model-00007-of-00007.safetensors",
547
+ "vision_tower.vision_model.encoder.layers.9.layer_norm2.bias": "model-00007-of-00007.safetensors",
548
+ "vision_tower.vision_model.encoder.layers.9.layer_norm2.weight": "model-00007-of-00007.safetensors",
549
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc1.bias": "model-00007-of-00007.safetensors",
550
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc1.weight": "model-00007-of-00007.safetensors",
551
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc2.bias": "model-00007-of-00007.safetensors",
552
+ "vision_tower.vision_model.encoder.layers.9.mlp.fc2.weight": "model-00007-of-00007.safetensors",
553
+ "vision_tower.vision_model.encoder.layers.9.self_attn.k_proj.bias": "model-00007-of-00007.safetensors",
554
+ "vision_tower.vision_model.encoder.layers.9.self_attn.k_proj.weight": "model-00007-of-00007.safetensors",
555
+ "vision_tower.vision_model.encoder.layers.9.self_attn.out_proj.bias": "model-00007-of-00007.safetensors",
556
+ "vision_tower.vision_model.encoder.layers.9.self_attn.out_proj.weight": "model-00007-of-00007.safetensors",
557
+ "vision_tower.vision_model.encoder.layers.9.self_attn.q_proj.bias": "model-00007-of-00007.safetensors",
558
+ "vision_tower.vision_model.encoder.layers.9.self_attn.q_proj.weight": "model-00007-of-00007.safetensors",
559
+ "vision_tower.vision_model.encoder.layers.9.self_attn.v_proj.bias": "model-00007-of-00007.safetensors",
560
+ "vision_tower.vision_model.encoder.layers.9.self_attn.v_proj.weight": "model-00007-of-00007.safetensors",
561
+ "vision_tower.vision_model.post_layernorm.bias": "model-00007-of-00007.safetensors",
562
+ "vision_tower.vision_model.post_layernorm.weight": "model-00007-of-00007.safetensors",
563
+ "vision_tower.vision_model.pre_layrnorm.bias": "model-00007-of-00007.safetensors",
564
+ "vision_tower.vision_model.pre_layrnorm.weight": "model-00007-of-00007.safetensors"
565
+ }
566
+ }
modeling_molmo_olmo3.py ADDED
@@ -0,0 +1,291 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ """Modeling code for the Molmo-v1 (CLIP vision) VLM in HuggingFace format.
3
+
4
+ LLaVA-style wrapper that reproduces Molmo-v1 inference exactly:
5
+ vision_tower (referenced HF CLIPVisionModel, frozen)
6
+ -> multi_modal_projector (SwiGLU image projector + CLS Linear projector)
7
+ -> additive insertion at <im_patch> positions
8
+ -> language_model (native transformers Olmo3ForCausalLM)
9
+
10
+ The vision tower weights are NOT stored in this checkpoint; they are loaded from
11
+ `config.vision_tower_name_or_path` at load time (see `from_pretrained`).
12
+ """
13
+
14
+ from typing import List, Optional, Tuple, Union
15
+
16
+ import torch
17
+ import torch.nn as nn
18
+ import torch.nn.functional as F
19
+
20
+ from transformers.activations import ACT2FN
21
+ from transformers.modeling_outputs import CausalLMOutputWithPast
22
+ from transformers.modeling_utils import PreTrainedModel
23
+ from transformers.generation import GenerationMixin
24
+ from transformers.models.auto import AutoModel
25
+ from transformers.models.clip.modeling_clip import CLIPVisionModel
26
+ from transformers.models.olmo3.modeling_olmo3 import Olmo3ForCausalLM
27
+
28
+ try:
29
+ from .configuration_molmo_olmo3 import MolmoOlmo3Config
30
+ except ImportError: # allow direct (non-package) import from converter/validation scripts
31
+ from configuration_molmo_olmo3 import MolmoOlmo3Config
32
+
33
+
34
+ class MolmoImageProjectorMLP(nn.Module):
35
+ """SwiGLU projector matching Molmo `ImageProjectorMLP`: w2(act(w1(x)) * w3(x))."""
36
+
37
+ def __init__(self, in_dim: int, hidden_dim: int, out_dim: int, hidden_act: str = "silu"):
38
+ super().__init__()
39
+ self.w1 = nn.Linear(in_dim, hidden_dim, bias=False) # gate
40
+ self.w2 = nn.Linear(hidden_dim, out_dim, bias=False) # down
41
+ self.w3 = nn.Linear(in_dim, hidden_dim, bias=False) # up
42
+ self.act = ACT2FN[hidden_act]
43
+
44
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
45
+ return self.w2(self.act(self.w1(x)) * self.w3(x))
46
+
47
+
48
+ class MolmoMultiModalProjector(nn.Module):
49
+ def __init__(self, config: MolmoOlmo3Config):
50
+ super().__init__()
51
+ self.image_projector = MolmoImageProjectorMLP(
52
+ config.vision_hidden_size,
53
+ config.projector_intermediate_size,
54
+ config.text_hidden_size,
55
+ config.projector_hidden_act,
56
+ )
57
+ self.include_cls_token = config.include_cls_token
58
+ if self.include_cls_token:
59
+ self.cls_projector = nn.Linear(
60
+ config.vision_hidden_size, config.text_hidden_size, bias=False
61
+ )
62
+
63
+ def forward(self, patch_features: torch.Tensor, cls_features: Optional[torch.Tensor]) -> torch.Tensor:
64
+ """patch_features: (..., num_patches, vision_hidden); cls_features: (..., vision_hidden).
65
+
66
+ Returns (..., [1+]num_patches, text_hidden) with the projected CLS prepended.
67
+ """
68
+ projected = self.image_projector(patch_features)
69
+ if self.include_cls_token and cls_features is not None:
70
+ cls_projected = self.cls_projector(cls_features).unsqueeze(-2)
71
+ projected = torch.cat([cls_projected, projected], dim=-2)
72
+ return projected
73
+
74
+
75
+ class MolmoOlmo3PreTrainedModel(PreTrainedModel):
76
+ config_class = MolmoOlmo3Config
77
+ base_model_prefix = "model"
78
+ supports_gradient_checkpointing = True
79
+ _no_split_modules = ["Olmo3DecoderLayer", "CLIPEncoderLayer"]
80
+ _supports_flash_attn_2 = True
81
+ _supports_sdpa = True
82
+ _supports_cache_class = True
83
+ # The vision tower is referenced (not stored): drop on save, ignore-missing on load.
84
+ _keys_to_ignore_on_save = [r"^vision_tower\."]
85
+ _keys_to_ignore_on_load_missing = [r"^vision_tower\."]
86
+ _keys_to_ignore_on_load_unexpected = [r"^vision_tower\."]
87
+
88
+
89
+ class MolmoOlmo3ForConditionalGeneration(MolmoOlmo3PreTrainedModel, GenerationMixin):
90
+ def __init__(self, config: MolmoOlmo3Config):
91
+ super().__init__(config)
92
+ self.config = config
93
+ # Vision tower is referenced (not stored): built lazily from
94
+ # config.vision_tower_name_or_path via load_vision_tower_weights() (called by
95
+ # from_pretrained). Building via from_pretrained fetches code+arch+weights together,
96
+ # which is required for trust_remote_code towers like DINOv3.
97
+ self.vision_tower = None
98
+ self.multi_modal_projector = MolmoMultiModalProjector(config)
99
+ self.language_model = Olmo3ForCausalLM(config.text_config)
100
+ self.lm_head_vocab_size = config.lm_head_vocab_size
101
+ self.post_init()
102
+
103
+ # ---- weight tying / embedding plumbing ----
104
+ def get_input_embeddings(self):
105
+ return self.language_model.get_input_embeddings()
106
+
107
+ def set_input_embeddings(self, value):
108
+ self.language_model.set_input_embeddings(value)
109
+
110
+ def get_output_embeddings(self):
111
+ return self.language_model.get_output_embeddings()
112
+
113
+ # ---- vision-by-reference loading ----
114
+ @staticmethod
115
+ def _is_clip_vision(config) -> bool:
116
+ return getattr(config.vision_config, "model_type", "") in ("clip_vision_model", "clip")
117
+
118
+ def load_vision_tower_weights(self):
119
+ """Instantiate the frozen vision encoder from the referenced HF repo (code+weights)."""
120
+ name = self.config.vision_tower_name_or_path
121
+ if self._is_clip_vision(self.config):
122
+ # CLIPVisionModel.from_pretrained extracts vision weights from a full CLIP repo.
123
+ tower = CLIPVisionModel.from_pretrained(name)
124
+ else:
125
+ # DINOv3 etc.: from_pretrained fetches the trust_remote_code modeling + weights.
126
+ tower = AutoModel.from_pretrained(
127
+ name, trust_remote_code=self.config.vision_trust_remote_code
128
+ )
129
+ # Molmo discards the vision encoder's final norm (uses the pre-norm last block).
130
+ # DINOv3's last_hidden_state has a final LayerNorm; strip it for bit-identity.
131
+ if getattr(self.config, "vision_strip_final_norm", False):
132
+ attr = getattr(self.config, "vision_final_norm_attr", "norm")
133
+ if hasattr(tower, attr):
134
+ setattr(tower, attr, nn.Identity())
135
+ ref_param = next(self.language_model.parameters())
136
+ self.vision_tower = tower.to(device=ref_param.device, dtype=ref_param.dtype).eval()
137
+
138
+ @classmethod
139
+ def from_pretrained(cls, *args, **kwargs):
140
+ model = super().from_pretrained(*args, **kwargs)
141
+ model.load_vision_tower_weights()
142
+ model.vision_tower.eval()
143
+ return model
144
+
145
+ # ---- vision feature path (matches Molmo encode_image + projector) ----
146
+ def get_image_features(self, pixel_values: torch.Tensor) -> torch.Tensor:
147
+ """pixel_values: (batch, num_images, 3, H, W) or (batch, 3, H, W).
148
+
149
+ Returns (batch, num_images, features_per_image, text_hidden).
150
+ features_per_image = 197 (1 CLS + 196 patches) for the CLIP-B/16 224 tower.
151
+ """
152
+ if pixel_values.dim() == 4:
153
+ pixel_values = pixel_values.unsqueeze(1)
154
+ b, n = pixel_values.shape[:2]
155
+ flat = pixel_values.flatten(0, 1).to(self.vision_tower.dtype)
156
+ # Molmo (vit_layers=[-1]) uses the LAST transformer block output BEFORE any final norm.
157
+ # For CLIP, hidden_states[-1] == last_hidden_state; for DINOv3, last_hidden_state has an
158
+ # extra final LayerNorm applied, so we must use hidden_states[vision_feature_layer] (pre-norm).
159
+ vision_out = self.vision_tower(pixel_values=flat, output_hidden_states=True)
160
+ feats = vision_out.hidden_states[self.config.vision_feature_layer] # (b*n, 197, vision_hidden)
161
+
162
+ cls_feats = feats[:, 0]
163
+ patch_feats = feats[:, 1:]
164
+ projected = self.multi_modal_projector(patch_feats, cls_feats) # (b*n, 197, text_hidden)
165
+ return projected.view(b, n, projected.shape[-2], projected.shape[-1])
166
+
167
+ def _merge_image_features(self, inputs_embeds, image_features, image_input_idx):
168
+ """Additive scatter of image features at image_input_idx (matches Molmo)."""
169
+ batch_size = inputs_embeds.shape[0]
170
+ image_features = image_features.reshape(batch_size, -1, image_features.shape[-1])
171
+ image_input_idx = image_input_idx.reshape(batch_size, -1)
172
+ valid = image_input_idx >= 0
173
+ batch_idx = torch.arange(batch_size, device=inputs_embeds.device)[:, None]
174
+ batch_idx = batch_idx.expand(-1, image_input_idx.shape[1])
175
+ image_features = image_features.to(inputs_embeds.device, inputs_embeds.dtype)
176
+ inputs_embeds[batch_idx[valid], image_input_idx[valid]] += image_features[valid]
177
+ return inputs_embeds
178
+
179
+ def forward(
180
+ self,
181
+ input_ids: torch.LongTensor = None,
182
+ pixel_values: Optional[torch.FloatTensor] = None,
183
+ image_input_idx: Optional[torch.LongTensor] = None,
184
+ attention_mask: Optional[torch.Tensor] = None,
185
+ position_ids: Optional[torch.LongTensor] = None,
186
+ past_key_values=None,
187
+ inputs_embeds: Optional[torch.FloatTensor] = None,
188
+ labels: Optional[torch.LongTensor] = None,
189
+ use_cache: Optional[bool] = None,
190
+ cache_position: Optional[torch.LongTensor] = None,
191
+ logits_to_keep: Union[int, torch.Tensor] = 0,
192
+ **kwargs,
193
+ ) -> CausalLMOutputWithPast:
194
+ if inputs_embeds is None:
195
+ # clamp -1 placeholders (loss-mask sentinels) to 0 before embedding (matches Molmo)
196
+ safe_ids = input_ids * (input_ids != -1).to(input_ids.dtype)
197
+ inputs_embeds = self.get_input_embeddings()(safe_ids)
198
+ if pixel_values is not None:
199
+ image_features = self.get_image_features(pixel_values)
200
+ inputs_embeds = self._merge_image_features(
201
+ inputs_embeds, image_features, image_input_idx
202
+ )
203
+
204
+ # position_ids = clamp(cumsum(attn_mask)-1, 0) when not provided (matches Molmo).
205
+ # Compute on BOTH prefill and cached decode (slice to the current query length): some
206
+ # transformers versions call forward during generation with position_ids AND
207
+ # cache_position both None, which would otherwise leave RoPE positions undefined.
208
+ if position_ids is None and attention_mask is not None:
209
+ position_ids = torch.clamp(
210
+ torch.cumsum(attention_mask.to(torch.int32), dim=-1) - 1, min=0
211
+ )
212
+ query_len = inputs_embeds.shape[1] if inputs_embeds is not None else input_ids.shape[1]
213
+ if position_ids.shape[1] != query_len:
214
+ position_ids = position_ids[:, -query_len:]
215
+
216
+ outputs = self.language_model(
217
+ input_ids=None,
218
+ attention_mask=attention_mask,
219
+ position_ids=position_ids,
220
+ past_key_values=past_key_values,
221
+ inputs_embeds=inputs_embeds,
222
+ use_cache=use_cache,
223
+ cache_position=cache_position,
224
+ logits_to_keep=logits_to_keep,
225
+ **kwargs,
226
+ )
227
+ logits = outputs.logits
228
+ # Mask the 128 additional (image placeholder) vocab ids so generation matches
229
+ # Molmo's lm_head (which only spans the first `lm_head_vocab_size` tokens).
230
+ if logits.shape[-1] > self.lm_head_vocab_size:
231
+ logits = logits.clone()
232
+ logits[..., self.lm_head_vocab_size:] = float("-inf")
233
+
234
+ loss = None
235
+ if labels is not None:
236
+ loss = self.language_model.loss_function(
237
+ logits=logits, labels=labels, vocab_size=logits.shape[-1]
238
+ )
239
+
240
+ return CausalLMOutputWithPast(
241
+ loss=loss,
242
+ logits=logits,
243
+ past_key_values=outputs.past_key_values,
244
+ hidden_states=outputs.hidden_states,
245
+ attentions=outputs.attentions,
246
+ )
247
+
248
+ def prepare_inputs_for_generation(
249
+ self,
250
+ input_ids,
251
+ past_key_values=None,
252
+ attention_mask=None,
253
+ inputs_embeds=None,
254
+ pixel_values=None,
255
+ image_input_idx=None,
256
+ cache_position=None,
257
+ **kwargs,
258
+ ):
259
+ model_inputs = self.language_model.prepare_inputs_for_generation(
260
+ input_ids,
261
+ past_key_values=past_key_values,
262
+ attention_mask=attention_mask,
263
+ inputs_embeds=inputs_embeds,
264
+ cache_position=cache_position,
265
+ **kwargs,
266
+ )
267
+ # Feed images only on the prefill step (no cached context yet). Detect prefill
268
+ # robustly: cache_position may be None when this runs under some transformers
269
+ # versions, so do NOT rely solely on `cache_position[0] == 0` — that guard silently
270
+ # drops the image and yields a text-only hallucination. Fall back to inspecting the
271
+ # KV cache length.
272
+ cache_len = 0
273
+ if past_key_values is not None and hasattr(past_key_values, "get_seq_length"):
274
+ try:
275
+ cache_len = past_key_values.get_seq_length()
276
+ except Exception:
277
+ cache_len = 0
278
+ is_prefill = (
279
+ (cache_position is not None and int(cache_position[0]) == 0)
280
+ or (cache_position is None and past_key_values is None)
281
+ or (cache_position is None and cache_len == 0)
282
+ )
283
+ if is_prefill and pixel_values is not None:
284
+ model_inputs["pixel_values"] = pixel_values
285
+ model_inputs["image_input_idx"] = image_input_idx
286
+ # We always re-embed inside forward; let it own the embedding lookup.
287
+ model_inputs.pop("inputs_embeds", None)
288
+ return model_inputs
289
+
290
+
291
+ __all__ = ["MolmoOlmo3ForConditionalGeneration", "MolmoOlmo3PreTrainedModel"]
preprocessor_config.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoImageProcessor": "image_processing_molmo_olmo3.MolmoOlmo3ImageProcessor",
4
+ "AutoProcessor": "processing_molmo_olmo3.MolmoOlmo3Processor"
5
+ },
6
+ "image_mean": [
7
+ 0.48145466,
8
+ 0.4578275,
9
+ 0.40821073
10
+ ],
11
+ "image_processor_type": "MolmoOlmo3ImageProcessor",
12
+ "image_size": 224,
13
+ "image_std": [
14
+ 0.26862954,
15
+ 0.26130258,
16
+ 0.27577711
17
+ ],
18
+ "processor_class": "MolmoOlmo3Processor"
19
+ }
processing_molmo_olmo3.py ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ """Processor for the Molmo-v1 (CLIP vision) VLM.
3
+
4
+ Reproduces the Molmo preprocessor token layout exactly for this VLM's config
5
+ (crop_mode=resize, max_crops=1, image_pooling_2d=none, include_cls_token=true):
6
+
7
+ per image block (213 tokens; 197 <im_patch>):
8
+ [<im_start>] [<im_patch>(CLS)] then 14x([<im_patch>*14][<im_col>]) [<im_end>]
9
+
10
+ full sequence: [BOS] + <pre-image text> + image_block + <post-image text>
11
+ image_input_idx: the 197 <im_patch> positions (CLS first, then 196 row-major),
12
+ each +1 for the prepended BOS.
13
+ """
14
+
15
+ from typing import List, Optional, Union
16
+
17
+ import numpy as np
18
+ import torch
19
+
20
+ from transformers.processing_utils import ProcessorMixin
21
+ from transformers.feature_extraction_utils import BatchFeature
22
+
23
+
24
+ class MolmoOlmo3Processor(ProcessorMixin):
25
+ attributes = ["image_processor", "tokenizer"]
26
+ image_processor_class = "AutoImageProcessor"
27
+ tokenizer_class = "AutoTokenizer"
28
+
29
+ # token-id constants (dolma2 base 100278; specials appended at 100278..100282)
30
+ IMAGE_PROMPT_TOKEN_ID = 100282 # <|image|>
31
+ IMAGE_START_TOKEN_ID = 100278 # <im_start>
32
+ IMAGE_END_TOKEN_ID = 100279 # <im_end>
33
+ IMAGE_PATCH_TOKEN_ID = 100280 # <im_patch>
34
+ IMAGE_COL_TOKEN_ID = 100281 # <im_col>
35
+ BOS_TOKEN_ID = 100257
36
+
37
+ # The only styles these models were trained on (system_prompt_kind='demo_or_style').
38
+ # long_caption/user_qa/synthetic_qa saw the "{style}:" prefix only ~10% of the time
39
+ # (no prefix the other ~90%); transcript was always prefixed.
40
+ KNOWN_STYLES = ("long_caption", "transcript", "user_qa", "synthetic_qa")
41
+
42
+ def __init__(
43
+ self,
44
+ image_processor=None,
45
+ tokenizer=None,
46
+ image_token_length_w: int = 14,
47
+ image_token_length_h: int = 14,
48
+ include_cls_token: bool = True,
49
+ use_col_tokens: bool = True,
50
+ always_start_with_space: bool = True,
51
+ **kwargs,
52
+ ):
53
+ self.image_token_length_w = image_token_length_w
54
+ self.image_token_length_h = image_token_length_h
55
+ self.include_cls_token = include_cls_token
56
+ self.use_col_tokens = use_col_tokens
57
+ self.always_start_with_space = always_start_with_space
58
+ super().__init__(image_processor, tokenizer, **kwargs)
59
+
60
+ def format_prompt(self, question: str, style=None) -> str:
61
+ """Reproduce Molmo's DataFormatter (system_prompt='demo_or_style', message_format='none').
62
+
63
+ Usage:
64
+ - VQA / instruction (most common): `text="your question"`, `style=None`
65
+ -> " your question". This matches ~90% of training (no prefix), so leaving
66
+ style unset is usually best.
67
+ - Captioning: `text=""`, `style=None` -> a bare " " prompt; or
68
+ `text="", style="long_caption"` / `style="transcript"` to request that mode
69
+ explicitly. (Training produced captions/transcripts from an empty user turn.)
70
+ - Steer output mode: pass `style` in {long_caption, transcript, user_qa,
71
+ synthetic_qa} -> "{style}: ...". Note long_caption/user_qa/synthetic_qa only
72
+ saw the prefix ~10% of the time in training; transcript was always prefixed.
73
+
74
+ always_start_with_space -> a single leading space is always prepended.
75
+ """
76
+ if style is not None and style not in self.KNOWN_STYLES:
77
+ import warnings
78
+ warnings.warn(
79
+ f"style={style!r} was not used to train these models; the model may ignore "
80
+ f"or mishandle it. Known styles: {self.KNOWN_STYLES}. Use style=None for the "
81
+ f"default (no-prefix) behavior the model saw ~90% of the time."
82
+ )
83
+ prefix = "" if not style else f"{style}:"
84
+ if prefix and question:
85
+ text = prefix + " " + question
86
+ elif prefix:
87
+ text = prefix
88
+ else:
89
+ text = question
90
+ if self.always_start_with_space:
91
+ text = " " + text
92
+ return text
93
+
94
+ def _image_block(self) -> np.ndarray:
95
+ """The 213-token image block for a single resized crop."""
96
+ per_row = np.full((self.image_token_length_w,), self.IMAGE_PATCH_TOKEN_ID, dtype=np.int32)
97
+ if self.use_col_tokens:
98
+ per_row = np.concatenate([per_row, [self.IMAGE_COL_TOKEN_ID]], 0)
99
+ extra = np.tile(per_row, [self.image_token_length_h])
100
+ joint = [[self.IMAGE_START_TOKEN_ID]]
101
+ if self.include_cls_token:
102
+ joint.append([self.IMAGE_PATCH_TOKEN_ID])
103
+ joint += [extra, [self.IMAGE_END_TOKEN_ID]]
104
+ return np.concatenate(joint, 0).astype(np.int32)
105
+
106
+ def _image_input_idx(self, image_block: np.ndarray) -> np.ndarray:
107
+ """Positions of <im_patch> within the block, (1, features_per_image)."""
108
+ tokens_per_image = self.image_token_length_w * self.image_token_length_h
109
+ features_per_image = tokens_per_image + (1 if self.include_cls_token else 0)
110
+ idx = np.nonzero(image_block == self.IMAGE_PATCH_TOKEN_ID)[0].astype(np.int32)
111
+ return idx.reshape(1, features_per_image)
112
+
113
+ def __call__(
114
+ self,
115
+ text: Union[str, List[str]],
116
+ images=None,
117
+ style=None,
118
+ apply_prompt_format: bool = True,
119
+ return_tensors: Optional[str] = "pt",
120
+ **kwargs,
121
+ ) -> BatchFeature:
122
+ """Tokenize text + splice image features.
123
+
124
+ By default (apply_prompt_format=True) the text is wrapped with the training-time
125
+ formatting (leading space + optional "{style}: " prefix) and the image is placed
126
+ first (Molmo inserts the image at the start when no <|image|> marker is present).
127
+ Pass apply_prompt_format=False to feed pre-formatted text, or include an explicit
128
+ <|image|> marker to control image placement.
129
+ """
130
+ if isinstance(text, (list, tuple)):
131
+ if len(text) != 1:
132
+ raise NotImplementedError("MolmoOlmo3Processor supports a single prompt at a time.")
133
+ text = text[0]
134
+ if images is not None and not isinstance(images, (list, tuple)):
135
+ images = [images]
136
+
137
+ if apply_prompt_format and self.IMAGE_PROMPT_TOKEN_ID not in \
138
+ self.tokenizer.encode(text, add_special_tokens=False):
139
+ text = self.format_prompt(text, style=style)
140
+
141
+ tokens = np.array(self.tokenizer.encode(text, add_special_tokens=False), dtype=np.int32)
142
+
143
+ if not images:
144
+ input_ids = np.pad(tokens, [[1, 0]], constant_values=self.BOS_TOKEN_ID)
145
+ return self._finalize({"input_tokens": input_ids}, None, None, return_tensors)
146
+
147
+ marker_pos = np.argwhere(tokens == self.IMAGE_PROMPT_TOKEN_ID)
148
+ # No marker -> image first (token_ix=-1, matching Molmo's no-marker behavior).
149
+ image_idx = marker_pos[:, 0] if len(marker_pos) else np.array([-1] * len(images))
150
+ assert len(image_idx) == len(images), "number of <|image|> markers must match images"
151
+
152
+ block = self._image_block()
153
+ patch_idx = self._image_input_idx(block)
154
+ all_pixel = self.image_processor(images, return_tensors=None)["pixel_values"] # (n,3,H,W)
155
+
156
+ out_tokens, all_image_idx = [], []
157
+ for ix in range(len(images)):
158
+ token_ix = image_idx[ix]
159
+ if token_ix == -1:
160
+ start, token_ix = 0, 0
161
+ else:
162
+ start = 0 if ix == 0 else image_idx[ix - 1] + 1
163
+ all_image_idx.append(patch_idx + token_ix)
164
+ out_tokens.append(tokens[start:token_ix])
165
+ out_tokens.append(block)
166
+ end = (image_idx[-1] + 1) if image_idx[-1] != -1 else 0
167
+ out_tokens.append(tokens[end:])
168
+
169
+ input_ids = np.concatenate(out_tokens, 0)
170
+ image_input_idx = np.concatenate(all_image_idx, 0)
171
+
172
+ # prepend BOS; shift image_input_idx by +1 (matches Molmo inference path)
173
+ input_ids = np.pad(input_ids, [[1, 0]], constant_values=self.BOS_TOKEN_ID)
174
+ image_input_idx = np.where(image_input_idx < 0, image_input_idx, image_input_idx + 1)
175
+
176
+ return self._finalize(
177
+ {"input_tokens": input_ids, "image_input_idx": image_input_idx[None]},
178
+ all_pixel, image_input_idx[None], return_tensors,
179
+ )
180
+
181
+ def _finalize(self, out, pixel_values, image_input_idx, return_tensors):
182
+ input_ids = out["input_tokens"].astype(np.int64)[None] # (1, seq)
183
+ attention_mask = np.ones_like(input_ids)
184
+ data = {"input_ids": input_ids, "attention_mask": attention_mask}
185
+ if pixel_values is not None:
186
+ data["pixel_values"] = pixel_values[None] # (1, n_images, 3, H, W)
187
+ data["image_input_idx"] = image_input_idx # (1, n_images, features_per_image)
188
+ if return_tensors == "pt":
189
+ data = {k: torch.as_tensor(v) for k, v in data.items()}
190
+ if "pixel_values" in data:
191
+ data["pixel_values"] = data["pixel_values"].to(torch.float32)
192
+ return BatchFeature(data=data, tensor_type=None)
193
+
194
+ def batch_decode(self, *args, **kwargs):
195
+ return self.tokenizer.batch_decode(*args, **kwargs)
196
+
197
+ def decode(self, *args, **kwargs):
198
+ return self.tokenizer.decode(*args, **kwargs)
199
+
200
+
201
+ __all__ = ["MolmoOlmo3Processor"]
processor_config.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "always_start_with_space": true,
3
+ "auto_map": {
4
+ "AutoProcessor": "processing_molmo_olmo3.MolmoOlmo3Processor"
5
+ },
6
+ "image_token_length_h": 14,
7
+ "image_token_length_w": 14,
8
+ "include_cls_token": true,
9
+ "processor_class": "MolmoOlmo3Processor",
10
+ "use_col_tokens": true
11
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<im_start>",
4
+ "<im_end>",
5
+ "<im_patch>",
6
+ "<im_col>",
7
+ "<|image|>"
8
+ ],
9
+ "bos_token": {
10
+ "content": "<|endoftext|>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "eos_token": {
17
+ "content": "<|endoftext|>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "pad_token": {
24
+ "content": "<|pad|>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ },
30
+ "unk_token": {
31
+ "content": "<|endoftext|>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false
36
+ }
37
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "100256": {
5
+ "content": "<|extra_id_0|>",
6
+ "lstrip": false,
7
+ "normalized": false,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": false
11
+ },
12
+ "100257": {
13
+ "content": "<|endoftext|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ },
20
+ "100258": {
21
+ "content": "<|fim_prefix|>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false,
26
+ "special": true
27
+ },
28
+ "100259": {
29
+ "content": "<|fim_middle|>",
30
+ "lstrip": false,
31
+ "normalized": false,
32
+ "rstrip": false,
33
+ "single_word": false,
34
+ "special": true
35
+ },
36
+ "100260": {
37
+ "content": "<|fim_suffix|>",
38
+ "lstrip": false,
39
+ "normalized": false,
40
+ "rstrip": false,
41
+ "single_word": false,
42
+ "special": true
43
+ },
44
+ "100261": {
45
+ "content": "|||PHONE_NUMBER|||",
46
+ "lstrip": false,
47
+ "normalized": false,
48
+ "rstrip": false,
49
+ "single_word": false,
50
+ "special": false
51
+ },
52
+ "100262": {
53
+ "content": "|||EMAIL_ADDRESS|||",
54
+ "lstrip": false,
55
+ "normalized": false,
56
+ "rstrip": false,
57
+ "single_word": false,
58
+ "special": false
59
+ },
60
+ "100263": {
61
+ "content": "|||IP_ADDRESS|||",
62
+ "lstrip": false,
63
+ "normalized": false,
64
+ "rstrip": false,
65
+ "single_word": false,
66
+ "special": false
67
+ },
68
+ "100264": {
69
+ "content": "<|im_start|>",
70
+ "lstrip": false,
71
+ "normalized": false,
72
+ "rstrip": false,
73
+ "single_word": false,
74
+ "special": true
75
+ },
76
+ "100265": {
77
+ "content": "<|im_end|>",
78
+ "lstrip": false,
79
+ "normalized": false,
80
+ "rstrip": false,
81
+ "single_word": false,
82
+ "special": true
83
+ },
84
+ "100266": {
85
+ "content": "<|extra_id_1|>",
86
+ "lstrip": false,
87
+ "normalized": false,
88
+ "rstrip": false,
89
+ "single_word": false,
90
+ "special": false
91
+ },
92
+ "100267": {
93
+ "content": "<|extra_id_2|>",
94
+ "lstrip": false,
95
+ "normalized": false,
96
+ "rstrip": false,
97
+ "single_word": false,
98
+ "special": false
99
+ },
100
+ "100268": {
101
+ "content": "<|extra_id_3|>",
102
+ "lstrip": false,
103
+ "normalized": false,
104
+ "rstrip": false,
105
+ "single_word": false,
106
+ "special": false
107
+ },
108
+ "100269": {
109
+ "content": "<|extra_id_4|>",
110
+ "lstrip": false,
111
+ "normalized": false,
112
+ "rstrip": false,
113
+ "single_word": false,
114
+ "special": false
115
+ },
116
+ "100270": {
117
+ "content": "<|extra_id_5|>",
118
+ "lstrip": false,
119
+ "normalized": false,
120
+ "rstrip": false,
121
+ "single_word": false,
122
+ "special": false
123
+ },
124
+ "100271": {
125
+ "content": "<|extra_id_6|>",
126
+ "lstrip": false,
127
+ "normalized": false,
128
+ "rstrip": false,
129
+ "single_word": false,
130
+ "special": false
131
+ },
132
+ "100272": {
133
+ "content": "<|extra_id_7|>",
134
+ "lstrip": false,
135
+ "normalized": false,
136
+ "rstrip": false,
137
+ "single_word": false,
138
+ "special": false
139
+ },
140
+ "100273": {
141
+ "content": "<|extra_id_8|>",
142
+ "lstrip": false,
143
+ "normalized": false,
144
+ "rstrip": false,
145
+ "single_word": false,
146
+ "special": false
147
+ },
148
+ "100274": {
149
+ "content": "<|extra_id_9|>",
150
+ "lstrip": false,
151
+ "normalized": false,
152
+ "rstrip": false,
153
+ "single_word": false,
154
+ "special": false
155
+ },
156
+ "100275": {
157
+ "content": "<|extra_id_10|>",
158
+ "lstrip": false,
159
+ "normalized": false,
160
+ "rstrip": false,
161
+ "single_word": false,
162
+ "special": false
163
+ },
164
+ "100276": {
165
+ "content": "<|endofprompt|>",
166
+ "lstrip": false,
167
+ "normalized": false,
168
+ "rstrip": false,
169
+ "single_word": false,
170
+ "special": true
171
+ },
172
+ "100277": {
173
+ "content": "<|pad|>",
174
+ "lstrip": false,
175
+ "normalized": false,
176
+ "rstrip": false,
177
+ "single_word": false,
178
+ "special": true
179
+ },
180
+ "100278": {
181
+ "content": "<im_start>",
182
+ "lstrip": false,
183
+ "normalized": false,
184
+ "rstrip": false,
185
+ "single_word": false,
186
+ "special": true
187
+ },
188
+ "100279": {
189
+ "content": "<im_end>",
190
+ "lstrip": false,
191
+ "normalized": false,
192
+ "rstrip": false,
193
+ "single_word": false,
194
+ "special": true
195
+ },
196
+ "100280": {
197
+ "content": "<im_patch>",
198
+ "lstrip": false,
199
+ "normalized": false,
200
+ "rstrip": false,
201
+ "single_word": false,
202
+ "special": true
203
+ },
204
+ "100281": {
205
+ "content": "<im_col>",
206
+ "lstrip": false,
207
+ "normalized": false,
208
+ "rstrip": false,
209
+ "single_word": false,
210
+ "special": true
211
+ },
212
+ "100282": {
213
+ "content": "<|image|>",
214
+ "lstrip": false,
215
+ "normalized": false,
216
+ "rstrip": false,
217
+ "single_word": false,
218
+ "special": true
219
+ }
220
+ },
221
+ "additional_special_tokens": [
222
+ "<im_start>",
223
+ "<im_end>",
224
+ "<im_patch>",
225
+ "<im_col>",
226
+ "<|image|>"
227
+ ],
228
+ "auto_map": {
229
+ "AutoProcessor": "processing_molmo_olmo3.MolmoOlmo3Processor"
230
+ },
231
+ "bos_token": "<|endoftext|>",
232
+ "clean_up_tokenization_spaces": false,
233
+ "eos_token": "<|endoftext|>",
234
+ "extra_special_tokens": {},
235
+ "model_max_length": 8192,
236
+ "pad_token": "<|pad|>",
237
+ "processor_class": "MolmoOlmo3Processor",
238
+ "tokenizer_class": "GPT2Tokenizer",
239
+ "unk_token": "<|endoftext|>"
240
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff