InternVL: Мультимодальные большие модели с открытым исходным кодом для обработки изображений, видео и текста
Общее введение
InternVL - это проект мультимодальной большой модели с открытым исходным кодом, разработанный Шанхайской лабораторией искусственного интеллекта (OpenGVLab) и размещенный на GitHub. Он объединяет возможности визуальной и лингвистической обработки для поддержки комплексного понимания и создания изображений, видео и текстов. Цель InternVL - создать альтернативу с открытым исходным кодом, сопоставимую с коммерческими моделями (например, GPT-4o), для широкого круга задач, таких как визуальное восприятие, кросс-модальный поиск и мультимодальные диалоги. Проект известен своими мощными визуальными кодировщиками, динамической поддержкой высокого разрешения и эффективными стратегиями обучения. Размер моделей варьируется от 1B до 78B параметров, что подходит для широкого спектра сценариев применения - от пограничных устройств до высокопроизводительных серверов. Код, модели и наборы данных открыты под лицензией MIT, и исследователи и разработчики могут свободно использовать и улучшать их.

Список функций
- мультимодальный диалог: Поддерживает ввод изображений, видео и текста для генерации ответов на естественном языке в чате, вопросах и ответах, а также при выполнении заданий.
- обработка изображенийДинамическая обработка изображений с разрешением до 4K и поддержка классификации, сегментации и обнаружения объектов.
- Видеопонимание: Анализ видеоконтента для классификации видео с нулевой выборкой и текстово-видеопоиска.
- разрешение документа: Работает со сложными документами и специализируется на OCR, распознавании форм и проверке документов для таких задач, как DocVQA.
- Поддержка нескольких языков: Встроенный многоязычный кодировщик текста, поддерживающий 110+ задач по созданию языков.
- Эффективное рассуждение: Обеспечивает упрощенный процесс вывода с помощью LMDeploy, поддерживая обработку нескольких изображений и длинных контекстов.
- Открытость наборов данных: Предоставляет крупномасштабные мультимодальные наборы данных, такие как ShareGPT-4o, содержащие изображения, видео и аудио.
Использование помощи
Процесс установки
Чтобы использовать InternVL локально, вам нужно настроить среду Python и установить соответствующие зависимости. Ниже приведены подробные шаги по установке:
- склад клонов
Выполните следующую команду в терминале, чтобы получить исходный код InternVL:git clone https://github.com/OpenGVLab/InternVL.git cd InternVL
- Создание виртуальной среды
Создайте среду Python 3.9 с помощью conda и активируйте ее:conda create -n internvl python=3.9 -y conda activate internvl
- Установка зависимостей
Установите необходимые зависимости для проекта, которые по умолчанию включают необходимые библиотеки для мультимодального диалога и обработки изображений:pip install -r requirements.txt
Если требуется дополнительная функциональность (например, сегментация или классификация изображений), можно установить специальные зависимости вручную:
pip install -r requirements/segmentation.txt pip install -r requirements/classification.txt
- Установите Flash-Attention (опционально)
Чтобы ускорить вывод модели, рекомендуется установить Flash-Attention:pip install flash-attn==2.3.6 --no-build-isolation
Или скомпилируйте из исходного текста:
git clone https://github.com/Dao-AILab/flash-attention.git cd flash-attention git checkout v2.3.6 python setup.py install
- Установите MMDeploy (необязательно)
Если вам нужно развернуть модель в производственной среде, установите MMDeploy:pip install -U openmim mim install mmdeploy
Использование
InternVL предоставляет множество способов использования, включая рассуждения в командной строке, API-сервисы и интерактивные демонстрации. Ниже приведен пример модели InternVL2_5-8B для ознакомления с работой основных функций:
1. Мультимодальный диалог
InternVL поддерживает диалоги с вводом как изображений, так и текста. Ниже приведен пример рассуждений с использованием LMDeploy:
- Подготовка моделей и изображений: Убедитесь, что модель была загружена (например.
OpenGVLab/InternVL2_5-8B
) и подготовьте изображение (например.tiger.jpeg
). - рассуждения о беге: Выполните следующий код Python, описывающий содержимое изображения:
from lmdeploy import pipeline, TurbomindEngineConfig from lmdeploy.vl import load_image model = 'OpenGVLab/InternVL2_5-8B' image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg') pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192)) response = pipe(('描述这张图片', image)) print(response.text)
- в конце концов: Модель выводит подробное описание изображения, например, "На картинке изображен стоящий тигр с зеленой травой на заднем плане".
2. Обработка нескольких изображений
InternVL поддерживает одновременную обработку нескольких изображений, что подходит для сравнения или всестороннего анализа:
- пример кода::
from lmdeploy.vl.constants import IMAGE_TOKEN image_urls = [ 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg', 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg' ] images = [load_image(url) for url in image_urls] prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片' response = pipe((prompt, images)) print(response.text)
- в конце концов: Модель описывает содержание каждого изображения в отдельности и, возможно, обобщает отношения между ними.
3. Разбор документов
InternVL отлично справляется с задачами проверки документов (DocVQA) и распознавания форм. Процесс работы выглядит следующим образом:
- Подготовка изображений документов: Загружайте изображения, содержащие текст, таблицы или графики.
- задавать вопросы: Используйте такие подсказки, как "Извлечь данные из таблицы" или "Обобщить содержание документа".
- пример кода::
image = load_image('document.jpg') response = pipe(('提取图片中表格的内容', image)) print(response.text)
- в конце концов: Модель возвращает сводку структурированных данных таблицы или документа.
4. развертывание API-сервисов
InternVL поддерживает развертывание RESTful API через LMDeploy для производственных сред:
- Начальные услуги::
lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
- Доступ к API: Используйте совместимые с OpenAI интерфейсы для отправки запросов, например, через
curl
или модель клиентских вызовов Python.
5. онлайн-презентация
OpenGVLab предоставляет онлайновую демонстрационную платформу (https://internvl.opengvlab.com/
), для работы с ним не требуется установка:
- Зайдите на сайт, загрузите изображение или видео, задайте вопрос.
- Модель выдает результаты в режиме реального времени, что делает ее подходящей для быстрого тестирования.
Функциональное управление
- Динамическое высокое разрешение: InternVL автоматически разбивает изображения на фрагменты размером 448x448 и поддерживает разрешение до 4K. Пользователям не нужно вручную изменять размер изображений, просто загрузите их.
- ВидеопониманиеЗагрузив видеофайл и задав запрос (например, "кратко изложить содержание видео"), модель анализирует ключевые кадры и генерирует описание.
- Генерация на нескольких языках: Укажите язык в подсказке (например, "Ответьте по-французски"), и модель сгенерирует ответ на соответствующем языке.
предостережение
- Убедитесь, что у вас достаточно памяти GPU (модели 8B требуют около 16 ГБ памяти GPU).
- Увеличьте контекстное окно при обработке нескольких изображений или длинных видео (
session_len=16384
). - Проверьте версии зависимых программ, чтобы избежать проблем с совместимостью.
сценарий применения
- научные исследования
Исследователи используют InternVL для анализа научных диаграмм, обработки экспериментальных изображений или анализа табличных данных из документов. Высокоточные возможности OCR и понимания документов значительно повышают эффективность извлечения данных. - Учебные пособия
Учителя и ученики используют InternVL для решения домашних заданий, связанных с изображениями, например, для интерпретации исторических картин или анализа географических диаграмм. Многоязыковая поддержка модели подходит для интернациональных образовательных сценариев. - Обработка корпоративных документов
Организации используют InternVL для автоматизации обработки отсканированных документов, договоров или счетов-фактур, извлечения ключевой информации и создания отчетов, что позволяет сократить трудозатраты. - создание контента
Создатели контента используют InternVL для анализа видеоматериалов и создания сценариев или субтитров для повышения эффективности творческой деятельности. - Интеллектуальное обслуживание клиентов
Система обслуживания клиентов интегрирует InternVL для обработки загруженных пользователями изображений (например, фотографий неисправности продукта), быстрой диагностики проблем и предоставления решений.
QA
- Какие размеры моделей поддерживает InternVL?
InternVL предлагает модели с параметрами от 1B до 78B, подходящие для различных устройств. Модели 1B подходят для краевых устройств, а модели 78B имеют производительность, сравнимую с GPT-4o. - Как вы обрабатываете изображения высокого разрешения?
Модель автоматически разбивает изображение на фрагменты размером 448x448 и поддерживает разрешение 4K. Загружайте изображения напрямую, без предварительной обработки. - Поддерживает ли он видеоаналитику?
Да, InternVL поддерживает классификацию видео с нулевой выборкой и поиск по тексту. Просто загрузите видео и введите ключевое слово. - Является ли модель открытым исходным кодом?
InternVL имеет полностью открытый исходный код, а код и весовые коэффициенты модели доступны на GitHub под лицензией MIT. - Как оптимизировать скорость рассуждений?
Установите Flash-Attention и используйте ускорение GPU. Настройкиsession_len
параметр для работы с длинными контекстами.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...