A novel Multimodal Large Language Model (MLLM) architecture, designed to structurally align visual and textual embeddings.
A novel Multimodal Large Language Model (MLLM) architecture, designed to structurally align visual and textual embeddings.
Ovis (Open VISion) is a novel Multimodal Large Language Model (MLLM) architecture, designed to structurally align visual and textual embeddings.
We are looking for both interns and full-time researchers to join our team, focusing on multimodal understanding, generation, reasoning, AI agents, and unified multimodal models. If you are interested in exploring these exciting areas, please reach out to us at [email protected].
Ovis can be instantiated with popular LLMs. We provide the following Ovis MLLMs:
| Ovis MLLMs | ViT | LLM | Model Weights | Demo |
|---|---|---|---|---|
| Ovis2.5-2B | siglip2-so400m-patch16-512 | Qwen3-1.7B | Huggingface | Space |
| Ovis2.5-9B | siglip2-so400m-patch16-512 | Qwen3-8B | Huggingface | Space |
Ovis2.5 demonstrates strong results on general multimodal benchmarks, complex chart analysis, and reasoning tasks, achieving leading performance among open-source models under 40B parameters.
Ovis has been tested with Python 3.10, Torch 2.4.0, Transformers 4.51.3, and DeepSpeed 0.15.4. For a comprehensive list of package dependencies, please consult the requirements.txt file.
git clone [email protected]:AIDC-AI/Ovis.git
conda create -n ovis python=3.10 -y
conda activate ovis
cd Ovis
pip install -r requirements.txt
pip install -e .For vLLM:
pip install vllm==0.10.2 --extra-index-url https://wheels.vllm.ai/0.10.2/We provide inference examples using both transformers and vLLM.
In ovis/serve we provide three example files:
ovis/serve/infer_think_demo.py
Demonstrates how to enable the model’s reflective reasoning viaenable_thinking and to control the reasoning phase length with thinking_budget.
ovis/serve/infer_basic_demo.py
Provides inference examples for single-image, multi-image, video, and pure-text inputs.
ovis/serve/web_ui.py
Provides a Gradio-based Web UI demo.
Example run:
python ovis/serve/web_ui.py --model-path AIDC-AI/Ovis2.5-9B --port 8001Start the vLLM server:
vllm serve AIDC-AI/Ovis2.5-9B \
--trust-remote-code \
--port 8000Call the model using the OpenAI Python SDK:
…extra_body parameters:chat_template_kwargs.enable_thinking
Enables thinking mode (reflective reasoning).
mm_processor_kwargs.images_kwargs.min_pixels / max_pixels
Controls the resolution range of input images (in total pixel count), balancing accuracy and GPU memory usage.
Ovis can be fine-tuned using either the provided training code in this repository or via ms-swift.
The training dataset is stored as a JSON list, where each element corresponds to a single sample. Example dataset JSON:
[
{
"id": 1354,
"image": "1354.png",
"conversations": [
{
"from": "human",
"value": "<image>\nIn the figure, the vertices of quadrilateral ABCD intersect square EFGH and divide its sides into segments with measures that have a ratio of 1:2. Find the ratio between the areas of ABCD and EFGH."
},
{
"from": "gpt",
"value": "5:9"
}
]
}
]Datasets are referenced via datainfo JSON files, e.g. ovis/train/dataset/ovis2_5_sft_datainfo.json:
{
"geometry3k_local": {
"meta_file": "path/to/geometry3k_local.json",
"storage_type": "hybrid",
"data_format": "conversation",
"image_dir": "path/to/images/"
}
}meta_file: path to the converted dataset JSON file (a list of samples).storage_type: usually set to "hybrid".data_format: usually set to "conversation".image_dir: directory path containing the referenced images.We provide example training scripts under scripts/.
For instance, to fine-tune Ovis2.5 with SFT:
bash scripts/run_ovis2_5_sft.shThis script configures the DeepSpeed engine, dataset paths, and model checkpoint initialization. Modify it to match your own dataset and environment.
Alternatively, Ovis models can be fine-tuned using ms-swift, a flexible training framework for LLMs.
If you find Ovis useful, please cite the paper
…This work is a collaborative effort by the Alibaba Ovis team. We would also like to provide links to the following MLLM papers from our team:
This project is licensed under the Apache License, Version 2.0 (SPDX-License-Identifier: Apache-2.0).
We used compliance-checking algorithms during the training process, to ensure the compliance of the trained model to the best of our ability. Due to the complexity of the data and the diversity of language model usage scenarios, we cannot guarantee that the model is completely free of copyright issues or improper content. If you believe anything infringes on your rights or generates improper content, please contact us, and we will promptly address the matter.
No open issues yet, or sync has not completed.