在机器人领域,计算机能理解的内容与它实际能做到的事情之间存在着持久的差距。多年来,科学家们一直试图通过教机器人学习运动语言来弥补这一差距,强迫强大的人工智能模型去学习一套全新的、专门的运动指令词汇。这种方法需要海量的训练数据,并且往往会剥夺机器人的推理能力,使其沦为仅仅记忆特定动作而非理解情境的工具。最近的一个想法建议,与其教机器人一种新语言,不如让它说它最擅长的语言:计算机代码。通过要求人工智能编写一段简短的程序来告诉机器人如何移动,研究人员可以保持人工智能的推理能力完好无损。然而,这种方法的一个主要缺陷在于,程序是在机器人开始移动之前一次性编写完成的。如果机器人抓取失败或撞到了物体,程序仍会盲目运行,将错误延续到任务结束,且无法进行修正。
一项新的研究介绍了一个名为 VLCP 的系统,它通过允许机器人在工作过程中重写自己的指令,改变了游戏规则。研究人员构建了一个框架,其中一个冻结的、预训练的人工智能模型充当监督者。该系统并非在开始时发送一组单一的指令,而是每隔五十步暂停一次,通过摄像头和传感器观察机器人的当前状况。然后,它会要求人工智能根据刚才看到的景象,编写一个新的、简短的 Python 函数来处理接下来的五十步。如果机器人在前一个阶段未能拿起物体,人工智能会在图像中察觉到失败,编写一段新的代码来纠正操作方式,并在同一次尝试中再次尝试。这创造了一个闭环,即控制软件本身在实时被编辑,而不仅仅是调整机器人的动作。
研究人员在一个包含五十七种不同任务的模拟环境中测试了这个系统,任务范围从简单的物体抓取到厨房和客厅环境中的复杂序列。他们将该方法与一个仅在开始时编写一次代码且不再回头查看的相同系统进行了对比。差异非常显著。那个在过程中重写代码的系统在百分之三十五的任务中取得了成功,而那个坚持原定计划的系统仅成功了百分之三。这种十倍的提升在他们测试的每种场景中都成立。成功的关键不仅在于机器人能够看到自己的错误,还在于它能够修改导致错误的指令本身。在机器人最初抓取物体失败的近百分之三十的案例中,系统捕捉到了错误,重写了操作方式,并在同一次尝试中成功举起了物品。如果没有这种在中途编辑代码的能力,这些失败将会是永久性的。
为了确保这一过程具有实用性,团队测量了它所需的计算能力。由于人工智能在每次检查时都在重复利用大部分相同的背景信息,因此系统每次只需要处理少量的全新数据。这使得机器人可以在单次任务中暂停、思考并重写指令大约十次,而不会变得过于缓慢或昂贵。研究还表明,这种方法并不依赖于机器人记忆特定的短语或指令。当研究人员更改任务描述的措辞时,系统的表现保持稳定,而其他依赖训练数据的模型在语言稍作改变时就会表现得非常吃力。这表明该系统真正理解了目标,而不仅仅是在匹配模式。
研究人员谨慎地指出,他们的结果来自计算机模拟,而非真实房间里的物理机器人。该系统目前依赖于关于物体位置的完美数字信息,而现实世界的摄像头并不总能以如此确定的方式提供此类信息。此外,人工智能生成新代码所需的时间意味着这种方法更适用于不需要分秒间反应的任务。尽管存在这些局限性,该研究展示了一条清晰的前行之路:通过让人工智能保持在代码语言中,并允许它在错误发生时自行修复,机器人可以在无需针对数千次人类演示进行重新训练的情况下变得更加强大。这项工作表明,机器人控制的未来可能不在于教机器新的运动方式,而在于给予它们在学习过程中编辑自身计划的自由。
技术摘要:VLCP (视觉-语言控制策略)
问题陈述
目前将前沿视觉语言模型 (VLM) 部署到机器人领域的常见方法依赖于视觉-语言-动作 (VLA) 模型。这些方法需要对预训练的 VLM 进行微调,使其能够输出低层动作标记(例如,关节位置或专门的电机标记),而这些标记是模型在预训练阶段从未接触过的。这种适配过程存在丢弃模型固有推理能力的风险,并且需要大规模的演示数据集。此外,现有的“代码即策略 (Code-as-Policy)”方法在执行开始前生成一次控制代码。如果执行过程中发生故障(例如,抓取失败),这些开环系统由于策略是固定的,因此无法进行恢复。相反,现有的闭环方法虽然会对观测结果做出反应,但通常是在任务或语言层面进行操作(重新选择子任务或重试固定的策略),而不是重写导致失败的底层控制代码。
方法论
VLCP 提出了一种无需训练的闭环框架,该框架保持 VLM 冻结状态,并利用其生成短时界的 Python 控制函数。其核心创新在于在单个回合(episode)内,在控制代码层面实现闭环。
- 代码即策略表示法: VLM 不输出电机标记,而是编写一个 Python 函数
control(obs, J),该函数接收多视图 RGB 观测、本体感受状态以及末端执行器雅可比矩阵作为输入。该函数输出一个包含关节位置目标的字典,供模拟器的 PD 控制器使用。
- 闭环重规划: 回合被划分为若干个 K 步的块(默认 K=50)。在每个块的开始,系统会查询 VLM 以根据当前状态生成新的控制函数。
- 观测: VLM 接收同步的多视图 RGB 图像、数值状态(末端执行器位姿、关节位置、物体位姿)以及显式的状态增量(state delta)。
- 重写: 如果前一个块执行失败(例如,尝试抓取时未成功),VLM 会在新的图像中观察到失败特征,并重写控制函数以在下一个块中修正接近路径。这使得系统能够在回合内进行恢复,而不仅仅是在不同试验之间进行恢复。
- 技能库 (Skill Library): 在任何重规划过程中生成的辅助模块(技能)都会被保存到共享的磁盘目录中。这些模块会被原封不动地重新注入到后续重规划的系统提示词(system prompt)中(包括在同一回合内和跨回合之间),从而使策略能够在不进行微调的情况下积累并复用技能。
- 提示工程: 提示词的结构旨在最大化 Token 缓存效率。它包含一个静态前缀(文档、API、示例)、一个动态技能库和一个“目标钉 (goal pin)”(任务描述),后者可以经受上下文截断的影响。图像仅在实时的用户轮次(user turn)中包含,以防止上下文膨胀。
核心贡献
- VLCP 框架: 一种无需训练的闭环操作系统,通过每 K 步重新查询一次冻结的 VLM,根据实时观测和状态增量来重写控制函数。
- 跨回合技能库: 一种机制,通过将重规划期间生成的辅助模块持久化并重新注入未来的提示词中,实现技能的积累。
- 受控消融实验(循环): 与开环退化情况(K=T,即每个回合仅查询一次 VLM)进行了严格对比。这隔离了回合内重规划循环的贡献,同时保持模拟器、API、模型和任务集恒定。
- 量化恢复能力: 直接测量回合内的恢复情况,证明系统能够检测并在回合中途修复失败的抓取。
- 可行性分析: 通过提示词缓存证明了该方法在计算上是可负担的,通过高缓存命中率,每个回合仅需约 10 次 VLM 调用。
结果
在 MuJoCo/RoboVerse 的三个场景族(物体拾取、厨房场景、客厅场景)共 57 个任务的评估中:
- 成功率: 闭环 VLCP (K=50) 实现了 35.1% 的汇总成功率。相比之下,运行在开环模式下的相同系统 (K=T) 仅达到了 3.5%。这代表了十倍的提升,且在所有场景族中 95% 置信区间均不重叠。
- 恢复机制: 对日志轨迹的分析显示,27.3% 的失败抓取通过随后的重规划得到了成功恢复。开环变体由于构造原因,恢复率为 0%。
- 泛化性: 在指令重构(改变任务指令的措辞)下,VLCP 保持了稳定的性能(原始和修改条件下均为 40.0%),而经过微调的 VLA 基准模型 (VLA-0) 在指令重构后,在特定任务上表现出显著的性能坍塌。
- 效率: 系统实现了 84% 的中位数输入 Token 缓存命中率。每个回合平均需要 10 次重规划调用,每次重规划的中位延迟为 18.8 秒。所有 778 个生成的控制块均成功解析并编译(有效性 100%)。
意义与主张
论文声称 VLCP 证明了在控制代码层面实现闭环是机器人操作的一个独特且有效的领域。
- 保留推理能力: 通过保持 VLM 冻结并使用其编写代码(一种它精通的语言),而不是针对动作对其进行微调,该方法保留了模型的预训练推理能力。
- 修正的着力点: 作者认为,以往的方法之所以失败,是因为它们只是在重试固定的策略或升级到规划器,而没有修复根源(控制代码)。VLCP 是少数能在回合中途重写失败产物的系统之一。
- 无需训练的可行性: 结果表明,只要系统可以通过代码重写进行自我修正,一种零演示、无需训练的方法可以在复杂的操控任务中取得强大的绝对性能(35.1%)。
- 持续学习基质: 跨回合技能库提供了一条自然的持续学习路径,使得能力可以随着回合的增加而复合增长,而无需重新训练。
作者承认存在局限性,指出目前的实现依赖于模拟器提供的物体位姿(绕过了感知噪声),并且受限于 VLM 的推理延迟,因此适用于较慢的操控任务而非高频响应式控制。他们强调,其贡献在于“循环”本身,而非特定的生成程序。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。