Компьютерное зрение
Vision-Language Models
Pinterest ищет 500 миллионов пинов по визуальному сходству. Google Lens отвечает на вопросы о цветке в горшке. Instagram генерирует alt-текст для 100 миллионов фото в день для незрячих пользователей. До CLIP (2021) каждая задача требовала отдельно обученной модели с дорогостоящей разметкой. Vision-Language модели объединили зрение и язык: один CLIP embedding позволяет искать, классифицировать и сравнивать без единой метки.
- **Pinterest** - 500M+ изображений индексировано через CLIP embeddings; visual search находит похожие пины; zero-shot classification новых трендов без переобучения
- **Google Lens** - BLIP-style captioning + VQA: сфотографировать растение и получить название и уход; 8+ миллиардов ответов в год
- **Instagram Accessibility** - автоматический alt-text через BLIP для 100M+ изображений в день; незрячие пользователи получают описание без ручной модерации
Предварительные знания
- Vision Transformers и как патч-эмбеддинги превращают изображение в токены
- Внимание трансформера и cross-attention между двумя последовательностями токенов
- Embedding пространства, cosine similarity и классификация через softmax
Пять лет, которые построили vision-language модели
CLIP вышел в январе 2021 года из команды под руководством Алека Рэдфорда в OpenAI и доказал, что контрастивное обучение на 400 миллионах пар изображение-текст из интернета сравнимо с supervised ResNet-50 без меток задачи. В январе 2022 года Salesforce выпустила BLIP, а затем BLIP-2 в 2023, где появился Q-Former как мост между замороженным vision encoder и замороженной языковой моделью. В апреле 2022 года DeepMind опубликовала Flamingo, первую модель, работающую с interleaved image-text последовательностями для few-shot обучения. В 2023 году поле двигалось быстро: OpenAI добавила зрение в GPT-4 (GPT-4V), а open-source LLaVA показала, что один MLP-коннектор, обученный на инструкциях от GPT-4, превращает замороженный CLIP-энкодер и модель LLaMA в способного визуального ассистента за один день обучения.
CLIP: Contrastive Language-Image Pretraining
Google Images ищет фото по тексту. Как? До 2021 года - теги и alt-тексты. OpenAI CLIP (2021) изменил подход: обучение на 400 миллионах пар (изображение, текст) из интернета без разметки. CLIP научился сравнивать изображения и тексты в едином пространстве эмбеддингов - 'фото кошки' близко к вектору 'cat' и 'kitten'.
**CLIP** - два энкодера: ImageEncoder (ViT или ResNet) и TextEncoder (Transformer). Обучение: контрастивная функция потерь - эмбеддинг изображения должен быть близок к эмбеддингу его текстового описания и далёк от описаний других изображений в батче. Результат: универсальные мультимодальные эмбеддинги.
Почему CLIP не требует размеченных данных для zero-shot классификации новых категорий?
BLIP и BLIP-2: Image Captioning и VQA
CLIP сравнивает, но не генерирует текст. Instagram автоматически создаёт alt-текст для изображений (accessibility). Google Lens отвечает на вопросы о фото. Это задачи image captioning и Visual Question Answering - для них нужен генеративный языковой декодер.
**BLIP-2** (Salesforce, 2023) добавляет Q-Former (Querying Transformer) как мост между frozen image encoder (ViT-g, 1.8B параметров) и frozen LLM (FlanT5/OPT). Обучаются только веса Q-Former (~188M) - freeze большие модели, обучить маленький мост.
Что такое Q-Former в BLIP-2 и зачем он нужен?
Flamingo: Few-Shot Visual Learning
Врач хочет задать вопрос по рентгеновскому снимку и показать 3 примера правильных ответов для контекста - few-shot learning с изображениями. DeepMind Flamingo (2022) - первая модель, поддерживающая interleaved image-text последовательности: текст + картинка + текст + картинка + вопрос ответ.
**Flamingo** - frozen Chinchilla LLM + frozen CLIP vision encoder + обучаемые Perceiver Resampler и cross-attention слои в LLM. Perceiver Resampler сжимает 2D-feature map любого размера в 64 fixed tokens. 80B параметров total.
Зачем Perceiver Resampler сжимает image features до 64 фиксированных токенов?
GPT-4V и современные мультимодальные LLM
OpenAI GPT-4V (2023), Anthropic Claude 3, Google Gemini Ultra - multimodal LLM которые смотрят на изображение и рассуждают о нём как о тексте. Разработчик загружает скриншот ошибки - GPT-4V читает код, понимает stack trace, предлагает fix. Это не просто caption, это reasoning.
Современная open-source архитектура: **LLaVA** - CLIP ViT + MLP проекция + Vicuna/LLaMA. **InstructBLIP** - BLIP-2 + instruction tuning. Ключевое отличие от Flamingo: instruction-following через RLHF/DPO.
| Модель | Компания | Open source | Особенность |
|---|---|---|---|
| CLIP | OpenAI | Weights | Только embeddings, zero-shot |
| BLIP-2 | Salesforce | Да | Q-Former, captioning + VQA |
| Flamingo | DeepMind | Нет | Few-shot, interleaved sequences |
| LLaVA-1.6 | Community | Да | CLIP + LLaMA, instruction-following |
| GPT-4V | OpenAI | Нет | Reasoning, лучшая точность |
| Gemini Ultra | Нет | Native multimodal pretraining |
Vision-Language модели понимают изображения так же, как человек
VLM выполняют статистическое сопоставление паттернов. GPT-4V может неверно прочитать цифры на графике, галлюцинировать объекты которых нет, не заметить аномалию в медицинских изображениях.
CLIP обучен на интернет-данных где котики преобладают над рентгеновскими снимками. GPT-4V показывает ~90% на OCR естественных изображений, но ~60% на рукописных схемах. Для production требуется валидация на domain-specific данных.
В чём принципиальное отличие GPT-4V от CLIP при работе с изображением?
Ключевые идеи
- **CLIP** - контрастивное обучение на 400M (image, text) парах; единое embedding пространство; zero-shot classification через text prompts
- **BLIP-2** - Q-Former мост между frozen ViT и frozen LLM; только Q-Former обучается (~188M параметров); captioning и VQA
- **Flamingo** - first few-shot VLM; Perceiver Resampler сжимает image в 64 токена; interleaved image-text sequences
- **GPT-4V / LLaVA** - reasoning-capable VLM; instruction tuning через RLHF; LLaVA = open-source (CLIP + LLaMA)
Связанные темы
Vision-Language Models строятся на основах CV и NLP:
- CV System Design — VLM как компонент в продакшн системах поиска и модерации
- Transformers для CV — ViT - backbone большинства VLM (CLIP, BLIP, Flamingo используют ViT)
Вопросы для размышления
- CLIP обучен на интернет-данных. Pinterest индексирует fashion через CLIP. Какие проблемы возникнут с поиском традиционных костюмов разных культур и как их решить без полного переобучения?
- BLIP-2 замораживает и ViT и LLM, обучая только Q-Former. В чём преимущества перед end-to-end fine-tuning? Какие задачи будет решать хуже?
- GPT-4V показывает 90% на OCR естественных изображений и 60% на рукописных схемах. Как построить production систему чтения рукописных медицинских рецептов?
Связанные уроки
- cv-16 — Self-supervised представления из урока 16 это image encoder в CLIP
- cv-18 — VLM разворачиваются в продакшен CV-системах из урока 18
- dl-05 — Attention трансформера общая архитектура энкодеров изображения и текста
- ml-01-intro — Контрастивное обучение это форма metric learning, общая основа
- dl-01