Как работает мультимодальное выравнивание (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) — это модель, которая сжимает изображение в набор дискретных кодов (токенов). Процесс:
- Изображение размером H×W×3 пропускается через энкодер (свёрточная сеть), получая карту признаков.
- Каждый вектор признаков заменяется на ближайший элемент из кодовой книги (codebook) — набора обучаемых векторов.
- Индексы этих векторов и есть визуальные токены. Они образуют последовательность (например, 256 токенов для изображения 256×256).
- Декодер восстанавливает изображение из этих токенов.
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) и LLM | CLIP ViT → непрерывные эмбеддинги | Нет (только понимание) |
| Flamingo | GATED cross-attention между замороженным энкодером и LLM | Normalized ResNet + Perceiver | Нет (только понимание) |
| DALL-E 3 | Диффузионная модель + текстовый энкодер | Диффузия в латентном пространстве | Да, диффузия (высокое качество) |
| Gato (DeepMind) | Единая авторегрессивная модель для многих модальностей | Дискретные токены (VQVAE) | Да, но низкое качество |
Chameleon ближе всего к Gato, но специализирован на текст+изображение и масштабирован до 34B параметров.
7. Обучение и loss функции
Обучение Chameleon состоит из двух этапов:
-
Предобучение VQVAE: отдельно обучается кодировать/декодировать изображения с loss:
- Реконструкционный loss (MSE между исходным и восстановленным изображением).
- Commitment loss (штраф за расхождение между выходами энкодера и выбранным кодом).
- Perceptual loss (на основе предобученной сети, например, VGG).
-
Совместное обучение трансформера: замораживается VQVAE (кроме эмбеддингов кодовой книги), обучается transformer на смешанных текстово-визуальных последовательностях. Loss — стандартный causal language modeling loss (кросс-энтропия) для всех токенов.
Важно: модель не использует отдельный loss для выравнивания — оно возникает автоматически, потому что transformer вынужден предсказывать визуальные токены в контексте текста и наоборот.
8. Инференс и генерация изображений
На инференсе:
- Пользователь подаёт запрос (текст, изображение или и то, и другое).
- Модель генерирует токены авторегрессивно.
- Если модель генерирует SENTINEL <image>, она начинает выдавать визуальные токены (индексы из кодовой книги).
- После
</image>генерация продолжается текстом (или другим изображением). - Все визуальные токены собираются и подаются в декодер VQVAE, который превращает их в пиксели.
Ограничение: генерация изображений занимает много шагов (например, 256 токенов для одного изображения), что медленнее, чем диффузия (которая обычно делает 20-50 шагов). Кроме того, авторегрессивная генерация изображений страдает от накопления ошибок (exposure bias) — ошибка на раннем токене влияет на все последующие.
9. Ограничения и текущие исследования
- Качество изображений: VQVAE даёт более низкое качество, чем диффузионные модели, особенно в деталях и текстурах.
- Длина последовательности: изображения занимают много токенов, что увеличивает вычислительные затраты и ограничивает контекст.
- Сложность обучения: требуется огромное количество мультимодальных данных и вычислительных ресурсов (Chameleon 34B обучался на 5.5 трлн токенов).
- Современные улучшения: исследователи работают над гибридными подходами (например, комбинировать авторегрессию для текста и диффузию для изображений в одной модели), а также над более эффективными VQVAE (например, VQGAN с perceptual loss).
Пет-проект для закрепления
Задача: Реализовать упрощённую версию мультимодального выравнивания на основе единого токенизатора для текста и изображений (мини-Chameleon).
Инструменты: Python, PyTorch, Hugging Face Transformers, torchvision.
Шаги:
- Подготовка данных: Используйте датасет COCO (изображения с подписями). Преобразуйте изображения в токены с помощью предобученного VQVAE (например, из библиотеки
taming-transformers). - Создание токенизатора: Объедините BPE-токенизатор для текста (например, GPT-2 tokenizer) с визуальными токенами (индексы от VQVAE). Добавьте SENTINEL токены
<image>и</image>. - Построение модели: Возьмите небольшой GPT-2 (124M) и расширьте его словарь на размер кодовой книги + 2 SENTINEL токена. Заморозьте эмбеддинги VQVAE (кодовую книгу).
- Обучение: Создайте последовательности вида:
[текст] <image> v1 v2 ... vN </image> [текст]. Обучайте модель с causal LM loss на всех токенах. - Генерация: После обучения попробуйте сгенерировать изображение по текстовому описанию: подайте текст, модель сгенерирует
<image>и визуальные токены, затем декодер VQVAE восстановит изображение.
Ожидаемый результат: Вы получите модель, которая может генерировать простые изображения (например, 32×32) по тексту, хотя качество будет низким. Главное — понять принцип единого токенизатора и авторегрессии.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 540 | Как работает мультимодальный RAG? |
| 541 | Какие подходы к fusion текста и изображений существуют? |
| 542 | Что такое VQVAE и как он применяется в генерации? |
| 543 | Как обучать мультимодальные модели с коннекторами? |
| 544 | Сравнение Chameleon и LLaVA |
| 546 | Как оценивать качество мультимодальной генерации? |
Навигация
- Предыдущий: 544
- Следующий: 546
- Индекс: 00. Индекс разборов