引言
视觉语言模型(VLM)在处理单帧图像上已趋于成熟,但时序理解——即从连续帧中提取决策相关的变化信息——仍是开放问题。无论是自动驾驶中的多帧感知,还是具身智能中的长任务执行,核心挑战都在于:如何在不引爆 token 预算的前提下,保留对决策真正有价值的时序信息。
这里梳理当前主流的 VLM 时序处理方案:从最朴素的采样压缩到结构化的记忆模块设计。Pi 0.7 的 MEM 方案在实践中效果最优。
一、朴素压缩:LlamaFactory 的视频管线
LlamaFactory 作为目前最流行的 LLM/VLM 微调框架,其视频处理采用纯参数化压缩策略,不引入额外网络结构。核心控制变量如下:
| 参数 | 含义 | 影响 |
|---|---|---|
video_fps | 每秒保留帧数 | 越小 → 时间维度 token 越少 |
video_maxlen | 整个视频最大保留帧数 | 硬上限,防止长视频爆 token |
video_max_pixels | 每帧最大像素面积 | 越小 → 每帧 patch 数越少 |
image_max_pixels | 图像路径最大像素 | 仅影响 image 路径,不替代 video_max_pixels |
这套方案的本质是在输入端做减法:通过降低时间分辨率(fps)、截断序列长度(maxlen)和缩小空间分辨率(max_pixels),将原始视频流压缩为 LLM 可接受的 token 序列。优点是零训练成本、完全可配置;缺点是信息损失不可控——关键帧可能被丢弃,且压缩比与语义重要性无关。
二、模型级时空压缩:Qwen-VL 的 patch 级方案
Qwen 系列模型在 Vision Tower 层面引入了更精细的 token 压缩机制,直接修改视觉编码器的输出表征:
2.1 时间维压缩:temporal_patch_size
其中 为 temporal_patch_size, 为原始时间步数。相邻 帧被聚合为一个时间 token。
2.2 空间维压缩:spatial_merge_size
其中 为 spatial_merge_size,空间上每 个 patch 合并为一个。
这两种压缩改动到 Vision Tower 的模型参数,意味着需要重新训练视觉编码器。相比 LlamaFactory 的输入端裁剪,Qwen 方案让模型学习如何在压缩过程中保留语义——但代价是训练成本显著上升,且压缩比固定,无法根据内容自适应调整。
三、Flex 编码器:场景 token 聚合
Nvidia AR1 (Cosmos-Reason) 中采用的 Flex 编码器代表了另一种思路:用少量可学习的 scene token 通过注意力机制做特征聚合。
Flex 的核心思想是引入一组固定的查询向量(scene tokens),让所有帧的视觉特征通过交叉注意力向这些查询聚拢。无论输入多少帧,输出始终是固定数量的 scene token。这类似于 Perceiver IO 或 PoolFormer 的池化思想:
- 视觉编码器提取每帧特征
- 初始化 个可学习的 scene queries
- 交叉注意力:
- 输出 作为压缩后的时序表征
优势在于压缩后的 token 数量固定且通常很小(如 ),同时保留了跨帧的全局注意力能力。但 Flex 本质仍是无状态压缩——它不维护跨推理步骤的记忆,每次推理独立完成。
四、MEM:Pi 0.7 的多尺度具身记忆
MEM (Multi-Scale Embodied Memory) 是 Physical Intelligence 在 基础上提出的记忆增强架构,其核心设计理念可概括为一句话:
视频编码器接收多帧历史观测,但输出 token 数量与单帧完全一致——历史信息被无损地"折叠"进当前帧的空间 token 中。
4.1 策略分解:高低层协作
MEM 将策略分解为低层策略 和高层策略 :
其中 为近期 帧观测(由 MEM 视频编码器处理), 为子任务指令, 为语言记忆状态, 为任务目标。关键之处在于 基于自身先前的预测 来更新 ,而非将所有历史观测拼接后重新编码——这从根本上避免了序列越长、token 越多的困境。
4.2 时空可分离注意力
MEM 对标准 ViT 的改造集中在每隔 层(论文中 )插入时空可分离注意力模块。这一设计使得改造后的 ViT 在接收单帧输入时行为与原始 ViT 完全一致,从而可以直接从预训练权重初始化而无需额外训练。
Step 1: 时序位置编码注入
其中 为空间 patch 索引, 为时间步索引, 为固定的正弦位置编码。边界条件 是整个设计的关键约束:当仅输入当前帧()时,,后续所有计算退化为标准 ViT,保证了与预训练权重的精确兼容。
Step 2: QKV 投影(复用原始权重)
这里 完全复用 ViT 原有的投影矩阵,不引入任何新参数。时序信息通过 被编码进了 LN 的输入中,从而间接影响 Q/K 的内积——这是一种极为优雅的参数共享策略。
Step 3: 空间-时间可分离注意力
MEM 先对每个时间步独立执行空间注意力(保留 2D-RoPE),再对每个空间位置执行因果时间注意力:
空间注意力在所有 patch 位置上做双向自注意力,与标准 ViT 完全一致;时间注意力则固定在每个空间位置上,沿时间轴做因果(下三角掩码)自注意力,确保当前帧只能看到过去帧。两次注意力的输出分别以残差方式加回:
这种双残差设计的计算复杂度从全注意力 降至可分离的 ,其中 为每帧 patch 数, 为帧数。当 时(通常 ),开销几乎可忽略。
Step 4: 历史 Token 丢弃
在 ViT 的上层,MEM 将所有历史时间步的 patch token 丢弃,仅保留当前帧 的表征传递给后续的 VLA backbone。这意味着 VLA backbone 接收到的 token 数量与无记忆模型完全相同,推理成本零增长。
4.3 与标准 ViT 的精确对比
| 特性 | 标准 ViT | MEM 视频编码器 |
|---|---|---|
| 输入 | 单张图像 | 视频序列 帧 |
| 注意力模式 | 每层双向空间 | 每 4 层插入因果时间注意力 |
| 位置编码 | 仅空间 2D-RoPE | 空间 RoPE + 固定正弦时间 |
| 输出 token | 所有 个 patch | 仅当前帧 个 patch |
| 新增可学习参数 | — | 零 |
| 初始化方式 | — | 直接加载预训练 ViT 权重 |
“零新增参数"是 MEM 最为精巧的设计决策。通过复用 QKV 权重和固定位置编码,MEM 避免了随机初始化新参数带来的训练不稳定,也使得预训练 ViT 的知识可以被完整继承。
4.4 MEM 的工程实现要点
将 MEM 从论文落地到实际 VLA 系统时,需要在数据侧和模型侧分别解决若干工程问题。以下讨论具有通用性,不依赖于特定框架实现。
数据侧:历史帧采样与多相机融合
MEM 要求视觉编码器接收多帧历史观测。工程上需要从数据集中按时间戳选取历史帧,核心设计选择在于采样策略:
- 最近邻采样:按目标间隔 从候选历史帧中选取间隔距离最小的 帧。简单直接,但当某些时间点帧缺失时会导致输出长度不一致。
- 固定时隙采样:将时间轴划分为等距时隙,每个时隙选一帧,保证即使帧缺失也能输出固定长度序列。MEM 模式下推荐使用此策略以维持训练稳定性。
多相机融合是智驾场景的常见需求。同一时间步的多相机帧在空间维度上拼接后作为该时间步的输入,这使得 MEM 的时间注意力可以同时捕捉不同视角之间的时序关联。工程上需要注意保持同一段 clip 中所有帧的空间尺寸一致,避免视频处理器因分辨率不匹配而报错。
模型侧:ViT Patch 的关键验证点
对 ViT 做 MEM 改造时,有几个容易出错的细节值得强调,它们直接决定了实现是否与论文一致:
空间注意力必须保留原始位置编码。 在插入时间注意力时,空间分支仍需走 ViT 原有的注意力路径(包括旋转位置编码 RoPE),而非替换为手写的 SDPA 调用。否则每 4 层一次的可分离层与其余 ViT 层在位置编码处理上不一致,破坏了 时退化为原始 ViT 的性质。
空间与时间注意力应分别残差相加。 两种注意力共享 QKV 权重,但输出应独立加回残差流:
而非将空间-时间注意力串联后只暴露单一残差。双残差设计确保时间注意力作为独立的"加性修正"叠加到空间注意力之上,符合论文"additively adds attention over the time dimension"的描述。
必须在每个 MEM 层重新注入。 论文 Eq.(1) 要求在每个可分离层内计算 ,而非仅在 patch embedding 输出时加一次。后者会导致时序信息随深度传播被稀释——经过数十层标准 ViT 层后, 的信号可能被归一化操作淹没。
历史帧 Token 应在 ViT 内部丢弃。 在 ViT 的上层(具体层数可配置),将所有历史时间步的 patch token 裁剪,仅保留当前帧。后续 ViT 层只处理当前帧,grid_thw 中时间维度从 降为 。这实现了论文中"在 ViT 上层丢弃过去时间步 token 以压缩输入"的方案,使得 VLA backbone 接收的 token 数与无记忆模型完全一致,推理成本零增长。
4.5 为什么 MEM 效果最优
我们的验证表明 MEM 优于朴素采样和 Flex 类方法,原因有三:
- 零额外推理代价:历史 token 在 ViT 内部被丢弃,VLA backbone 的 token 数与无记忆模型完全相同,推理延迟不增加。
- 零新增参数:时空可分离注意力复用 ViT 的 QKV 权重, 为固定编码,可以从预训练 ViT 直接初始化——这意味着不需要为时序建模单独训练新模块。
- 任务驱动的时序压缩:整个压缩过程端到端可微分,梯度信号从下游任务反向传播至视觉编码器,使模型学会保留对决策真正有价值的时序信息,而非均匀压缩。
五、Memory VLA:结构化的长短时记忆
Memory VLA 论文提出了一种更为系统的记忆架构,将记忆明确划分为**感知记忆(Perceptual Memory)和认知记忆(Cognitive Memory)**两层。
5.1 核心组件
Perceptual-Cognitive Memory Bank (PCMB):
- Low-Level Details(低层细节):存储原始感知特征的压缩版本,来自 Vision Encoder + Projector 的输出
- High-Level Semantics(高层语义):存储经 LLM 加工后的抽象认知表征
这种分层设计借鉴了人类记忆系统中感觉记忆 vs 工作记忆的划分。
记忆检索(Memory Retrieval):当前 token 通过带 timestep 位置编码的交叉注意力从 PCMB 中检索相关历史特征。
门控融合(Memory Gate Fusion):当前 token 与检索到的记忆 token 通过 Sigmoid 门控机制自适应融合:
其中
记忆整合(Memory Consolidation):当 PCMB 达到容量上限时,计算相邻条目的相似度并合并最相似的一对,保持记忆库紧凑。
5.2 去噪解码器
右侧的去噪 Transformer 层交替使用 Cognition Attention 和 Perception Attention,分别关注认知记忆和感知记忆,通过多层 Add & Norm + FFN 逐步精炼输出。
六、方案对比与选型
| 维度 | LlamaFactory | Qwen Patch | Flex | MEM (Pi 0.7) | Memory VLA |
|---|---|---|---|---|---|
| 压缩方式 | 输入端采样 | 模型层聚合 | Scene query 聚合 | 时空可分离注意力 + token 丢弃 | 分层记忆库 |
| 有状态 | 否 | 否 | 否 | 是 | 是 |
| 自适应 | 否(参数固定) | 否 | 部分 | 是(固定时隙采样) | 是(gate + merge) |
| 额外参数 | 无 | 需重训 ViT | 少量 queries | 零(复用 ViT QKV) | 完整 memory module |
| 推理额外 token | 无 | 无 | 个 scene token | 零(历史帧 ViT 内丢弃) | 记忆库 token |
| 推理延迟 | 最低 | 低 | 低 | 低(仅 ViT 内微量增加) | 中高 |
| 适用场景 | 短视频理解 | 通用多模态 | 感知压缩 | 具身/智驾 | 长时序 Agent |
参考文献
本文部分 reference 的 arXiv ID 为 2026 年预占位编号,待论文正式公开后将更新链接。
1. Yang, J. et al. “Flex: Efficient and Flexible Vision Encoding for Multimodal LLMs.” Available at: https://jiawei-yang.github.io/Flex/
2. Physical Intelligence. “MEM: Multi-Scale Embodied Memory for Vision Language Action Models.” arXiv:2603.03596, 2026. Available at: https://arxiv.org/abs/2603.03596
3. Memory VLA Team. “Memory VLA: Perceptual-Cognitive Memory for Long-Horizon Visual Language Action Models.” 2025.
4. NVIDIA. “Cosmos-Reason: Reasoning and Action Alignment for Autonomous Driving.” Technical Report, 2025.
5. LlamaFactory Documentation. Video processing parameters: video_fps, video_maxlen, video_max_pixels.
6. Qwen-VL Team. “Qwen2-VL: Enhancing Vision-Language Model’s Perception Capability.” arXiv, 2024.