Ovis (Open VISion) 是一種新穎的多模式大語言模型 (MLLM) 架構,旨在在結構上對齊視覺和文字嵌入。全面的介紹可以參考Ovis論文。
Ovis 已使用 Python 3.10、Torch 2.4.0、Transformers 4.46.2 和 DeepSpeed 0.15.4 進行了測試。有關套件依賴項的完整列表,請參閱requirements.txt
檔案。在進行微調或推理之前,請按以下方式安裝 Ovis。
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 .
Ovis 可以用流行的法學碩士來實例化。我們提供以下 Ovis MLLM:
綿羊 MLLM | 維特 | 法學碩士 | 型號重量 | 示範 |
---|---|---|---|---|
Ovis1.6-Gemma2-27B | 西格利普-400M | Gemma2-27B-它 | 抱臉 | - |
Ovis1.6-Gemma2-9B | 西格利普-400M | Gemma2-9B-It | 抱臉 | 空間 |
Ovis1.6-Llama3.2-3B | 西格利普-400M | Llama-3.2-3B-指令 | 抱臉 | 空間 |
Ovis1.6-Gemma2-27B擁有29B個參數,在OpenCompass基準測試中取得了優異的效能,躋身頂級開源MLLM之列。
Ovis1.6-Gemma2-9B僅具有10B參數,在30B參數範圍內領先開源 MLLM 中的 OpenCompass 基準。
Ovis1.6-Llama3.2-3B在4B參數下在開源MLLM中領先OpenCompass基準,甚至超過了Llama-3.2-11B-Vision-Instruct。
ms-swift 支援微調 Ovis1.6-Gemma2-9B。
我們在ovis/serve/runner.py
中提供了一個推理包裝器,它可以用作:
from PIL import Image
from ovis . serve . runner import RunnerArguments , OvisRunner
image = Image . open ( 'IMAGE_PATH' )
text = 'PROMPT'
runner_args = RunnerArguments ( model_path = 'MODEL_PATH' )
runner = OvisRunner ( runner_args )
generation = runner . run ([ image , text ])
基於 Gradio,Ovis 還可以透過 Web 使用者介面存取:
python ovis/serve/server.py --model_path MODEL_PATH --port PORT
我們使用 AutoGPTQ 來量化 Ovis1.6。有關運行和創建您自己的量化版本的詳細信息,請參閱相應的 Huggingface 模型卡:Ovis1.6-Gemma2-9B-GPTQ-Int4 和 Ovis1.6-Llama3.2-3B-GPTQ-Int4。量化的 Ovis1.6 保持了與其非量化對應物相當的性能,同時需要更少的 GPU 記憶體:
基準性能:
GPU 記憶體使用量(max_partition=9):
如果您發現 Ovis 有用,請引用論文
@article{lu2024ovis,
title={Ovis: Structural Embedding Alignment for Multimodal Large Language Model},
author={Shiyin Lu and Yang Li and Qing-Guo Chen and Zhao Xu and Weihua Luo and Kaifu Zhang and Han-Jia Ye},
year={2024},
journal={arXiv:2405.20797}
}
這項工作是 MarcoVL 團隊的共同努力。我們還想提供我們團隊的以下 MLLM 論文的連結:
此專案根據 Apache 許可證 2.0 版(SPDX 許可證識別碼:Apache-2.0)獲得許可。
我們在訓練過程中使用了合規性檢查演算法,以盡最大努力確保訓練後的模型的合規性。由於資料的複雜性和語言模型使用場景的多樣性,我們無法保證模型完全不存在版權問題或不當內容。如果您認為任何內容侵犯了您的權利或產生不當內容,請聯絡我們,我們將立即解決該問題。