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