欢迎光临
我们一直在努力

开源 VLA 模型 MemoryVLA 论文解读:感知-认知记忆让机器人记住失败——ICLR 2026,从原理到本地部署

目录

  • 开源 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 生成动作。

具体流程:

  • 视觉编码器提取当前帧的特征向量
  • 用这个特征向量在记忆库中做最近邻检索(Top-K)
  • 将检索到的历史经验(动作 + 结果)与当前特征拼接
  • 拼接后的特征输入 LLM,生成动作 在这里插入图片描述
  • 2. 记忆写入策略

    不是所有交互都值得记住。MemoryVLA 使用一套启发式规则决定是否写入记忆:

    • 成功:写入——“记住这样做是对的”
    • 失败:写入——“记住这样做是错的,下次换策略”
    • 重复:不写入——避免记忆冗余(和已有记忆高度相似时跳过)
    • 与已有记忆高度相似:更新而非新增——保持记忆库的精简

    这个策略保证了记忆库的高质量和可控大小。

    3. 记忆遗忘机制

    记忆库不能无限增长。MemoryVLA 使用 LRU(最近最少使用)策略淘汰旧记忆,同时保留"高价值"记忆——与成功任务相关的记忆有更高的保留优先级。

    具体来说,每条记忆有一个"重要性分数",由两个因素决定:

    • 关联任务的成功率(成功任务的记忆更重要)
    • 最近被检索的频率(经常被用到的记忆更重要)

    淘汰时优先删除重要性分数最低的记忆。

    4. 三个版本

    MemoryVLA 开源了三个版本,分别基于不同的代码库:

    • MemoryVLA:基于 OpenVLA 代码库,适合研究和快速实验
    • MemoryVLA+:基于自研 Dexbotic 代码库,仿真性能更高
    • MemoryVLA++:扩展期刊版本,性能最强(Libero 平均 98.4%),代码即将发布

    三、实验结果

    Libero 基准(5 个子任务)
    模型SpatialObjectGoalLong-10Long-90平均
    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 基准
    模型SpoonCarrotCubeEggplant平均
    MemoryVLA 75.0 75.0 37.5 100.0 71.9
    MemoryVLA+ 100.0 66.7 70.8 100.0 84.4
    Calvin 长周期基准
    模型1 任务2 任务3 任务4 任务5 任务平均长度
    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 开源

    赞(0)
    未经允许不得转载:171主机测评 » 开源 VLA 模型 MemoryVLA 论文解读:感知-认知记忆让机器人记住失败——ICLR 2026,从原理到本地部署
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址