CCCCyx commited on
Commit
3f11010
·
verified ·
1 Parent(s): 2cb1408

Update model card and assets

Browse files
.gitattributes CHANGED
@@ -34,3 +34,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  tokenizer.json filter=lfs diff=lfs merge=lfs -text
 
 
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  tokenizer.json filter=lfs diff=lfs merge=lfs -text
37
+ assets/architecture.png filter=lfs diff=lfs merge=lfs -text
38
+ assets/benchmark-offline.png filter=lfs diff=lfs merge=lfs -text
39
+ assets/logo.png filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,262 @@
1
  ---
2
  license: apache-2.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
+ language:
4
+ - en
5
+ library_name: transformers
6
+ pipeline_tag: video-text-to-text
7
+ base_model: OpenMOSS-Team/MOSS-VL-Base-0708
8
+ tags:
9
+ - moss_vl
10
+ - feature-extraction
11
+ - SFT
12
+ - Video-Understanding
13
+ - Image-Understanding
14
+ - MOSS-VL
15
+ - OpenMOSS
16
+ - multimodal
17
+ - video
18
+ - vision-language
19
+ - custom_code
20
  ---
21
+
22
+ <p align="center">
23
+ <img src="assets/logo.png" width="300" alt="MOSS-VL"/>
24
+ </p>
25
+
26
+ # MOSS-VL-Instruct-0708
27
+
28
+ ## Introduction
29
+
30
+ MOSS-VL-Instruct-0708 is the instruction-tuned checkpoint of the MOSS-VL 0708 release, part of the OpenMOSS ecosystem for open visual understanding.
31
+
32
+ Built on top of MOSS-VL-Base-0708 through supervised fine-tuning (SFT), this checkpoint is designed as a high-performance offline multimodal model. It supports image understanding, OCR, document parsing, visual reasoning, instruction following, and video understanding, with particular strength in long-form video comprehension, temporal reasoning, action recognition, and fine-grained event localization.
33
+
34
+ The 0708 release keeps the MOSS-VL cross-attention design and a 256K text context window while refreshing the data and instruction-tuning recipe for stronger offline multimodal usage.
35
+
36
+ ## Highlights
37
+
38
+ - Strong video understanding: designed for long videos, temporal reasoning, action recognition, and second-level event localization.
39
+ - General multimodal perception: supports image understanding, fine-grained visual recognition, OCR, and document analysis.
40
+ - Reliable instruction following: SFT aligns the base checkpoint with user instructions across image, video, and text tasks.
41
+ - Open model family: released together with MOSS-VL-Base-0708 for continued pretraining, fine-tuning, and applied research.
42
+
43
+ ## Model Architecture
44
+
45
+ MOSS-VL-Instruct-0708 adopts a cross-attention-based vision-language architecture that decouples visual encoding from language reasoning. The model processes images, videos, and text in a unified pipeline and uses cross-attention layers to connect language tokens with visual representations.
46
+
47
+ <p align="center">
48
+ <img src="assets/architecture.png" alt="MOSS-VL Architecture" width="100%"/>
49
+ </p>
50
+
51
+ Key configuration details:
52
+
53
+ | Item | Value |
54
+ | --- | --- |
55
+ | Parameters | 11B |
56
+ | Tensor type | BF16 |
57
+ | Context length | 256K |
58
+ | Vision patch size | 16 |
59
+ | Temporal patch size | 1 |
60
+ | Default video FPS | 1.0 |
61
+ | Default max video frames | 256 |
62
+
63
+ ## Absolute Timestamps
64
+
65
+ For video inputs, MOSS-VL injects absolute timestamps alongside sampled frames. This helps the model reason about event order, duration, pacing, and temporal localization instead of relying only on frame order.
66
+
67
+ ## Cross-attention RoPE (XRoPE)
68
+
69
+ MOSS-VL uses Cross-attention Rotary Position Embedding (XRoPE), which maps text tokens and visual patches into a unified three-dimensional coordinate space defined by Time (t), Height (h), and Width (w). This gives the model a consistent positional representation for image and video reasoning.
70
+
71
+ ## Model Performance
72
+
73
+ MOSS-VL-Instruct-0708 is intended for offline multimodal evaluation across visual perception, multimodal reasoning, OCR/document understanding, and video understanding. Detailed benchmark tables for the 0708 release will be maintained in the MOSS-VL project resources.
74
+
75
+ <p align="center">
76
+ <img src="assets/benchmark-offline.png" alt="MOSS-VL Offline Benchmark" width="100%"/>
77
+ </p>
78
+
79
+ For the previous public checkpoint, see [MOSS-VL-Instruct-0408](https://huggingface.co/OpenMOSS-Team/MOSS-VL-Instruct-0408).
80
+
81
+ ## Quickstart
82
+
83
+ ### Installation
84
+
85
+ Clone the MOSS-VL repository and install the project requirements:
86
+
87
+ ```bash
88
+ git clone https://github.com/OpenMOSS/MOSS-VL.git
89
+ cd MOSS-VL
90
+ conda create -n moss_vl python=3.12 pip -y
91
+ conda activate moss_vl
92
+ pip install -i https://pypi.org/simple --no-build-isolation -r requirements.txt
93
+ ```
94
+
95
+ ### Load Model
96
+
97
+ ```python
98
+ import torch
99
+ from transformers import AutoModelForCausalLM, AutoProcessor
100
+
101
+ checkpoint = "OpenMOSS-Team/MOSS-VL-Instruct-0708"
102
+
103
+ processor = AutoProcessor.from_pretrained(
104
+ checkpoint,
105
+ trust_remote_code=True,
106
+ frame_extract_num_threads=1,
107
+ )
108
+ model = AutoModelForCausalLM.from_pretrained(
109
+ checkpoint,
110
+ trust_remote_code=True,
111
+ device_map="auto",
112
+ torch_dtype=torch.bfloat16,
113
+ attn_implementation="flash_attention_2",
114
+ )
115
+ ```
116
+
117
+ ### Single-image Inference
118
+
119
+ ```python
120
+ image_path = "data/example_image.jpg"
121
+ prompt = "Describe this image."
122
+
123
+ text = model.offline_image_generate(
124
+ processor,
125
+ prompt=prompt,
126
+ image=image_path,
127
+ shortest_edge=4096,
128
+ longest_edge=16777216,
129
+ multi_image_max_pixels=201326592,
130
+ patch_size=16,
131
+ temporal_patch_size=1,
132
+ merge_size=2,
133
+ image_mean=[0.5, 0.5, 0.5],
134
+ image_std=[0.5, 0.5, 0.5],
135
+ max_new_tokens=256,
136
+ temperature=1.0,
137
+ top_k=50,
138
+ top_p=1.0,
139
+ repetition_penalty=1.0,
140
+ do_sample=False,
141
+ vision_chunked_length=64,
142
+ )
143
+
144
+ print(text)
145
+ ```
146
+
147
+ ### Single-video Inference
148
+
149
+ ```python
150
+ video_path = "data/example_video.mp4"
151
+ prompt = "Describe this video."
152
+
153
+ text = model.offline_video_generate(
154
+ processor,
155
+ prompt=prompt,
156
+ video=video_path,
157
+ shortest_edge=4096,
158
+ longest_edge=16777216,
159
+ video_max_pixels=201326592,
160
+ patch_size=16,
161
+ temporal_patch_size=1,
162
+ merge_size=2,
163
+ video_fps=1.0,
164
+ min_frames=1,
165
+ max_frames=256,
166
+ num_extract_threads=4,
167
+ image_mean=[0.5, 0.5, 0.5],
168
+ image_std=[0.5, 0.5, 0.5],
169
+ max_new_tokens=256,
170
+ temperature=1.0,
171
+ top_k=50,
172
+ top_p=1.0,
173
+ repetition_penalty=1.0,
174
+ do_sample=False,
175
+ vision_chunked_length=64,
176
+ )
177
+
178
+ print(text)
179
+ ```
180
+
181
+ ### Batched Offline Inference
182
+
183
+ `offline_batch_generate` accepts independent image/video/text queries. Queries in the same batch should share the same `media_kwargs` and `generate_kwargs`.
184
+
185
+ ```python
186
+ queries = [
187
+ {
188
+ "prompt": "Describe sample A.",
189
+ "images": [],
190
+ "videos": ["data/sample_a.mp4"],
191
+ "media_kwargs": {
192
+ "video_fps": 1.0,
193
+ "min_frames": 8,
194
+ "max_frames": 256,
195
+ },
196
+ "generate_kwargs": {
197
+ "temperature": 1.0,
198
+ "top_k": 50,
199
+ "top_p": 1.0,
200
+ "max_new_tokens": 256,
201
+ "repetition_penalty": 1.0,
202
+ "do_sample": False,
203
+ },
204
+ },
205
+ {
206
+ "prompt": "Describe sample B.",
207
+ "images": [],
208
+ "videos": ["data/sample_b.mp4"],
209
+ "media_kwargs": {
210
+ "video_fps": 1.0,
211
+ "min_frames": 8,
212
+ "max_frames": 256,
213
+ },
214
+ "generate_kwargs": {
215
+ "temperature": 1.0,
216
+ "top_k": 50,
217
+ "top_p": 1.0,
218
+ "max_new_tokens": 256,
219
+ "repetition_penalty": 1.0,
220
+ "do_sample": False,
221
+ },
222
+ },
223
+ ]
224
+
225
+ with torch.no_grad():
226
+ result = model.offline_batch_generate(
227
+ processor,
228
+ queries,
229
+ vision_chunked_length=64,
230
+ )
231
+
232
+ texts = [item["text"] for item in result["results"]]
233
+ print(texts)
234
+ ```
235
+
236
+ ## Related Checkpoints
237
+
238
+ | Model | Parameters | Context | Usage | Hugging Face |
239
+ | --- | ---: | ---: | --- | --- |
240
+ | MOSS-VL-Instruct-0708 | 11B | 256K | Offline multimodal instruction following | https://huggingface.co/OpenMOSS-Team/MOSS-VL-Instruct-0708 |
241
+ | MOSS-VL-Base-0708 | 11B | 256K | Continued pretraining and fine-tuning | https://huggingface.co/OpenMOSS-Team/MOSS-VL-Base-0708 |
242
+ | MOSS-VL-Instruct-0408 | 11B | 256K | Previous instruction-tuned checkpoint | https://huggingface.co/OpenMOSS-Team/MOSS-VL-Instruct-0408 |
243
+ | MOSS-VL-Base-0408 | 11B | 256K | Previous base checkpoint | https://huggingface.co/OpenMOSS-Team/MOSS-VL-Base-0408 |
244
+
245
+ ## Limitations and Future Work
246
+
247
+ MOSS-VL-Instruct-0708 is optimized for general offline multimodal understanding. Very dense videos, highly specialized domains, precise small-text OCR, and tasks requiring strict numerical reasoning may still require task-specific prompting, sampling choices, or fine-tuning.
248
+
249
+ We are continuing to improve mathematical reasoning, code reasoning, RL post-training, and broader task-specific evaluations for future MOSS-VL releases.
250
+
251
+ ## Citation
252
+
253
+ ```bibtex
254
+ @misc{moss_vl_2026,
255
+ title = {{MOSS-VL Technical Report}},
256
+ author = {OpenMOSS Team},
257
+ year = {2026},
258
+ howpublished = {\url{https://github.com/OpenMOSS/MOSS-VL}},
259
+ note = {GitHub repository}
260
+ }
261
+ ```
262
+
assets/architecture.png ADDED

Git LFS Details

  • SHA256: 28e51b34e031c884c540601d6b6651576c65836dc252694a1dc7dc0b1fc15237
  • Pointer size: 132 Bytes
  • Size of remote file: 6.09 MB
assets/benchmark-offline.png ADDED

Git LFS Details

  • SHA256: 2a2071b0149ddd1ab0b5a08a28209f52b2aa6e7719ca7d844b926ef0aec55c38
  • Pointer size: 131 Bytes
  • Size of remote file: 267 kB
assets/logo.png ADDED

Git LFS Details

  • SHA256: 37bf0241f5fbab73fc955827f477befc95b88b0d3618c31628099b70ea1dd232
  • Pointer size: 131 Bytes
  • Size of remote file: 941 kB