目录
研究背景
方法
实验结果
定性结果
总结
首页 科技周边 人工智能 开源VLMs的潜力被RoboFlamingo框架释放

开源VLMs的潜力被RoboFlamingo框架释放

Jan 17, 2024 pm 02:12 PM
ai 训练

近年来,大模型的研究正在加速推进,它逐渐在各类任务上展现出多模态的理解和时间空间上的推理能力。机器人的各类具身操作任务天然就对语言指令理解、场景感知和时空规划等能力有着很高的要求,这自然引申出一个问题:能不能充分利用大模型能力,将其迁移到机器人领域,直接规划底层动作序列呢?

ByteDance Research利用开源的多模态语言视觉大模型OpenFlamingo开发了易用的RoboFlamingo机器人操作模型,只需单机训练。VLM可通过简单微调变成Robotics VLM,适用于语言交互的机器人操作任务。

在机器人操作数据集CALVIN上,OpenFlamingo进行了验证。实验结果表明,RoboFlamingo仅使用了1%带有语言标注的数据,就在一系列机器人操作任务中取得了SOTA的性能。随着RT-X数据集的开放,采用开源数据预训练的RoboFlamingo,并进行不同机器人平台的微调,有望成为一个简单有效的机器人大模型流程。论文还测试了不同策略头、不同训练范式和不同Flamingo结构的VLM在机器人任务上的微调表现,并得出了一些有趣的结论。

开源VLMs的潜力被RoboFlamingo框架释放

  • 项目主页:https://roboflamingo.github.io
  • 代码地址:https://github.com/RoboFlamingo/RoboFlamingo
  • 论文地址:https://arxiv.org/abs/2311.01378

研究背景

开源VLMs的潜力被RoboFlamingo框架释放

基于语言的机器人操作是具身智能领域的一个重要应用,涉及到多模态数据的理解和处理,包括视觉、语言和控制等。近年来,视觉语言基础模型(VLMs)在图像描述、视觉问答和图像生成等领域取得了显著进展。然而,将这些模型应用于机器人操作仍面临挑战,如如何整合视觉和语言信息,以及如何处理机器人操作的时序性。解决这些挑战需要在多个方面进行改进,例如改进模型的多模态表示能力,设计更有效的模型融合机制,以及引入适应机器人操作时序性的模型结构和算法。此外,还需要发展更丰富的机器人数据集,以训练和评估这些模型。通过持续的研究和创新,基于语言的机器人操作有望在实际应用中发挥更大的作用,为人类提供更智能、便捷的服务。

为了解决这些问题,ByteDance Research的机器人研究团队对现有的开源VLM(Visual Language Model)——OpenFlamingo进行了微调,并设计了一套新的视觉语言操作框架,称为RoboFlamingo。这个框架的特点是利用VLM实现了单步视觉语言理解,并通过额外的policy head模组处理历史信息。通过简单的微调方法,RoboFlamingo能够适应基于语言的机器人操作任务。这一框架的引入有望解决当前机器人操作中存在的一系列问题。

RoboFlamingo 在基于语言的机器人操作数据集 CALVIN 上进行了验证,实验结果表明,RoboFlamingo 只利用了 1% 的带语言标注的数据即在一系列机器人操作任务上取得了 SOTA 的性能(多任务学习的 task sequence 成功率为 66%,平均任务完成数量为 4.09,基线方法为 38%,平均任务完成数量为 3.06;zero-shot 任务的成功率为 24%,平均任务完成数量为 2.48,基线方法为 1%,平均任务完成数量是 0.67),并且能够通过开环控制实现实时响应,可以灵活部署在较低性能的平台上。这些结果表明,RoboFlamingo 是一种有效的机器人操作方法,可以为未来的机器人应用提供有用的参考。

方法

开源VLMs的潜力被RoboFlamingo框架释放

本工作利用已有的基于图像 - 文本对的视觉语言基础模型,通过训练端到端的方式生成机器人每一步的相对动作。该模型由三个主要模块组成:Vision encoder,Feature fusion decoder 和 Policy head。 在 Vision encoder 模块中,当前视觉观测首先被输入到 ViT 中,然后通过 resampler 对 ViT 输出的 token 进行 down sample。这一步骤有助于减小模型的输入维度,从而提高了训练效率。 Feature fusion decoder 模块将 text token 作为输入,并通过交叉注意力机制将视觉编码器的输出作为查询,实现了视觉与语言特征的融合。在每个 layer 中,feature fusion decoder 首先执行交叉注意力操作,然后执行自注意力操作。这些操作有助于提取出语言和视觉特征之间的相关性,从而更好地生成机器人的动作。 在 Feature fusion decoder 输出的当前和历史 token 序列的基础上,Policy head 直接输出当前的 7 DoF 相对动作,包括了 6-dim 的机械臂末端位姿和 1-dim 的 gripper open/close。最后,对 feature fusion decoder 进行 max pooling 后将其送入 Policy head 中,从而生成相对动作。 通过这种方式,我们的模型能够有效地将视觉和语言信息融合在一起,生成出准确的机器人动作。这对于机器人控制和自主导航等领域有着广泛的应用前景。

在训练过程中,RoboFlamingo 利用预训练的 ViT、LLM 和 Cross Attention 参数,并只微调 resampler、cross attention 和 policy head 的参数。

实验结果

数据集:

开源VLMs的潜力被RoboFlamingo框架释放

CALVIN(Composing Actions from Language and Vision)是一个开源的模拟基准测试,用于学习基于语言的 long-horizon 操作任务。与现有的视觉 - 语言任务数据集相比,CALVIN 的任务在序列长度、动作空间和语言上都更为复杂,并支持灵活地指定传感器输入。CALVIN 分为 ABCD 四个 split,每个 split 对应了不同的 context 和 layout。

定量分析:

开源VLMs的潜力被RoboFlamingo框架释放

RoboFlamingo 在各设置和指标上的性能均为最佳,说明了其具有很强的模仿能力、视觉泛化能力以及语言泛化能力。Full 和 Lang 表示模型是否使用未配对的视觉数据进行训练(即没有语言配对的视觉数据);Freeze-emb 指的是冻结融合解码器的嵌入层;Enriched 表示使用 GPT-4 增强的指令。

消融实验:

开源VLMs的潜力被RoboFlamingo框架释放

不同的 policy head:

实验考察了四种不同的策略头部:MLP w/o hist、MLP w hist、GPT 和 LSTM。其中,MLP w/o hist 直接根据当前观测预测历史,其性能最差,MLP w hist 将历史观测在 vision encoder 端进行融合后预测 action,性能有所提升;GPT 和 LSTM 在 policy head 处分别显式、隐式地维护历史信息,其表现最好,说明了通过 policy head 进行历史信息融合的有效性。

视觉-语言预训练的影响:

预训练对于 RoboFlamingo 的性能提升起到了关键作用。实验显示,通过预先在大型视觉-语言数据集上进行训练,RoboFlamingo 在机器人任务中表现得更好。

模型大小与性能:

虽然通常更大的模型会带来更好的性能,但实验结果表明,即使是较小的模型,也能在某些任务上与大型模型媲美。

指令微调的影响:

指令微调是一个强大的技巧,实验结果表明,它可以进一步提高模型的性能。

定性结果

相较于基线方法,RoboFlamingo 不但完整执行了 5 个连续的子任务,且对于基线页执行成功的前两个子任务,RoboFlamingo 所用的步数也明显更少。

开源VLMs的潜力被RoboFlamingo框架释放

总结

本工作为语言交互的机器人操作策略提供了一个新颖的基于现有开源 VLMs 的框架,使用简单微调就能实现出色的效果。RoboFlamingo 为机器人技术研究者提供了一个强大的开源框架,能够更容易地发挥开源 VLMs 的潜能。工作中丰富的实验结果或许可以为机器人技术的实际应用提供宝贵的经验和数据,有助于未来的研究和技术发展。

以上是开源VLMs的潜力被RoboFlamingo框架释放的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

了解 ACID 属性:可靠数据库的支柱 了解 ACID 属性:可靠数据库的支柱 Apr 08, 2025 pm 06:33 PM

数据库ACID属性详解ACID属性是确保数据库事务可靠性和一致性的一组规则。它们规定了数据库系统处理事务的方式,即使在系统崩溃、电源中断或多用户并发访问的情况下,也能保证数据的完整性和准确性。ACID属性概述原子性(Atomicity):事务被视为一个不可分割的单元。任何部分失败,整个事务回滚,数据库不保留任何更改。例如,银行转账,如果从一个账户扣款但未向另一个账户加款,则整个操作撤销。begintransaction;updateaccountssetbalance=balance-100wh

掌握SQL LIMIT子句:控制查询中的行数 掌握SQL LIMIT子句:控制查询中的行数 Apr 08, 2025 pm 07:00 PM

SQLLIMIT子句:控制查询结果行数SQL中的LIMIT子句用于限制查询返回的行数,这在处理大型数据集、分页显示和测试数据时非常有用,能有效提升查询效率。语法基本语法:SELECTcolumn1,column2,...FROMtable_nameLIMITnumber_of_rows;number_of_rows:指定返回的行数。带偏移量的语法:SELECTcolumn1,column2,...FROMtable_nameLIMIToffset,number_of_rows;offset:跳过

如何针对高负载应用程序优化 MySQL 性能? 如何针对高负载应用程序优化 MySQL 性能? Apr 08, 2025 pm 06:03 PM

MySQL数据库性能优化指南在资源密集型应用中,MySQL数据库扮演着至关重要的角色,负责管理海量事务。然而,随着应用规模的扩大,数据库性能瓶颈往往成为制约因素。本文将探讨一系列行之有效的MySQL性能优化策略,确保您的应用在高负载下依然保持高效响应。我们将结合实际案例,深入讲解索引、查询优化、数据库设计以及缓存等关键技术。1.数据库架构设计优化合理的数据库架构是MySQL性能优化的基石。以下是一些核心原则:选择合适的数据类型选择最小的、符合需求的数据类型,既能节省存储空间,又能提升数据处理速度

Navicat查看MongoDB数据库密码的方法 Navicat查看MongoDB数据库密码的方法 Apr 08, 2025 pm 09:39 PM

直接通过 Navicat 查看 MongoDB 密码是不可能的,因为它以哈希值形式存储。取回丢失密码的方法:1. 重置密码;2. 检查配置文件(可能包含哈希值);3. 检查代码(可能硬编码密码)。

掌握 SQL 中的 ORDER BY 子句:有效地对数据进行排序 掌握 SQL 中的 ORDER BY 子句:有效地对数据进行排序 Apr 08, 2025 pm 07:03 PM

SQLORDERBY子句详解:高效排序数据ORDERBY子句是SQL中用于对查询结果集进行排序的关键语句,可按单列或多列进行升序(ASC)或降序(DESC)排列,显着提升数据可读性和分析效率。 ORDERBY语法SELECTcolumn1,column2,...FROMtable_nameORDERBYcolumn_name[ASC|DESC];column_name:排序依据列。 ASC:升序排序(默认)。 DESC:降序排序。 ORDERBY主要特性多列排序:支持多列排序,列的顺序决定排序优先级。自

Navicat 连接数据库错误代码及解决办法 Navicat 连接数据库错误代码及解决办法 Apr 08, 2025 pm 11:06 PM

Navicat 连接数据库时常见的错误及解决方案:用户名或密码错误(Error 1045)防火墙阻止连接(Error 2003)连接超时(Error 10060)无法使用套接字连接(Error 1042)SSL 连接错误(Error 10055)连接尝试过多导致主机被阻止(Error 1129)数据库不存在(Error 1049)没有权限连接到数据库(Error 1000)

sql插入语句怎么写最新教程 sql插入语句怎么写最新教程 Apr 09, 2025 pm 01:48 PM

SQL INSERT 语句用于向数据库表中添加新行,其语法为:INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN);。该语句支持插入多个值,并允许向列中插入 NULL 值,但需确保插入的值与列的数据类型兼容,避免违反唯一性约束。

SQL 如何添加新列 SQL 如何添加新列 Apr 09, 2025 pm 02:09 PM

SQL 中通过使用 ALTER TABLE 语句为现有表添加新列。具体步骤包括:确定表名称和列信息、编写 ALTER TABLE 语句、执行语句。例如,为 Customers 表添加 email 列(VARCHAR(50)):ALTER TABLE Customers ADD email VARCHAR(50);

See all articles