当前位置: 首页 > news >正文

带记忆的超级GPT智能体,能做饭、煮咖啡、整理家务!

随着AI技术的快速迭代,Alexa、Siri、小度、天猫精灵等语音助手得到了广泛应用。但在自然语言理解和完成复杂任务方面仍然有限。

相比文本的标准格式,语音充满复杂性和多样性(例如,地方话),传统方法很难适应不同用户的自定义语言,因此,语音助手需要针对固定领域设计语义解析方案,而无法对完全开放的语言进行建模。

为了解决这一难题,卡内基梅隆大学的研究人员基于大语言模型、视觉模型开发了HELPER。

该模型采用了检索增强的大语言模型提示方法,可以将人机对话、指令和错误纠正转换为一系列参数化的视觉运动

同时在成功执行指令后,HELPER会将语言指令和执行计划作为记忆进行存储。

当用户再次提出类似请求时,HELPER会自动检索相关记忆并进行适当修改来满足新的要求,从而实现个性化交互。

在TEACh的实验数据显示,从对话中推断步骤的测试中,HELPER的任务成功率和目标条件成功率分别提高了1.7倍和2.1倍,超过了之前最好的模型。在从历史对话中执行任务中,HELPER也取得了绝佳的效果。

开源地址:https://github.com/Gabesarch/HELPER

论文地址:https://arxiv.org/abs/2310.15127

图片

研究人员用物理模拟的方式展示了多个示例,HELPER可以进行洗锅、煮咖啡、做面包、整理卡片、制作饮料等一系列拟人化操作,并且你只需要详细的告诉它一次就能记住你的需求,以后无需多说就能照着做。

图片

从论文内容来看,HELPER的技术架构主要由规划器、执行器和视觉语言模型三大块组成。

规划器

该模块利用检索增强的大语言模型来进行语义解析和生成一系列执行计划,同时配备了一个文本到程序的外部记忆存储器,相当于该模型的“大脑”。

在进行语言解析时,规划器会先基于当前语言的输入,使用大语言模型的编码器计算输入文本的向量表示,然后检索出记忆库中语义最相关的若干条记录,将其中的文本-程序对作为LLM的文本示例,随后让LLM生成新的程序。

图片

生成的程序使用Python语言描述,涵盖一系列参数化的视觉运动函数,如pickup(X)、goto(X)等,同时也负责处理执行失败后的重新规划。

例如,当某个动作执行失败时,系统会调用外部的视觉语言模型来分析失败原因并生成文本反馈, 规划器随后会根据反馈提示LLM生成修正后的新程序。

此外, 规划器也会在任务成功执行后,将用户指令语言和对应的执行程序加入记忆库中,实现个性化学习。

执行器

该模块主要负责解析规划器生成的程序,并基于当前环境执行指令操作,具体操作如下:

图片

场景解析器:构建环境的语义地图、占用地图,以及通过目标检测跟踪对象信息。

动作执行器:将程序中的函数调用翻译成具体的导航和操作动作执行。

前提检查器:在执行每个动作前,验证必要的前提条件是否满足。

位置检查器:当需要找到不在场景地图中的目标物体时,该模块会提示LLM生成可能的搜索位置。

简单来说,执行器模块相当于HELPER的“四肢”,用来执行具体的内容。

视觉语言模型

当具体计划执行失败时,系统需要分析失败原因。所以,HELPER使用了视觉语言模型ALIGN进行纠错、审查。

图片

方法是将当前视觉输入与一系列预定义的错误文本进行匹配,输出最相似的错误类型,帮助规划器模块快速找到错误所在。这种方法比简单的像素对比判断故障类型更加精准和通用。

本文素材来源卡内基梅隆大学论文,如有侵权请联系删除

相关文章:

  • 正则表达式(Java)(韩顺平笔记)
  • 【数据结构 —— 堆的实现(顺序表)】
  • Node.js入门指南(三)
  • 雅可比矩阵(Jacobian Matrix)
  • 振南技术干货集:制冷设备大型IoT监测项目研发纪实(2)
  • 从零开始的RISC-V模拟器开发(一)环境搭建
  • Node.js入门指南(一)
  • Spring Boot Actuator 2.2.5 基本使用
  • C#使用whisper.net实现语音识别(语音转文本)
  • jquery中ajax总结
  • 即时通讯技术文集(第24期):音视频WebRTC好文合集 [共20篇]
  • 重装linux后需要做的配置
  • mysql索引分为哪几类,聚簇索引和非聚簇索引的区别,MySQL索引失效的情况有哪几种情况,MySQL索引优化的手段,MySQL回表
  • Android 13.0 app进程保活白名单功能实现
  • 【React】useReducer
  • node 版本过低
  • supervisor 永不挂掉的进程 安装以及使用
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 飞驰在Mesos的涡轮引擎上
  • 规范化安全开发 KOA 手脚架
  • 如何学习JavaEE,项目又该如何做?
  • 双管齐下,VMware的容器新战略
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一个完整Java Web项目背后的密码
  • 用Python写一份独特的元宵节祝福
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #DBA杂记1
  • $(selector).each()和$.each()的区别
  • (6)设计一个TimeMap
  • (zt)最盛行的警世狂言(爆笑)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (力扣题库)跳跃游戏II(c++)
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)EOS中账户、钱包和密钥的关系
  • (转)创业的注意事项
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET Standard 的管理策略
  • .NET 事件模型教程(二)
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net面试题4
  • .pyc文件是什么?
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [android] 请求码和结果码的作用
  • [Angular 基础] - 数据绑定(databinding)
  • [BJDCTF2020]The mystery of ip
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [Invalid postback or callback argument]昨晚调试程序时出现的问题,MARK一下
  • [iOS]中字体样式设置 API
  • [JavaEE系列] Thread类的基本用法