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 можно создать с помощью популярных LLM. Мы предоставляем следующие MLLM Ovis:
Овис МЛЛМ | ВИТ | Магистр права | Вес модели | Демо |
---|---|---|---|---|
Овис1.6-Гемма2-27Б | Сиглип-400М | Джемма2-27Б-Оно | Обнимающее лицо | - |
Овис1.6-Гемма2-9Б | Сиглип-400М | Джемма2-9B-Оно | Обнимающее лицо | Космос |
Овис1.6-Лама3.2-3Б | Сиглип-400М | Лама-3.2-3Б-Инструктировать | Обнимающее лицо | Космос |
Благодаря 29B параметрам Ovis1.6-Gemma2-27B достигает исключительной производительности в тесте OpenCompass, входя в число лучших MLLM с открытым исходным кодом.
Имея всего 10 миллиардов параметров, Ovis1.6-Gemma2-9B лидирует в тесте OpenCompass среди MLLM с открытым исходным кодом в пределах 30 миллиардов параметров.
Ovis1.6-Llama3.2-3B лидирует в тесте OpenCompass среди MLLM с открытым исходным кодом по параметрам 4B , даже превосходя Llama-3.2-11B-Vision-Instruct.
Точная настройка Ovis1.6-Gemma2-9B поддерживается в ms-swift.
Мы предоставляем оболочку вывода в 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 ])
Доступ к Ovis, основанному на Gradio, также возможен через веб-интерфейс пользователя:
python ovis/serve/server.py --model_path MODEL_PATH --port PORT
Мы квантовали Ovis1.6 с помощью AutoGPTQ. Подробную информацию о запуске и создании собственной квантованной версии см. на соответствующих картах моделей Huggingface: Ovis1.6-Gemma2-9B-GPTQ-Int4 и Ovis1.6-Llama3.2-3B-GPTQ-Int4. Квантованный Ovis1.6 сохраняет производительность, сравнимую с его неквантованным аналогом, но требует меньше памяти графического процессора:
Тестовая производительность:
Использование памяти графического процессора (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).
В процессе обучения мы использовали алгоритмы проверки соответствия, чтобы обеспечить соответствие обученной модели в меру наших возможностей. Из-за сложности данных и разнообразия сценариев использования языковой модели мы не можем гарантировать, что модель полностью свободна от проблем с авторскими правами или ненадлежащего содержания. Если вы считаете, что что-либо нарушает ваши права или создает ненадлежащий контент, свяжитесь с нами, и мы оперативно решим этот вопрос.