CLIP и multimodal модели на собеседовании Data Scientist
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем разбирать на собесе
CLIP — фундамент современных multimodal систем. На собесе DS: «как работает CLIP», «зачем contrastive», «применения». Senior — нюансы fine-tuning, зачем ALIGN / FLIP.
CLIP: архитектура
CLIP (Contrastive Language-Image Pre-training, OpenAI 2021).
Two towers:
- Image encoder — ViT или ResNet.
- Text encoder — Transformer.
Оба выводят embeddings в общее пространство (обычно 512-dim).
image → image_embedding (512)
text → text_embedding (512)
similarity = cosine(image_emb, text_emb)Тренировка. На 400M пар (image, caption) из интернета. Цель — сделать embedding пары близкими, эмбеддинг разных пар — далёкими.
Contrastive learning
Loss (InfoNCE / contrastive):
L = -log( exp(sim(I, T+)/τ) / Σ exp(sim(I, T_j)/τ) )В батче из N пар (I_i, T_i):
- Для каждой картинки I_i — positive это T_i, negatives — все T_j (j ≠ i).
- Симметрично для текстов.
- Total loss = (image_loss + text_loss) / 2.
Temperature τ — learnable scalar, контролирует sharpness. CLIP использует learnable log_τ.
Большой batch важен. Чем больше негативов в батче — тем сильнее learning signal. CLIP тренировался на batch=32k через distributed training.
Zero-shot classification
Без fine-tuning можно классифицировать.
1. Список классов: ["cat", "dog", "car", "tree"]
2. Сделать prompt: "a photo of a cat", "a photo of a dog", ...
3. Получить text embeddings для каждого prompt.
4. Картинку → image embedding.
5. Argmax cosine similarity с text embeddings.CLIP zero-shot на ImageNet ~76% top-1 — без single training image из ImageNet.
Prompt engineering важен.
- "a photo of {class}" работает лучше, чем просто "{class}".
- Ensemble prompts: usuredness через несколько prompt templates.
Применения
Image search. Запрос текстом → ищем картинки с близким embedding.
Image classification без labels. Список классов → zero-shot.
Content moderation. Ловим нежелательный контент через text prompts.
Diffusion models guidance. Stable Diffusion использует CLIP для conditional generation (text → image).
OCR / VQA через VLM. GPT-4V, Gemini, Claude используют CLIP-style backbone.
Recsys. Cross-modal retrieval (текстовый запрос → image, video).
Современные multimodal модели
ALIGN (Google). Сравним с CLIP, обучен на noisy data из интернета (1.8B пар).
FLIP (Facebook). Маскирует часть изображения для эффективности (быстрее в 2-3×).
CoCa. Contrastive + captioning training.
BLIP / BLIP-2. Видение + язык с генерацией captions.
LLaVA, GPT-4V, Gemini, Claude 3. Полноценные VLM (Vision Language Models) — могут не только classify, но и описывать, отвечать на вопросы.
Multimodal embedding tricks. Sentence-transformers + CLIP-style для cross-modal retrieval в production.
Частые ошибки
Без prompt engineering. Zero-shot accuracy сильно зависит от prompts. "a {class}" vs "a photo of a {class}".
Использовать на специфичных доменах. CLIP обучен на интернет-данных. Медицина / промышленность — fine-tuning или специализированные модели.
Сравнение embeddings без l2-normalize. Cosine corretly реализуется через normalize → dot.
Игнорировать text length. Text encoder CLIP — 77 tokens максимум. Длинные тексты обрезаются.
Multi-language без adaptation. CLIP в основном на английском. Для русского — Multilingual CLIP, ru-CLIP, OpenCLIP с русским fine-tune.
Связанные темы
- BERT vs GPT на собесе DS
- CNN-архитектуры на собесе DS
- Embeddings на собесе DS
- Two-tower DSSM на собесе DS
- Подготовка к собесу Data Scientist
FAQ
CLIP заменит CNN-классификаторы?
В zero-shot — частично да. На production accuracy classification — fine-tuned CLIP или специальный модель часто лучше.
Можно дообучать CLIP?
Да: full fine-tuning, LoRA-style, или контрастивно на своих парах. Multilingual / domain adaptation популярны.
Это официальная информация?
Нет. Статья основана на работе CLIP (Radford 2021) и open source реализаций (OpenCLIP).
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.