InternLM-XComposer: мультимодальная макромодель для вывода очень длинных текстов и понимания изображений и видео
Общее введение
InternLM-XComposer - это проект графического мультимодального макромоделирования с открытым исходным кодом, разработанный командой InternLM и размещенный на GitHub, который основан на языковой модели InternLM и способен обрабатывать мультимодальные данные, такие как текст, изображения и видео, и широко используется в области графического авторинга, понимания изображений и видеоанализа. Проект известен своей способностью поддерживать контексты длиной до 96 Кбайт, обрабатывать изображения высокого разрешения 4 Кбайт и понимать видео с мелкой детализацией, при этом его производительность сопоставима с GPT-4V при использовании всего 7B параметров. Код, весовые коэффициенты модели и подробная документация доступны на GitHub для исследователей, разработчиков и пользователей, интересующихся мультимодальным ИИ. По состоянию на февраль 2025 года проект выпустил несколько версий, включая InternLM-XComposer-2.5 и OmniLive, чтобы постоянно оптимизировать опыт мультимодального взаимодействия.

Список функций
- Поддержка сверхдлинного контекстного вывода: обработка до 96 КБ смешанного графического контента для сложных задач.
- Понимание изображений с высоким разрешением: поддерживает анализ изображений от 336 пикселей до 4K с четкой детализацией.
- Тонкое понимание видео: разбиение видео на многокадровые изображения для улавливания динамических деталей.
- Создание графики: создание графических статей или веб-контента в соответствии с инструкциями.
- Несколько раундов диалога с несколькими изображениями: поддержка нескольких изображений для непрерывного анализа диалога.
- Поддержка моделей с открытым исходным кодом: предоставление различных весов моделей и кода тонкой настройки для облегчения вторичной разработки.
- Мультимодальное потоковое взаимодействие: версия OmniLive поддерживает обработку видео и аудио большой продолжительности.
Использование помощи
InternLM-XComposer - это проект с открытым исходным кодом, основанный на GitHub, для установки и использования которого пользователям необходимы некоторые основы программирования. Ниже приведено подробное руководство по эксплуатации, которое поможет пользователям быстро начать работу.
Процесс установки
1. Подготовка окружающей среды
- Убедитесь, что на вашем устройстве установлен Python 3.9 или выше.
- Требуется NVIDIA GPU и поддержка CUDA (рекомендуется CUDA 11.x или 12.x).
- Установите Git для клонирования вашей кодовой базы.
2. Клонирование проектов
Выполните следующую команду в терминале, чтобы загрузить проект локально:
git clone https://github.com/InternLM/InternLM-XComposer.git cd InternLM-XComposer
3. Создание виртуальной среды Изолируйте зависимости с помощью Conda или инструментов виртуального окружения:
conda create -n internlm python=3.9 -y conda activate internlm
4. Установка зависимостей Установите необходимые библиотеки в соответствии с официальной документацией:
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117 pip install transformers==4.33.2 timm==0.4.12 sentencepiece==0.1.99 gradio==4.13.0 markdown2==4.4.10 xlsxwriter==3.1.2 einops
- Дополнительно: установите flash-attention2 для экономии памяти GPU:
pip install flash-attn --no-build-isolation
5. Скачать модельные веса Проект поддерживает загрузку предварительно обученных моделей, например, с сайта Hugging Face:
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', torch_dtype=torch.bfloat16, trust_remote_code=True).cuda().eval()
6. Проверка установки Запустите код примера, чтобы проверить, нормально ли работает среда:
python -m torch.distributed.run --nproc_per_node=1 example_code/simple_chat.py
Основные функции
1. Создание графики
- Введение функции: Генерирование контента, содержащего текст и изображения, например статей или веб-страниц, на основе инструкций пользователя.
- процедура::
- Подготовьте вводные данные: напишите текст-инструкцию (например, "Напишите статью о путешествиях, включив в нее три картинки").
- Запустите код:
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True).cuda().eval()
tokenizer = AutoTokenizer.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True)
query = "写一篇关于旅行的文章,包含三张图片"
response, _ = model.chat(tokenizer, query, do_sample=False, num_beams=3)
print(response)
- Выход: модель генерирует смесь графического и текстового контента, а описания изображений автоматически встраиваются в текст.
2. Понимание изображений высокого разрешения
- Введение функции: Анализирует изображения высокого разрешения и предоставляет подробные описания.
- процедура::
- Подготовьте изображение: поместите файл изображения в локальный каталог (например.
examples/dubai.png
). - Запустите код:
query = "详细分析这张图片"
image = ['examples/dubai.png']
with torch.autocast(device_type='cuda', dtype=torch.float16):
response, _ = model.chat(tokenizer, query, image, do_sample=False, num_beams=3)
print(response)
- Выход: модель выдает подробное описание содержимого изображения, например, деталей, таких как здания, цвета и т.д.
3. Видеоанализ
- Введение функции: Декомпозиция видеокадра и описание его содержания.
- процедура::
- Подготовительное видео: Загрузите пример видео (например.
liuxiang.mp4
). - Используйте версию OmniLive:
from lmdeploy import pipeline
pipe = pipeline('internlm/internlm-xcomposer2d5-ol-7b')
video = load_video('liuxiang.mp4')
query = "描述这段视频内容"
response = pipe((query, video))
print(response.text)
- Выходной результат: возвращает подробное описание видеокадра, например, действия или сцены.
4. Несколько раундов диалога с несколькими картами
- Введение функции: Поддерживает ввод нескольких изображений для непрерывного диалога.
- процедура::
- Подготовьте несколько изображений (например.
cars1.jpg
,cars2.jpg
,cars3.jpg
). - Запустите код:
query = "Image1 <ImageHere>; Image2 <ImageHere>; Image3 <ImageHere>; 分析这三辆车的优缺点"
images = ['examples/cars1.jpg', 'examples/cars2.jpg', 'examples/cars3.jpg']
response, _ = model.chat(tokenizer, query, images, do_sample=False, num_beams=3)
print(response)
- Выход: модель поочередно анализирует характеристики автомобиля, соответствующие каждой фотографии.
предостережение
- требования к оборудованию: Рекомендуется не менее 24 ГБ памяти GPU, попробуйте 4-битную квантованную версию для более дешевых устройств.
- Советы по отладке: Если вам не хватает видеопамяти, уменьшите значение
hd_num
(по умолчанию 18). - Поддержка общества: Посетите страницу GitHub Issues, чтобы ознакомиться с часто задаваемыми вопросами или оставить отзыв.
С помощью этих шагов вы сможете легко установить и использовать возможности InternLM-XComposer как для исследований, так и для разработок.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...