當(dāng)我還在和ChatGPT聊天,有人已經(jīng)開始用它來控制機(jī)器人干活了
你可曾想過用自己的話告訴機(jī)器人該做什么,就像對人說話那樣?
比如說,只要告訴你的家庭助理機(jī)器人「請幫我熱一下午餐」,然后它就能自己找到微波爐。很神奇,對嗎?
盡管語言是人類表達(dá)意圖的最直觀的方式,但此前很長一段時間,人們?nèi)匀粐?yán)重依賴手寫代碼來實(shí)現(xiàn)對機(jī)器人的控制。不過,當(dāng) ChatGPT 出現(xiàn)之后,這種情況要變一下了。
在最近的一項研究中,微軟團(tuán)隊在探索如何使用 OpenAI 的新 AI 語言模型 ChatGPT 來使自然的人機(jī)交互成為可能。
論文鏈接:https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf
ChatGPT 是一個在大量文本和人類互動語料庫上訓(xùn)練的語言模型,因此應(yīng)對廣泛的 prompt 和問題時,它可以生成連貫且語法正確的響應(yīng)。這項研究的目標(biāo)是看看 ChatGPT 是否可以超越文本思考,并對現(xiàn)實(shí)世界進(jìn)行推理,以幫助機(jī)器人完成任務(wù)。研究者希望以此便利人們與機(jī)器人的互動,而不需要學(xué)習(xí)復(fù)雜的編程語言或機(jī)器人系統(tǒng)的細(xì)節(jié)。
研究的關(guān)鍵挑戰(zhàn)在于教會 ChatGPT:如何通過考慮物理定律、操作環(huán)境以及機(jī)器人運(yùn)用肢體動作改變周遭環(huán)境的方式來解決問題。
事實(shí)證明,ChatGPT 本身可以做很多事情,但它仍然需要一些幫助。團(tuán)隊在論文中描述了一系列可用于指導(dǎo)語言模型解決機(jī)器人任務(wù)的設(shè)計原則,包括(但不限于)特別 prompt 結(jié)構(gòu)、高級 API 和通過人類文本反饋。研究者認(rèn)為,這項工作只是開發(fā)機(jī)器人系統(tǒng)的轉(zhuǎn)變的開始,并且希望通過這項研究激勵其他研究人員加入這個有趣的研究領(lǐng)域。
當(dāng)今機(jī)器人技術(shù)面臨的挑戰(zhàn),以及 ChatGPT 能提供的幫助
目前機(jī)器人的操作流程是從工程師或技術(shù)用戶開始,需要他們將任務(wù)需求轉(zhuǎn)換為系統(tǒng)代碼。工程師會處于工作流程的回路中,他們需要不斷編寫新的代碼和規(guī)范來糾正機(jī)器人的行為??偟脕碚f,這個過程是緩慢的(用戶需要編寫低級代碼)、昂貴的(需要對機(jī)器人技術(shù)有深入了解的高技能用戶)且低效的(需要多次交互才能正常運(yùn)轉(zhuǎn))。
但 ChatGPT 開啟了一種新的機(jī)器人范式,并允許潛在的非技術(shù)型用戶參與到回路之中,在監(jiān)視機(jī)器人性能的同時向大型語言模型(LLM)提供高級反饋。通過遵循研究的設(shè)計原則,ChatGPT 可以為機(jī)器人場景生成代碼。在沒有任何微調(diào)的情況下,研究利用 LLM 的知識來控制不同的機(jī)器人形狀,以完成各種任務(wù)。工作中,研究人員展示了多個 ChatGPT 解決機(jī)器人難題的示例,以及在操作、空中和導(dǎo)航領(lǐng)域的復(fù)雜機(jī)器人部署。
機(jī)器人與 ChatGPT:設(shè)計原則
Prompting LLM 是一門高度實(shí)證的科學(xué)。研究通過反復(fù)試驗(yàn)建立了一套為機(jī)器人任務(wù)編寫 prompt 的方法和設(shè)計原則:
- 首先,研究定義了一組高級機(jī)器人 API 或函數(shù)庫。這個庫可以特定于特定的機(jī)器人,并且可以映射到機(jī)器人的控制堆棧或感知庫中現(xiàn)有的低級實(shí)現(xiàn)。對高級 API 使用描述性名稱非常重要,這樣 ChatGPT 就可以推斷它們的行為;
- 接下來,研究人員為 ChatGPT 編寫一個文本 prompt,它描述了任務(wù)目標(biāo),同時明確說明來自高級庫的哪些函數(shù)是可用的。Prompt 還可以囊括關(guān)于任務(wù)約束的信息,或者 ChatGPT 應(yīng)該如何形成其答案(特定的編碼語言,使用輔助解析元素);
- 用戶在回路中評估 ChatGPT 的代碼輸出,要么通過直接檢查,要么使用模擬器。如果需要,用戶可以使用自然語言向 ChatGPT 反饋答案的質(zhì)量和安全性。
用戶滿意解決方案的話,代碼就可以最終部署到機(jī)器人上。
理論已經(jīng)夠多了,ChatGPT 到底能做什么?
讓我們參看幾個例子,你還可以在代碼庫中找到更多案例研究。
零樣本任務(wù)計劃?
研究人員讓 ChatGPT 控制真正的無人機(jī),經(jīng)證明,它是非技術(shù)用戶和機(jī)器人之間非常直觀的基于語言的接口。當(dāng)用戶的指令含糊不清時,ChatGPT 會提出要明晰問題,并為無人機(jī)編寫復(fù)雜的代碼結(jié)構(gòu)以直觀地檢查架構(gòu),例如鋸齒形模式。它甚至學(xué)會了自拍!
研究人員還使用 Microsoft AirSim 模擬器在一個模擬工業(yè)檢驗(yàn)場景中使用 ChatGPT。該模型能夠有效地解析用戶的高級意圖和幾何線索,從而準(zhǔn)確地控制無人機(jī)。
回路中的用戶:當(dāng)復(fù)雜的任務(wù)需要對話時?
接下來,研究人員將 ChatGPT 用于機(jī)械臂的操作場景,并使用對話反饋來教會模型如何將最初提供的 API 組合成更復(fù)雜的高級函數(shù):ChatGPT 自動編程。該模型能夠使用課程本位策略,按照邏輯將學(xué)習(xí)到的技能鏈接在一起,以執(zhí)行諸如堆疊塊等操作。
此外,當(dāng)用木塊構(gòu)建微軟標(biāo)志時,該模型展示了一個連接文本和物理域的完美示例。它不僅能夠從內(nèi)部知識庫中回憶 logo,還能夠「繪制」logo(作為 SVG 代碼),然后使用上面學(xué)到的技能來找出哪些現(xiàn)有的機(jī)器人動作可以構(gòu)成其外形。
接下來,研究人員讓 ChatGPT 編寫一個算法,讓無人機(jī)在達(dá)到空中目標(biāo)的同時不撞上障礙物。他們告訴模型,這架無人機(jī)有一個面向前方的距離傳感器,ChatGPT 立即為算法編寫了大部分關(guān)鍵構(gòu)建塊。這項任務(wù)需要與人進(jìn)行一些對話,ChatGPT 僅使用語言反饋就能進(jìn)行本地化代碼改進(jìn)的能力令人印象深刻。
感知 - 行動回路:機(jī)器人在行動前感知世界
在做某事(行動)之前感知世界(感知)的能力是任何機(jī)器人系統(tǒng)的基礎(chǔ)。因此,研究人員決定測試 ChatGPT 對這個概念的理解,并要求它探索一個環(huán)境,直到找到用戶指定的對象。研究為模型提供了對象檢測和對象距離 API 等功能,并驗(yàn)證了它生成的代碼成功實(shí)現(xiàn)了感知 - 行動循環(huán)。
在實(shí)驗(yàn)階段,研究者進(jìn)行了額外的實(shí)驗(yàn),以評估 ChatGPT 是否能夠根據(jù)傳感器反饋實(shí)時決定機(jī)器人應(yīng)該去哪里(而不是讓 ChatGPT 生成一個代碼回路來做出這些決定)。有趣的是,恰好驗(yàn)證了可以在對話的每一步中輸入相機(jī)圖像的文本描述,并且模型能夠弄清楚如何控制機(jī)器人,直到它到達(dá)特定的對象。
PromptCraft, LLM + 機(jī)器人研究的協(xié)作開源工具
良好的 Prompt 工程對于大型語言模型的成功至關(guān)重要,例如 ChatGPT 用于機(jī)器人任務(wù)??上В琍rompt 是一門實(shí)證科學(xué),缺乏全面和可訪問的資源,其中能為該領(lǐng)域的研究人員和愛好者提供幫助的例子也是良莠不齊。為了彌合這一差距,研究者引入了「PromptCraft」,這是一個協(xié)作開源平臺,任何人在這里都可以分享不同機(jī)器人類別的 Prompt 策略示例,而且,研究者公布了在這項研究中使用的所有 Prompt 和對話。
除了 Prompt 設(shè)計,研究還希望包括多個機(jī)器人模擬器和界面,允許用戶測試他們的 ChatGPT 生成的算法。作為開始,研究還發(fā)布了一個與 ChatGPT 集成的 AirSim 環(huán)境,任何人都可以使用它來展開這些想法。
ChatGPT-AirSim 接口
讓機(jī)器人走出實(shí)驗(yàn)室,走向世界
發(fā)布這些技術(shù)是一件值得慶祝的事,因?yàn)檫@會擴(kuò)大機(jī)器人技術(shù)的受眾面。微軟的研究人員相信,基于語言的機(jī)器人控制將會為讓機(jī)器人從科學(xué)實(shí)驗(yàn)室走進(jìn)日常用戶的生活中奠定基礎(chǔ)。
本文要強(qiáng)調(diào)的是,在沒有仔細(xì)分析的情況下,ChatGPT 的輸出并不意味著要直接部署在機(jī)器人上。研究者鼓勵用戶利用模擬的力量,以便在潛在的現(xiàn)實(shí)生活部署之前評估這些算法,并始終采取必要的安全預(yù)防措施。本文所講述的工作只代表了在機(jī)器人領(lǐng)域運(yùn)行的大型語言模型的交集中可能實(shí)現(xiàn)的一小部分,希望能為更多的研究提供靈感。
原文鏈接:https://www.microsoft.com/en-us/research/group/autonomous-systems-group-robotics/articles/chatgpt-for-robotics/