Глава 5.3 — Мультимодальные LLM
Содержание
- От внешнего текста к совершенно иному типу сигнала
- Почему изображения не вписываются в естественные допущения трансформера
- CLIP: согласование изображений и текста вообще без генерации
- Flamingo: соединение замороженных энкодеров через обученное кросс-внимание
- LLaVA: проецирование изображений в поток токенов
- Сближение к унифицированным архитектурам «токенизируй всё»
- Взгляд с точки зрения собеседования
- Вопросы для самопроверки
- Источники
1. От внешнего текста к совершенно иному типу сигнала
Глава 5.2 решила конкретную версию проблемы «модель этого не знает», подключив внешний текст на этапе инференса. Но это решение сработало потому, что текст — как раз тот тип объекта, который трансформер уже умеет потреблять: последовательность дискретных токенов, эмбеддированных и обработанных так же, как и всё остальное, что модель когда-либо видела. Мультимодальные LLM сталкиваются с более трудной версией той же интеграционной проблемы — не «как подключить ещё больше сигнала того же типа», а «как подключить сигнал, который вообще не является естественно дискретным или последовательным». Изображения — непрерывные, многомерные, пространственно структурированные сетки значений пикселей; здесь нет очевидного «следующего пикселя для предсказания», аналогичного предсказанию следующего токена, и нет естественного словаря «токенов изображения», подобного словарю подсловных текстовых токенов. Эта глава прослеживает, как область решила эту интеграционную проблему через три архитектурно различных подхода, которые к концу главы сходятся к поразительно похожему ответу.
2. Почему изображения не вписываются в естественные допущения трансформера
Всё, что было выстроено ранее в этой книге, — факторизация по цепному правилу из главы 1.1, механизм внимания, цель предобучения — предполагает последовательность дискретных символов, взятых из фиксированного, конечного словаря, каждый из которых эмбеддируется в вектор через таблицу поиска. Изображение в исходном виде не является ничем из этого: это тензор непрерывных значений интенсивности пикселей без естественной дискретизации и без естественного линейного порядка (смысл пикселя зависит от его соседей в двух измерениях, а не от некоего канонического порядка чтения слева направо, как в тексте). Поэтому любая попытка подать изображения в языковую модель на основе трансформера должна одновременно решить две задачи: как превратить непрерывный, двумерный сигнал в нечто, похожее на последовательность векторов, над которой трансформер может выполнять внимание, и как сделать так, чтобы эти векторы жили в представленческом пространстве, которым существующий аппарат языковой модели действительно может воспользоваться, учитывая, что языковая модель была предобучена исключительно на тексте и не имеет врождённого понятия о том, что «означает» участок пикселей.
Три подхода, рассматриваемые в этой главе, — CLIP, Flamingo и LLaVA — представляют три разные точки на спектре ответов на эту вторую проблему, от «даже не пытаться генерировать из языковой модели, просто согласовать представления» (CLIP) до «оставить предобученные основы обеих модальностей замороженными и обучить мост между ними» (Flamingo) и до «просто спроецировать признаки изображения в то же пространство, что и эмбеддинги текстовых токенов, и позволить готовому декодер-only LLM трактовать их как ещё одни токены» (LLaVA).
3. CLIP: согласование изображений и текста вообще без генерации
Radford и соавторы (2021) представили CLIP (Contrastive Language-Image Pretraining), который полностью обходит проблему генерации, не пытаясь вообще ничего генерировать. CLIP обучает два отдельных энкодера — энкодер изображений (Vision Transformer или свёрточную сеть в стиле ResNet) и текстовый энкодер (трансформер) — совместно, используя контрастивную целевую функцию, структурно похожую на ту, что лежит в основе Dense Passage Retrieval из главы 5.2: получив большой батч пар «изображение — подпись», собранных из интернета, закодировать каждое изображение и каждую подпись в общее пространство эмбеддингов, и обучить два энкодера так, чтобы эмбеддинг изображения был близок (по косинусному сходству) к эмбеддингу его истинной, соответствующей подписи, и далёк от эмбеддингов остальных подписей в батче. Конкретно, для батча из $N$ пар «изображение — текст» CLIP вычисляет матрицу сходства $N \times N$ между всеми изображениями и всеми текстами и применяет симметричную кросс-энтропийную функцию потерь, которая трактует истинную подпись каждого изображения как положительный класс среди $N$ кандидатов-подписей (и наоборот для истинного изображения каждой подписи) — крупная внутрибатчевая контрастивная цель, естественно масштабирующаяся с размером батча, поскольку большие батчи поставляют более трудные и более многочисленные негативные примеры.
Замечательный эмпирический результат состоит в том, что получившийся энкодер изображений, несмотря на то что он никогда не обучался подписывать, описывать или генерировать что-либо, производит представления изображений, чрезвычайно хорошо переносящиеся на последующие задачи, для которых он никогда явно не обучался: классификацию изображений в режиме zero-shot (путём сравнения эмбеддинга изображения с эмбеддингами подписей-кандидатов названий классов вроде «фотография собаки»), поиск и, что важнее всего для этой главы, служение универсальным экстрактором визуальных признаков, на который могут опираться другие системы. Сам CLIP не является мультимодальной генеративной LLM — у него нет механизма для производства текста, обусловленного изображением, помимо сравнения с ближайшим соседом среди фиксированного набора подписей-кандидатов, — но он стал фундаментальной инфраструктурой для этой области именно потому, что продемонстрировал: хорошо согласованное, семантически осмысленное общее пространство эмбеддингов между зрением и языком можно выучить исключительно из шумных, интернет-масштабных пар «изображение — подпись», без ручной аннотации. Оба генеративных архитектурных подхода, рассматриваемых далее, опираются на энкодер изображений в стиле CLIP (или обученный тем же способом) как на отправную точку.
4. Flamingo: соединение замороженных энкодеров через обученное кросс-внимание
Alayrac и соавторы (2022) взялись за более трудную проблему, которую CLIP обходит стороной: построение модели, которая может действительно генерировать свободный текст, обусловленный изображениями, в идеале с тем же поведением обучения в контексте по нескольким примерам (few-shot in-context learning), которое языковые модели типа GPT-3 демонстрировали для текста (обсуждение обучения в контексте в части IV). Подход Flamingo примечателен тем, чего он намеренно избегает: вместо обучения новой мультимодальной модели с нуля, что потребовало бы повторения огромных инвестиций, уже вложенных в раздельное предобучение сильного энкодера изображений и сильной языковой модели, Flamingo оставляет и предобученный энкодер изображений, и предобученную языковую модель полностью замороженными, и обучает только сравнительно небольшой набор новых компонентов, соединяющих их между собой.
Этот мост состоит из двух частей. Во-первых, модуль «Perceiver Resampler» берёт вывод энкодера изображений — который может варьироваться по пространственному размеру в зависимости от входного изображения или видео — и сжимает его до небольшого, фиксированного числа визуальных токенов с помощью обученного кросс-внимания, так что дальнейшей обработке не приходится иметь дело с визуальными картами признаков переменной длины, потенциально очень большими. Во-вторых — и это архитектурно наиболее отличительная часть — новые слои кросс-внимания встраиваются между существующими (замороженными) слоями языковой модели, с вентилями (gating), настроенными так, что при инициализации они не вносят никакого вклада и языковая модель ведёт себя точно так же, как и раньше, — приём для обеспечения стабильности, напоминающий соглашения об остаточных связях и вентилях, рассмотренные в более ранних архитектурных главах. Эти новые слои кросс-внимания позволяют каждому слою языковой модели обращать внимание на визуальные токены, произведённые ресемплером, обусловливая генерацию текста визуальным входом, при этом никогда не затрагивая собственные веса исходной языковой модели.
Практическая выгода состоит в том, что Flamingo способен выполнять мультимодальное обучение в контексте по нескольким примерам: получив промпт, содержащий несколько чередующихся примеров «изображение — текст», за которыми следует новое изображение, он может произвести подходящее текстовое продолжение без каких-либо обновлений градиента или дообучения под конкретную задачу, расширяя феномен обучения в контексте с чистого текста на мультимодальную постановку. Цена этого подхода — архитектурная сложность: новые слои кросс-внимания нужно обучить и аккуратно встроить в прямой проход существующей, замороженной языковой модели, что представляет собой нетривиальную инженерную задачу по сравнению с простым конкатенированием токенов.
5. LLaVA: проецирование изображений в поток токенов
Liu и соавторы (2023) предложили поразительно более простую альтернативу, оказавшуюся весьма влиятельной именно благодаря этой простоте: LLaVA (Large Language and Vision Assistant) использует замороженный предобученный энкодер изображений (энкодер в стиле CLIP) для извлечения визуальных признаков из изображения, а затем обучает лёгкую проекцию — в простейшей версии единственный линейный слой, позже расширенный до небольшого многослойного перцептрона, — отображающую эти визуальные признаки в то же пространство размерности эмбеддингов, что и текстовые эмбеддинги токенов языковой модели. Спроецированные визуальные признаки затем просто вставляются во входную последовательность рядом с эмбеддингами текстовых токенов, и готовый, полностью стандартный декодер-only LLM обрабатывает объединённую последовательность точно так же, как обработал бы последовательность из чистых текстовых токенов, без каких-либо архитектурных изменений в самой языковой модели — никаких новых слоёв кросс-внимания, никаких вентилей, ничего специфического в устройстве внимания внутри.
Это работает, потому что задача проекционного слоя узко определена: выучить отображение из «пространства визуальных признаков CLIP» в «пространство эмбеддингов токенов этой конкретной языковой модели» так, чтобы спроецированные векторы попадали туда, где существующие слои внимания и полносвязные слои языковой модели могут осмысленно их обработать, точно так же, как обычный текстовый эмбеддинг токена. Обучение LLaVA включает два этапа: сначала предобучение только проекционного слоя (при заморозке и энкодера изображений, и языковой модели) на парах «изображение — подпись», чтобы проекция вообще научилась производить эмбеддинги, интерпретируемые языковой моделью; затем «визуальное инструктивное дообучение» (visual instruction tuning) — дообучение (как правило, проекционного слоя, а зачастую и самой языковой модели) на наборе данных инструктивных примеров, включающих изображения, сгенерированном отчасти путём промптирования сильной текстовой LLM для производства правдоподобных пар «инструкция — ответ», обусловленных описаниями изображений, — так что итоговая модель учится следовать открытым инструкциям о содержании изображения, а не просто подписывать его.
Сравнение с Flamingo поучительно для целей собеседования: подход LLaVA на основе проекции архитектурно намного проще и дешевле в обучении — линейная или небольшая MLP-проекция плюс инструктивное дообучение против новых слоёв кросс-внимания, встроенных в каждый слой замороженного LLM, — при этом достигая сильной производительности на бенчмарках визуального следования инструкциям, и продемонстрировал, что существующий аппарат внимания декодер-only LLM достаточно гибок, чтобы обрабатывать визуальные «токены», для которых он изначально никогда не обучался, при условии, что эти токены сначала отображаются в совместимое пространство эмбеддингов.
6. Сближение к унифицированным архитектурам «токенизируй всё»
Если посмотреть на CLIP, Flamingo и LLaVA вместе, прослеживается чёткая траектория: от полного отказа от генерации (CLIP) через генерацию с помощью новой специализированной архитектуры, соединяющей два замороженных бэкбона (Flamingo), к генерации путём простой трактовки спроецированных визуальных признаков как ещё одних токенов, подаваемых в иначе не модифицированный декодер-only LLM (LLaVA). Область продолжает двигаться в направлении, на которое указывает LLaVA: вместо построения модально-специфичного архитектурного аппарата — отдельных путей кросс-внимания, отдельных энкодеров, прикрученных с помощью специальной интеграционной логики — намечающееся сближение идёт в сторону архитектур, где каждая модальность (изображения, аудио и другие) токенизируется каким-либо энкодером или дискретным токенизатором, подходящим для этой модальности, в последовательность векторов или дискретных кодов, живущих в общем представленческом пространстве, а затем обрабатывается тем же самым аппаратом декодер-only трансформера, который обрабатывает текст. С этой точки зрения «энкодер изображений» становится концептуально похож на «токенизатор» из обсуждения токенизации в части IV: модально-специфичный этап предобработки, вся задача которого — превратить сырой вход в нечто, выглядящее для основного трансформера просто как ещё одни токены в потоке. Такая унификация привлекательна по той же причине, по которой декодер-only архитектуры в своё время победили для текста (тема, поднятая в более ранних архитектурных главах): один универсальный механизм — внимание над последовательностью токенов — масштабируется лучше и о нём легче рассуждать, чем о множестве модально-специфичных специализированных компонентов. GPT-4o от OpenAI — самый наглядный продакшен-пример именно такого сближения, реально доведённый до релиза: единая модель, нативно обрабатывающая и генерирующая текст, изображения и аудио, а не текстовая LLM, приклеенная к отдельным специализированным моделям для каждой другой модальности за слоем оркестрации, — «o» означает «omni» (всеобъемлющий), и весь смысл названия в том, что восприятие и генерация по всем модальностям живут в одной модели, а не в конвейере из нескольких.
Всё изложенное в этой главе до сих пор — про то, как модель воспринимает изображения, а не про то, как она их производит, а генерация изображений оказывается расколота на две по-настоящему разные парадигмы, которые стоит различать. Диффузионные модели — механизм, стоящий за DALL-E 2/3, Stable Diffusion и Imagen, — генерируют изображение, начиная с чистого шума и итеративно очищая его на протяжении множества шагов, направляемых на каждом шаге текстовым условием, постепенно превращая статический шум в связное изображение, а не производя его за один присест. Авторегрессионная генерация изображений вместо этого распространяет тему этой главы «токенизировать всё» на генерацию, а не только на восприятие: изображение сперва превращается в последовательность дискретных токенов из выученного визуального словаря (через дискретный токенизатор вроде VQ-VAE или VQGAN — концептуальный аналог текстовых токенизаторов из главы 4.1 применительно к изображениям), а затем декодер-only трансформер генерирует эту последовательность токенов по одному токену за раз — ровно тем же механизмом предсказания следующего токена, что используется для текста, как в Parti от Google и — объединяя генерацию и восприятие в одном едином потоке токенов — в Chameleon от Meta и в собственной генерации изображений GPT-4o. Диффузия сейчас доминирует по сырой достоверности изображения для чистой генерации текст-в-изображение; авторегрессионный путь жертвует частью этой достоверности ради архитектурного преимущества, к которому вёл весь этот раздел, — один общий механизм, обрабатывающий восприятие и генерацию по всем модальностям, а не диффузионная модель, прикрученная как отдельный специализированный компонент.
Мультимодальная интеграция решает проблему того, какой тип входа модель может воспринимать. Она ничего не говорит о том, что модель может делать с этим восприятием после того, как обусловливание уже настроено, — в частности, способна ли модель выйти за рамки описания или рассуждения о воспринятом и реально действовать в мире, используя внешние инструменты для выполнения кода, запроса актуальных данных или совершения реальных действий. Именно к этому обращается следующая глава.
7. Взгляд с точки зрения собеседования
Вопрос: Почему нельзя просто подать сырые пиксели в таблицу поиска эмбеддингов токенов языковой модели так же, как подаются текстовые токены? Сильный ответ отмечает, что текстовые токены происходят из небольшого, фиксированного, дискретного словаря с обученной таблицей эмбеддингов, тогда как сырые пиксели имеют непрерывные значения и не имеют естественной дискретизации или канонического последовательного порядка; любой интеграционный подход должен сначала преобразовать изображение в последовательность векторов (с помощью энкодера), которые можно трактовать так же, как эмбеддинги токенов, — именно эту проектную задачу CLIP, Flamingo и LLaVA решают каждый по-своему.
Вопрос: CLIP не является генеративной мультимодальной моделью — так почему же он фундаментален для моделей, которые ею являются? Сильный ответ объясняет, что контрастивное обучение CLIP производит энкодер изображений, чей вывод живёт в семантически осмысленном, согласованном с текстом пространстве эмбеддингов, полученном исключительно из интернет-масштабных пар «изображение — подпись» без ручной аннотации; этот предобученный энкодер становится экстрактором визуальных признаков, на который опираются и Flamingo, и LLaVA, а значит, вклад CLIP — это представленческая инфраструктура, а не сама генерация.
Вопрос: Сравните подход Flamingo и LLaVA к соединению зрения и языка. В чём практический компромисс? Сильный ответ охватывает: Flamingo оставляет оба бэкбона замороженными и обучает новые встроенные слои кросс-внимания плюс Perceiver Resampler для сжатия визуальных признаков переменного размера в фиксированный набор токенов, обеспечивая мультимодальное обучение в контексте по нескольким примерам, но требуя нетривиальной новой архитектуры. LLaVA проецирует визуальные признаки через лёгкий линейный слой или MLP непосредственно в пространство эмбеддингов токенов языковой модели и пропускает их через полностью не модифицированный декодер-only LLM, что намного проще в реализации и обучении, ценой полной зависимости от одной лишь проекции при соединении двух совершенно по-разному обученных представленческих пространств.
Вопрос: Что означает «визуальное инструктивное дообучение» и почему это отдельный этап от начального предобучения согласования зрения и языка в LLaVA? Сильный ответ различает начальный этап, на котором обучается только проекционный слой (при замороженных энкодере изображений и LLM) на данных «изображение — подпись», исключительно чтобы научить проекцию производить эмбеддинги, вообще интерпретируемые LLM, от второго этапа, дообучающего на данных следования инструкциям, включающих изображения, так что модель учится отвечать на открытые вопросы и следовать инструкциям о содержании изображения, а не просто производить подписи.
Вопрос: Куда, по вашему мнению, движется архитектура мультимодальных LLM, судя по прогрессии CLIP → Flamingo → LLaVA? Сильный ответ определяет тенденцию к унифицированным архитектурам «токенизируй всё» на основе декодер-only моделей, где единственная задача модально-специфичного энкодера или токенизатора — произвести последовательность векторов или дискретных кодов, совместимую с существующим пространством эмбеддингов токенов языковой модели, избегая специализированной кросс-модальной архитектуры вроде встроенного кросс-внимания Flamingo в пользу повторного использования одного универсального механизма внимания для всех модальностей.
8. Вопросы для самопроверки
- Какие два свойства сырых изображений делают их несовместимыми с естественным допущением трансформера о дискретной последовательности токенов?
- Опишите контрастивную целевую функцию обучения CLIP, включая то, что представляет матрица сходства $N \times N$ для батча из $N$ пар «изображение — текст».
- Почему CLIP описывается как «фундаментальная инфраструктура», а не как самостоятельная мультимодальная генеративная модель?
- Какие два новых компонента добавляет Flamingo поверх замороженных предобученных бэкбонов зрения и языка, и что делает каждый из них?
- Как проекционный слой LLaVA позволяет полностью не модифицированному декодер-only LLM обрабатывать визуальный вход?
- Каковы два этапа обучения LLaVA, и чего достигает конфигурация данных и заморозки/разморозки на каждом этапе?
- В каком смысле CLIP, Flamingo и LLaVA представляют точки вдоль единой траектории, и на что эта траектория указывает относительно того, к чему сближается мультимодальная архитектура?
9. Источники
- Radford, A., Kim, J. W., Hallacy, C., et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML 2021. arXiv:2103.00020. https://arxiv.org/abs/2103.00020
- Alayrac, J.-B., Donahue, J., Luc, P., et al. (2022). Flamingo: a Visual Language Model for Few-Shot Learning. NeurIPS 2022. arXiv:2204.14198. https://arxiv.org/abs/2204.14198
- Liu, H., Li, C., Wu, Q., & Lee, Y. J. (2023). Visual Instruction Tuning (LLaVA). NeurIPS 2023. arXiv:2304.08485. https://arxiv.org/abs/2304.08485
- OpenAI (2024). GPT-4o System Card. https://openai.com/index/gpt-4o-system-card/
- Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. NeurIPS 2020. arXiv:2006.11239. https://arxiv.org/abs/2006.11239
- Yu, J., Xu, Y., Koh, J. Y., et al. (2022, Google). Scaling Autoregressive Models for Content-Rich Text-to-Image Generation (Parti). arXiv:2206.10789. https://arxiv.org/abs/2206.10789
- Chameleon Team (2024, Meta AI). Chameleon: Mixed-Modal Early-Fusion Foundation Models. arXiv:2405.09818. https://arxiv.org/abs/2405.09818