草庐IT

「终结者」走入现实?微软的野心:用ChatGPT控制机器人!

新智元 2023-03-28 原文
虽然ChatGPT已经被调教为符合人类的偏好,但在各种反向操作下,还是能够逼问出一些「不道德的内容」,比如ChatGPT可以给你列一份详细的毁灭世界计划列表,具体到每一步。

不过,现在的ChatGPT只会动动嘴皮子,并没有任何接触现实物理世界的能力,顶多也就是当个科幻小说看看。

但要是ChatGPT真的可以操控机器人呢?

最近,微软发表了一篇论文,公布了他们正在把ChatGPT应用于机器人上的研究成果。

论文链接:

​https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf​

不过微软的目标并非是「毁灭世界」,而是加快机器人的开发速度。

实际上在现代的生活和生产流程中,处处都离不开机器人,从工厂里制造产品的机械臂,到家庭里用的吸尘器,都可以算作是机器人(robot)。

每次想开发一个新产品,或者让现有的机器执行一个新功能,都需要一个高级工程师编写代码,同时尽可能编写测试覆盖所有场景。

微软在论文中提出了一套新的设计原则,通过ChatGPT这样的大型语言模型来给机器人提供指令。

ChatGPT:机器人控制器

ChatGPT之所以爆火,其根本原因就在于:AI终于在一定程度上能「听懂人话」了,而非只是按照语法胡乱生成内容;而且它的功能也很强大,问答、写论文、写诗、写代码,只要prompt写得够好,ChatGPT的表现也会更惊人

要是把这种能力迁移到机器人身上,假设几十年以后,各家各户都有机器人,只要说一声「给我热一下午餐」,它就能自己找到微波炉,再把菜端回来,人机交互直接迈入新时代。

虽然「自然语言」很简洁,但现有的机器人开发还是依赖于「编程语言」。

ChatGPT 是一个基于大量文本和人类反馈训练得到的语言模型,能够针对各种各样的提示和问题产生连贯且语法正确的回应。

这项研究的目的是观察 ChatGPT 是否能够在文本之外的领域进行思考,并推理出物理世界来帮助机器人完成任务。

研究人员预期ChatGPT能够帮助用户更容易地与机器人交互,而不需要学习复杂的编程语言或机器人系统的细节,其中的关键难题就是教 ChatGPT 如何使用物理定律、操作环境的背景以及了解机器人的物理行为如何改变世界状态,并以此来解决指定的任务。

实验证明,ChatGPT 可以独立完成很多工作,但是它仍然需要一些辅助,论文中描述了一系列的设计原则,可以用来指导语言模型解决机器人任务,包括但不限于特殊的提示结构、高级 API 和基于文本的人类反馈等,一场机器人系统的开发革命即将到来。

全新的代码设计流程

给大型语言模型写prompt是一门高度经验主义的科学,通过反复试验,研究人员建立了一套方法论和设计原则,专门用于为机器人任务撰写提示:

1. 定义了一组高级机器人 API 或函数库。

这个库可根据特定的机器人类型进行设计,并且应该从机器人的控制栈或感知库映射到现有的低层次具体实现。

对高级 API 使用的描述性名称非常重要,可以帮助 ChatGPT推断函数的功能。

2. 为 ChatGPT 编写一个文本提示,用来描述任务目标,同时显式说明高级库中的哪些函数是可用的。

提示中还可以包含有关任务约束的信息, 或者 ChatGPT 应该如何组织它的答案,包括使用特定的编程语言,使用辅助解析组件等 ;

3. 用户在循环中评估 ChatGPT 的代码输出,可以直接执行代码以检查正确性,也可以使用模拟器。

如果有需要的话,用户可以使用自然语言向 ChatGPT 提供有关答案质量和安全性的反馈。

当用户对解决方案感到满意时,就可以将最终的代码部署到机器人上。

ChatGPT+机器人能做什么?

下面是几个例子,更完整的ChatGPT能力列表参见代码仓库。

代码链接:https://github.com/microsoft/PromptCraft-Robotics

Zero-shot任务规划

当ChatGPT遇上无人机,研究人员首先让 ChatGPT 能够控制一台真正的无人机的全部功能,然后按照下面视频中进行的对话,实验结果证明,一个完全不懂技术的用户,只需要通过对话就能实现控制无人机,「自然语言」是一个非常直观、高效的用户接口。

当用户的指令含糊不清时,ChatGPT 会要求用户进一步说明问题,并为无人机编写复杂的代码结构,例如飞行之字(zig-zag)图案,以便可视化地检查货架;甚至还能给用户来一张自拍。

研究人员还在 MicrosoftAirSim 模拟器中对工业检查场景中使用ChatGPT进行模拟,结果显示该模型能够有效地解析用户的高级意图和几何线索,以准确地控制无人机。

复杂的任务需要用户参与反馈

当把ChatGPT用于机械臂的操作场景时,研究人员使用「会话反馈」(conversational feedback)来教模型如何将最初提供的 API 组合成更复杂的高级函数,即ChatGPT自己内部编码的函数。

使用以课程为基础(curriculum-based)的策略,ChatGPT能够将这些学到的技能有逻辑地链接在一起,以执行诸如堆叠块之类的操作。

此外,还有一个例子能展现出ChatGPT的强大能力,研究人员要求模型用木块构建微软标志,即需要将文本域和物理域连接起来。

ChatGPT不仅能够从内部知识库中回忆出微软的logo,还能够用SVG的代码「绘制」出这个标志 ,然后利用上面学到的技能来确定现有的机器人动作可以组成它的物理形式。

还有一个例子,研究人员让 ChatGPT 编写一个算法,让无人机在不撞上障碍物的情况下,在空中达到目标。

只需要告诉模型,它操控的这架无人机有一个前向距离传感器,ChatGPT 立即能够为算法编码了大部分关键构件,这个任务需要与人类进行一些对话,ChatGPT 仅通过自然语言反馈就能进行局部代码修改。

在行动之前感知世界

在算法决定做某事(action)之前能够感知世界(perception)是打造一个机器人系统的基础。

为了测试 ChatGPT 对指定概念的理解,研究人员设计了一个框架,要求ChatGPT不断探索环境,让模型访问诸如目标检测和目标距离 API 之类的函数,直到找到用户指定的对象,整个过程称为感知-行动循环(Perception-action loops)。

在实验环节,研究人员进行了额外的实验来评估 ChatGPT 是否能够根据传感器的实时反馈来决定机器人应该去哪里,而不是让 ChatGPT 生成一个代码循环来做出这些决定。

实验结果验证了用户可以在聊天的每一步输入一个相机图像的文本描述,并且模型能够找出如何控制机器人,并驱使机器人到达一个特定的对象。

开源PromptCraft:收集有价值的prompt

「良好的prompting工程」对于ChatGPT等大型语言模型成功执行机器人任务来说至关重要。

但prompting完全是一门经验主义的科学、缺乏全面的总结,并且相关资源也很少,没有数据集来帮助该领域的研究人员和爱好者判断什么是一个好的prompt

为了弥补这一劣势,研究人员开源了一个平台 PromptCraft,任何用户都可以在其上分享不同机器人类别的提示策略示例。

这次研究项目的所有提示和对话都已经放在了仓库中,感兴趣的读者可以继续参与贡献!

除了快速设计之外,研究人员还计划未来开发多个机器人模拟器和接口,以允许用户测试ChatGPT生成的算法性能,目前已经发布了一个集成ChatGPT的AirSim环境。

把机器人带出实验室,走向世界

微软发布这些技术的目的是将机器人技术推广到更广泛的受众,研究人员认为,基于语言的机器人控制系统是把机器人从科学实验室带到日常用户手中的基础。

也就是说,ChatGPT 的输出不应该在没有仔细分析的情况下直接部署在机器人上。

通过在模拟环境中获得实验结果,能够在未来现实部署之前对算法进行评估,并采取必要的安全预防措施。

有关「终结者」走入现实?微软的野心:用ChatGPT控制机器人!的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  3. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  4. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  5. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  6. 「想体验ChatGPT中文聊天?」那快进来,你用不上算我输 - 2

    ♥️作者:白日参商🤵‍♂️个人主页:白日参商主页♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!「想体验ChatGPT中文聊天?」那快进来,你用不上算我输项目场景:项目条件一、那就开始吧1、安装ChatGPT-Desktop2、OpenAPI设置二、使用实例恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!项目场景:近几个月可以说ChatGPT是火得一

  7. 半个月狂飙1000亿,ChatGPT概念股凭什么? - 2

    ChatGPT掀起了AI股历史上最疯狂的一轮市值狂飙。自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜力。要知道,在此之前,无论是十年AI投入超千亿的百度,还是困在硬件化里的AI四小龙,都在重复着AI商业化难落地的故事。ChatGPT的出现,让AI从生产力的赋能者直接成为一种创造生产力的工具。随着订阅模式的推出,ChatGPT已经成为第一个以AI技术为核心直接变现的消费者应用。本文持有以下核心观点:1、ChatGPT是AI技术迭代的受益者。过去受限技术

  8. 未来的趋势————以ChatGPT为标杆的AI对生活的影响是巨大的 - 2

    文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们

  9. ruby - 如何让 Selenium/Ruby 机器人在执行操作之前等待? - 2

    我正在构建一个点击元素的Selenium/Ruby网络机器人。问题是,有时在机器人决定找不到元素之前没有足够的时间加载页面。让Selenium在执行操作之前等待的Ruby方法是什么?我更喜欢显式等待,但我也接受隐式等待。我尝试使用wait.until方法:require"selenium-webdriver"require"nokogiri"driver=Selenium::WebDriver.for:chromewait=Selenium::WebDriver::Wait.new(:timeout=>15)driver.navigate.to"http://google.com"dr

  10. 山石发声|风暴眼中的ChatGPT,看NLPer怎么说? - 2

    当前科技领域最有热度的话题,无疑是OpenAI新提出的大规模对话语言模型ChatGPT,一经发布上线,短短五天就吸引了百万用户,仅一个多月的时间月活已然破亿,并且热度一直在持续发酵,各行各业的从业人员、企业机构都开始体验关注甚至自研“类ChatGPT”模型。这里,笔者从一位NLP从业人员的角度谈一谈对ChatGPT的一些看法和思考。1、ChatGPT诞生之路1.1BERT2018年,谷歌提出BERT(BidirectionalEncoderRepresentationfromTransformer)模型,一时之间疯狂屠榜,在各种自然语言处理领域建模任务中取得了最佳的成绩,NLP自此进入了大规模

随机推荐