Перейти к содержанию

Мультимодальные модели: 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:

\[\mathcal{L}_{CLIP} = -\frac{1}{2N} \sum_{i} \left[ \log \frac{\exp(\text{sim}(I_i, T_i)/\tau)}{\sum_j \exp(\text{sim}(I_i, T_j)/\tau)} + \log \frac{\exp(\text{sim}(T_i, I_i)/\tau)}{\sum_j \exp(\text{sim}(T_i, I_j)/\tau)} \right]\]
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

\[\text{CrossAttn}(Q_V, K_T, V_T) = \text{softmax}\left(\frac{Q_V K_T^T}{\sqrt{d_k}}\right) V_T\]

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)."


Источники

  1. Nature -- "Multimodal learning with next-token prediction for LMMs"
  2. Sebastian Raschka -- "The Big LLM Architecture Comparison" (2026)
  3. Cameron Wolfe -- "Vision Large Language Models (vLLMs)"
  4. arXiv -- "Vision Encoders in VLMs: A Survey" (Feb 2026)
  5. arXiv -- "Unified Multimodal Understanding and Generation" (2505.02567)
  6. HuggingFace -- SigLIP 2 Blog
  7. ACL 2025 -- LLaVA Steering
  8. Zylos AI -- "Multimodal AI and VLMs 2026"
  9. LMCouncil -- "AI Model Benchmarks Feb 2026"
  10. Roboflow -- "Best Multimodal Models 2026"
  11. Analytics Vidhya -- "How Multimodal LLMs Work"
  12. arXiv -- VLM Detection Review (2504.09480), Qwen2-VL (2409.12191)