Всем привет! Сегодня поговорим про задачу анализа и понимания видео и эволюцию подходов к обучению мультимодальных больших языковых моделей для этой задачи.
Задача Video Understanding
Video Understanding — направление на стыке компьютерного зрения (CV) и обработки естественного языка (NLP), включающее в себя множество разнообразных задач на восприятие и интерпретацию видео: от базового распознавания предметов и объектов в видеоряде, локализации объектов в пространстве или во времени, подсчёта предметов и людей до генерации кратких или развёрнутых описаний видео и задач на рассуждения о причинах происходящего в видео, требующих глубокого понимания мира — от человеческой психологии до физических свойств объектов.
Быстрое развитие Vision LLM (VLLM) — LLM с поддержкой визуальных модальностей — в 2023–2024 годах помогло значительно приблизить понимание видео нейросетями к тому, как это делает человек. VLLM способны отвечать на самые разнообразные вопросы по видео на естественном языке. Инструктивное обучение позволяет научить одну модель решать множество задач понимания видео, а большой объём знаний LLM и понимание разнообразного контекста позволяют VLLM анализировать содержание видео и делать сложные выводы.
Flamingo
Первая значимая работа, посвящённая VLLM, — Flamingo (NeurIPS 2022) — содержала много интересных идей, которые многократно переиспользовались в последующих статьях.
Например:
Использование interleaved-данных для обучения, когда картиночные токены могут находиться в произвольной части текстового промпта, а не только в начале или в конце.
Заморозка визуального кодировщика (Vision Encoder) во время всего обучения.
Независимое кодирование кадров видео (как изображений), но с добавлением обучаемых темпоральных эмбеддингов для учёта временного аспекта.
Использование Perceiver Resampler для превращения визуальных эмбеддингов произвольной длины на выходе из визуального кодировщика в компактное представление фиксированной длины (64 токена) перед подачей визуальной информации в LLM.
Next Token Prediction как задача обучения.
Из того, что в последующих работах встречалось редко:
В качестве визуального кодировщика используется Normalizer-Free ResNet (NFNet).
Кадры видео семплируются очень часто (1 FPS).
Языковая модель заморожена на протяжении всего обучения. Вместо этого между блоками LLM «прокладываются» новые обучаемые cross-attention слои, которые помогают передавать в LLM визуальную информацию.
Вместо генерализации модели под большое количество разнообразных задач понимания изображений и видео делается упор на few-shot in-context learning, когда вся информация о новой задаче и примеры её выполнения даются модели непосредственно в текстово-визуальном промпте.
LLaVA
LLaVA (апрель 2023) и LLaVA 1.5 (октябрь 2023) — VLLM для понимания изображений, но без поддержки видео. Статьи заложили архитектурную и кодовую основу, в том числе для множества последующих статей по теме VLLM для понимания видео:
Архитектурно модель состоит из визуального кодировщика на основе CLIP, MLP-адаптера (в первой версии — одного линейного слоя) между пространством визуальных эмбеддингов CLIP и LLM, и большой языковой модели.
Двухэтапное обучение: сначала обучается только адаптер, потом — и адаптер, и LLM.
На первом этапе в данных для обучения используются простые задания, состоящие из изображений и кратких описаний к ним (задача image captioning). На втором этапе — более сложные задания, требующие детального восприятия и анализа изображений (различные варианты VQA — visual question answering).
VideoChat, Video-ChatGPT, Valley
В мае-июне 2023 вышла целая серия работ — VideoChat, Video-ChatGPT, Valley, — авторы которых стремились «очеловечить» VLLM — улучшить их функционирование как чат-ботов или ассистентов. Каждая из работ предлагает подход к генерации инструктивных диалогов для обучения, которые позволяют LLM научиться поддерживать диалог по видео и отвечать на разнообразные вопросы. Во всех трёх случаях диалоги генерируются с помощью ChatGPT на основе описаний видео.
Например, в Valley генерируется три типа заданий — «детальное описание», «диалог» и «сложные рассуждения». Кроме этого, Valley использует:
двухэтапное обучение и базовую архитектуру из LLaVA;
общий кодировщик для картинок и видео — CLIP с архитектурой ViT-L/14;
темпоральный модуль на основе однослойного трансформерного кодировщика и Average Pooling — для моделирования временной изменчивости кадров и агрегирования токенов видео, которые отправляются в LLM (изначально кадры из видео семплируются с частотой 0,5 FPS).
В отличие от Valley, в Video-ChatGPT:
используется уже предобученная на изображениях модель из LLaVA;
Average Pooling применяется отдельно не только ко всем токенам внутри каждого кадра (для моделирования темпоральной изменчивости), но и отдельно по временному измерению между соответствующими токенами кадров, для получения усреднённых пространственных признаков всего видео.
Важное нововведение в Video-ChatGPT — предложенный авторами метод оценки работы VLLM на открытых вопросах с помощью GPT-3.5: текстовая LLM анализирует соответствие предсказания модели референсу по ряду критериев и ставит оценку от 0 до 5. Позднее в Video-LLaVA этот подход был дополнен для упрощения расчёта accuracy: модель теперь возвращала не только оценку от 1 до 5, но и бинарное значение: «yes» (правильный ответ) или «no» (неправильный).
Video-LLaMA
Video-LLaMA (июнь 2023) — первая VLLM с поддержкой понимания и видео-, и аудиоряда в видео-роликах. В качестве адаптеров между видео-модальностью и LLM, аудио-модальностью и LLM используется комбинация Q-Former (из BLIP-2) и линейного слоя. Интересно, что аудио и видео на всех этапах, кроме LLM, обрабатываются независимо.
Video-LLaVA
Video‑LLaVA (ноябрь 2023) — возможно, самая значимая из первых работ по VLLM с поддержкой video understanding из‑за хорошей генерализации под разнообразные задачи и метрики, значительно превосходящих предыдущие подходы.
Кодировщики видео и изображений изображений из LanguageBind: обучены через contrastive learning кодировать изображения и видео в общее пространство эмбеддингов (что позволяет использовать общий MLP‑адаптер для двух модальностей).
Равномерное семплирование фиксированного числа кадров видео, независимо от длины — отпадает потребность в использовании Perceiver Resampler или Q‑Former для получения небольшого фиксированного числа токенов видео.
Переиспользование данных LLaVA (558 тыс. и 349 тыс. изображений, 558 тыс. и 624 тыс. диалогов на первом и втором этапах обучения соответственно), Valley (229 тыс. видео и 703 тыс. диалогов по ним для 1-го этапа обучения), VideoChatGPT (13 тыс. видео и 100 тыс. диалогов для 2-го этапа обучения).
LITA
LITA (Language Instructed Temporal‑Localization Assistant) — статья, опубликованная в марте 2024, посвящена тому, как улучшить способность VLLM понимать временной аспект видео, в особенности в задаче локализации во времени объектов, людей, событий и т. д. (Temporal Localization). Для достижения этой цели авторы придумали целый ряд нововведений:
Токены времени, кодирующие относительные позиции кадров внутри видео. Каждое видео разбивается на T одинаковых интервалов (T = 100), и относительные позиции интервалов кодируются токенами времени от <1> до <T>.
«Медленные» и «быстрые» токены кадров (SlowFast tokens). Сначала из видео равномерно сэмплируются T кадров, каждый независимо прогоняется через визуальный кодировщик (CLIP‑L-14), в результате чего видео представлено 100 × 256 визуальными токенами. Далее для получения «быстрых» токенов кадров все 256 токенов одного кадра усредняются между собой — получается 100 «быстрых» токенов на видео. «Медленные» токены сэмплируются гораздо реже — всего 4 кадра на видео, и внутри каждого кадра количество токенов сокращается в 4 раза с помощью пространственного усреднения (2 × 2 spatial average pooling), благодаря чему «медленных» токенов всего 256 на видео. Далее все 356 токенов конкатенируются и подаются в LLM.
Новый набор данных для обучения и оценки навыка локализации во времени — ActivityNet‑RTL. Он посвящён новому виду задач — RTL (Reasoning Temporal Localization), «локализации во времени, требующей рассуждений»: задания по видео сконструированы таким образом, что для правильного ответа модель должна синтезировать понимание временного аспекта видео и знаний о мире. Например, для ответа на вопрос: «Когда танец становится более энергичным?» нужно не только ориентироваться во времени, но и понимать, что такое «энергичный танец».
PLLaVA
PLLaVA (Pooling LLaVA) вышла в апреле 2024 г. Основная особенность подхода, как можно догадаться из названия, — простая и эффективная стратегия пулинга визуальных признаков.
Основные особенности:
Как в Video‑ChatGPT, за основу берётся модель, уже обученная на модальности изображений (а не только на текстах), — здесь это LLaVA Next.
Экспериментально доказывается, что предыдущие подходы к агрегации визуальных токенов (просто конкатенация, как в Video‑LLaVA, или Average Pooling по всем измерениям, как в Video‑ChatGPT) ведут к деградации метрик при увеличении размера набора данных или использовании текстовых промптов, которых не было в обучении.
Предлагается альтернативная стратегия сокращения размерности признаков: из видео сэмплируются только 16 кадров, но адаптивный пулинг с усреднением применяется только к пространственному разрешению (усреднение по временной оси приводило к ухудшению результатов). В LLM попадает тензор временных представлений размерности 16 × 12 × 12 × d, где 16 — число кадров, 12 × 12 — количество токенов каждого кадра после пулинга, а d зависит от размерности конкретной LLM.
При дообучении на видеоданных адаптер размораживается полностью, а обучение LLM происходит с помощью LoRA.
Итоговая модель показывала SOTA‑результаты в ряде видеобенчмарков, но лучше всего справилась с генерацией детальных описаний к видео.
Video-SALMONN
Video‑SALMONN (июнь 2024) — первый подход, где LLM получает возможность синтезировать информацию из видеоряда не только с сопутствующими звуками, но и с речью. Основные особенности работы:
Для кодирования кадров видео используется InstructBLIP, для аудио и речи — BEATs и Whisper, соответственно. Аудиосигнал семплируется с частотой 50 Герц, а видео — 2 Герц (или 2 FPS). Далее все признаки синхронизируются по времени каждые 0,5 секунды и конкатенируются перед подачей в адаптер: эмбеддинг каждого кадра дополняется двумя наборами эмбеддингов 25 сэмплов аудио (речевыми и неречевыми). Если какая‑то из модальностей отсутствует в конкретном элементе набора данных, то вместо её эмбеддингов используется вектор из нулей.
В качестве адаптера используется MRC Q‑Former (multiresolution causal Q‑Former). На выходе получаем фиксированного размера общий эмбеддинг для всех трёх модальностей. В адаптере используются два уровня темпорального разрешения — высокое и низкое.
Веса LLM не размораживаются целиком: дообучение происходит с помощью LoRA (low‑rank adaptation).
LLaVA-OneVision
LLaVA‑OneVision (август 2024) — SOTA‑подход в понимании сразу трёх визуальных модальностей: одиночных изображений, множественных и видео. Ключевые особенности:
-
Классическая архитектура (визуальный кодировщик, MLP‑адаптер, LLM).
Interleaved‑данные: визуальные эмбеддинги могут встречаться в любой части промпта.
Используется визуальный кодировщик SigLIP (каждое изображение кодируется 729 токенами). Он общий для всех модальностей и разморожен на большинстве этапов обучения (кроме первого).
Очень много хороших данных (в том числе ранее опубликованных наборов от других авторов, отфильтрованных и переразмеченных в рамках работы).
-
Метод обработки изображений Higher AnyRes: перед визуальным кодированием изображение нарезается на несколько частей (до 36) в зависимости от разрешения, каждая из которых кодируется и проходит адаптер независимо. Полученные эмбеддинги конкатенируются и уменьшаются до размерности максимум 729 × 9 с помощью билинейной интерполяции.
Эффективный подход к адаптации под видео и multi‑image: более «тяжёлые» модальности — видео и множественные изображения — добавляются только на последнем этапе обучения. Эмбеддинги всех модальностей перед подачей в LLM приводятся примерно к одному размеру (6–8 тыс. визуальных токенов на диалог).
Как и в Video‑LLaVA, кадры видео сэмплируются равномерно, но благодаря сжатию до 196 токенов на кадр получилось качественно обучить LLM на 32 кадрах вместо 8.
Заключение
Сегодня мы рассказали про ключевые работы, посвящённые обучению больших языковых моделей для понимания видео, и о том, как подход к этой задаче эволюционировал за последние несколько лет. Это не все работы, но мы постарались учесть самое основное и интересное. В следующий раз расскажем, как мы учим LLM понимать видео и поддерживать диалог о них на русском языке, и как мы оцениваем этот навык, чтобы сравнивать разные модели между собой.
Спасибо всем, кто принимал участие в исследованиях в этой области. И отдельная благодарность автору статьи — Марине Ярославцевой @magoli, лиду направления трека видео в мультимодальности, в команде RnD XR.