RT2-使用NLP的方式去训练机器人控制器

目标
研究在网络数据上训练的视觉语言模型也可以直接结合到端到端的机器人控制中,提升泛化性以及获得突出的语义推理;使得单个的端到端训练模型可以同时学习从机器人观测到动作的映射,这个过程可以受益于基于网络上的语言和视觉语言数据的预训练。

方法
1,将动作(actions)描述成文本tokens,然后将其直接合到模型训练集中,使用方法就如自然语言tokens一样;
2,结合使用chain of thought 推理,使得RT2可以进行多阶段语义推理,比如推理出哪种饮料对于劳累的人是合适的。
RT-2

模型
模型直接使用PalmE或者PalmX,无额外创新,创新主要体现在机器人数据的训练方式上。
PaLI

Pali-X:使用ViT-22B处理图像,接收n张图像,获得n x k的tokens(k是图像的patch数量),图像tokens经过一个projections层,然后进入一个编码-解码的backbone(32B 参数和50层,类似于UL2,联合处理图像和文本embeddings,采用自回归方式输出tokens),

PaLI-3B使用更小的ViT-G/14来处理图像,使用UL2-3B来进行编码和解码

Palm-E:使用PaLM-E-12B,图像处理使用ViT-4B,LLM使用Palm。
Palm-e

动作推理与实时编码
1,To enable vision-language models to control a robot, they must be trained to output actions. We take a direct approach to this problem, representing actions as tokens in the model’s output, which are treated in the same way as language tokens 将动作用文本token来进行描述,使得大语言模型可以直接输出动作;

2,The action space consists of 6-DoF positional and rotational displacement of the robot end-effector, as well as the level of extension of the robot gripper and a special discrete command for terminating the episode, which should be triggered by the policy to signal successful completion.(与RT1定义一样,定义了相关动作)

3,The continuous dimensions (all dimensions except for the discrete termination command) are discretized into 256 bins uniformly. Thus, the robot action can be represented using ordinals of the discrete bins as 8 integer numbers.(连续动作离散化,与RT1一致)

4,In order to use these discretized actions to finetune a vision-language into a vision-language-action model, we need to
associate tokens from the model’s existing tokenization with the discrete action bins. (将离散的动作bins关联到VLM已有的tokenization )

5, In order to define a target for VLM fine-tuning we convert the action vector into a single string by simply concatenating action tokens for each dimension with a space character: (根据actions输出目标,示例:
“terminate Δpos Δpos Δpos Δrot Δrot Δrot gripper_extension”. “1 128 91 241 5 101 127”)

6,PaLI-X and PaLM-E , use different tokenizations. For PaLI-X, integers up to 1000 each have a unique token, so we simply associate the action bins to the token representing the corresponding integer. For the PaLM-E model, which does not provide this convenient representation of numbers, we simply overwrite the 256 least frequently used tokens to represent the action vocabulary. (在PaLI-X和PaLM-E中使用不同的tokenizations方法)

7, Cloud service multi-TPU,The largest model we evaluated, the 55B parameter RT-2-PaLI-X-55B model, can run at a frequency of 1-3 Hz. The smaller version of that model, consisting of 5B parameters, can run at a frequency of around 5 Hz.(部署在云端进行实施推理)

训练数据集
主要数据: WebLI dataset(10B image-text pairs across 109 languages, filtered to the top 10% scoring cross-modal similarity examples to give 1B training examples)

其他视觉语言数据:captioning and vision question answering datasets in PaLI-X and PaLM-E

机器人数据: RT-1和Language table

实验
1,How does RT-2 perform on seen tasks and more importantly, generalize over new objects, backgrounds, and environments? RT2在见过的任务上表现如何?更重要的是在新物体,背景和环境上的泛化能力如何?
exp1-1
exp1-2
exp1-3

2,Can we observe and measure any emergent capabilities of RT-2?我们可以观察和测量到RT2的任何新能力吗?
该实验是评估RT2从网络数据中学习到的机器人数据以外的技能,体现网络数据对其帮助。
exp2-1
exp2-2exp2-3

3,How does the generalization vary with parameter count and other design decisions? 泛化性随着参数量和其他设计模块如何变化?
From scratch: 从头开始训练模型,不使用任何VLM模型的预训练权重;
Fine-Tuned: 只使用机器人数据来微调之前训好的预训练模型;
Co-Fine-Tuned: 同时使用原始VLM训练数据和机器人数据对VLM模型进微调。
3-1
exp3-2

4,Can RT-2 exhibit signs of chain-of-thought reasoning similarly to vision-language models? RT2可以使用思维链符号来做到类似VLM的推理吗?
CoT
局限性与未来工作
1, 我们展示了使用web-scale数据集来进行预训练,因为其可以提高语义和视觉概念上的泛化性,但机器人并没从这些经验中学习到任何新动作,机器人的物理技能仍然受限于机器人数据中见过的技能分布,但是它学会了用新的方式去使用这些技能。我们认为这是因为网络数据集并没在技能层次有很好的分布。因此一个激动人心的未来方向将是研究新技能如何能从新数据采集方式中获得,如人类视频这类数据;

2,尽管我们展示了可以实时运行大规模的VLA模型,其计算量非常大, 因为这些模型被应用于高频控制中,实时推理可能会成为一个瓶颈。对应的未来工作是探索量化和知识蒸馏技术来降低算力。这也关联到另一个限制,当前可用与创造RT2的VLM模型有限,期待更多轻量级的VLM模型可被使用(e.g. https://llava-vl.github.io/) 。

个人见解
该工作很硬核,也很谷歌,硬核在于使用了一种大家都不看好的方式,用VLM这种语言模式来实现机器人控制,同时能从网络数据中获得一定的泛化能力,很谷歌是指这种工作也只有具备大算力大模型大数据大投入的谷歌公司才可以研究。总结来说,训练方式上带来了很大的创新,但如何使得其可以真正落地应用,作者指出了一些路径,如果有团队肯下大力气攻坚,也还是有希望的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工具分享】FOFA——网络空间测绘搜索引擎

文章目录 FOFA介绍FOFA语法其他引擎 FOFA介绍 FOFA官网:https://fofa.info/ FOFA(Fingerprinting Organizations with Advanced Tools)是一款网络空间测绘的搜索引擎,它专注于帮助用户收集和分析互联网上的设备和服务信息。FOFA…

提高LabVIEW软件的健壮性

提高LabVIEW软件的健壮性,即增强其在各种操作条件下的可靠性和稳定性,是开发过程中非常重要的一环。健壮的软件能够在面对意外输入、极端环境和系统故障时依然表现出色,确保系统的连续性和可靠性。以下是详细的方法和策略,从多个角…

如何在 CentOS 上配置本地 YUM 源

引言 CentOS 作为一个流行的企业级 Linux 发行版,依赖 YUM(Yellowdog Updater, Modified)来管理软件包。YUM 源(Repository)是软件包存储和分发的中心,它们通常位于互联网上。然而,在某些情况下…

Linux驱动开发-03字符设备驱动框架搭建

一、字符设备驱动开发步骤 驱动模块的加载和卸载(将驱动编译模块,insmod加载驱动运行)字符设备注册与注销(我们的驱动实际上是去操作底层的硬件,所以需要向系统注册一个设备,告诉Linux系统,我有…

快速入门,springboot知识点汇总

学习 springboot 应该像学习一门编程语言一样,首先要熟练掌握常用的知识,而对于不常用的内容可以简单了解一下。先对整个框架和语言有一个大致的轮廓,然后再逐步补充细节。 前序: Spring Boot 通过简化配置和提供开箱即用的特性&#xff0c…

SQL 字段类型-上

定义方式 use xxxx; 使用xxxx数据库后 create table table_name {username char(20)/*数据类型*/ null/*属性*/,password varchar(10) not null; 字段名... } 整型数据 和高级语言一样可以用 int unsigned 修饰无符号放在后面 数据类型关键字描述迷你整型tinyint使用1…

Java:解锁Lambda表达式的魔法——从零开始的函数式编程之旅

解密Java Lambda:从初识到精通,解锁编程新境界 引言:迎接函数式编程的曙光 自Java 8发布以来,函数式编程的概念如同一股清风,吹进了Java程序员的世界。其中,最引人瞩目的便是Lambda表达式。Lambda表达式的…

dify/api/models/tools.py文件中的数据表

源码位置:dify/api/models/tools.py ToolBuiltinProvider 表结构 字段英文名数据类型字段中文名字备注idStringUUIDIDUUID生成tenant_idStringUUID租户ID可为空user_idStringUUID用户ID非空providerString提供者非空encrypted_credentialsText加密凭证可为空creat…

在 Qt6 中,QList 和 QVector 统一 成qlist了吗?

是的,在 Qt6 中,QList 和 QVector 已经被统一了。具体来说,QList 现在基本上就是 QVector 的一个别名。这一改变意味着 QList 和 QVector 具有相同的性能和行为特性。 在 Qt5 中,QList 有自己的内部实现,对小型对象&a…

第三期书生大模型实战营 第1关 Linux 基础知识

第三期书生大模型实战营 第1关 Linux 基础知识 第三期书生大模型实战营 第1关 Linux 基础知识InternStudio开发机创建SSH密钥配置通过本地客户端连接远程服务器通过本地VSCode连接远程服务器运行一个Python程序总结 第三期书生大模型实战营 第1关 Linux 基础知识 Hello大家好&a…

cesium 雷达扫描

cesium 雷达扫描 (下面附有源码) 实现思路 1、通过改变圆型材质来实现效果, 2、用了模运算和步进函数(step)来创建一个重复的圆形图案 3、当纹理坐标st落在垂直或水平的中心线上时,该代码将改变透明度和颜色,以突出显示这些线 示例代码 <!DOCTYPE html> <ht…

成为编程大佬!!——数据结构与算法(1)——算法复杂度!!

前言&#xff1a;解决同一个程序问题可以通过多个算法解决&#xff0c;那么要怎样判断一个算法的优劣呢&#xff1f;&#x1f914; 算法复杂度 算法复杂度是对某个程序运行时的时空效率的粗略估算&#xff0c;常用来判断一个算法的好坏。 我们通过两个维度来看算法复杂度——…

Maven在Windows中的配置方法

本文介绍在Windows电脑中&#xff0c;下载、配置Maven工具的详细方法。 Maven是一个广泛使用的项目管理工具&#xff0c;主要针对Java项目&#xff0c;但也可以用于其他类型的项目&#xff1b;其由Apache软件基金会维护&#xff0c;旨在简化和标准化项目构建过程&#xff0c;依…

数字经济时代,你有数商吗?

引言&#xff1a;随着科技的飞速发展&#xff0c;我们正步入一个全新的数字经济时代。在这个时代里&#xff0c;数据成为了新的石油&#xff0c;是推动经济增长和社会进步的关键要素。而在这个数据洪流中&#xff0c;一个新兴的概念——“数商”&#xff0c;正逐渐进入公众的视…

白骑士的C++教学基础篇 1.3 控制流

系列目录 上一篇&#xff1a;白骑士的C教学基础篇 1.2 C基础语法 在编程中&#xff0c;控制流是指控制代码执行顺序的结构和语句。C 提供了多种控制流语句&#xff0c;使开发者能够根据条件执行不同的代码块&#xff0c;或者重复执行代码块。本篇博客将介绍 C 中的控制流&…

递归、搜索与回溯算法 2024.7.4-24.7.9

专题介绍&#xff1a; 一、递归 1、汉诺塔问题 class Solution {public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {int n A.size();move(n,A,B,C);// 将A柱上的n个盘子通过借助B盘子全部挪到C柱子上}void move(int m,List<Integ…

linux之段错误的分析

示例 1&#xff1a;段错误&#xff08;Segmentation Fault&#xff09; 假设你有以下简单的C程序&#xff0c;它会因为尝试解引用一个空指针而导致段错误&#xff1a; #include <stdio.h> int main() {int *ptr NULL;printf("%d\n", *ptr); // 尝试解引用空…

Python | Leetcode Python题解之第226题翻转二叉树

题目&#xff1a; 题解&#xff1a; class Solution:def invertTree(self, root: TreeNode) -> TreeNode:if not root:return rootleft self.invertTree(root.left)right self.invertTree(root.right)root.left, root.right right, leftreturn root

【ELK】filebeat 和logstash区别

Filebeat 和 Logstash 都是 Elastic Stack (也称为 ELK Stack) 的重要组件&#xff0c;用于日志数据的收集、处理和传输。它们有不同的功能和使用场景&#xff1a; Filebeat 角色: 轻量级日志收集器。功能: 从指定的日志文件中读取日志数据。可以从多个源&#xff08;如文件、…

01_空中机器人

空中机器人&#xff08;Aerial Robotics&#xff09;最早由美国乔治亚理工大学的Robert Michelson提出&#xff0c;是指各种搭载了GPS、机载导航设备、视觉识别设备以及无线通信设备等&#xff0c;能够在一定的范围内实现无人飞行的旋翼无人飞行器、无人飞艇等。 空中机器人拓…