面向机器人操作的视觉-语言-动作模型中的双潜在记忆

  • 关联论文:2607.07608
  • 作者:spark
  • 更新:2026-07-20

一句话结论

LaMem-VLA 把历史经验统一编码进 VLA 的连续潜空间,把"短期/长期双库记忆 → 检索 → 压缩 → 编织进当前推理流"做成一个端到端框架,让长时序、强时间依赖的操作任务能在固定上下文内完成。

解决什么真问题

主流 Vision-Language-Action(VLA)模型在预测动作时基本沿用 Markov 假设——只看当前 observation。这一假设在长时序任务里会崩:做"把锅放到水槽 → 开龙头 → 等水开 → 把面条下锅"这种几十步的操作时,agent 没法可靠记住"我两分钟前刚把锅放到了水槽左侧",必须依赖上下文窗口回看。

已有的 memory-augmented VLA 一般走两条路:

  1. 扩 observation 窗口:把历史 observation 拼进 prompt。问题是 VLA 的视觉 token 很贵,几十帧图就吃光上下文,注意力也会被老帧稀释。
  2. 从外部 memory bank 检索:把历史 observation 编码后存起来,推理时按相似度拉几条回来作为辅助 context。问题是这些 retrieval 出来的表征(视觉特征、自然语言描述)处在 VLA 自身的潜空间之外,没法和当前的 reasoning flow 真正融合——更像是"贴上去的便签"。

LaMem-VLA 的核心观察是:记忆要被 VLA 用得顺手,必须住在 VLA 的连续潜空间里,而不是外挂一层。

核心方法

整体框架可以拆成四个协调组件,全部跑在 VLA 的 latent embedding space 内:

历史 observation 流 ─┐
                    ▼
              (i) Curator
              ├── short-term vault
              └── long-term  vault
                    ▲
   当前 obs + 指令 ─► (ii) Seeker(多模态 query)
                    ▼
              (iii) Condenser
              ├── short-term latent memory tokens
              └── long-term  latent memory tokens
                    ▼
              (iv) Weaver
              └── memory tokens ⊕ current obs ⊕ instruction
                    ▼
                  VLA backbone → action chunks

(i) Curator — 双库管理

把历史经验分流进两个 vault:

  • Short-term vault:保留最近若干步的高分辨率 observation/动作,主要服务"刚才发生了什么"的细粒度回忆。
  • Long-term vault:对更早的经验做摘要、抽象或任务级 landmark 化,保留语义级信息。

这一步的关键设计在于"分流策略"——不是简单的按时间窗切,而是用任务事件边界 / 状态变化显著性来切。原文未给出具体的触发函数细节,但强调两个 vault 互为补充,避免短时窗看不到远期目标、长期库又太粗无法落地。

(ii) Seeker — 多模态检索

用当前 observation + 指令的联合 embedding 去 query 两个 vault,取回 top-k 相关条目。检索在潜空间里完成,不需要把记忆"翻译回"自然语言或重新渲染成图像。

(iii) Condenser — 压缩成潜记忆 token

Seeker 拉回来的证据通常是异构的(不同步数、不同模态),直接拼接会撑爆上下文。Condenser 把它们统一编码为两种 latent memory token

  • short-term latent memory tokens(保留细节)
  • long-term latent memory tokens(保留语义)

这些 token 的设计空间和 VLA 的 reasoning embedding 是同一个连续空间,所以接下来可以无缝拼接。

(iv) Weaver — 编织进推理

把 memory tokens 和当前 observation embedding + instruction embedding 拼成一条连续的 embedding sequence,送进 VLA backbone。这样 VLA 在做 cross-attention 时,历史记忆和当前感知在同一个 attention 池里被共同查询,记忆能直接影响 attention map,进而直接影响 action generation。

伪代码视角下,单步推理可以写成:

def vla_step(model, obs, instr, memory):
    short_tok = memory.short.compress(seeker.query(obs, instr, memory.short))
    long_tok  = memory.long.compress(seeker.query(obs, instr, memory.long))
    seq = concat([short_tok, long_tok, obs.embed(), instr.embed()])
    action = model.forward(seq)            # VLA backbone
    memory = curator.update(memory, obs, action)   # 在线写入
    return action, memory

整个机制刻意保持 bounded context:不管历史多长,参与当前推理的 token 总量是固定的(短期 k_s + 长期 k_l + 当前 obs + 指令)。

关键实验与数据

论文在两个主流具身 benchmark 上做了对比:

  • SimplerEnv(Google DeepMind 系列,侧重 sim-to-real 迁移下的桌面 / 厨房操作)
  • LIBERO(终身操作学习 benchmark,任务类型更广,含长 horizon 任务)

报告的关键结论是 LaMem-VLA 相对"扩 observation 窗口"和"外部 memory bank"两类基线都有显著优势,原文给的数据细节未在 abstract 中披露,但 project page 链接(https://github.com/quhongyu/LaMem-VLA)有更细的数值。具体百分比请以原文为准

值得注意的实验设计点:

  • 对比项覆盖了"无记忆"、"短时记忆拼接"、"RAG 式外部 bank"、"Episodic Transformer 类方法"等多个对照。
  • 强调 long-horizon、temporally dependent 的任务切片,这是 LaMem-VLA 的主战场。

亮点与局限

亮点

  1. 范式统一:把 memory 拉进 VLA 的潜空间,避免"外挂便签"的脱节问题;这种"latent memory-native"思路可以推广到其他长时序决策场景。
  2. bounded context:在固定 token 预算下做长时序推理,工程上更友好,便于部署。
  3. 双库设计 short + long,对应不同时间尺度的依赖,结构上比单一 memory 更接近人脑工作模式。
  4. 端到端训练:四组件协同优化,不需要为记忆管理单写一套规则。

局限(基于 abstract + 一般经验推断,原文未明确给出)

  • 双库划分策略和检索策略的可解释性有限——出问题时难调试。
  • 对 VLA backbone 仍有依赖;如果 backbone 本身的潜空间表征能力不够,再聪明的 memory 也救不回来。
  • abstract 没提真实机器人部署实验,主要在仿真上验证;sim-to-real gap 仍是开放问题。
  • 延迟:每个 step 都要跑 seeker + condenser,推理延迟会比 vanilla VLA 高一些。

对工程落地的启发

  1. 机器人 / 具身 agent:如果你的 VLA 跑长时序任务(家庭服务、仓储拣选),LaMem-VLA 的双库 + latent memory 模式是个值得复用的骨架。
  2. 多模态对话 agent:核心思想"memory 住在同一 embedding space 内"可以原样移植——把 RAG 的检索结果也压缩成 latent memory token 注入 LLM,而不是拼文本片段。
  3. KV cache 管理:本论文和 KVpop(同一批解读)思路有共鸣——都是在固定预算下做"哪些信息值得保留"的决策,只是 LaMem-VLA 决策的对象是历史经验 token,KVpop 决策的是 attention 状态。
  4. 工程建议:先在小规模任务上验证 short/long 的划分是否合理,再上完整任务;可以借鉴 Seeker 的多模态 query 设计做工具选型。

与同方向工作的关系

  • OpenVLA / RT-2 类通用 VLA:基座。LaMem-VLA 是其上方的 memory 增强层。
  • EgoVLP / Long-horizon Video Understanding:长时序表征学习的对应方法在视频理解侧早有类似设计,LaMem-VLA 把这套思路搬进 action generation。
  • MemGPT / MemoryBank 类 LLM 长记忆方案:解决思路相似(working / archival 双层),但 LaMem-VLA 全程在 latent 空间跑,比 LLM 侧的"压缩成自然语言摘要"更保真。
  • RAG-类方法:在文本 QA 上 RAG 是把检索结果拼回 context;LaMem-VLA 等价于把"检索结果"压成 latent token 再注入,对应 RAG 的潜空间版。

适合谁读

  • 做具身智能 / VLA 微调或部署的工程师:四组件设计可以拆解复用。
  • 做 LLM 长上下文 / 长记忆的研究者:核心抽象(latent memory-native)和 LLM 侧的 memory layer 一脉相承。
  • 做 RAG / Agent 架构设计的人:双库 + 检索 + 压缩的范式对 Agent 的长期记忆管理有直接借鉴价值。
  • 不太适合的读者:纯做仿真短任务或不需要长时序依赖的人,性价比不高。

工程落地与核查(Jay)

实际系统怎么用

LaMem-VLA 的落地不是在 VLA 之外另起炉灶,而是以 plugin 形式叠加在任何已有 VLA backbone 上:

VLA backbone (OpenVLA / RT-2 / 你的私有 VLA)
    ↑ 替换
LaMem-VLA backbone = VLA + Curator + Seeker + Condenser + Weaver

部署时每个推理 step 需要额外跑三个组件(Seeker query + Condenser encode + Weaver concat),延迟会比原 VLA 略高,需要做 latency budget 分析。

主要工程坑

坑 1:Curator 的 vault 划分逻辑是黑箱 ⚠️ 双库的分流策略(基于事件边界还是固定时间窗)是核心工程决策点,原文未给出触发函数实现细节。自行复现时需要设计并验证自己的 vault 分流逻辑——这对 LaMem-VLA 性能影响最大。可以从"任务阶段切换"(如抓取 → 移动 → 放置)的隐式检测入手。

坑 2:四个组件需和 VLA backbone 协同端到端训练 LaMem-VLA 的设计是端到端协同训练,而非即插即用模块。若只推理(不做训练),可以直接用论文 release 的 checkpoint;否则需要同时训练 VLA backbone 和四组件,训练栈复杂。

坑 3:sim-to-real gap 是未解决的工程风险 Abstract 所有实验在 SimplerEnv 和 LIBERO 两个仿真环境完成,未披露真实机器人数据。历史上 sim-to-real 在具身操作任务上是主要工程瓶颈——视觉策略的 domain gap、physics 不一致、动作空间差异都可能导致 LaMem-VLA 的优势在真机上消失。上线真机前务必做 sim-to-real transfer 验证

坑 4:Seeker + Condenser 带来每步额外延迟 每个推理 step 额外跑一次多模态 query(Seeker)和一次潜 token 编码(Condenser),延迟增幅取决于 VLA backbone 的帧率。对于 real-time 要求高(>10Hz)的场景,延迟 overhead 需要单独 profiling。

坑 5:GitHub 暂未 release 官方代码 ⚠️ 论文提供了 project page(github.com/quhongyu/LaMem-VLA),但截至 abstract 发布尚未确认是否已有可运行代码。复现优先级高于一切工程落地的读者,需等待代码 release 后再做深入集成

坑 6:bounded context 的 k_s / k_l 超参依赖任务 短期 token 数 k_s 和长期 token 数 k_l 是任务相关的超参——同一个 VLA 在不同任务上需要不同的记忆预算。通用 VLA 产品需要做任务分类 + 自适应 k_s/k_l 调度,否则记忆预算要么浪费要么不够。

核查记录

核查项 结论 存疑点
"SimplerEnv + LIBERO 上显著超过外部 memory bank 基线" ⚠️ 存疑:abstract 未给出具体数字(% / 胜率 / 任务数) 需读原文第 5 节实验表格
双库分流策略的具体触发函数 ❌ 未公开:原文未给出实现细节 需读附录或等代码 release
Sim-to-real 实验 ❌ 原文未披露:abstract 只含仿真实验 真机部署需独立验证
四组件是否解耦可复用 ⚠️ 存疑:端到端设计意味着四组件绑定 VLA backbone 需等代码确认接口设计
GitHub release 状态 ⚠️ 需实测:project page 已存在但代码未确认 建议发 issue 确认发布时间