Как работает мультимодальное выравнивание (alignment) в моделях типа Chameleon (Meta)?

Краткий тезис

alignment|Мультимодальное выравнивание в Chameleon достигается за счёт единой архитектуры, которая обрабатывает текст и изображения как последовательности дискретных токенов. Изображения квантуются в токены с помощью VQVAE, а специальные SENTINEL токены обозначают границы модальностей. Модель обучается авторегрессивно предсказывать следующий токен, независимо от того, относится ли он к тексту или изображению, что позволяет seamlessly переключаться между модальностями во время генерации. Такой подход отличается от более распространённых коннекторных методов (например, LLaVA) и даёт преимущество в простоте, но уступает в качестве изображений специализированным диффузионным моделям.


1. Термин: мультимодальное выравнивание (alignment)

Мультимодальное выравнивание — это способность модели понимать и генерировать контент в разных модальностях (текст, изображение, аудио и т.д.) в едином семантическом пространстве. В контексте Chameleon это означает, что модель может:

  • Принять на вход текст и изображение (например, описание картинки и саму картинку).
  • Ответить текстом, сгенерировать новое изображение или сделать и то, и другое в одном ответе.
  • Сохранять консистентность между модальностями (например, сгенерировать изображение кота, соответствующее текстовому описанию).

Традиционно выравнивание достигается через коннекторы (например, проекционные слои между энкодером изображений и LLM), но Chameleon использует более радикальный подход — токенизатор|единый токенизатор и единый авторегрессивный трансформер.


2. Архитектура Chameleon: единая модель

Chameleon (Meta, 2024) — это семейство мультимодальных фундаментальных моделей, которые обрабатывают текст и изображения в одной последовательности токенов. Ключевые компоненты:

  • Единый токенизатор: текст токенизируется стандартным BPE (Byte-Pair Encoding), изображения — через VQVAE (Vector Quantized Variational Autoencoder) в токены|дискретные токены.
  • Единый трансформер: один и тот же decoder-only transformer обрабатывает последовательность, состоящую из текстовых и визуальных токенов.
  • SENTINEL токены: специальные маркеры, которые указывают, где начинается и заканчивается изображение. Например, <image> и </image>.

Архитектура не требует отдельных энкодеров изображений или проекционных слоёв — всё интегрировано в сквозное обучение.


3. Токенизация: SENTINEL токены и VQVAE

3.1 VQVAE для изображений

VQVAE (Vector Quantized Variational Autoencoder) — это модель, которая сжимает изображение в набор дискретных кодов (токенов). Процесс:

  1. Изображение размером H×W×3 пропускается через энкодер (свёрточная сеть), получая карту признаков.
  2. Каждый вектор признаков заменяется на ближайший элемент из кодовой книги (codebook) — набора обучаемых векторов.
  3. Индексы этих векторов и есть визуальные токены. Они образуют последовательность (например, 256 токенов для изображения 256×256).
  4. Декодер восстанавливает изображение из этих токенов.

Chameleon использует VQVAE с размером кодовой книги 8192 и размерностью эмбеддингов 64. Это даёт ~14 токенов на каждые 16×16 пикселей.

3.2 SENTINEL токены

SENTINEL токены — это специальные токены в словаре модели, которые не несут семантической нагрузки, а служат разметкой. Пример последовательности:

[CLS] Опиши это изображение: <image> v1 v2 ... v256 </image> [SEP] На картинке кот.

Здесь <image> и </image> — SENTINEL токены, а v1...v256 — визуальные токены из VQVAE. Модель учится предсказывать все токены (и текстовые, и визуальные) авторегрессивно.


4. Autoregressive generation для текста и изображений

Авторегрессивная генерация означает, что модель предсказывает следующий токен на основе всех предыдущих. В Chameleon это работает одинаково для текста и изображений:

  • На этапе обучения: для каждой позиции в последовательности модель вычисляет cross-entropy loss между предсказанным распределением и истинным токеном.
  • На этапе инференса: модель генерирует токены по одному. Если текущий токен — SENTINEL <image>, модель продолжает генерировать визуальные токены, пока не встретит </image>.
  • После генерации визуальных токенов они передаются в декодер VQVAE, который восстанавливает изображение.

Преимущество: модель может чередовать текст и изображения в одном ответе, например, сначала сгенерировать описание, потом картинку, потом ещё текст.


5. Преимущества и недостатки

АспектПреимуществаНедостатки
Простота архитектурыОдна модель, один loss, нет отдельных энкодеров/декодеровСложность обучения (нужно много данных и вычислительных ресурсов)
Seamless switchingМодель естественно переключается между модальностямиКачество изображений ниже, чем у diffusion-моделей (например, DALL-E, Stable Diffusion)
Сквозное обучениеВыравнивание происходит автоматически, без ручного проектирования коннекторовVQVAE может терять детали изображения из-за квантования
ГибкостьМожно генерировать смешанный контент (текст+изображение)Размер последовательности растёт (изображение занимает много токенов)

6. Сравнение с другими подходами к мультимодальному выравниванию

МодельТип выравниванияОбработка изображенийГенерация изображений
ChameleonЕдиный токенизатор + авторегрессияVQVAE → дискретные токеныДа, авторегрессивно
LLaVAКоннектор (MLP) между энкодером изображений (CLIP) и LLMCLIP ViT → непрерывные эмбеддингиНет (только понимание)
FlamingoGATED cross-attention между замороженным энкодером и LLMNormalized ResNet + PerceiverНет (только понимание)
DALL-E 3Диффузионная модель + текстовый энкодерДиффузия в латентном пространствеДа, диффузия (высокое качество)
Gato (DeepMind)Единая авторегрессивная модель для многих модальностейДискретные токены (VQVAE)Да, но низкое качество

Chameleon ближе всего к Gato, но специализирован на текст+изображение и масштабирован до 34B параметров.


7. Обучение и loss функции

Обучение Chameleon состоит из двух этапов:

  1. Предобучение VQVAE: отдельно обучается кодировать/декодировать изображения с loss:

    • Реконструкционный loss (MSE между исходным и восстановленным изображением).
    • Commitment loss (штраф за расхождение между выходами энкодера и выбранным кодом).
    • Perceptual loss (на основе предобученной сети, например, VGG).
  2. Совместное обучение трансформера: замораживается VQVAE (кроме эмбеддингов кодовой книги), обучается transformer на смешанных текстово-визуальных последовательностях. Loss — стандартный causal language modeling loss (кросс-энтропия) для всех токенов.

Важно: модель не использует отдельный loss для выравнивания — оно возникает автоматически, потому что transformer вынужден предсказывать визуальные токены в контексте текста и наоборот.


8. Инференс и генерация изображений

На инференсе:

  1. Пользователь подаёт запрос (текст, изображение или и то, и другое).
  2. Модель генерирует токены авторегрессивно.
  3. Если модель генерирует SENTINEL <image>, она начинает выдавать визуальные токены (индексы из кодовой книги).
  4. После </image> генерация продолжается текстом (или другим изображением).
  5. Все визуальные токены собираются и подаются в декодер VQVAE, который превращает их в пиксели.

Ограничение: генерация изображений занимает много шагов (например, 256 токенов для одного изображения), что медленнее, чем диффузия (которая обычно делает 20-50 шагов). Кроме того, авторегрессивная генерация изображений страдает от накопления ошибок (exposure bias) — ошибка на раннем токене влияет на все последующие.


9. Ограничения и текущие исследования

  • Качество изображений: VQVAE даёт более низкое качество, чем диффузионные модели, особенно в деталях и текстурах.
  • Длина последовательности: изображения занимают много токенов, что увеличивает вычислительные затраты и ограничивает контекст.
  • Сложность обучения: требуется огромное количество мультимодальных данных и вычислительных ресурсов (Chameleon 34B обучался на 5.5 трлн токенов).
  • Современные улучшения: исследователи работают над гибридными подходами (например, комбинировать авторегрессию для текста и диффузию для изображений в одной модели), а также над более эффективными VQVAE (например, VQGAN с perceptual loss).

Пет-проект для закрепления

Задача: Реализовать упрощённую версию мультимодального выравнивания на основе единого токенизатора для текста и изображений (мини-Chameleon).

Инструменты: Python, PyTorch, Hugging Face Transformers, torchvision.

Шаги:

  1. Подготовка данных: Используйте датасет COCO (изображения с подписями). Преобразуйте изображения в токены с помощью предобученного VQVAE (например, из библиотеки taming-transformers).
  2. Создание токенизатора: Объедините BPE-токенизатор для текста (например, GPT-2 tokenizer) с визуальными токенами (индексы от VQVAE). Добавьте SENTINEL токены <image> и </image>.
  3. Построение модели: Возьмите небольшой GPT-2 (124M) и расширьте его словарь на размер кодовой книги + 2 SENTINEL токена. Заморозьте эмбеддинги VQVAE (кодовую книгу).
  4. Обучение: Создайте последовательности вида: [текст] <image> v1 v2 ... vN </image> [текст]. Обучайте модель с causal LM loss на всех токенах.
  5. Генерация: После обучения попробуйте сгенерировать изображение по текстовому описанию: подайте текст, модель сгенерирует <image> и визуальные токены, затем декодер VQVAE восстановит изображение.

Ожидаемый результат: Вы получите модель, которая может генерировать простые изображения (например, 32×32) по тексту, хотя качество будет низким. Главное — понять принцип единого токенизатора и авторегрессии.


Связь с другими вопросами

ВопросТема
540Как работает мультимодальный RAG?
541Какие подходы к fusion текста и изображений существуют?
542Что такое VQVAE и как он применяется в генерации?
543Как обучать мультимодальные модели с коннекторами?
544Сравнение Chameleon и LLaVA
546Как оценивать качество мультимодальной генерации?

Навигация