多模态模型基础
3876 字约 13 分钟
domain/aiai/multimodalai/foundation
2026-07-24
多模态模型是能够同时处理和理解多种数据类型(文本、图像、音频、视频等)的 AI 系统,通过跨模态对齐和融合实现统一的语义理解。
1. 核心概念
1.1 基础术语
多模态(Multimodal):涉及多种数据类型或信息模态,每种模态代表一种信息通道。
模态(Modality):数据的表现形式,如文本、图像、音频、视频、3D 点云等。
跨模态对齐(Cross-Modal Alignment):将不同模态的信息映射到统一的表示空间,使语义相似的内容在向量空间中接近。
模态融合(Modal Fusion):将多个模态的信息组合成统一表示的技术,是多模态模型的核心能力。
视觉语言模型(VLM, Vision-Language Model):同时理解图像和文本的模型,是当前最成熟的多模态方向。
Grounding:将文本描述与图像中的具体区域关联,实现精细的视觉-语言对应。
1.2 多模态学习类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 跨模态理解 | 用一种模态理解另一种模态 | 图像描述、视觉问答 |
| 跨模态生成 | 根据一种模态生成另一种模态 | 文生图、图生文 |
| 跨模态检索 | 用一种模态检索另一种模态 | 以图搜文、以文搜图 |
| 多模态融合 | 综合多种模态做出决策 | 视频理解、多模态情感分析 |
| 模态转换 | 在不同模态间转换 | 语音转文字、图像风格迁移 |
2. 技术架构
2.1 整体架构
核心组件:
模态编码器(Modal Encoder)
- 视觉编码器:ViT、CLIP Vision Encoder、SigLIP
- 文本编码器:Transformer、BERT、LLM
- 音频编码器:Whisper、Wav2Vec
- 视频编码器:TimeSformer、Video ViT
投影层(Projection Layer)
- 线性投影:简单的全连接层
- MLP 投影:多层感知机
- Q-Former:可学习的查询向量(BLIP-2 风格)
- Perceiver Resampler:固定数量的输出向量(Flamingo 风格)
融合层(Fusion Layer)
- 早期融合:输入层直接拼接
- 中期融合:中间层交叉注意力
- 晚期融合:各模态独立处理后合并
- 统一融合:所有模态在统一空间处理
- 解码器(Decoder)
- 文本解码器:自回归生成
- 图像解码器:扩散模型、VQ-VAE
- 音频解码器:声码器
2.2 主流架构范式
范式一:双编码器 + 对比学习(CLIP 风格)
- 优点:训练高效,检索速度快
- 缺点:无法生成,融合能力有限
- 代表:CLIP、ALIGN、SigLIP
范式二:编码器-投影-解码器(LLaVA 风格)
- 优点:复用强大 LLM,训练简单
- 缺点:视觉理解受限于投影质量
- 代表:LLaVA、InternVL、Qwen-VL
范式三:交叉注意力融合(Flamingo 风格)
- 优点:深度融合,保留预训练 LLM 能力
- 缺点:架构复杂,训练成本高
- 代表:Flamingo、OpenFlamingo、IDEFICS
范式四:原生多模态(Gemini 风格)
- 优点:真正统一的多模态理解
- 缺点:训练数据需求大,架构设计复杂
- 代表:Gemini、GPT-4o
3. 训练方法
3.1 预训练阶段
阶段一:模态对齐预训练
目标:学习不同模态之间的对应关系
- 数据:大规模图文配对数据(如 LAION-5B)
- 方法:对比学习(InfoNCE Loss)
- 任务:图文匹配、图文对比
# 对比学习损失(简化)
logits = image_features @ text_features.T / temperature
labels = torch.arange(batch_size)
loss = F.cross_entropy(logits, labels)阶段二:视觉-语言预训练
目标:学习更深层的跨模态理解
- 数据:图文描述、VQA、OCR 数据
- 方法:生成式训练(Next Token Prediction)
- 任务:图像描述、视觉问答、OCR
阶段三:指令微调
目标:遵循多模态指令,提升泛化能力
- 数据:多模态指令数据(ShareGPT4V、LLaVA-Instruct)
- 方法:监督微调(SFT)
- 任务:复杂推理、多轮对话、细节理解
3.2 对齐技术
线性对齐
# 简单线性投影
class LinearProjector(nn.Module):
def __init__(self, vision_dim, llm_dim):
super().__init__()
self.proj = nn.Linear(vision_dim, llm_dim)
def forward(self, vision_features):
return self.proj(vision_features)MLP 对齐
# 两层 MLP 投影(LLaVA 风格)
class MLPProjector(nn.Module):
def __init__(self, vision_dim, llm_dim):
super().__init__()
self.mlp = nn.Sequential(
nn.Linear(vision_dim, llm_dim),
nn.GELU(),
nn.Linear(llm_dim, llm_dim)
)
def forward(self, vision_features):
return self.mlp(vision_features)Q-Former 对齐(BLIP-2 风格)
- 使用可学习的查询向量
- 通过交叉注意力从图像特征中提取信息
- 输出固定数量的视觉 token
Perceiver Resampler(Flamingo 风格)
- 类似 Q-Former,但更简单
- 将可变长度的视觉特征压缩为固定长度
- 通过交叉注意力实现
3.3 数据工程
| 数据类型 | 规模 | 用途 |
|---|---|---|
| 图文配对 | 数十亿 | 模态对齐 |
| 图像描述 | 数千万 | 生成能力 |
| VQA 数据 | 数百万 | 问答能力 |
| OCR 数据 | 数千万 | 文档理解 |
| 指令数据 | 数百万 | 指令遵循 |
| 对话数据 | 数百万 | 多轮交互 |
数据质量关键点
- 图像分辨率:通常 224×224 到 448×448
- 文本质量:清晰、准确、多样
- 配对质量:图文语义一致
- 数据平衡:各任务、领域均衡
4. 模型分类与代表
4.1 按能力分类
理解型模型
- 输入:图像 + 文本
- 输出:文本
- 代表:GPT-4V、Claude 3、LLaVA、InternVL
- 应用:视觉问答、图像描述、文档理解
生成型模型
- 输入:文本(可选 + 图像)
- 输出:图像
- 代表:DALL-E 3、Midjourney、Stable Diffusion
- 应用:创意设计、内容生成
统一型模型
- 输入:任意模态
- 输出:任意模态
- 代表:Gemini、GPT-4o
- 应用:通用多模态助手
4.2 代表模型对比
| 模型 | 架构 | 视觉编码器 | LLM | 特点 |
|---|---|---|---|---|
| GPT-4V | 未公开 | 未公开 | GPT-4 | 强大的通用理解 |
| Claude 3 | 未公开 | 未公开 | Claude | 长上下文、安全 |
| Gemini | 原生多模态 | 统一 | 统一 | 原生多模态 |
| LLaVA | 投影式 | CLIP ViT | Vicuna | 开源、简单 |
| InternVL | 投影式 | InternViT | InternLM | 中文优化 |
| Qwen-VL | 投影式 | ViT | Qwen | 阿里开源 |
| BLIP-2 | Q-Former | EVA-CLIP | FlanT5 | 高效对齐 |
| Flamingo | 交叉注意力 | NFNet | Chinchilla | Few-shot 能力 |
5. 关键技术挑战
5.1 模态对齐问题
语义鸿沟
- 不同模态的表示空间差异大
- 视觉特征是连续的,文本是离散的
- 需要有效的投影和对齐策略
对齐粒度
- 全局对齐:整张图 vs 整段文本
- 区域对齐:图像区域 vs 文本短语
- 细粒度对齐:像素级 vs 词级
5.2 计算效率
视觉 Token 数量
- 高分辨率图像产生大量视觉 token
- 例:448×448 图像 → 256 个视觉 token(ViT-L/14)
- 影响:上下文窗口占用、计算成本
解决方案
- 视觉 token 压缩:Perceiver、Q-Former
- 动态分辨率:根据图像复杂度调整
- 稀疏注意力:只关注重要区域
5.3 幻觉问题
视觉幻觉类型
- 对象幻觉:描述图像中不存在的物体
- 属性幻觉:错误描述物体的颜色、大小等
- 关系幻觉:错误描述物体间的关系
- 计数幻觉:错误计算物体数量
缓解方法
- 高质量训练数据
- 对比学习增强
- 强化学习对齐(RLHF)
- 检索增强(RAG)
5.4 评估挑战
评估维度
- 视觉理解:物体识别、场景理解
- 视觉推理:空间关系、因果推理
- 视觉对话:多轮交互、上下文理解
- 文档理解:OCR、表格、图表
- 指令遵循:复杂指令、格式要求
主流基准
| 基准 | 评估内容 | 特点 |
|---|---|---|
| MMBench | 综合能力 | 中英双语 |
| MME | 感知+认知 | 细粒度评估 |
| SEED-Bench | 生成+理解 | 多任务 |
| MathVista | 数学视觉 | 推理能力 |
| OCRBench | 文档理解 | OCR 能力 |
| HallusionBench | 幻觉检测 | 可靠性 |
6. 实践指南
6.1 模型选择建议
场景匹配
- 简单图文理解 → LLaVA、Qwen-VL(成本低)
- 复杂推理任务 → GPT-4V、Claude 3(能力强)
- 文档 OCR → 专门 OCR 模型或 InternVL
- 实时交互 → 小型模型 + 优化
- 移动端部署 → 量化模型、边缘计算
成本考量
- 视觉 token 数量直接影响成本
- 高分辨率图像成本更高
- 批量处理可降低单次成本
6.2 Prompt 工程
图像输入最佳实践
# 清晰的指令
"请详细描述这张图像中的主要物体及其空间关系。"
# 指定输出格式
"请以 JSON 格式列出图像中的所有物体:
{
"objects": [
{"name": "物体名", "位置": "描述", "属性": "描述"}
]
}"
# 分步骤推理
"请按以下步骤分析这张图像:
1. 识别主要物体
2. 描述物体间关系
3. 推断场景含义"多图理解
- 明确每张图的角色
- 指定比较或关联任务
- 控制图像数量(通常 4-8 张)
6.3 常见问题排查
问题:模型忽略图像细节
- 解决:提高图像分辨率
- 解决:在 prompt 中明确指出关注区域
- 解决:使用"请仔细观察..."等引导词
问题:幻觉严重
- 解决:要求模型"只描述看到的内容"
- 解决:添加"如果不确定,请说明"
- 解决:使用更强的模型
问题:中文理解差
- 解决:使用中文优化模型(InternVL、Qwen-VL)
- 解决:在 prompt 中明确语言要求
- 解决:提供中英双语示例
7. 发展趋势
7.1 技术演进
- 更高分辨率:从 224 → 448 → 1024+,理解更精细
- 更长视频:从单图 → 多图 → 长视频理解
- 更多模态:3D 点云、传感器数据、热成像
- 更高效架构:减少视觉 token,提升推理速度
- 更强推理:视觉数学、科学图表理解
7.2 应用拓展
- 实时交互:视频流实时理解与响应
- 具身智能:机器人视觉理解与操作
- 医疗影像:专业领域深度理解
- 自动驾驶:多传感器融合理解
- 创意工具:设计、绘画、视频创作辅助
8. 模型优化与部署
9. 关联笔记
- 多模态模型 - 多模态模型概览
- 图像理解 - 图像理解技术详解
- 图像生成 - 图像生成技术详解
- 视频理解 - 视频理解技术
- 多模态RAG - 多模态检索增强
- 多模态Agent - 多模态智能体
- Transformer原理 - 基础架构
- 深度学习基础 - 基础理论
- 向量与Embedding - 表示学习基础
10. 推荐资料
入门资源
- CLIP 论文 - 多模态对齐的里程碑
- LLaVA 论文 - 简单有效的 VLM
- GPT-4V 技术报告 - 商业多模态能力
技术深度
- BLIP-2 论文 - 高效多模态对齐
- Flamingo 论文 - Few-shot 多模态学习
- Gemini 技术报告 - 原生多模态架构
实践资源