MemoryVLA:受人类记忆启发的机器人操作模型解析
本段欲回答的核心问题
MemoryVLA是什么?它如何解决传统机器人操作模型在长时序任务中的不足?
本文深入解析MemoryVLA——一种受人类双记忆系统启发的新型机器人操作模型。通过结合视觉-语言模型(VLM)与类海马体记忆机制,MemoryVLA在100+真实任务中实现了84%的成功率,尤其在需要时间依赖推理的复杂场景中表现卓越。
一、传统机器人操作模型的困境
1.1 非马尔可夫困境
现实中的机器人操作任务往往具有时间依赖性。例如:
-
按钮按压任务:按压前后视觉状态几乎完全相同(图1a),传统模型难以判断动作是否完成 -
多步骤任务:像”清洁桌子并计数”这类需要子目标管理的任务,传统单帧输入模型成功率不足10%(表4)
核心问题:主流VLA模型(如OpenVLA、π₀)仅依赖当前帧信息,忽略了历史状态对决策的影响。
二、MemoryVLA的核心架构
2.1 双记忆系统设计
受认知科学启发(工作记忆+海马体记忆),模型包含:
# 核心组件示意图
[视觉输入] --> VLM编码 --> 工作记忆(当前状态)
↓
[语言指令] --> 认知符号生成
↓
[感知-认知记忆库] <--> 记忆检索/融合/巩固
↓
[扩散动作专家] --> 7自由度机械臂控制
2.1.1 视觉-语言认知模块
-
输入处理: -
224×224分辨率RGB图像 + 自然语言指令 -
使用7B参数Prismatic VLM进行编码
-
-
双通道编码: | 输入类型 | 处理方式 | 输出维度 | |------------|------------------------------|---------------| | 视觉特征 | DINOv2 + SigLIP并行编码 | 256维特征向量 | | 语言指令 | LLaMA-7B语义理解 | 1x768维认知符|
2.1.2 感知-认知记忆库(PCMB)
-
存储结构: class PCMB: def __init__(self, max_length=16): self.perceptual = [] # 低级视觉细节 self.cognitive = [] # 高级语义摘要 self.temporal_pos = [] # 时间位置编码
-
关键机制: -
记忆检索:通过时序位置编码实现历史状态查询 -
门控融合:动态调整历史信息与当前状态的权重 \tilde{x} = g^x \odot H^x + (1-g^x) \odot x
-
记忆巩固:合并相似时序相邻条目(余弦相似度>0.85时触发)
-
三、实验验证与性能对比
3.1 模拟环境测试
3.1.1 SimplerEnv-Bridge数据集
模型 | 成功率 | 关键提升点 |
---|---|---|
RT-1-X | 1.1% | 基线模型 |
OpenVLA | 4.2% | VLA基线 |
CogACT-Large | 57.3% | 原SOTA |
MemoryVLA | 71.9% | +14.6%提升(本文贡献) |
典型案例分析:
在”茄子入篮”任务中,MemoryVLA达到100%成功率。该任务需要:
-
识别茄子位置 → 2. 抓取 → 3. 视觉遮挡下定位篮子 → 4. 放置
传统模型在步骤3因视觉遮挡失败,而MemoryVLA通过记忆库存储的篮子位置信息辅助决策。
3.1.2 LIBERO-90复杂任务
在90个长时序任务中:
-
需要平均4.2个子目标完成 -
MemoryVLA成功率95.6%,较CogACT提升3.5% -
特别在”打开容器-放置物品-关闭”类任务中优势明显
四、真实世界验证
4.1 测试环境
-
硬件:Franka和WidowX机械臂 -
视觉输入:Intel RealSense D435(640×480 → 224×224) -
任务类型: | 任务类别 | 示例任务 | 关键挑战 | |----------------|---------------------------|-----------------------| | 通用技能 | 堆叠杯子/取水果 | 精准操作 | | 时序依赖任务 | 顺序按按钮/清理餐桌 | 状态跟踪+多步规划 |
4.2 性能对比
任务类型 | OpenVLA | π₀ | CogACT | MemoryVLA |
---|---|---|---|---|
通用任务 | 31% | 72% | 76% | 85% |
时序依赖任务 | 9% | 52% | 57% | 83% |
典型场景分析:
任务:清理餐厅餐桌
-
要求:将垃圾放入垃圾桶,餐具放入收纳箱 -
挑战:物体类别识别+放置位置记忆 -
MemoryVLA优势: -
通过认知记忆存储常见物品类别(杯子=收纳,纸巾=垃圾) -
感知记忆记录已处理物品位置,避免重复操作
-
五、关键组件消融实验
5.1 记忆类型影响
| 记忆配置 | 成功率 | 典型问题场景 |
|----------------|--------|-----------------------|
| 仅认知记忆 | 63.5% | 视觉相似状态决策错误 |
| 仅感知记忆 | 64.6% | 抽象语义理解不足 |
| 双记忆协同 | 71.9% | - |
反思:单纯依赖视觉细节或语言理解均不足以处理复杂时序任务,类人双记忆架构是突破关键。
5.2 记忆长度优化
# 不同记忆长度对比
记忆长度 | 成功率
---------|-------
4 | 67.7%
16 | 71.9% # 最优配置
64 | 67.7% # 过长导致干扰信息累积
启示:记忆长度存在”甜蜜点”,过长会增加信息检索噪声。
六、典型应用场景
6.1 咖啡机操作任务
步骤分解:
1. 按下电源按钮 → 2. 放置咖啡胶囊 → 3. 选择杯型 → 4. 开始冲泡
MemoryVLA优势:
- 记忆库存储"胶囊仓位置"视觉特征(感知记忆)
- 认知记忆记录"已选杯型"状态
- 解决传统模型因视觉相似导致的重复操作问题
6.2 实验室器材整理
任务:将10种不同颜色/形状的实验器材分类收纳
关键挑战:
-
相似外观物品区分(如不同规格试管) -
收纳位置记忆(哪个抽屉存放哪种器材)
MemoryVLA表现:较CogACT提升37%成功率
七、结论与展望
7.1 主要贡献
-
提出首个结合类人双记忆系统的VLA模型 -
在150+任务中实现SOTA性能 -
特别提升长时序任务成功率(+26%)
7.2 未来方向
-
开发记忆反思机制,实现思维链式推理 -
构建终身记忆系统,支持跨场景泛化
实用摘要
操作清单
-
输入要求: -
RGB图像(224×224) + 自然语言指令 -
需提供至少50条专家演示轨迹
-
-
部署步骤: # 伪代码示例 model = MemoryVLA.load_pretrained("7B") obs = camera.get_frame() instruction = "将红色方块放入左侧容器" actions = model.predict(obs, instruction) robot.execute(actions)
一页速览
特性 | 数值 |
---|---|
参数规模 | 7B (VLM) + 300M (动作头) |
支持输入 | 图像+文本 |
典型推理时间 | 120ms/帧 (A100) |
适用场景 | 需时间依赖的复杂操作 |
FAQ
Q1: MemoryVLA如何处理视觉相似但状态不同的场景?
A: 通过感知记忆存储历史视觉细节,在”按钮按压”任务中正确识别完成状态。
Q2: 记忆长度如何影响性能?
A: 16步为最优配置,过长会引入干扰信息。
Q3: 是否需要额外传感器?
A: 仅需单目RGB相机,无需深度/触觉传感器。
Q4: 在光照变化环境下表现如何?
A: 在SimplerEnv-Fractal的视觉聚合测试中,86.7%成功率。
Q5: 未来会支持多机械臂协同吗?
A: 当前聚焦单臂场景,多臂扩展是未来方向。
本文基于ICLR 2025论文《MemoryVLA: Perceptual-Cognitive Memory in Vision-Language-Action Models》
图片均来自论文图表,完整代码与模型见项目页面