Что такое 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-8B | GPT-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
- Простота архитектуры: нет отдельного vision encoder → меньше параметров, легче обучать и дообучать.
- Произвольное разрешение: можно подавать изображения любого размера без потери деталей (например, документы с мелким текстом). GPT-4V пришлось бы ресайзить, что снижает качество OCR.
- Сквозное обучение: модель учится извлекать визуальные признаки, оптимальные для языковой задачи, а не полагается на фиксированный encoder.
- Эффективность инференса: меньше операций (нет отдельного прогона через ViT), что снижает задержку.
- Открытость: веса доступны, можно дообучать под свои данные (fine-tuning).
6. Недостатки и ограничения Fuyu-8B
- Качество визуального понимания: из-за отсутствия мощного предобученного vision encoder Fuyu хуже справляется со сложными визуальными сценами, распознаванием объектов и тонкими деталями.
- Ограниченный контекст: 2048 токенов — это мало для больших изображений (например, 1024×1024 пикселя дают ~4096 патчей 16×16, что превышает контекст).
- Меньший размер модели: 8B против 1.7T — разрыв в производительности огромен.
- Отсутствие мультишагового рассуждения: GPT-4V может использовать цепочки мыслей (chain-of-thought) с визуальными подсказками, Fuyu — хуже.
- Не поддерживает видео: 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 для интерфейса
Шаги:
- Загрузить модель Fuyu-8B через
AutoModelForCausalLMи процессорFuyuProcessor. - Написать функцию, которая принимает изображение и текстовый запрос, токенизирует их и генерирует ответ.
- Протестировать на простых вопросах: «Какая общая сумма?», «Дата?», «Наименование товара?».
- Сравнить качество с GPT-4V (через API) на тех же изображениях — заметить, где Fuyu ошибается (мелкий текст, повёрнутые документы).
- (Опционально) Дообучить 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. Навигация
- Предыдущий: 361
- Следующий: 363
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 361
- Следующий: 363
- Индекс: 00. Индекс разборов