好家伙,微软又玩出新花样
当我还在跟ChatGPT吹牛尬聊时,有人已经在拿它操控机器人了。
不是别人,正是OpenAI的金主爸爸、不久前刚拿ChatGPT“重新发明搜索引擎”的微软。
(资料图片)
到目前为止,开发者调教机器人不仅技术门槛高,还道阻且长:
工程师需要在工作流程回路中,不断手写新代码和规范来纠正机器人行为;另外,操控不同的机器人可能需要不同的编程语言和环境。
而在ChatGPT的帮助下,工程师甚至不用手写代码——直接用人话描述想做什么,AI就能自动翻译成机器语言。
这意味着,一方面专业人士与机器人的交互效率起飞;另一方面,技术门槛也降低一大截,外行人甚至也能参与调试,创造出更多使用方法。
举个简单的例子:让无人机自动检查货架。
首先,操作者只需用自然语言给ChatGPT提出要求;然后,AI就能自动翻译成代码,并指挥无人机行动。(还可以规定无人机的飞行路径。)
难怪特斯拉前AI主管Andrej Karpathy会调侃:
实际上,ChatGPT会玩儿的花样可多了。
比如,一位操作者跟AI说:“我渴了,请帮我找个喝的。”
此时AI并不会直愣愣地就去找水了,而是会很机灵地反问:
当然操作者也不是吃素的,他并未直接告诉AI选哪个,而是说:“我刚从健身房回来,请帮我找个健康点儿的饮料。”
然后更神奇的操作就开始了:
AI先是猜测他想喝椰子水,然后自己噼里啪啦写出一段代码(甚至还有注释):
写完就自己指挥无人机去找椰子水:
除了无人机,ChatGPT还能轻松操控别的小机器人,包括摄像头、机械臂等等。
比如让摄像头在房间里找js出能加热午饭的东西。
还有指挥机械臂拼出一个微软的Logo。(悄悄夹带私js货)
看到这些,有网友脑洞大开,有人发问:
还有人甚至调侃称,AI可能连发射核弹的指令都会写:
不过话说回来,其实离网友说的这些还差得远,毕竟现在还是需要人类参与的。
从前文可以看出,这只灵活的AI不仅与人交流畅通无阻,而python且和机器也能快速沟通。
这主要得益于微软团队专门开发的一系列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
参考链接:
[1]https://arstechnica.com/information-technology/2023/02/robots-let-chatgpt-touch-the-real-world-thanks-to-microsoft/
[2]https://www.microsoft.com/en-us/research/group/autonomous-systems-group-robotics/articles/chatgpt-for-robotics/
[3]https://github.com/microsoft/PromptCraft-Robotics#promptcraft-robotics