微软:使用ChatGPT控制机器人
当我还在跟 ChatGPT 吹牛尬聊时,有人已经在拿它操控机器人了。
不是别人,正是 OpenAI 的金主爸爸、不久前刚拿 ChatGPT“重新发明搜索引擎”的微软。
到目前为止,开发者调教机器人不仅技术门槛高,还道阻且长:
工程师需要在工作流程回路中,不断手写新代码和规范来纠正机器人行为;另外,操控不同的机器人可能需要不同的编程语言和环境。
而在 ChatGPT 的帮助下,工程师甚至不用手写代码——直接用人话描述想做什么,AI 就能自动翻译成机器语言。
这意味着,一方面专业人士与机器人的交互效率起飞;另一方面,技术门槛也降低一大截,外行人甚至也能参与调试,创造出更多使用方法。
举个简单的例子:让无人机自动检查货架。
首先,操作者只需用自然语言给 ChatGPT 提出要求;然后,AI 就能自动翻译成代码,并指挥无人机行动。(还可以规定无人机的飞行路径。)
难怪特斯拉前 AI 主管 Andrej Karpathy 会调侃:最新的热门编程语言是英语。
一个 AI 指挥多种机器人
实际上,ChatGPT 会玩儿的花样可多了。
比如,一位操作者跟 AI 说:“我渴了,请帮我找个喝的。”
此时 AI 并不会直愣愣地就去找水了,而是会很机灵地反问:请问你想喝哪种?这里有好几种饮料,比如椰子水、可乐等等。
当然操作者也不是吃素的,他并未直接告诉 AI 选哪个,而是说:“我刚从健身房回来,请帮我找个健康点儿的饮料。”
然后更神奇的操作就开始了:
AI 先是猜测他想喝椰子水,然后自己噼里啪啦写出一段代码(甚至还有注释):
写完就自己指挥无人机去找椰子水:
除了无人机,ChatGPT 还能轻松操控别的小机器人,包括摄像头、机械臂等等。
比如让摄像头在房间里找出能加热午饭的东西。
还有指挥机械臂拼出一个微软的 Logo。(悄悄夹带私货)
看到这些,有网友脑洞大开,有人发问:他们是不是正在建立无所不能的天网?
还有人甚至调侃称,AI 可能连发射核弹的指令都会写:
不过话说回来,其实离网友说的这些还差得远,毕竟现在还是需要人类参与的。
怎么实现的?
从前文可以看出,这只灵活的 AI 不仅与人交流畅通无阻,而且和机器也能快速沟通。
这主要得益于微软团队专门开发的一系列 API 和高级函数库。
他们没有让 ChatGPT 背后的语言大模型(LLM),生成某固定种类的代码;因为机器人是个多元化领域,这样可能会在不同场景下涉及大量微调。
而在新颖的操作框架下,不同机器人,都有自己对应的特定函数库。
——一个 AI,就能适应不同的对象、不同的任务。
一方面,这些函数库,能够连接到机器人控制系统中管理底层硬件,以及执行基本运动的代码和功能模块。
另一方面,为了让 ChatGPT 也能遵循函数库的规则,预定义函数命名就很关键。清晰的函数名,能让各 API 之间建立良好的功能连接,最终生成高质量的回答。
其中一项要求,就是所有 API 名称必须描述整体功能行为。例如,detect_object (object_name) 函数可以在内部链接到 OpenCV 函数或计算机视觉模型。
设计好库和 API 后,微软给 ChatGPT 编写了一个文本提示(prompt),描述目标任务,并明确说明函数库中哪些函数可用;另外,这还能规定 ChatGPT 生成代码用哪种编程语言。
值得一提的是,AI 生成内容效果,和人为提示的质量呈正相关。为此,微软还开发了一个协作开源平台 PromptCraft,任何人都能在此分享不同类机器人的 Prompt 策略。
到此,幕后部署基本完成,然后用户就能通过“说人话”间接操控机器人了。
如果想要检查 AI 生成的代码是否有 Bug,随时都能在聊天框直接检查,或通过模拟器测试,人类可以用自然语言指导 AI 进行修正。
另外,还能到等到用户对解决方案满意为止,再在将 ChatGPT 生成代码部署到机器人上。
最后,如果是你,会想用 ChatGPT 操控机器人做些什么呢?
论文地址:
https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf
参考链接:
[3]https://github.com/microsoft/PromptCraft-Robotics#promptcraft-robotics