“你有没有想过,你只需告诉你的家庭助理机器人:‘请加热我的午餐’,它就会自己找到微波炉。这是不是很神奇?”
近日,微软在其官网发表了一篇名为《机器人 ChatGPT:设计原则和模型能力(ChatGPT for Robotics:Design Principles and Model Abilities)》论文,公布了他们正在把ChatGPT应用于机器人上的研究成果。
文中称,这项研究的目标是观察ChatGPT是否可以超越文本思考,并对物理世界进行推理来帮助完成机器人任务。人类目前仍然严重依赖手写代码来控制机器人。该团队一直在探索如何改变这一现实,并使用OpenAI的新人工智能语言模型ChatGPT实现自然的人机交互。
研究人员希望ChatGPT能够帮助人们更轻松地与机器人互动,而无需学习复杂的编程语言或有关机器人系统的详细信息。其中的关键难题就是教ChatGPT如何使用物理定律、操作环境的背景以及了解机器人的物理行为如何改变世界状态,并以此来解决指定的任务。
针对微软的此项研究,伦敦大学学院(UCL)名誉教授和计算机科学家彼得·本特利博士(Dr。Peter John Bentley)在接受《每日经济新闻》记者采访时表示,人类在未来用AI工具如ChatGPT来控制机器人是完全可行的路径。
但他同时强调,就目前而言,ChatGPT还存在很多漏洞,在功能性、保障性,以及安全性上缺乏基本的能力。
日前,微软发布了新版必应(Bing)互联网搜索引擎和Edge浏览器,这些浏览器由ChatGPT制造商OpenAI的最新技术提供支持。图为一名工作人员在演示基于人工智能的微软必应搜索引擎和Edge浏览器 视觉中国图
ChatGPT如何控制机器人
ChatGPT是一种基于大量文本和人类交互语料库而训练的语言模型,使其能够对各种提示和问题生成连贯且语法正确的响应。
研究人员在该文章中表示,当前的机器人运转始于工程师或技术用户,他们需要将任务的要求转换为系统代码。工程师在机器人运转的循环中,需要编写新的代码和规范来纠正机器人的行为。总的来说,这个过程缓慢、昂贵且低效,因为不仅需要具有深厚机器人知识的高技能用户,而且需要用户参与多次交互才能使机器人正常工作。
而ChatGPT解锁了一种新的机器人范式,并允许潜在的非技术用户在循环中,在监控机器人性能的同时向大型语言模型(LLM)提供高级反馈。
通过遵循设计者的设计原则,ChatGPT 可以为机器人场景生成代码。在无需任何微调的情况下,人们就可以利用LLM的知识来控制各种任务的不同机器人外形。通过反复试验,微软的研究人员构建了一种方法和设计原则,专门为机器人任务编写提示:
首先,定义一组高级机器人 API 或函数库。该库可以针对特定的机器人类型进行设计,并且应该从机器人的控制栈或感知库映射到现有的低层次具体实现。为高级 API 使用描述性名称非常重要,这样 ChatGPT 就可以推理它们的行为。
接下来,为 ChatGPT 编写一个文本提示,描述任务目标,同时明确说明高级库中的哪些函数可用。提示还可以包含有关任务约束的信息,或者 ChatGPT 应该如何组织它的答案,包括使用特定的编程语言,或使用辅助解析组件等。
再次是,用户通过直接检查或使用模拟器来评估 ChatGPT 的代码输出。如果需要,用户使用自然语言向 ChatGPT 提供有关答案质量和安全性的反馈。
最后,当用户对解决方案感到满意时,就可以将最终的代码部署到机器人上。
ChatGPT+机器人将带来什么
文章中,微软的研究团队展示了在人们的工作中,ChatGPT解决机器人难题的多个示例,以及在操纵无人机和导航领域的复杂机器人部署。
研究人员让 ChatGPT 访问控制一台真正的无人机的全部功能,事实证明,非技术用户和机器人之间可以用非常直观且基于自然语言的交流。
当用户的指令模棱两可时,ChatGPT会提出澄清问题,并为无人机编写复杂的代码结构,例如飞行之字(zig-zag)图案,以便可视化地检查货架;甚至还能给用户来一张自拍。
研究人员要求 ChatGPT 编写一个算法,让无人机在不撞上障碍物的情况下,在空中达到目标。研究人员告诉该模型,这架无人机有一个前向距离传感器,ChatGPT立即为算法编码了大部分关键构建块。
研究人员表示,这项任务需要人类进行一些对话,但ChatGPT 仅使用自然语言反馈进行本地化代码改进的能力给他们留下了深刻的印象。
微软的研究人员还在模拟的工业检测场景中使用了ChatGPT,并使用了Microsoft AirSim模拟器,该模型能够有效地解析用户的高级意图和几何线索,以准确控制无人机。
当把ChatGPT用于机械臂的操作场景时,研究者使用对话反馈来教模型如何将最初提供的 API 组合成更复杂的高级函数,即,ChatGPT自己内部编码的函数。使用基于课程的策略,该模型能够将这些学到的技能逻辑地链接在一起,以执行堆叠块等操作。
此外,该模型还展示了一个有趣的示例,即在用木块构建微软logo时桥接文本域和物理域。ChatGPT不仅能够从其内部知识库中调用微软的logo,还能够用SVG的代码“绘制”这个logo,然后利用上面学到的技能来确定现有的机器人动作和可以组成它的物理形式。
谈及微软在论文中的演示示例,本特利博士告诉《每日经济新闻》记者,“微软已经展示了一些简单的操作,ChatGPT可以用来生成计算机代码,这些代码可以控制机器人,所以用ChatGPT来控制机器人是完全可行的方案。”。
但本特利博士认为,在现阶段来说,ChatGPT虽然能够生成计算机代码,但机器人控制的问题在于,计算机代码可能需要为特定的硬件量身定制才能正常工作。ChatGPT目前使用的是它已经学习到的代码示例,它(ChatGPT)或许并不兼容最新的硬件。
“所以,ChatGPT不太可能与人类开发人员相提并论。它只是提供了一个简单的捷径,可以帮助人们学习基础知识,但它缺乏作为开发人员的基本能力。”
ChatGPT输出内容仍需评估
研究人员在该文中表示,在做某事(行动)之前能够感知世界是打造机器人系统的基础。因此,他们决定测试 ChatGPT 对这个概念的理解,并要求它探索一个环境,直到找到用户指定的对象。研究者允许模型访问对象检测和对象距离 API 等功能,并验证它生成的代码是否成功实现了感知-操作循环(Perception- action loops)。
在实验角色中,研究者进行了额外的实验,以评估ChatGPT是否能够根据传感器实时反馈决定机器人应该去哪里,而不是让ChatGPT生成一个代码循环来做出这些决定。有趣的是,结果验证了人们可以在聊天的每一步提供相机图像的文本描述,并且ChatGPT模型能够弄清楚如何在机器人到达特定物体之前控制它。
该文称,微软发布这些技术的目的是将机器人技术推广到更广泛的受众,研究人员相信,基于语言的机器人控制系统是把机器人从科学实验室带到日常用户手中的基础。
但是,微软的研究者也表示,ChatGPT 的输出不应该在没有仔细分析的情况下直接部署在机器人上。通过在模拟环境中获得实验结果,能够在未来现实部署之前对算法进行评估,并采取必要的安全预防措施。
本特利博士对此表示认同,他向《每日经济新闻》记者进一步解释称,就目前而言,ChatGPT还存在很多漏洞,在功能性、保障性,以及安全性上缺乏基本的能力。
“例如,ChatGPT可以编写计算机代码,但它不能做任何测试,也不知道它输出的代码运行起来是否有效。研究人员需要更好的反馈循环,以便测试结果在改进的代码中,否则ChatGPT的输出可能仍然是不合适的(不安全、或不能工作)。”