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)获得许可。
我们在训练过程中使用了合规性检查算法,以尽最大努力确保训练后的模型的合规性。由于数据的复杂性和语言模型使用场景的多样性,我们无法保证模型完全不存在版权问题或不当内容。如果您认为任何内容侵犯了您的权利或产生不当内容,请联系我们,我们将立即解决该问题。