从大模型中蒸馏功能性重排列任务的先验知识

图片

图片

导读

本文是VCC朱家辉同学对论文 Distilling Functional Rearrangement Priors from Large Models 的解读,该工作来自北京大学和中山大学,并已被发表在国际机器人顶会ICRA 2024上。

项目主页: 

https://sites.google.com/view/lvdiffusion/ 

该工作提出了一种结合大语言模型和图像生成模型来获得功能性重排列任务的先验知识的方法。该方法专注于生成符合功能要求的物体目标位置,这些位置在随后的机器人操控任务中具有重要意义。通过这种结合,算法不仅能更精准地生成目标位置,还能有效解决图像生成模型中提示词与生成结果不一致的问题。

I 引言 

近年来,基于图像生成模型的机器人重排列任务引起了广泛关注。这种方法的核心在于,通过使用预训练的图像生成模型,根据物体的初始状态输出重排列目标图像。与传统生成方法(例如,从零开始人工标注数据集或设计奖励函数)相比,这种方法能够灵活生成各种场景下的目标图像。尽管最新的生成模型能较好地生成符合功能性要求的图像,但由于模型的随机性,所以常常无法精确地复现初始场景中相同种类和数量的物体。因此,这类方法在测试阶段通常需加入过滤模块,以筛选出符合数量要求的图像。

本篇导读论文介绍了一种新方法,通过蒸馏大模型来获取功能性重排列的先验知识。该方法结合了大语言模型和图像生成模型,用于收集各种不同排列的示例数据集(包括物体的类别和位置)。随后,通过训练扩散模型,使其符合数据集的分布。在测试阶段,扩散模型能根据物体的类别和初始位置生成每个物体的目标位置。这种通过蒸馏的方法比以往方法更精确地生成目标位置,并能将生成过程从数分钟缩短至数秒,极大满足了机器人重排列任务对实时性的需求。

图片

图1 之前方法跟本论文方法的总览图

技术贡献 

本工作主要贡献如下:

  • 提出了一种新的框架,从大语言模型和图像生成模型中蒸馏功能性重排列的先验知识,用于训练扩散模型,以满足功能性重排列的要求;

  • 提出了利用大语言模型帮助缓解图像生成模型在提示词与生成结果不一致的问题;通过大量实验验证了该方法在生成目标位置和真实机器人操控任务中的有效性。

图片

图2 机器人生成目标图像并执行动作过程

III 方法介绍 

本方法的关键在于训练一个能够生成与初始物体数量相同且符合功能性要求的扩散模型。整个方法分为三个主要步骤:第一,数据收集:首先,利用大语言模型和图像生成模型收集数据集。数据集中包含物体的二维位置、大小和类别标签,这些信息共同定义了物体的数据分布。第二,模型训练:接着,使用这个数据集来训练基于分数的扩散模型。该模型旨在对条件分布进行建模,从而能够精确地生成目标位置。第三,推理:在推理阶段,目标检测器从当前图片中提取物体的初始位置和类别信息,并将这些信息输入到训练好的扩散模型中。模型随后生成符合功能性要求的物体目标位置。值得注意的是,这里的生成内容是物体的目标位置而非目标图像,如图3所示,在推理阶段生成的是“Goal Poses”,图中只是将每个物体的目标位置进行了可视化处理。最终,机器人根据这些信息将物体从初始位置移动到目标位置,完成重排列任务。

图片

图3 算法三大步骤

接下来分别介绍每一步的具体做法:

通过大语言模型和图像生成模型来收集数据

数据收集第一阶段:使用图像生成大模型(例如Stable Diffusion XL)生成初始物体摆放示例。这涉及使用特定的提示词模板,如“Realistic photo of [adjective] [setting description] with [num1] [object1], [num2] [object2], ..., [functional layout], [view point]”,图3中左上角展示了一个具体示例。然后,使用目标检测器(如GroundingDino)来获取物体的位置和类别信息。由于图像生成模型的随机性,需要过滤掉那些不符合提示词要求(如物体数量过多或物体类别未知)的图像。

数据收集第二阶段:优化初始重排列示例。首先,向大语言模型(如GPT-4)输入任务描述、用户习惯、以及目标检测器提供的物体包围盒和类别信息。目的是生成符合个人偏好的功能性排列要求。接着,让大语言模型推断出符合功能性要求的物体类别和数量,删除多余物体,并重新摆放剩余物体,以生成符合要求的物体位置。这一阶段使用思维链策略进行提问,并在第二次提问时加入具体示例,以确保获得统一格式和符合要求的物体位置。这些信息用于构建数据集。

将收集的数据集蒸馏到扩散模型中

这一步骤旨在将收集的数据用于训练条件扩散生成模型中,以对数据分布进行建模,该模型训练后能生成符合功能性要求的目标位置(不是图像)。这里采用基于分数的扩散模型来估计数据分布,更具体地,使用方差爆炸随机方程构建了一个连续扩散过程,并在训练过程中估计加噪声后数据分布的得分函数。通过降噪分数匹配(Denoising Score Matching)训练得分网络来估计噪声,这里估计的噪声相当于估计数据分布,具体公式请看原论文。得分网络的架构主要是一个图神经网络,适应不同数量物体的输入。所有物体构成一个完全连接的图,每个节点包含物体的位置、大小和类别,得分网络输入这个图,输出每个节点的得分。

使用训练后扩散模型重排列物体

在测试时,用目标检测器得到当前观察图片中物体的位置、大小和类别,然后通过训练好的得分网络生成目标位置。现在就可以计算出从初始位置到目标位置之间的平移,然后通过现成的SuctionNet来得到抓取物体的点,并根据前面得到的平移来计算放置物体的点,最后机器人对每个物体执行到达这个抓取点,抓取物体,到达放置点这些动作,直到完成任务。

IV 部分结果展示 

在这部分,我们将展示本论文算法在整理桌面任务中的效果。考虑了从简单到复杂的六种不同场景(S1至S6),每个场景的复杂度逐渐增加。第一行展示的是初始的物体位置,第二行展示了基线DALL-E-Bot整理后的结果。可以观察到,本论文提出的方法在整理效果上显著优于基线模型。原因在于,基线DALL-E-Bot采用的DALL-E2图像生成模型具有较高的随机性,无法保证生成的物体数量与初始场景一致。当生成的图像中物体过多时,算法难以匹配当前场景中的物体与生成图像中的对应物体,因此只能按照相似度最高的方式进行整理。而本论文的方法专注于生成物体的目标位置,这些位置是根据功能性重排列数据集的分布生成的,且允许物体之间发生重叠,从而在整理桌面的舒适度上优于DALL-E-Bot。

图片

图4 相较于现有方法,本文在整理餐桌时舒适度有较大提高

此外,我们还比较了四种不同场景下,整理后的物体位置与真实物体位置之间的差距。差距越小意味着结果越接近真实摆放情况。与其他方法相比,本文结果最接近真实例子。关于其他消融实验和基线方法的具体实现,请参考原文。

图片

图5 本论文与现有方法的整理结果比较

V总结与展望 

近年来,大语言模型和扩散模型的快速发展为机器人感知和操控领域带来了新的活力,如何有效地结合大语言模型和扩散模型至关重要。尽管现有方法主要使用扩散模型来生成目标图像,但仍有提升空间。本研究提出的结合大语言模型和扩散模型的方法,显著缩小了这一差距,使得生成符合功能性要求的目标位置成为可能。

未来的工作应当考虑物体可能发生的旋转,并探索如何提高算法在不同场景下的泛化能力。

VI 思考与讨论 

Q: Pormpt在LLM尤为重要,第一步的LLM的prompt具体是什么? 

A: 在整理左撇子餐桌的例子。第一阶段的向LLM提出功能性要求,用户输入Prompt和LLM回答是:

图片

图6 第一阶段的prompt

第二阶段是提示LLM 推断符合上述功能性要求下场景所需的物体类型和数量,删除多余的物品,并重新定位剩余的物体以生成预期的坐标级布局,与第一阶段中确定的功能要求相一致。用户输入prompt是:

图片

图7 第二阶段的prompt总览

由于篇幅原因,更具体的 Output format 和 In Context Example 的 prompt 请参考原论文。 

Q: 得分网络的具体网络架构是怎样的? 

A: 网络输入一个完全连接的图,其中第i个节点包含了物体的位置、大小和类别标签,经过两层MLP编码升维后,经过两次EdgeConv,能有效地捕捉图中节点间的关系,也就是更能理解物体的位姿和条件之间的关系,输出是每个节点上的得分。

图片

图8 得分网络架构

Q: 第二阶段训练后扩散模型只能生成数据集相关场景下的目标位置,如何让算法在其他未见过的场景中生成目标位置或图像,从而提高泛化到其他场景中的表现能力。

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

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

相关文章

ChatGPT更新了Mention功能,集结若干GPTs作战,AI智能体的心智入口;向量数据库的挑战和未来

🦉 AI新闻 🚀 ChatGPT更新了Mention功能,集结若干GPTs作战,AI智能体的心智入口 摘要:OpenAI在ChatGPT中引入了一个新功能,允许用户在聊天时任意一个GPTs(即ChatGPT最新推出的AI Agent 智能应用…

文心一言 VS 讯飞星火 VS chatgpt (189)-- 算法导论14.1 6题

六、用go语言,在OS-SELECT或OS-RANK中,注意到无论什么时候引用结点的size属性都是为了计算一个秩。相应地,假设每个结点都存储它在以自己为根的子树中的秩。试说明在插入和删除时,如何维护这个信息。(注意,这两种操作都…

UI设计中的图标定义

图标的含义 图标是图形化用户界面设计中的重要元素之一,也是图形化用户界面设计中最直接、最生动的视觉形态,有着优秀图形化用户界设计、形象明确、造型突出的图标,能够迅速地被用户所理解和接受,从而使软件或程序的使用效率提高…

【Javaweb程序设计】【C00163】基于SSM房屋中介服务平台(论文+PPT)

基于SSM房屋中介服务平台(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的房屋中介服务平台 本系统分为前台、管理员、用户3个功能模块。 前台:当游客打开系统的网址后,首先看到的就是首页界面。…

如何使用宝塔面板搭建MySQL 5.5数据库并实现公网远程连接

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…

5G_RACH(一)

什么是RACH RACH 代表 Random Access Channel。这是开机时UE发给eNB的第一条消息。 为什么选择RACH ?(RACH 的功能是什么? 当你第一次听到RACH或RACH Process这个词时,你脑海中浮现的第一个问题是“为什么是RACH?”…

量化交易学习3(量化择时策略)

1 什么是量化择时 量化择时策略,简单来说,就是采用数量化分析方法,利用单个或多个技术指标的组合,来对交易标的股票或股票指数进行低买高卖的操作,期望获得超越简单买入持有策略的收益风险表现。 量化择时策略的核心…

NodeJs环境安装与配置

最近电脑重装了系统,开发环境啥的都得重装,顺便记录下 nodeJs 的安装与配置,方便需要的同学查看,也方便自己以后查找。 安装 下载地址:https://nodejs.cn/download/ 根据需要选择自己环境需要的下载即可,…

基础算法之Huffman编码

// Type your code here, or load an example. #include<iostream> #include<string> #include<queue> #include <unordered_map> #include <vector>using namespace std;//树节点结构 struct Node {char ch;int freq;Node *left;Node *right;No…

【LeetCode: Z 字形变换 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

产业需求大数据平台

产业需求大数据平台&#xff0c;依托大数据、NLP等技术&#xff0c;全面采集区域产业人才需求数据&#xff0c;从宏观、中观、微观三个层面对产业需求进行分析&#xff0c;并匹配学校自身的办学定位、专业布局、人才培养目标、培养规格和课程设置&#xff0c;进行专业设置匹配度…

MySQL-进阶-存储引擎

一、MySQL体系结构 二、存储引擎简介 三、存储引擎特点 1、InnoDB 2、MyISAM 3、Memory 四、存储引擎选择