InternVL: Мультимодальные большие модели с открытым исходным кодом для обработки изображений, видео и текста

Общее введение

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

InternVL:开源多模态大模型,支持图像、视频和文本处理

 

Список функций

  • мультимодальный диалог: Поддерживает ввод изображений, видео и текста для генерации ответов на естественном языке в чате, вопросах и ответах, а также при выполнении заданий.
  • обработка изображенийДинамическая обработка изображений с разрешением до 4K и поддержка классификации, сегментации и обнаружения объектов.
  • Видеопонимание: Анализ видеоконтента для классификации видео с нулевой выборкой и текстово-видеопоиска.
  • разрешение документа: Работает со сложными документами и специализируется на OCR, распознавании форм и проверке документов для таких задач, как DocVQA.
  • Поддержка нескольких языков: Встроенный многоязычный кодировщик текста, поддерживающий 110+ задач по созданию языков.
  • Эффективное рассуждение: Обеспечивает упрощенный процесс вывода с помощью LMDeploy, поддерживая обработку нескольких изображений и длинных контекстов.
  • Открытость наборов данных: Предоставляет крупномасштабные мультимодальные наборы данных, такие как ShareGPT-4o, содержащие изображения, видео и аудио.

 

Использование помощи

Процесс установки

Чтобы использовать InternVL локально, вам нужно настроить среду Python и установить соответствующие зависимости. Ниже приведены подробные шаги по установке:

  1. склад клонов
    Выполните следующую команду в терминале, чтобы получить исходный код InternVL:

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. Создание виртуальной среды
    Создайте среду Python 3.9 с помощью conda и активируйте ее:

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. Установка зависимостей
    Установите необходимые зависимости для проекта, которые по умолчанию включают необходимые библиотеки для мультимодального диалога и обработки изображений:

    pip install -r requirements.txt
    

    Если требуется дополнительная функциональность (например, сегментация или классификация изображений), можно установить специальные зависимости вручную:

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. Установите 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
    
  5. Установите 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).
  • Проверьте версии зависимых программ, чтобы избежать проблем с совместимостью.

 

сценарий применения

  1. научные исследования
    Исследователи используют InternVL для анализа научных диаграмм, обработки экспериментальных изображений или анализа табличных данных из документов. Высокоточные возможности OCR и понимания документов значительно повышают эффективность извлечения данных.
  2. Учебные пособия
    Учителя и ученики используют InternVL для решения домашних заданий, связанных с изображениями, например, для интерпретации исторических картин или анализа географических диаграмм. Многоязыковая поддержка модели подходит для интернациональных образовательных сценариев.
  3. Обработка корпоративных документов
    Организации используют InternVL для автоматизации обработки отсканированных документов, договоров или счетов-фактур, извлечения ключевой информации и создания отчетов, что позволяет сократить трудозатраты.
  4. создание контента
    Создатели контента используют InternVL для анализа видеоматериалов и создания сценариев или субтитров для повышения эффективности творческой деятельности.
  5. Интеллектуальное обслуживание клиентов
    Система обслуживания клиентов интегрирует InternVL для обработки загруженных пользователями изображений (например, фотографий неисправности продукта), быстрой диагностики проблем и предоставления решений.

 

QA

  1. Какие размеры моделей поддерживает InternVL?
    InternVL предлагает модели с параметрами от 1B до 78B, подходящие для различных устройств. Модели 1B подходят для краевых устройств, а модели 78B имеют производительность, сравнимую с GPT-4o.
  2. Как вы обрабатываете изображения высокого разрешения?
    Модель автоматически разбивает изображение на фрагменты размером 448x448 и поддерживает разрешение 4K. Загружайте изображения напрямую, без предварительной обработки.
  3. Поддерживает ли он видеоаналитику?
    Да, InternVL поддерживает классификацию видео с нулевой выборкой и поиск по тексту. Просто загрузите видео и введите ключевое слово.
  4. Является ли модель открытым исходным кодом?
    InternVL имеет полностью открытый исходный код, а код и весовые коэффициенты модели доступны на GitHub под лицензией MIT.
  5. Как оптимизировать скорость рассуждений?
    Установите Flash-Attention и используйте ускорение GPU. Настройки session_len параметр для работы с длинными контекстами.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...