目录
- 开源 VLA 模型 MemoryVLA 论文解读:感知-认知记忆让机器人记住失败——ICLR 2026,从原理到本地部署
- 一、这篇论文解决了什么问题
- 二、关键方法
- 感知-认知记忆库(Perceptual-Cognitive Memory)
- 记忆写入策略
- 记忆遗忘机制
- 三个版本
- Libero 基准(5 个子任务)
- SimplerEnv-Bridge 基准
- Calvin 长周期基准
- 环境要求
- Step 1:创建环境
- Step 2:安装 PyTorch + CUDA
- Step 3:安装 Flash Attention(训练必需)
- Step 4:克隆仓库并安装
- Step 5:准备训练数据
- Step 6:训练
- Step 7:评估
- Step 8:SimplerEnv 评估
- 硬件建议
- 预训练模型
- 适用场景
- 已验证的机器人平台
- 可迁移的平台
论文:MemoryVLA: Perceptual-Cognitive Memory in Vision-Language-Action Models for Robotic Manipulation(完全开源,ICLR 2026,275 stars) 会议:ICLR 2026 链接:https://arxiv.org/abs/2508.19236 GitHub:shihao1895/MemoryVLA | 275 stars 作者:Hao Shi, Bin Xie, Yingfei Liu 等(清华大学、Dexmal、旷视、StepFun)
一、这篇论文解决了什么问题
传统 VLA(Vision-Language-Action)模型有一个致命缺陷:金鱼记忆。每次推理只看当前帧,完全不记得刚才发生了什么。
这在长周期任务中是致命的。假设机器人要完成"把桌上所有杯子收进柜子"——它需要依次抓取 5 个杯子。如果抓第 3 个杯子时失败了(比如杯子太滑),传统 VLA 不会"记住"这次失败,下一次抓取还是会用同样的策略,然后再次失败。
MemoryVLA 的核心主张是:VLA 应该具备类似人类海马体的感知-认知记忆,记住历史交互中的关键信息,并在当前决策时利用这些记忆。这篇论文被 ICLR 2026 接收,在 Libero 基准上达到 96.5% 的平均成功率,MemoryVLA++ 更是达到 98.4%。代码、模型权重、训练数据全部开源,HuggingFace 可直接下载。
二、关键方法
1. 感知-认知记忆库(Perceptual-Cognitive Memory)
MemoryVLA 维护了一个可学习的键值存储(Key-Value Store),灵感来自人类海马体的记忆机制:
- 键(Key):视觉特征的压缩表示——“这个场景长什么样”
- 值(Value):动作-结果对——“在这个场景下做了什么动作,结果如何”
推理时,当前视觉特征作为 query,在记忆库中检索最相关的历史经验。检索结果与当前视觉特征融合后,再输入 LLM 生成动作。
具体流程:

2. 记忆写入策略
不是所有交互都值得记住。MemoryVLA 使用一套启发式规则决定是否写入记忆:
- 成功:写入——“记住这样做是对的”
- 失败:写入——“记住这样做是错的,下次换策略”
- 重复:不写入——避免记忆冗余(和已有记忆高度相似时跳过)
- 与已有记忆高度相似:更新而非新增——保持记忆库的精简
这个策略保证了记忆库的高质量和可控大小。
3. 记忆遗忘机制
记忆库不能无限增长。MemoryVLA 使用 LRU(最近最少使用)策略淘汰旧记忆,同时保留"高价值"记忆——与成功任务相关的记忆有更高的保留优先级。
具体来说,每条记忆有一个"重要性分数",由两个因素决定:
- 关联任务的成功率(成功任务的记忆更重要)
- 最近被检索的频率(经常被用到的记忆更重要)
淘汰时优先删除重要性分数最低的记忆。
4. 三个版本
MemoryVLA 开源了三个版本,分别基于不同的代码库:
- MemoryVLA:基于 OpenVLA 代码库,适合研究和快速实验
- MemoryVLA+:基于自研 Dexbotic 代码库,仿真性能更高
- MemoryVLA++:扩展期刊版本,性能最强(Libero 平均 98.4%),代码即将发布
三、实验结果
Libero 基准(5 个子任务)
| MemoryVLA | 98.4 | 98.4 | 96.4 | 93.4 | 95.6 | 96.5 |
| MemoryVLA+ | 98.2 | 97.8 | 96.4 | 93.6 | 96.2 | 96.5 |
| MemoryVLA++ | 99.8 | 100.0 | 98.2 | 96.0 | 97.8 | 98.4 |
SimplerEnv-Bridge 基准
| MemoryVLA | 75.0 | 75.0 | 37.5 | 100.0 | 71.9 |
| MemoryVLA+ | 100.0 | 66.7 | 70.8 | 100.0 | 84.4 |
Calvin 长周期基准
| MemoryVLA | 94.8 | 87.4 | 81.4 | 75.9 | 69.4 | 4.09 |
| MemoryVLA++ | 95.6 | 90.2 | 85.7 | 81.7 | 76.1 | 4.29 |
Calvin 的平均长度 4.09 意味着模型平均能连续完成 4 个以上的子任务而不出错——这对传统 VLA 来说几乎不可能。 
四、本地部署全流程
以下步骤来自 MemoryVLA GitHub README,基于 OpenVLA 代码库版本。
环境要求
- Linux(推荐 Ubuntu 20.04/22.04)
- Python 3.10
- CUDA 12.1
- PyTorch 2.2.0
- GPU 显存 >= 24GB(推荐 A100 或 RTX 4090)
Step 1:创建环境
conda create –name memvla python=3.10
conda activate memvla
Step 2:安装 PyTorch + CUDA
pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 –index-url https://download.pytorch.org/whl/cu121
conda install -c nvidia cuda-nvcc=12.1 cuda-toolkit=12.1 -y
Step 3:安装 Flash Attention(训练必需)
# Flash Attention 2.5.5,PyTorch 2.2 + CUDA 12.1
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.5/flash_attn-2.5.5+cu122torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
pip install flash_attn-2.5.5+cu122torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
注意:Flash Attention 编译耗时较长(10-30 分钟),耐心等待。
Step 4:克隆仓库并安装
git clone https://github.com/shihao1895/MemoryVLA.git
cd MemoryVLA
pip install -e .
如果使用 NVIDIA Hopper 架构 GPU(如 H100/H20),遇到 “Floating point exception” 错误时:
pip install nvidia-cublas-cu12==12.4.5.8
Step 5:准备训练数据
MemoryVLA 使用 RLDS 格式的数据集。需要下载:
- LIBERO(包含 Spatial、Object、Goal、Long-10、Long-90 五个子集):用于操作任务训练和评估
- Bridge(来自 Open X-Embodiment):用于 WidowX 机器人训练
- Fractal(来自 Open X-Embodiment):用于 Google Robot 训练
数据下载和格式转换请参考 LIBERO 和 OXE 的官方文档。
Step 6:训练
# 以 Libero 为例
bash script/train/libero/train_libero.sh
训练脚本会自动配置分布式训练(支持多 GPU)。单张 A100(80GB)训练一个 Libero 子集约需 1-2 天。
Step 7:评估
# Libero 评估
bash script/eval/libero/eval_libero.sh
# 汇总结果
python script/eval/libero/extract_libero_results.py
注意:由于扩散过程的随机性,不同 iteration 的 checkpoint 性能可能有波动。官方建议每 2500 步评估一次,取最佳结果。
Step 8:SimplerEnv 评估
# 先安装 SimplerEnv
# https://github.com/simpler-env/SimplerEnv
# 将 SimplerEnv 放在 ./third_libs/SimplerEnv
# Bridge 评估
bash script/eval/bridge/eval_bridge.sh
# 汇总结果
python script/eval/bridge/extract_bridge_results.py
硬件建议
- 推理:单张 RTX 4090(24GB)即可,模型加载约需 8-10GB 显存
- 训练:推荐 4-8 张 A100(80GB),单张 A100 也可训练但需要更小的 batch size
- 评估:单张 GPU,LIBERO 仿真环境需要额外的 CPU 资源
预训练模型
MemoryVLA 在 HuggingFace 上发布了所有预训练权重:
- Libero 系列:huggingface.co/shihao1895
- Bridge:memvla-bridge
- Fractal:memvla-fractal
可以直接下载用于推理或微调。
五、为什么重要:开源 + 记忆 = 新范式
MemoryVLA 让 VLA 从"反应式"走向"认知式"。记忆能力是智能的核心——人类不会每次都从头思考"怎么抓杯子",而是从经验中快速检索。MemoryVLA 给了机器人同样的能力。而且完全开源——代码、权重、数据集全部公开,任何实验室都可以复现和微调。
在 Calvin 基准上平均完成 4.09 个连续子任务——这意味着机器人能记住前几步做了什么、哪些策略有效、哪些失败了,并据此调整后续行为。这是传统 VLA 做不到的。
六、适用场景与机器人平台
适用场景
| 桌面物体抓取与放置 | [OK] 直接可用 | Libero Spatial/Object 子任务,成功率 98%+ |
| 按目标指令操作 | [OK] 直接可用 | Libero Goal 子任务,“把红色方块放到蓝色盘子上” |
| 长周期多步骤任务(10 步) | [OK] 直接可用 | Libero Long-10,成功率 93%+ |
| 长周期多步骤任务(90 步) | [OK] 直接可用 | Libero Long-90,成功率 95%+,记忆机制关键 |
| 连续多任务(Calvin) | [OK] 直接可用 | 平均连续完成 4.09 个子任务 |
| WidowX 机器人操作(Bridge) | [OK] 直接可用 | SimplerEnv-Bridge 评估,平均 71.9~84.4% |
| Google Robot 操作(Fractal) | [OK] 直接可用 | 抓取可乐罐 90.7%,移动物体 88.0% |
| 灵巧手操作(ManiSkill2) | [OK] 可迁移 | MemoryVLA+ 已验证,平均 70% |
| 双臂协作 | [WARN] 需扩展 | 论文未覆盖,但记忆机制对双臂协调有潜在价值 |
| 移动操作(边走边抓) | [WARN] 需扩展 | 需要融合导航和操作,记忆库需要扩展 |
| 工业装配 | [WARN] 需扩展 | 需要精确力控,当前 VLA 架构不直接支持 |
已验证的机器人平台
| WidowX | 桌面机械臂 | SimplerEnv 仿真评估 | Bridge 数据集训练,抓取/移动/开关抽屉 |
| Google Robot | 移动操作 | SimplerEnv 仿真评估 | Fractal 数据集训练,桌面操作任务 |
| LIBERO 仿真 | 仿真机械臂 | 全基准评估 | 5 个子任务集,Spatial/Object/Goal/Long |
可迁移的平台
| Franka Emika Panda | 协作机械臂 | 低 | 最常用的研究平台,RLDS 数据丰富 |
| xArm 系列 | 协作机械臂 | 低 | UFACTORY 出品,社区支持好 |
| SO-100 / SO-101 | 桌面机械臂 | 低 | 开源低成本平台,社区活跃 |
| KUKA iiwa | 工业机械臂 | 中 | 需要适配控制接口 |
| UR5 / UR10 | 协作机械臂 | 低 | Universal Robots,ROS 驱动成熟 |
| 宇树 Z1 | 协作机械臂 | 中 | 国产平台,需要自行采集训练数据 |
| AgileX Piper | 移动操作 | 中 | RISE 论文使用的平台,可参考其部署方案 |
七、局限
- 记忆检索基于视觉相似度,对光照变化敏感
- 记忆库的写入策略是启发式的,可能遗漏重要经验
- 跨任务的记忆迁移(“抓杯子的经验能帮抓碗吗”)尚未验证
- 训练需要 RLDS 格式数据,数据准备门槛较高
- MemoryVLA++ 的代码和权重尚未发布
关注我,每周一篇论文深度解读 + 本地部署指南。
标签: MemoryVLA VLA 机器人 记忆机制 ICLR2026 开源



