【具身智能】RT-2:视觉-语言-动作模型(VLA)

2024-01-27 09:40

本文主要是介绍【具身智能】RT-2:视觉-语言-动作模型(VLA),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、视觉-语言-动作(VLA)模型
  • 二、利用 VLM 控制机器人
  • 三、实验
  • 四、 Demo
  • 五、总结


在这里插入图片描述

前言

Robotic Transformer 2(RT-2)是由谷歌 DeepMind 新推出的大语言模型,它为人类提供了通过纯语言命令来优化机器人控制的能力。与此前的大模型不同,RT-2是一种新型的视觉-语言-动作(VLA)模型,它可以从网络和机器人数据中学习,并将这些知识转化为机器人控制的通用指令,帮助机器人在现实环境中完成各种复杂任务,同时提高机器人的适应性和判断推理能力。

高容量的视觉-语言模型(VLM)是在网络规模的数据集上训练的,使得这些系统在识别视觉或语言模式并跨越不同语言方面表现出色。但是,为了使机器人达到类似的能力水平,它们需要首先收集机器人数据,涵盖每个对象、环境、任务和情况。

在RT-2的论文(https://robotics-transformer2.github.io/assets/rt2.pdf)中,作者介绍了这种新型的VLA模型,它可以从网络和机器人数据中学习,并将这些知识转化为机器人控制的通用指令。这种模型不仅保留了网络规模的能力,还可以让机器人在没有先前经验的情况下进行学习和控制。这是一项重要的进步,因为它可以使机器人更加灵活和适应不同的环境和任务。


一、视觉-语言-动作(VLA)模型

Robotic Transformer 2(RT-2)是建立在 Robotic Transformer 1(RT-1)基础上的,这是一个经过多任务演示训练的模型,可以学习机器人数据中看到的任务和对象的组合。RT-2 使用了 RT-1 的演示数据,这些数据是由 13 个机器人在办公室、厨房环境中收集的,历时 17 个月。
在这里插入图片描述

RT-2展示了超越其所接触的机器人数据的泛化能力以及语义和视觉理解能力。这包括解释新命令并通过执行基本推理(例如关于对象类别或高级描述的推理)来响应用户命令。该模型甚至能够使用思维链提示,使其能够执行多阶段的语义推理,,比如找出哪个物体可以临时代替锤子(一块石头)、哪种饮料最适合疲惫的人 (能量饮料)。


二、利用 VLM 控制机器人

RT-2模型基于VLM,接受一个或多个图像作为输入,并生成一系列标记,通常代表自然语言文本。这种类型的VLM已经在处理大规模网络数据方面取得了成功,用于执行视觉问答、图像字幕、对象识别等任务。研究员依靠Pathways Language and Image model(PaLI-X)和Pathways Language model Embodied(PaLM-E)作为RT-2的核心支持。

要实现机器人的控制,则必须训练它以输出动作。为了解决这一挑战,研究员将操作表示为标记(类似于语言标记)在模型输出中,将操作描述为可以由标准自然语言标记生成器处理的字符串,如下所示:

在这里插入图片描述
基于PaLI-X和PaLM-E模型的独特标记方案,我们为动作表示保留了特定的token。机器人的动作以文本字符串形式呈现,这些字符串可以是机器人动作令牌编号的序列,例如[1 128 91 241 5 101 127 217]。这些标记依次表示机器人任务的继续或结束、末端执行器的六自由度位置和旋转位移以及夹持器的使用情况。

通过这种表示方式,我们能够直接微调现有的视觉-语言模型,并将其转换成视觉-语言-动作模型。

在推理过程中,文本token被分解为机器人动作,从而实现了闭环控制。
在这里插入图片描述
在这里插入图片描述


三、实验

研究人员在 RT-2 模型上进行了超过6000次的机器人评估试验,以评估RT-2模型的性能和能力。

RT-2在语义理解和基本推理方面的性能展示在下图中。例如,在任务“把草莓放进正确的碗里”中,RT-2需要理解草莓和碗的表征,并在场景上下文中进行推理,以确定草莓应该与相似的水果放在一起。而在任务“拾起即将从桌子上掉下来的袋子”中,RT-2需要理解袋子的物理属性,以消除两个袋子之间的歧义并识别处于不稳定位置的物体。

需要注意的是,所有这些场景中测试的交互过程在机器人数据中从未出现过。
在这里插入图片描述

为了评估 RT-2 的性能,研究员将它们评估指标分类为:符号理解、推理和人类识别,并评估 RT-2 的两个变体:
RT-2 在PaLM-E(12B 参数)之上进行训练,
RT-2 在PaLI-X之上进行训练(55B 参数)

下图表明在设定的评估指标测试上,RT-2 模型优于之前的 RT-1 和视觉预训练 (VC-1) 基线。
在这里插入图片描述
下图表明的 RT-2 模型的泛化能力也有大约2倍的提升。
在这里插入图片描述
为了更好地理解 RT-2 的不同设计选择如何影响泛化结果,研究员消除了两个最重要的设计决策:

  • 模型尺寸:RT-2 PaLI-X 变体的 5B 与 55B,
  • 训练策略:从头开始训练模型、微调、协同微调。

下面的结果表明了视觉语言模型预训练权重的重要性以及模型泛化能力随着模型大小而提高的趋势。

在这里插入图片描述
另外研究员还在开源语言表基准表上评估 RT-2 ,通过模拟和真实语言表数据来训练 RT-2。除了在模拟基准上实现最先进的结果(90% vs 之前 SoTA 的 77%)之外,我们还在现实世界中评估了生成的模型。我们用以前在语言表数据集中从未见过的对象(例如番茄酱瓶、香蕉等)演示了 RT-2 的泛化能力:
在这里插入图片描述
在这里插入图片描述


四、 Demo

Robotic Transformer 2 (RT-2)|2023【谷歌DeepMind】

谷歌RT-2机器人新AI霸主

五、总结

总的来说,RT-2模型代表了机器人控制领域的一大突破。它将互联网规模的视觉-语言模型的强大知识与机器人控制任务相融合,为我们带来了令人瞩目的进展。这一方法在泛化能力、语义理解以及推理方面都有显著提升,为未来机器人的发展开辟了新的前景。这些更为先进和适应性更强的机器人将能够在各种复杂的现实环境中执行各种任务,从而为人工智能和机器人技术的不断演进做出了巨大贡献。

这篇关于【具身智能】RT-2:视觉-语言-动作模型(VLA)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/649849

相关文章

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc