Мультимодальные модели: VLM, CLIP, LLaVA¶
~8 минут чтения
Предварительно: Vision трансформеры | MQA/GQA внимание
Связанный файл: Vision-Language модели -- архитектура VLM, лидерборд 2026, deployment, applications
Мультимодальные модели (VLM) объединяют зрение и язык в единую систему. GPT-5.2 достигает 85.4% на MMMU, а open-source Qwen2.5-VL сопоставим при стоимости обучения всего 70 GPU-часов (LLaVA-1.5 7B). Ключевой прорыв 2025-2026: SigLIP снизил требование к batch size с 32K до 1K, LLaVA Steering сократил trainable параметры в 500 раз vs LoRA, а Dynamic Resolution (AnyRes) устранил деградацию на нестандартных разрешениях.
Ключевые концепции¶
Архитектура VLM: три стадии¶
graph LR
A[Image] --> B[Vision Encoder<br/>CLIP/SigLIP/DINOv2<br/>0.3-1B params]
B --> C[Projector<br/>Linear/MLP/Q-Former<br/>1M-100M params]
C --> D[LLM Backbone<br/>Llama/Qwen/Gemma<br/>7B-70B params]
D --> E[Text Output]
style A fill:#e8eaf6,stroke:#3f51b5
style B fill:#fff3e0,stroke:#ef6c00
style C fill:#f3e5f5,stroke:#9c27b0
style D fill:#e8f5e9,stroke:#4caf50
style E fill:#e8eaf6,stroke:#3f51b5
Token flow (пример):
graph TD
A["Image 224x224"] --> B["16x16 patches = 196 patches"]
B --> C["ViT: 196 x 1024 features"]
C --> D["Projector: 196 x 4096 (LLM dim)"]
D --> E["[IMG1]...[IMG196] + text prompt"]
E --> F["LLM generates response"]
style A fill:#e8eaf6,stroke:#3f51b5
style B fill:#fff3e0,stroke:#ef6c00
style C fill:#fff3e0,stroke:#ef6c00
style D fill:#f3e5f5,stroke:#9c27b0
style E fill:#e8f5e9,stroke:#4caf50
style F fill:#e8f5e9,stroke:#4caf50
Типы архитектур¶
| Архитектура | Примеры | Особенности |
|---|---|---|
| Dual-Encoder | CLIP, SigLIP | Separate encoders, contrastive learning |
| Fusion | LLaVA, BLIP, Flamingo | Visual tokens injected into LLM |
| Unified | Qwen2-VL, GPT-4V | Single model for all modalities |
| MoE-based | LLaVA-CMoE | Mixture of Experts для multimodal |
CLIP¶
Contrastive Language-Image Pre-training. InfoNCE loss:
class CLIP:
def forward(self, images, texts):
I_f = self.image_encoder(images) # [B, 512]
T_f = self.text_encoder(texts) # [B, 512]
I_f = I_f / I_f.norm(dim=-1, keepdim=True)
T_f = T_f / T_f.norm(dim=-1, keepdim=True)
logits = (I_f @ T_f.T) / self.temperature # similarity matrix
return logits
Ограничения CLIP (2025): - 77-token text truncation - Isolated encoding (no cross-attention) - Bag-of-words behavior (poor compositionality) - Multi-object scenario struggles - Visual shortcomings (orientation, color, quantity) - Large batch size requirement (32K+)
SigLIP 2¶
Sigmoid-based loss вместо softmax. Batch size 1K вместо 32K.
| Метрика | CLIP | SigLIP 2 |
|---|---|---|
| Loss | Softmax (InfoNCE) | Sigmoid (Binary) |
| Min batch size | 32,768 | 1,024 |
| Zero-shot (ImageNet) | 76.2% | 78.1% |
| Retrieval (COCO) | 58.5% | 61.2% |
Vision Encoders¶
| Encoder | Params | Resolution | Best For |
|---|---|---|---|
| CLIP ViT-L/14 | 300M | 336x336 | General VQA |
| SigLIP | 400M | 384x384 | OCR, dense text |
| DINOv2 | 1.1B | 518x518 | Segmentation, dense features |
| EVA-CLIP | 1B | 448x448 | High quality |
Projectors (Vision -> Language)¶
| Тип | Params | Формула | Trade-off |
|---|---|---|---|
| Linear | 1-10M | \(W \cdot x + b\) | Быстрый, простой |
| MLP | 10-50M | \(W_2 \cdot \text{GELU}(W_1 \cdot x + b_1) + b_2\) | Более выразительный |
| Q-Former | 50-100M | Cross-attention: learnable queries attend to visual features | Компрессия, лучшее качество |
| Cross-Attn | 100M+ | Full cross-modal attention | Лучшее качество, медленный |
LLaVA¶
graph LR
A[Image] --> B["CLIP ViT (frozen)"]
B --> C["Linear/MLP (trainable)"]
C --> D["LLM (Vicuna/LLaMA)"]
style A fill:#e8eaf6,stroke:#3f51b5
style B fill:#fff3e0,stroke:#ef6c00
style C fill:#f3e5f5,stroke:#9c27b0
style D fill:#e8f5e9,stroke:#4caf50
Training: Stage 1 (alignment): freeze encoder+LLM, train projector on image-caption pairs. Stage 2 (instruction tuning): freeze encoder, train projector+LLM on VQA/conversations.
| Вариант | Размер | Инновация |
|---|---|---|
| LLaVA-1.5 | 7B-13B | MLP projector, SOTA on 11 benchmarks |
| LLaVA-NeXT | 7B-110B | Dynamic resolution |
| LLaVA Steering | 7B | 500x fewer params than LoRA (ACL 2025) |
| LLaVA-CMoE | 7B | MoE для continual learning |
Cross-Modal Attention¶
Fusion strategies: Early (concatenate features), Late (combine predictions), Hybrid (multiple fusion points), Graph-based (cross-modal graphs).
Audio-Language Models¶
Паттерн: Audio Encoder (Whisper) -> Adaptor (MLP) -> LLM Backbone.
| Модель | Audio Encoder | LLM | Фича |
|---|---|---|---|
| Qwen2-Audio | Whisper-based | Qwen2 | Multi-task |
| Audio Flamingo 3 | AF-Whisper | Qwen2.5-7B | Unified encoder |
| Qwen2.5-Omni | Multi-modal | Qwen2.5 | All modalities |
2026 Innovations¶
- Dual Vision Encoders: CLIP (global scene) + DINOv2 (local details) -> fusion -> LLM. Для medical, satellite.
- MoE Projector: разные experts для разных модальностей, learnable router.
- Decoder-Only Token Prediction: unified architecture, next-token prediction across modalities.
Детали и сравнения¶
Сравнение моделей 2026¶
| Model | MMMU | SWE-bench | MathVista | Best For |
|---|---|---|---|---|
| GPT-5.2 | 85.4% | ~70% | 72.3% | General multimodal |
| Claude Opus 4.6 | 82.1% | 80.9% | 71.8% | Coding, reasoning |
| Gemini 3 Pro | 83.5% | ~65% | 73.1% | Long video (1M ctx) |
| Qwen2.5-VL | 75.2% | -- | 68.5% | Open-source, OCR |
| DeepSeek-VL2 | -- | -- | -- | MoE efficiency (37B active) |
Context & Pricing¶
| Model | Context | Input $/M | Output $/M |
|---|---|---|---|
| GPT-5.2 | 400K | $1.50 | $6.00 |
| Claude 4.6 | 200K-1M | $5.00 | $25.00 |
| Gemini 3 Pro | 1M | $2.00 | $8.00 |
| Qwen2.5-VL | 32K | Self-host | Self-host |
Open-Source VLMs¶
| Model | Sizes | License | Особенность |
|---|---|---|---|
| Qwen2.5-VL | 3B, 7B, 72B | Apache 2.0 | Dynamic resolution (AnyRes) |
| DeepSeek-VL2 | 671B total/37B active | MIT | MoE routing |
| LLaVA-OneVision | 0.5B-72B | -- | Comprehensive |
| SmolVLM | 256M-2.2B | -- | On-device |
| Phi-3-Vision | 3.8B-14B | -- | Small, fast |
Training Costs¶
| Model | Alignment | Instruction | Total |
|---|---|---|---|
| LLaVA-1.5 7B | 20 GPU-hrs | 50 GPU-hrs | 70 GPU-hrs |
| LLaVA-1.5 13B | 30 GPU-hrs | 100 GPU-hrs | 130 GPU-hrs |
Resolution -> Memory¶
| Resolution | Patches | Memory |
|---|---|---|
| 224x224 | 196 | 1x |
| 336x336 | 441 | 2.25x |
| 448x448 | 784 | 4x |
Latency¶
| Model | Single Image | 10-page Doc |
|---|---|---|
| Qwen2.5-VL-7B | 1-2s | 2-5s |
| GPT-4o Vision | 1-3s | 3-8s |
| Claude 4.6 | 2-5s | 5-15s |
Production Deployment¶
| Option | Для чего |
|---|---|
| API (proprietary) | Ease of use, quality |
| vLLM | High-throughput |
| TensorRT-LLM | Maximum performance |
| llama.cpp | CPU inference |
| MLX | Apple Silicon |
Для интервью¶
Q: "Объясните CLIP contrastive learning."¶
Два отдельных encoder (ViT для image, Transformer для text). InfoNCE loss: maximize similarity для positive pairs (image + correct caption), minimize для negative. Joint embedding space. Zero-shot через text prompts. Limitations: 77-token truncation, isolated encoding, bag-of-words, batch 32K+.
Q: "CLIP vs SigLIP?"¶
SigLIP: sigmoid loss вместо softmax. Batch size 1K вместо 32K. Zero-shot ImageNet 78.1% vs 76.2%. Более training-efficient.
Q: "Как работает LLaVA?"¶
CLIP ViT encodes image -> visual features. Linear/MLP projects to LLM dimension. Visual tokens concatenated с text tokens. LLM generates response. Key: Visual Instruction Tuning на GPT-4 generated data. LLaVA Steering: 500x fewer params than LoRA (ACL 2025).
Q: "Типы projectors в VLM?"¶
Linear (1-10M params, простой), MLP (10-50M, более выразительный), Q-Former (50-100M, компрессия через learnable queries), Cross-Attention (100M+, лучшее качество, медленнее).
Q: "Как обрабатывать variable resolution?"¶
NaViT (dynamic patching), resize + padding, multi-scale features, AnyRes (Qwen2-VL: arbitrary resolution support).
Q: "Как уменьшить hallucinations в VLMs?"¶
CLIP-Guided Decoding, better visual instruction tuning data, RLHF/DPO, cross-modal consistency checks.
Q: "Design multimodal search system."¶
Encoders: CLIP (image) + text encoder. Index: vector DB (Milvus/Qdrant). Fusion: late fusion или cross-encoder reranking. Serving: real-time embedding + approximate search. Key: unified embedding space.
Q: "Scale VLM inference?"¶
Visual encoder caching, batch inference, speculative decoding, KV-cache optimization, quantization (GPTQ/AWQ), model sharding.
Ключевые числа¶
| Факт | Значение |
|---|---|
| CLIP batch size requirement | 32K+ |
| SigLIP batch size | 1K+ |
| LLaVA-1.5 training cost | 70 GPU-hrs (7B) |
| LLaVA Steering vs LoRA | 500x fewer params |
| GPT-5.2 MMMU | 85.4% |
| Claude 4.6 SWE-bench | 80.9% |
| Gemini 3 Pro context | 1M tokens |
| Resolution 224 -> 448 memory | 4x |
Заблуждение: CLIP понимает композицию сцены (кто что делает)
CLIP демонстрирует bag-of-words behavior -- он распознает объекты, но плохо различает "собака кусает человека" от "человек кусает собаку". Композиционность, ориентация, точное количество объектов -- слабые места. SigLIP 2 частично решает проблему, но не полностью.
Заблуждение: больше разрешение = лучше качество VLM
Увеличение разрешения с 224 до 448 дает 4x рост memory и квадратичный рост compute (196 -> 784 патча). Dynamic Resolution (AnyRes) в Qwen2-VL решает это адаптивно, но наивное увеличение разрешения при фиксированном context window приводит к вытеснению текстовых токенов и деградации качества ответов.
Заблуждение: VLM = просто прикрутить vision encoder к LLM
Projector -- критический компонент. Linear projector (1-10M params) теряет пространственную информацию. Q-Former (50-100M) делает compression через learnable queries -- лучше качество, но медленнее. Выбор projector определяет trade-off speed vs quality и должен соответствовать задаче.
Interview Questions¶
Q: Сравните CLIP и SigLIP -- почему SigLIP эффективнее?
Red flag: "SigLIP -- новая версия CLIP с лучшими результатами."
Strong answer: "CLIP использует softmax-based InfoNCE loss, который требует batch size 32K+ для стабильного обучения (каждый пример в batch -- negative для остальных, нужна статистика). SigLIP заменяет softmax на sigmoid -- binary classification для каждой пары независимо. Результат: batch size 1K достаточен, zero-shot ImageNet 78.1% vs 76.2%, retrieval COCO 61.2% vs 58.5%. Фундаментальная разница: pairwise sigmoid vs global softmax normalization."
Q: Спроектируйте multimodal search system для e-commerce (изображения + текст).
Red flag: "Используем CLIP для кодирования всех данных и ищем ближайших соседей."
Strong answer: "Два пути: (1) Late fusion -- отдельные CLIP image encoder и text encoder, unified embedding space, ANN search (Milvus/Qdrant с HNSW). Быстро, масштабируемо, но теряет cross-modal nuances. (2) Cross-encoder reranking -- top-100 кандидатов от late fusion, затем cross-attention модель для точного ранжирования. Pipeline: query embedding (50ms) -> ANN retrieval (10ms) -> reranking (100ms). Ключевые решения: offline indexing для каталога, real-time embedding для запросов, quantization (PQ/SQ) для memory, periodic reindex."
Q: Как уменьшить hallucinations в VLM?
Red flag: "Нужно больше данных для обучения и лучший prompt."
Strong answer: "Четыре подхода: (1) CLIP-Guided Decoding -- на каждом шаге генерации проверяем consistency с visual features через CLIP score. (2) Better training data -- visual instruction tuning на verified image-text pairs, фильтрация inconsistent данных. (3) RLHF/DPO -- reward model штрафует за описание несуществующих объектов, DPO с парами (hallucinated vs grounded). (4) Cross-modal consistency checks -- вторая модель верифицирует утверждения о visual content. Метрики: CHAIR (Caption Hallucination Assessment), POPE (object existence probing)."
Источники¶
- Nature -- "Multimodal learning with next-token prediction for LMMs"
- Sebastian Raschka -- "The Big LLM Architecture Comparison" (2026)
- Cameron Wolfe -- "Vision Large Language Models (vLLMs)"
- arXiv -- "Vision Encoders in VLMs: A Survey" (Feb 2026)
- arXiv -- "Unified Multimodal Understanding and Generation" (2505.02567)
- HuggingFace -- SigLIP 2 Blog
- ACL 2025 -- LLaVA Steering
- Zylos AI -- "Multimodal AI and VLMs 2026"
- LMCouncil -- "AI Model Benchmarks Feb 2026"
- Roboflow -- "Best Multimodal Models 2026"
- Analytics Vidhya -- "How Multimodal LLMs Work"
- arXiv -- VLM Detection Review (2504.09480), Qwen2-VL (2409.12191)