中文翻译暂不可用,显示俄语原文。

Что такое Fuyu-8B и чем архитектурно отличается от GPT-4V?

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

Fuyu-8B — мультимодальная языковая модель от Adept (2023), которая обрабатывает изображения без отдельного encoder|vision encoder. Она разбивает картинку на патчи, квантует каждый патч в дискретный токен через кодовую книгу и подаёт эти токены прямо в LLM как обычные текстовые. GPT-4V (OpenAI, 2023) использует отдельный encoder|vision encoder (предположительно ViT) и механизм cross-attention для связи визуальных и текстовых представлений. Главное отличие: Fuyu — единая end-to-end архитектура без специализированного визуального кодировщика, что упрощает обучение, но снижает качество понимания изображений.


1. Термины: vision encoder, патчи, токенизация изображений, кодовая книга

encoder|Vision encoder — нейросеть (обычно ViT или ResNet), которая преобразует изображение в последовательность визуальных эмбеддингов. В мультимодальных моделях эти эмбеддинги затем подаются в LLM.

Патчи (patches) — фрагменты изображения фиксированного размера (например, 16×16 пикселей). Изображение делится на сетку патчей, каждый патч обрабатывается отдельно.

Токенизация изображений — процесс преобразования патча в дискретный токен (число из фиксированного словаря). В Fuyu это делается через кодовую книгу (codebook) — набор learnable векторов. Каждый патч маппится на ближайший вектор из кодовой книги, его индекс становится токеном.

Кодовая книга (codebook) — матрица размером (K, D), где K — количество токенов (например, 8192), D — размерность эмбеддинга. Используется в VQ-VAE и подобных архитектурах.


2. Архитектура Fuyu-8B: без vision encoder

Fuyu-8B (опубликован Adept в декабре 2023) — это decoder-only LLM (на базе 8B параметров), которая принимает на вход смесь текстовых и визуальных токенов. Процесс:

  1. Разбиение изображения на патчи. Изображение масштабируется до фиксированного размера (например, 224×224), делится на патчи 16×16. Получается (14×14 = 196) патчей.
  2. Квантование каждого патча. Каждый патч прогоняется через небольшой patch encoder (свёрточная сеть) и затем через кодовую книгу — выбирается ближайший вектор из codebook. Индекс этого вектора — визуальный токен.
  3. Формирование последовательности. Визуальные токены вставляются в начало или между текстовыми токенами. Специальные токены-разделители (<image>, </image>) обозначают границы.
  4. Подача в LLM. Стандартный transformer (decoder) обрабатывает всю последовательность как обычные токены. LLM не знает, что часть токенов — визуальные; она учится предсказывать следующий токен (текстовый или визуальный) на всём корпусе.

Ключевая особенность: нет отдельного vision encoder, который бы выдавал непрерывные эмбеддинги. Визуальная информация сжимается в дискретные токены, которые LLM учится интерпретировать.

Обучение: end-to-end на парах (изображение, текст). Функция потерь — стандартный cross-entropy на текстовых токенах (визуальные токены тоже предсказываются, но loss на них не считается, так как они — вход). Patch encoder и codebook обучаются вместе с LLM.


3. Архитектура GPT-4V: отдельный vision encoder

GPT-4V (OpenAI, 2023) — мультимодальная версия GPT-4. Точная архитектура не раскрыта, но на основе публикаций и анализа можно восстановить общую схему:

  1. Vision encoder. Предположительно, это ViT-L/14 (Vision Transformer) или аналогичный, предобученный на огромном датасете изображений (CLIP, DINOv2). Encoder выдаёт последовательность визуальных эмбеддингов (например, 256 или 576 токенов для изображения 224×224).
  2. Проекция / alignment. Визуальные эмбеддинги проходят через проекционный слой (MLP или Q-Former), чтобы привести их размерность к размерности эмбеддингов LLM.
  3. Cross-attention или concatenation. В GPT-4V, скорее всего, используется cross-attention между визуальными эмбеддингами и текстовыми токенами внутри LLM. Альтернатива — просто конкатенация визуальных эмбеддингов с текстовыми (как в LLaVA), но cross-attention даёт более гибкое взаимодействие.
  4. LLM. Стандартный decoder transformer (GPT-4) обрабатывает объединённую последовательность.

Отличие от Fuyu: визуальные эмбеддинги непрерывны (не квантованы) и получены мощным предобученным encoder'ом. Это даёт более богатое представление изображения, но требует дополнительных вычислительных ресурсов и этапа alignment.


4. Сравнение архитектур (таблица)

ХарактеристикаFuyu-8BGPT-4V
Vision encoderНет (patch encoder + codebook)Отдельный ViT (предположительно)
Тип визуальных представленийДискретные токены (индексы codebook)Непрерывные эмбеддинги
Способ интеграции с LLMПрямая подача токенов в LLMCross-attention или конкатенация
Сложность архитектурыНизкая (единая модель)Высокая (два модуля, alignment)
Количество параметров~8B (все параметры обучаются)~1.8T (GPT-4) + encoder
Качество понимания изображенийСреднее (потеря из-за квантования)Высокое (богатые эмбеддинги)
Скорость инференсаВысокая (нет отдельного encoder)Ниже (два прохода)
Возможность fine-tuningПростой end-to-endТребует осторожности (заморозка encoder)
Размер контекстаОграничен длиной последовательности (визуальные токены занимают много места)Может быть больше за счёт сжатия encoder'ом

5. Преимущества Fuyu-8B

  • Простота архитектуры. Нет необходимости в отдельном vision encoder, alignment слоях. Всё обучается end-to-end.
  • Меньше параметров. Весь визуальный процессор — маленький patch encoder + codebook (несколько миллионов параметров против сотен миллионов у ViT).
  • Быстрый инференс. Не нужно прогонять изображение через большой encoder; квантование патчей быстрое.
  • Гибкость. Можно подавать изображения любого размера (просто меняется количество патчей), хотя есть ограничение по длине контекста.
  • Простой fine-tuning. Можно дообучать модель на новых доменах без заморозки частей.

6. Недостатки Fuyu-8B

  • Потеря информации при квантовании. Дискретные токены не могут передать тонкие детали изображения (цвета, текстуры). Качество ниже, чем у непрерывных эмбеддингов.
  • Ограниченная разрешающая способность. Каждый патч квантуется в один токен — теряется пространственная структура внутри патча.
  • Длинная последовательность. Для изображения 224×224 получается 196 токенов. Для больших изображений (1024×1024) — 4096 токенов, что может превысить контекстное окно.
  • Зависимость от кодовой книги. Размер codebook (K) — гиперпараметр; слишком маленький — плохое покрытие, слишком большой — сложность обучения.
  • Качество уступает GPT-4V. В бенчмарках (VQA, captioning) Fuyu показывает результаты ниже, чем модели с vision encoder.

7. Преимущества GPT-4V

  • Высокое качество. Vision encoder предобучен на миллиардах изображений, даёт богатые представления. Cross-attention позволяет LLM фокусироваться на нужных частях изображения.
  • Гибкость в разрешении. Encoder может обрабатывать изображения разных размеров, адаптируя количество патчей.
  • Поддержка сложных задач. Распознавание текста на изображениях, понимание графиков, детальное описание сцен.

8. Недостатки GPT-4V

  • Сложность архитектуры. Требуется alignment между encoder и LLM, что усложняет обучение и fine-tuning.
  • Больше параметров. Vision encoder добавляет сотни миллионов параметров, увеличивая стоимость инференса.
  • Меньшая скорость. Два прохода (encoder + LLM) увеличивают latency.
  • Закрытость. Точная архитектура неизвестна, сложно воспроизвести.

9. Когда выбирать Fuyu, а когда GPT-4V

СценарийРекомендуемая модель
Мобильное устройство, ограниченные ресурсыFuyu-8B (меньше параметров, быстрее)
Простые задачи (классификация, грубое описание)Fuyu-8B
Высокое качество (медицина, юриспруденция)GPT-4V
Fine-tuning под специфический доменFuyu-8B (проще end-to-end)
Обработка больших изображений (4K)GPT-4V (лучше сжимает)

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

Задача: Реализовать упрощённую версию Fuyu-8B на PyTorch и сравнить её с LLaVA (модель с vision encoder) на датасете COCO Captions.

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

Шаги:

  1. Взять маленькую LLM (например, GPT-2 124M) и заменить embedding слой, чтобы он принимал токены изображений.
  2. Реализовать patch encoder (Conv2d + Linear) и codebook (VQ-VAE стиль). Размер codebook = 512, размерность = 64.
  3. Написать функцию image_to_tokens(image), которая делит изображение на патчи 16×16, квантует и возвращает последовательность индексов.
  4. Обучить модель на 10% COCO Captions (пары изображение-текст) с loss только на текстовых токенах. Использовать оптимизатор AdamW, batch size 8.
  5. Для сравнения взять LLaVA-7B (или её маленькую версию LLaVA-1.5-7B) и зафиксировать encoder, обучить только проектор.
  6. Оценить обе модели на val-выборке по метрикам BLEU-4, CIDEr.

Ожидаемый результат: Вы увидите, что LLaVA даёт более высокие метрики, но Fuyu обучается быстрее (меньше параметров). Вы также заметите, что Fuyu хуже справляется с детальным описанием (например, цвета, мелкие объекты).


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

ВопросТема
538Что такое мультимодальные LLM и как они работают?
540Как устроен vision encoder в GPT-4V?
541Сравнение LLaVA, BLIP-2 и Fuyu
542Как обучать мультимодальные модели end-to-end?
543Проблема alignment визуальных и текстовых представлений
544Использование мультимодальных моделей в RAG

Навигация