Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序

本文主要是介绍Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇论文主要讨论了大型语言模型(LLM)在机器人控制方面的应用。作者们指出,尽管LLM在理解和生成自然语言方面表现出色,但其在实际应用中,如机器人控制等领域的应用仍然有限。因此,他们提出了一种新的方法,即使用LLM编写代码来控制机器人的行为。
在这里插入图片描述

他们发现,编写代码的LLM在规划、策略逻辑和控制方面表现出色。这些模型可以被重新用于编写机器人策略代码,给出自然语言命令(格式化为注释)。策略代码可以表达处理感知输出(例如,开放词汇对象检测器)和参数化控制原语API的函数或反馈循环。当提供了几个示例语言命令和相应的策略代码(通过少量提示),LLM可以接收新的命令并自主重新组合API调用以生成新的策略代码。此外,编写代码的模型可以表达各种算术运算以及基于语言的反馈循环。他们不仅可以推广到新的指令,而且由于在数十亿行代码和注释上进行了训练,也可以根据上下文为模糊的描述(例如,“更快”和“向左”)规定精确的值,以引出行为常识。

方法部分,作者们详细介绍了如何使用大型语言模型(LLM)生成代码作为策略。他们的方法主要包括以下几个步骤:

1.定义语言模型程序(LMP):作者们首先定义了语言模型程序(LMP)的概念。LMP是由语言模型生成并在系统上执行的任何程序。他们的工作主要研究了一类名为“代码作为策略”的LMP,这类LMP将语言指令映射到代码片段,这些代码片段可以(i)响应感知输入(即来自传感器或传感器上层的模块),(ii)参数化控制原语API,并(iii)直接在机器人上编译和执行。

2.生成LMP:作者们展示了如何使用LLM生成LMP。他们提供了一些示例,如何将自然语言指令(格式化为注释)转化为代码。例如,他们展示了如何使用LLM编写代码来控制机器人的行为,如移动物体,识别物体,以及执行更复杂的任务。

3.执行LMP:为了执行LMP,他们首先检查它是否安全运行,确保没有导入语句,没有以__开头的特殊变量,也没有对exec和eval的调用。然后,他们使用Python的exec函数,将代码作为输入字符串,并使用两个字典形成该代码执行的范围:(i)全局变量,包含生成的代码可能调用的所有API,和(ii)局部变量,一个将在exec期间定义的变量和新函数填充的空字典。如果LMP预计会返回一个值,他们会在exec完成后从局部变量中获取它。

4.提示生成LMP:生成LMP的提示包含两个元素:(i)提示,例如导入语句,告诉LLM哪些API可用以及如何使用这些API;(ii)示例,这些是指令到代码对,展示了如何将自然语言指令转化为代码。这些可能包括执行算术运算,调用其他API,以及编程语言的其他特性。

5.高级LMP:作者们还展示了如何使用LLM生成更复杂的代码,如使用控制流(如if-else和循环语句)和嵌套函数调用。他们还展示了如何使用LLM生成函数以供未来使用,以及如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。

在这篇论文的实验部分,作者们展示了如何使用大型语言模型(LLM)编写代码来控制机器人的行为。他们提供了一些示例,包括如何使用LLM编写Python脚本,如何使用第三方库进行复杂操作,以及如何使用第一方库进行操作。他们还展示了如何使用LLM编写更复杂的代码,如使用控制流(如if-else和循环语句)和嵌套函数调用。

在这里插入图片描述

在实验中,他们使用了一些具体的任务来展示他们的方法的效果。例如,他们展示了如何使用LLM编写代码来移动物体,如何识别物体,以及如何执行更复杂的任务。他们还展示了如何使用LLM生成函数以供未来使用,以及如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。

以下是一些具体的实验示例:

1.他们展示了如何使用LLM编写代码来移动物体。例如,他们展示了如何使用LLM编写代码来移动一个名为“红色块”的物体。他们首先获取该物体的位置,然后将其向右移动一定的距离。

2.他们展示了如何使用LLM编写代码来识别物体。例如,他们展示了如何使用LLM编写代码来识别一个名为“蓝色块”的物体。他们使用了一个开放词汇的物体检测器来完成这个任务。

3.他们展示了如何使用LLM编写代码来执行更复杂的任务。例如,他们展示了如何使用LLM编写代码来将一个名为“蓝色块”的物体放在一个名为“蓝色碗”的物体上。

4.他们展示了如何使用LLM生成函数以供未来使用。例如,他们展示了如何使用LLM编写代码来定义一个名为“get_total”的函数,该函数接受一个名为“xs”的参数,并返回其总和。

5.他们展示了如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。例如,他们展示了如何使用LLM编写代码来定义一个名为“get_objs_bigger_than_area_th”的函数,该函数接受两个参数——一个名为“obj_names”的物体名列表和一个名为“bbox_area_th”的阈值,然后返回所有大于该阈值的物体的名字。

这些实验结果表明,LLM可以有效地用于编写控制机器人行为的代码,具有很高的实用性和广泛的应用前景。
在这里插入图片描述

最后作者们总结了他们的研究成果,并对未来的研究方向进行了展望。他们认为,大型语言模型(LLM)在编写代码方面的能力为机器人控制提供了新的可能性。通过使用LLM,我们可以将自然语言指令转化为机器人策略代码,从而实现更复杂的机器人行为。此外,他们还指出,LLM不仅可以理解和生成自然语言,还可以通过使用"say(text)"作为一个可用的动作原语API,参与人机对话和问答。他们的研究结果表明,LLM可以有效地编写Python程序,并能够处理各种复杂的任务,如移动物体,识别物体,以及执行更复杂的任务。他们的方法不仅可以广泛应用于机器人控制,还可以用于其他需要编写代码的领域。

这篇关于Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI