革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势
DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息!
引言
任务规划在机器人技术中扮演着至关重要的角色。它涉及到为机器人设计一系列中级动作(技能),使其能够完成复杂的高级任务。这一过程不仅需要考虑机器人的能力,还需考虑周围环境以及可能存在的各种约束和不确定性。近年来,利用大型语言模型(LLMs)直接生成动作成为了任务规划领域的新趋势。这种方法因其卓越的性能和用户友好性而受到青睐。然而,传统的基于LLM的任务规划方法存在诸多效率问题,如高代价的令牌消耗和冗余的错误修正,这些问题限制了其在大规模测试和应用中的可扩展性。
论文概览
- 标题:TREE-PLANNER: Planning with Large Language Models for Efficient Close-Loop Task
- 作者:Mengkang Hu, Yao Mu, Xinmiao Yu, Mingyu Ding, Shiguang Wu, Wenqi Shao, Qiguang Chen, Bin Wang, Yu Qiao
- 机构:
- The University of Hong Kong
- Noah’s Ark Laboratory
- Harbin Institute of Technology
- Shanghai AI Laboratory
- 链接:https://arxiv.org/pdf/2310.08582.pdf
TREE-PLANNER方法介绍
TREE-PLANNER是一种新型的任务规划方法,它通过将任务规划过程分解为三个阶段来提高效率和减少错误:计划采样、动作树构建和基于环境的决策。这种方法首先利用大型语言模型(LLM)来采样可能的任务计划,然后将这些计划聚合成一个动作树,最后在执行过程中根据实时环境信息对动作树进行决策。
1. 计划采样(Plan Sampling)
在这一阶段,TREE-PLANNER利用LLM根据任务的全局信息和初始观察来生成一系列潜在的任务计划。这些计划是基于LLM的常识性知识生成的,每个计划都是一系列动作的序列。
2. 动作树构建(Action Tree Construction)
在动作树构建阶段,采样得到的所有潜在计划被整合到一个树状结构中。这个动作树的构建是通过比较不同计划中的动作并将相同的动作聚合在一起来实现的。这样可以避免在执行相同动作时的重复工作,提高执行效率。
3. 基于环境的决策(Grounded Deciding)
最后一个阶段是基于当前环境信息对动作树进行顶向下的决策。TREE-PLANNER会根据实时的环境反馈调整计划,选择最合适的动作执行。当执行中发生错误时,TREE-PLANNER能够通过回溯动作树灵活地进行错误修正,从而减少了错误修正的次数和代价。
通过这三个阶段的分解,TREE-PLANNER大大减少了令牌的消耗和错误修正的需要,使得任务规划更加高效和准确。
实验设置与数据集描述
环境
实验在VirtualHome环境中进行,这是一个用于模拟家庭任务的仿真平台。VirtualHome包含多个场景,每个场景中都有数百个对象,这些对象具有各自的属性,并且对象之间存在关系。例如,一个任务的目标条件可能是“电视已打开”,这需要在环境中找到电视并执行打开操作。
数据集
我们构建了一个数据集,包括4个VirtualHome场景和35个独特的家庭任务。每个任务都包括任务名称、目标条件和一个标准计划。我们首先从VirtualHome的ActivityPrograms知识库中注释目标条件,然后通过执行这些程序来生成标准计划。为了确保数据质量,我们采用了简单的启发式规则来过滤掉质量低的注释,并通过两名计算机科学专业的研究生进行手动质量控制。
评估指标
我们使用四个指标来评估不同方法的性能:可执行性(EXEC.)、成功率(SR)、目标条件召回率(GCR)和评估的财务开销( C O S T )。 E X E C . 指的是计划是否可以在给定环境中执行,而不考虑其与任务的相关性。 G C R 通过比较生成计划达到的目标条件与真实目标条件的差异来计算。 S R 衡量是否所有目标条件都已满足,即当 G C R = 1 时, S R = 1 。 COST)。EXEC.指的是计划是否可以在给定环境中执行,而不考虑其与任务的相关性。GCR通过比较生成计划达到的目标条件与真实目标条件的差异来计算。SR衡量是否所有目标条件都已满足,即当GCR=1时,SR=1。 COST)。EXEC.指的是计划是否可以在给定环境中执行,而不考虑其与任务的相关性。GCR通过比较生成计划达到的目标条件与真实目标条件的差异来计算。SR衡量是否所有目标条件都已满足,即当GCR=1时,SR=1。COST用于评估不同方法的令牌效率,根据OpenAI提供的定价计算。
通过这些设置和评估指标,我们能够全面地测试和比较TREE-PLANNER与其他基线模型的性能和效率。
主要实验结果与分析
在VirtualHome环境中进行的实验表明,TREE-PLANNER在两种设置下均展现出了卓越的性能。在允许修正错误的设置中,TREE-PLANNER在成功率方面超过了最佳基线模型1.29%,在不允许修正错误的设置中,这一优势更是提高到了3.65%。此外,TREE-PLANNER在令牌效率上也表现出色,相比ITERATIVE-PLANNER,其令牌成本降低了53.29%。在允许修正错误的设置中,与LOCAL REPLAN和GLOBAL REPLAN相比,令牌成本分别降低了74.36%和92.24%。
修正效率方面,TREE-PLANNER减少了37.99%和40.52%的动作重试次数,这一改进显著减少了令牌消耗。这些结果不仅证明了TREE-PLANNER在执行任务规划时的高效性,也显示了其在处理动态和复杂环境中的高适应性。
讨论TOKEN与修正效率
1. TOKEN效率
TREE-PLANNER通过将LLM查询分解为单一的计划采样调用和多个基于环境的决策调用,显著降低了令牌消耗。在传统的ITERATIVE-PLANNER中,每一步执行都需要重新加载和处理全局信息和环境观察,导致高令牌消耗。TREE-PLANNER通过一次性采样并构建行动树,减少了这部分重复的计算成本,从而实现了高令牌效率。
2. 修正效率
TREE-PLANNER的修正机制提供了一种介于LOCAL REPLAN和GLOBAL REPLAN之间的新方法。通过在行动树上进行回溯,TREE-PLANNER允许在发现执行错误时,不必重新从头开始规划,而是从上一个有效的分叉点重新决策。这种方法不仅减少了决策的冗余,也大大减少了因错误修正而产生的时间和令牌消耗。
总体来看,TREE-PLANNER通过创新的任务规划方法有效地解决了传统LLM任务规划中的令牌和修正效率问题,提供了一种既高效又实用的新框架。
错误分析与未来方向
在TREE-PLANNER模型的实验和分析中,我们发现了几个关键的错误类型和潜在的改进方向。首先,错误类型可以分为三类:(i) 缺失正确计划;(ii) 决策错误;(iii) 虚假否定。其中,缺失正确计划占据了错误的主要部分,这表明尽管计划采样在某种程度上能够达到较高的GCRmax,但它仍然是模型性能的一个瓶颈。
针对这些问题,未来的改进方向包括:
1. 增强计划采样阶段的效率和准确性:可以通过增加计划重采样的设计来打破现有的性能上限,特别是在grounded deciding阶段,以确保能够从更广泛的正确计划中进行选择。
2. 提高决策阶段的准确性:实验中发现,大量错误是由于LLM在grounded deciding阶段的决策错误造成的。未来可以通过引入更先进的技术,如链式思考(chain-of-thought)和自我反思(self-reflection),来提高模型在这一阶段的表现。
3. 优化错误修正机制:虽然TREE-PLANNER在错误修正方面已经取得了显著进展,减少了重复决策和令牌消耗,但仍有改进空间。可以探索更灵活和高效的错误追踪和修正策略,以进一步提高模型的实用性和效率。
通过这些改进,我们希望能够进一步提升TREE-PLANNER的性能,使其在更广泛的应用场景中表现出更高的效率和更强的鲁棒性。
总结与展望
TREE-PLANNER作为一种新型的基于大型语言模型的任务规划框架,通过其创新的计划采样、动作树构建和基于环境的决策过程,有效地解决了传统迭代规划方法中的令牌效率低和错误修正冗余的问题。实验结果显示,TREE-PLANNER在虚拟家庭环境中的表现超越了现有的基线模型,无论是在任务成功率还是在令牌和错误修正效率上都有显著提高。
展望未来,TREE-PLANNER的研究可以在几个方向上进行深入:
-
扩展到更复杂的环境和任务:考虑将TREE-PLANNER应用于更多种类的环境和任务,特别是那些动态变化更加剧烈和不确定性更高的场景。
-
集成更先进的语言模型和决策技术:随着语言模型和人工智能决策技术的不断进步,集成最新的研究成果可能会进一步提升TREE-PLANNER的性能和适应性。
-
优化模型的可解释性和用户交互:提高模型的可解释性,使用户能够更好地理解模型的决策过程和修正策略,同时探索更自然和有效的用户交互方式。
通过这些研究和改进,TREE-PLANNER有望成为未来智能任务规划领域的一个重要工具,为自动化系统和机器人技术的发展提供强大的支持。
关注DeepVisionary 了解更多深度学习前沿科技信息&顶会论文分享!
相关文章:

革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势
DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言 任务规划在机器人技术中扮演着至关重要的角色。它涉及到为机器人设计一系列中级动作(技能),使其能够完成复杂的高级任…...

【数据分析面试】42.用户流失预测模型搭建(资料数据分享)
题目 保持高的客户留存率可以稳定和提到企业的收入。因此,预测和防止客户流失是在业务中常见的一项数据分析任务。这次分享的数据集包括了电信行业、银行、人力资源和电商行业,涵盖了不同业务背景下的流失预测数据。 后台回复暗号(在本文末…...

5.13号模拟前端面试10问
1.介绍箭头函数和普通函数的区别 箭头函数和普通函数在JavaScript中有一些重要的区别。以下是关于这些区别的详细解释: 语法结构上的差异: 箭头函数使用更简洁的语法,它不需要使用function关键字,而是使用一个箭头(…...
学习使用jQuery将光标移动到textarea的末尾
学习使用jQuery将光标移动到textarea的末尾 代码 代码 $(document).ready(function(){var textarea $(#your-qipa-id); // 替换为你的textarea IDtextarea.focus(); // 将焦点设置到textarea// 获取textarea的值的长度var len textarea.val().length;// 使用setSelectionRan…...

【送书福利第七期】你好!Java(文末送书)
文章目录 编辑推荐内容简介作者简介目录前言/序言 编辑推荐 适读人群 :程序员;相关院校师生 本书以轻松幽默的语言,从零开始介绍Java语言。书名来源于编程语言中最经典的Hello World程序,寓意带读者从入门到精通。 书中每章都设有总结与扩展…...

申贷时,银行级大数据自己能查到吗?
随着金融风控的不断健全,大数据作为辅助的风控工具正在被越来越多的银行和机构使用。在进行申贷时,银行通常会进行大数据查询,以便评估申请人的信用状况。那么,这些大数据自己能查到吗?接下来本文就为大家详细介绍一下࿰…...

【SVN-TortoiseSVN】SVN 的简介与TortoiseSVN 安装使用教程
目录 🌞前言 🌊1. SVN 的简介 🌍1.1 SVN是什么 🌍1.2 SVN 工作原理 🌍1.3 TortoiseSVN 术语及定义 🌊2. TortoiseSVN 安装与汉化 🌊3. SVN 基本操作-TortoiseSVN 🌍3.1 浏览…...
5.13学习日志
Pytorch 神经网络基础 1.模型构造 1》层和块 块可以描述单个层,由多个层组成的组件或者模型本身 块由类表示,类的任何子类都必须定义一个将其输入转换为输出的前向传播函数。为了计算梯度,块必须具有反向传播函数 自定义块: …...

8种常见的CMD命令
1.怎么打开CMD窗口 步骤1:winr 步骤2:在弹出的窗口输入cmd,然后点击确认,就会出现一个cmd的窗口 2.CMD的8种常见命令 2.1盘符名称冒号 说明:切换盘的路径 打开CMD窗口这里默认的是C盘的Users的27823路径底下…...

版本控制工具之Git的基础使用教程
Git Git是一个分布式版本控制系统,由Linux之父Linus Torvalds 开发。它既可以用来管理和追踪计算机文件的变化,也是开发者协作编写代码的工具。 本文将介绍 Git 的基础原理、用法、操作等内容。 一、基础概念 1.1 版本控制系统 版本控制系统&#x…...

五子棋对战(网页版)
目录 一、项目背景 用户模块 匹配模块 对战模块 二、核心技术 三、相关知识 WebSocket 原理 报文格式 代码 服务器代码 客户端代码 四、项目创建 4.1、实现用户模块 编写数据库代码 数据库设计 配置MyBatis 创建实体类 创建UserMapper 创建UserMapper接口 实现UserMapper.xml 前…...

在 Ubuntu系统中,可以使用以下几种方法查看网络速率
1 使用终端命令:可以使用ifconfig命令查看网络接口的信息,包括网络接口名称、IP地址、子网掩码等。也可以使用nload命令查看网络流量和传输速率。 2 使用网络监控工具:例如nethogs,可以更加直观地查看网络吞吐量。 3 使用网络测…...
这是摆脱困境的最好方法
20多年前,我开始涉足创业,经历过的那种停滞感我都记不清了。这是这条职业道路上最常见的挣扎之一,而且很难摆脱。 卡住的城市是一个地方,任何有创造力的,自由职业者和好奇的人经常去。这是一个很难逃离的地方。 被困…...
OceanBase 中的ROWID与Oracle的差异与如何迁移
1. ROWID 1.1 OB和Oracle中rowid的区别 正如大家所知道的,OceanBase兼容Oracle的rowid特性,但在其生成规则上却存在不同,具体表现如下: OceanBase ● 定义:OceanBase(简称 OB)的rowid是通过…...

秋招后端开发面试题 - JVM运行时数据区
目录 运行时数据区前言面试题JVM 内存区域 / 运行时数据区?说一下 JDK1.6、1.7、1.8 内存区域的变化?为什么使用元空间替代永久代作为方法区的实现?Java 堆的内存分区了解吗?运行时常量池?字符串常量池了解吗ÿ…...

【YOLOv8改进[Backbone]】使用SCINet改进YOLOv8在黑暗环境的目标检测效果
目录 一 SCINet 1 本文方法 ① 权重共享的照明学习 ② 自校准模块 ③ 无监督训练损失 二 使用SCINet助力YOLOv8在黑暗环境的目标检测效果 1 整体修改 2 配置文件 3 训练 其他 一 SCINet 官方论文地址:https://arxiv.org/pdf/2204.10137 官方代码地址&…...
ASE docker related research
ASE 2022 Understanding and Predicting Docker Build Duration: An Empirical Study of Containerized Workflow of OSS Projects 理解和预测 Docker 构建持续时间:OSS 项目容器化工作流程的实证研究 Docker 构建是容器化工作流程的关键组成部分,它…...

maven .lastUpdated文件作用
现象 有时候我在用maven管理项目时会发现有些依赖报错,这时你可以看一下本地仓库中是否有.lastUpdated文件,也许与它有关。 原因 有这个文件就表示依赖下载过程中发生了错误导致依赖没成功下载,可能是网络原因,也有可能是远程…...

gtest的编译与使用
文章目录 gtest的编译与使用概述笔记CMake参数官方文档测试程序测试效果END gtest的编译与使用 概述 gTest是 googletest的缩写,如果直接找gTest项目,是找不到的。 库地址 https://github.com/google/googletest.git 迁出到本地后,切到最新…...

【 npm详解:从入门到精通】
文章目录 npm详解:从入门到精通1. [npm](https://www.npmjs.com/)的安装2. npm的基础用法2.1 初始化项目2.2 安装依赖2.3 卸载依赖2.4 更新依赖 3. npm的高级用法3.1 运行脚本3.2 使用npm scope3.3 使用npm link 4. npm资源5. 使用npm进行依赖树分析和可视化6. npm进…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...

图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...