概述
LaViDa 是首个基于离散扩散模型的视觉-语言模型(Vision-Language Model, VLM)家族。与自回归(Autoregressive, AR)VLMs(如 LLaVA)相比,LaViDa 具有更快的推理速度和更灵活的可控生成能力。
离散扩散模型通过逐步去噪的方式生成内容,能够在推理过程中实现并行解码,从而显著降低延迟。LaViDa 将这一优势引入多模态领域,为视觉-语言任务提供了新的解决思路。
核心技术创新
互补 Masking 技术
传统的多模态模型在处理视觉和文本时往往采用独立的 mask 策略,导致模态间信息交互不充分。LaViDa 提出了**互补 Masking(Complementary Masking)**策略:
- 视觉 token 与文本 token 的互补 mask 策略:在每个扩散时间步,mask 掉部分视觉 token 和部分文本 token,迫使模型学习跨模态的联合表示
- 有效处理多模态联合训练:通过动态调整 mask 比例,确保视觉和语言信息得到均衡的学习
设当前时间步为 ,mask 概率为 ,则互补 mask 操作可表示为:
其中 和 分别表示视觉和文本的 mask 向量。
前缀 KV 缓存
推理效率是扩散模型应用于 VLM 的关键挑战之一。LaViDa 引入**前缀 KV 缓存(Prefix KV Cache)**技术:
- 高效的推理加速技术:将视觉编码器的输出作为固定前缀,仅对文本部分进行扩散解码
- 保持生成质量的同时提升速度:通过复用已计算的 Key-Value 状态,避免重复计算
# 前缀 KV 缓存伪代码
class PrefixKVCache:
def __init__(self, vision_encoder, diffusion_decoder):
self.vision_encoder = vision_encoder
self.decoder = diffusion_decoder
self.kv_cache = None
def forward(self, image, text_tokens, num_steps=20):
# 编码视觉信息(仅一次)
vision_features = self.vision_encoder(image)
# 初始化缓存
if self.kv_cache is None:
self.kv_cache = self.init_cache(vision_features)
# 扩散解码
for t in reversed(range(num_steps)):
x_t = self.diffusion_step(vision_features, text_tokens, t)
return x_t时间步位移
扩散模型的采样质量高度依赖时间步调度。LaViDa 提出了**时间步位移(Temporal Step Displacement)**技术:
- 高质量采样的关键技术:通过非均匀时间步采样,充分利用模型在不同噪声 level 下的能力
- 自适应时间步调度:根据生成任务的复杂度动态调整采样步数
时间步位移策略可表示为:
其中 是噪声调度函数, 是总采样步数。
架构设计
LaViDa 的整体架构由以下组件构成:
┌──────────────┐ ┌─────────────────────┐
│ Vision │────▶│ Diffusion Language │
│ Encoder │ │ Model │
└──────────────┘ └─────────────────────┘
│ ▲
│ │
▼ │
┌──────────────┐ ┌─────────────────────┐
│ Image Token │────▶│ Multimodal Fusion │
└──────────────┘ └─────────────────────┘
主要设计特点
-
视觉编码器 + 扩散语言模型:采用预训练的视觉编码器(如 SigLIP)提取图像特征,通过线性投影映射到扩散模型的 embedding 空间
-
联合微调多模态指令跟随:使用指令微调数据联合优化视觉编码器和扩散语言模型,使模型具备强大的多模态理解能力
-
支持灵活的生成约束:通过条件 mask 和 Classifier-Free Guidance,实现可控的多模态生成
扩散语言模型的训练目标为:
其中 是添加的噪声, 是模型预测, 是多模态条件(包括视觉特征和文本提示)。
实验结果
LaViDa 在多个基准测试上展现了优异的性能:
基准测试对比
| 基准测试 | LaViDa | Open-LLaVa-Next-8B | 备注 |
|---|---|---|---|
| MMMU | 相当 | - | 复杂多模态推理 |
| COCO 图像描述 | 超越 +4.1 CIDEr | 基准 | 1.92× 加速比 |
| 诗句补全 | +59% | - | 双向推理任务 |
关键发现
- 推理速度:LaViDa 在 COCO 图像描述任务上实现 1.92 倍加速,同时 CIDEr 分数提升 4.1 分
- 双向任务:在约束诗句补全任务中,LaViDa 的双向推理能力使其性能提升 59%,远超自回归模型
- 生成质量:在 MMMU 多模态理解基准上达到与 AR VLMs 相当的水平
与 AR VLMs 的对比
| 特性 | LaViDa | AR VLMs |
|---|---|---|
| 推理速度 | 快(并行) | 慢(顺序) |
| 可控生成 | 灵活 | 相对受限 |
| 双向推理 | 支持 | 不支持 |
| Classifier-Free Guidance | 原生支持 | 需额外适配 |
| 条件生成 | 多条件联合 | 单一条件 |
优势分析
- 并行解码:扩散模型的并行采样机制使得 LaViDa 在生成长序列时具有显著速度优势
- 可控性强:通过调整噪声和条件,可以灵活控制生成内容的多个属性
- 双向注意力:文本 token 之间可以相互 attend,支持双向推理任务
局限与展望
- 当前版本主要针对离散扩散,未来可探索连续扩散变体
- 长上下文场景下的效率仍有提升空间