Vision Encoder
4/3/26About 3 min
Vision Encoder
视觉编码器(vision Encoder)是多模态大模型(如 LLaVA、Flamingo、BLIP-2 等)中的核心组件,负责将图像或视频等视觉输入转换为语义丰富的向量表示(即视觉特征),以便与语言模型协同工作。其性能直接决定了多模态系统对视觉内容的理解能力。
作用
在典型的多模态架构中:
[Image]
↓
[Visual Encoder] → 输出视觉 token 序列(如 256×d)
↓
[Projection / Adapter] → 映射到语言模型嵌入空间
↓
[Large Language Model] → 联合推理并生成文本视觉编码器的任务是:
- 提取图像的全局语义与局部细节
- 生成可与文本对齐的稠密特征
- 支持高分辨率、多图、视频等复杂输入
分类
1. CLIP (Contrastive Language–Image Pretraining)
✅ 特点:
- 由 OpenAI 于 2021 年提出
- 使用对比学习在 4 亿图文对上预训练
- 图像编码器 + 文本编码器联合优化,实现跨模态对齐
📌 变体:
| 模型 | 输入分辨率 | 输出维度 | 特点 |
|---|---|---|---|
| ViT-B/32 | 224×224 | 512 | 基础版,速度快 |
| ViT-B/16 | 224×224 | 512 | 更细粒度,常用 |
| ViT-L/14 | 224×224 | 768 | LLaVA v1/v1.5 默认使用 |
| ViT-H/14 | 224×224 | 1024 | 更大更强,计算开销高 |
💡 为什么 LLaVA 早期用 CLIP?
因为 CLIP 的视觉特征天然与语言对齐,便于后续与 LLM 融合。
⚠️ 局限:
- 固定分辨率(通常 224×224),高分辨率需裁剪或缩放,丢失细节
- 对细粒度任务(如 OCR、文档理解)表现一般
2. SigLIP (Sigmoid Loss for Language Image Pre-Training)
✅ 特点:
- Google 于 2023 年提出,改进 CLIP 的损失函数
- 使用 sigmoid loss 替代 softmax,更适合大规模数据
- 在 JFT-3B 等超大数据集上训练,性能全面超越 CLIP
📌 变体:
| 模型 | 分辨率 | 参数量 | 性能优势 |
|---|---|---|---|
| SigLIP So400m ViT-SO/14 | 384×384 | ~400M | LLaVA-NeXT 默认使用 |
| SigLIP B/16 | 224×224 | ~86M | 轻量高效 |
🔥 优势:
- 支持更高分辨率(如 384×384、512×512)
- 特征质量更高,尤其在细粒度识别任务上
- 开源且 Hugging Face 可直接调用
✅ LLaVA-NeXT、LLaVA-OneVision 均采用 SigLIP,因其更强的泛化能力。
3. DINOv2 (Self-supervised Vision Transformer)
✅ 特点:
- Meta(Facebook)于 2023 年发布
- 无需文本标签,纯自监督预训练
- 学习到的特征具有强几何与语义一致性
📌 优势:
- 对物体边界、结构理解极佳
- 适合密集预测任务(如分割、深度估计)
- 开源且提供多种 ViT 尺寸(small/base/large/giant)
🔄 应用:
- 可作为 CLIP/SigLIP 的替代方案
- 尤其适合需要空间感知的任务(如指代定位、视觉问答)
4. EVA / EVA-CLIP
✅ 特点:
- 由北京智源研究院 & 清华大学提出
- 在更大规模数据(如 LAION-5B)上训练
- EVA-CLIP 结合了 EVA 的强大视觉 backbone 与 CLIP 训练目标
📌 模型:
- EVA-CLIP-8B:目前最强开源 CLIP-like 模型之一
- 支持 224/336/512 多种分辨率
🌐 中文社区广泛使用,适合中文多模态任务。
5. InternViT (OpenGVLab)
✅ 特点:
- 上海人工智能实验室(OpenGVLab)推出
- 在超大规模数据上训练(ImageNet-22K + 自建数据)
- 支持从 224 到 1024 的任意分辨率
📌 优势:
- 高分辨率下表现优异
- 与 InternLM 等中文大模型生态无缝集成
演进
| 技术方向 | 早期方案 | 当前趋势 |
|---|---|---|
| 训练目标 | 对比学习(CLIP) | Sigmoid loss(SigLIP)、自监督(DINOv2) |
| 分辨率支持 | 固定 224×224 | 动态/高分辨率(384~1024) |
| 特征密度 | 全局池化 or 固定 token 数 | 可变 token、HiRes Linear、Pooling+MLP |
| 开源程度 | 部分开源 | 全面开源(权重、代码、训练数据) |
选择
| 应用场景 | 推荐编码器 | 理由 |
|---|---|---|
| 通用多模态问答 | SigLIP So400m | 性能强、开源、支持高分辨率 |
| 低成本部署 | CLIP ViT-B/16 | 轻量、Hugging Face 原生支持 |
| 细粒度识别/OCR | SigLIP 或 InternViT | 高分辨率保留细节 |
| 空间推理/定位 | DINOv2 | 几何结构理解强 |
| 中文多模态任务 | EVA-CLIP 或 InternViT | 中文数据优化 |
