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

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

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

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


1. Термин: Мультимодальные LLM

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

Ключевая архитектурная дилемма: как соединить визуальную информацию (обычно из свёрточных сетей или ViT) с текстовым пространством языковой модели. Существует два основных подхода:

  • Гибридный (как GPT-4V): отдельный encoder|vision encoder + проекционный слой, который отображает визуальные признаки в эмбеддинги, понятные LLM.
  • Интегрированный (как Fuyu-8B): изображение разбивается на патчи, каждый патч линеаризуется и подаётся как обычные токены в ту же языковую модель, без выделенного encoder|vision encoder.

Термин «Vision encoder» — нейросеть (обычно ViT или ResNet), которая преобразует пиксели изображения в компактные векторные представления (признаки). Проекционный слой — линейная или MLP-проекция, которая приводит размерность признаков vision encoder к размерности эмбеддингов LLM.


2. Архитектура Fuyu-8B

Fuyu-8B (опубликована Adept AI в 2023 году) — это decoder-only языковая модель, которая обучена с нуля на тексте и изображениях. Её ключевая особенность:

  • Изображение → патчи: изображение делится на квадратные патчи фиксированного размера (например, 16×16 пикселей). Каждый патч вытягивается в одномерный вектор (RGB-значения) и подаётся как последовательность токенов.
  • Линейная проекция патчей: каждый патч проходит через обучаемую линейную проекцию, которая преобразует его в эмбеддинг той же размерности, что и текстовые токены.
  • Единая модель: эти визуальные эмбеддинги смешиваются с текстовыми токенами и обрабатываются одним и тем же набором трансформерных слоёв. Нет отдельного vision encoder — модель сама учится извлекать визуальные признаки через сквозное обучение (end-to-end).
  • Произвольное разрешение: поскольку изображение просто разбивается на патчи, Fuyu может принимать изображения любого размера (патчи просто образуют более длинную последовательность). Это важное преимущество перед моделями, требующими ресайза.

Пример инференса (упрощённо):

# Псевдокод для Fuyu-8B
image = load_image("photo.jpg")          # произвольный размер
patches = split_into_patches(image, patch_size=16)  # (N_patches, 16*16*3)
patch_embeds = linear_projection(patches)           # (N_patches, d_model)
text_tokens = tokenize("What is in this image?")
input_embeds = concat(patch_embeds, text_tokens)
output = transformer.generate(input_embeds)

Размер модели: 8B параметров, что делает её относительно лёгкой для запуска на одном GPU (с квантизацией).


3. Архитектура GPT-4V

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

  • Vision encoder: отдельная модель (предположительно ViT-L/14 или аналогичная), которая принимает изображение, ресайзит его до фиксированного размера (например, 224×224 или 336×336) и выдаёт последовательность визуальных признаков (обычно 256 или 576 токенов).
  • Проекционный слой: MLP или линейный слой, который отображает признаки vision encoder в пространство эмбеддингов LLM.
  • LLM (GPT-4): стандартный decoder-only трансформер, который принимает конкатенацию текстовых токенов и визуальных эмбеддингов.
  • Ограничение по разрешению: из-за фиксированного размера входа vision encoder изображение должно быть ресайзнуто, что может приводить к потере деталей (особенно для мелких объектов или текста).

Ключевое отличие: vision encoder предобучен на огромном количестве изображений (например, CLIP) и не обучается вместе с LLM (или обучается только частично). Это даёт сильные визуальные представления, но увеличивает общее число параметров (GPT-4V оценивается в ~1.7T параметров, включая encoder).


4. Сравнительная таблица

ХарактеристикаFuyu-8BGPT-4V
Параметры8B~1.7T (оценка)
Vision encoderНет (патчи напрямую)Отдельный ViT
Проекционный слойЛинейная проекция патчейMLP-проекция признаков
Обработка изображенийПроизвольное разрешение (патчи)Фиксированный ресайз (224–336px)
ОбучениеEnd-to-end (сквозное)Vision encoder предобучен, LLM дообучается
Размер контекста2048 токенов (текст + патчи)8192–128k токенов
ДоступностьОткрытые веса (Apache 2.0)Закрытая API
ПроизводительностьХорошая на простых задачах, уступает GPT-4V на сложныхСостояние-оф-арт на большинстве бенчмарков
Вычислительные затратыНизкие (можно запустить на 1 GPU)Очень высокие (требуется кластер)

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

  1. Простота архитектуры: нет отдельного vision encoder → меньше параметров, легче обучать и дообучать.
  2. Произвольное разрешение: можно подавать изображения любого размера без потери деталей (например, документы с мелким текстом). GPT-4V пришлось бы ресайзить, что снижает качество OCR.
  3. Сквозное обучение: модель учится извлекать визуальные признаки, оптимальные для языковой задачи, а не полагается на фиксированный encoder.
  4. Эффективность инференса: меньше операций (нет отдельного прогона через ViT), что снижает задержку.
  5. Открытость: веса доступны, можно дообучать под свои данные (fine-tuning).

6. Недостатки и ограничения Fuyu-8B

  1. Качество визуального понимания: из-за отсутствия мощного предобученного vision encoder Fuyu хуже справляется со сложными визуальными сценами, распознаванием объектов и тонкими деталями.
  2. Ограниченный контекст: 2048 токенов — это мало для больших изображений (например, 1024×1024 пикселя дают ~4096 патчей 16×16, что превышает контекст).
  3. Меньший размер модели: 8B против 1.7T — разрыв в производительности огромен.
  4. Отсутствие мультишагового рассуждения: GPT-4V может использовать цепочки мыслей (chain-of-thought) с визуальными подсказками, Fuyu — хуже.
  5. Не поддерживает видео: GPT-4V может обрабатывать последовательности кадров, Fuyu — только одиночные изображения.

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

СценарийРекомендуемая модель
Нужна лёгкая модель для edge-устройствFuyu-8B (квантизованный)
Обработка документов с произвольным разрешениемFuyu-8B
Требуется высокая точность на сложных визуальных задачахGPT-4V
Есть бюджет на API и нужна надёжностьGPT-4V
Хочется дообучить модель под свою доменную областьFuyu-8B (открытые веса)
Работа с видео или многокадровыми сценамиGPT-4V

8. Связь с другими мультимодальными подходами

  • LLaVA (Large Language and Vision Assistant): использует предобученный vision encoder (CLIP ViT) и проекционный слой (MLP) для соединения с LLM (Vicuna). Ближе к GPT-4V, но с открытыми весами. Fuyu отличается отсутствием encoder.
  • BLIP-2: использует Q-Former (querying transformer) для извлечения визуальных признаков, которые затем подаются в LLM. Это гибридный подход, но с дополнительным модулем.
  • Flamingo (DeepMind): использует замороженный vision encoder и «gated cross-attention» слои между визуальными признаками и LLM. Fuyu проще — просто конкатенация токенов.
  • CogVLM: использует глубокую интеграцию визуальной информации через дополнительные визуальные экспертные модули внутри LLM. Fuyu — минималистичный подход.

Основная ось сравнения: степень интеграции визуального и языкового потоков. Fuyu — полная интеграция (один трансформер), GPT-4V/LLaVA — раздельные модули с проекцией.


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

Задача: Создать мультимодального чат-бота, который отвечает на вопросы по изображениям документов (счета, квитанции) с использованием Fuyu-8B.

Инструменты:

  • Hugging Face Transformers (модель adept/fuyu-8b)
  • Python, PyTorch
  • Набор изображений (например, сканы квитанций из открытых датасетов)
  • Gradio для интерфейса

Шаги:

  1. Загрузить модель Fuyu-8B через AutoModelForCausalLM и процессор FuyuProcessor.
  2. Написать функцию, которая принимает изображение и текстовый запрос, токенизирует их и генерирует ответ.
  3. Протестировать на простых вопросах: «Какая общая сумма?», «Дата?», «Наименование товара?».
  4. Сравнить качество с GPT-4V (через API) на тех же изображениях — заметить, где Fuyu ошибается (мелкий текст, повёрнутые документы).
  5. (Опционально) Дообучить Fuyu на датасете квитанций с помощью LoRA, чтобы улучшить OCR.

Ожидаемый результат: Работающий демо-бот, который показывает сильные и слабые стороны Fuyu-8B. Вывод: для простых документов с чётким текстом Fuyu справляется, но для сложных (рукописный текст, низкое разрешение) уступает GPT-4V.


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

ВопросТема
361Что такое мультимодальные RAG и как они работают?
363Как устроена архитектура LLaVA?
364Сравнение BLIP-2 и Flamingo
365Какие вы знаете техники соединения vision encoder и LLM?
370Как fine-tune'ить мультимодальные модели?
380Что такое Qwen-VL и чем отличается от Fuyu?

11. Навигация


Навигация