首頁  >  文章  >  科技週邊  >  谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

王林
王林轉載
2023-04-12 12:25:161780瀏覽

隨著大規模語言模型的發展,是否能夠借助它的能力,引導機器人理解複雜指令,完成更高階的任務?而在這過程中,又會面臨哪些挑戰?近日,智源社群邀請Google研究科學家夏斐博士做「基於語言和視覺的具身推理」報告,詳細介紹了團隊在這一新興領域的前沿工作。

作者介紹#:夏斐,目前在Google大腦的機器人團隊任職研究科學家。他的主要研究方向是將機器人應用到非結構化的複雜環境。他的代表工作有GibsonEnv, iGibson, SayCan等。他的研究曾被WIRED,華盛頓郵報,紐約時報等媒體報道。夏斐博士畢業於史丹佛大學,師從Silvio Savarese和Leonidas Guibas。他曾在CVPR, CoRL, IROS, ICRA, Neurips, RA-L, Nature Communications等會議和期刊發表過多篇文章。他最近的研究方向是將基礎模型(Foundation Models)用於智能體的決策過程中。他的團隊近期提出了PaLM-SayCan模型。

01 背景

機器學習用於機器人在近年來取得了很大的進展,但依然存在著比較大的問題。機器學習需要大量的資料訓練,但機器人產生的資料非常昂貴,機器人本身也會有損耗。

人類在孩童時期,透過玩耍和物理世界進行交互,從中學習到了很多物理規律。受此啟發,是否也可以讓機器人和環境進行交互,來獲得這些物理的訊息,從而完成各種各樣的任務?將機器學習用於機器人,很大程度上依賴模擬環境。

對此,夏斐博士和他的同事們曾提出Gibson Env(Environment)和iGibson等工作,前者註重於視覺環境的重建,後者則著重物理模擬。透過對真實世界進行三維掃描和重建,並透過神經網路渲染視覺訊號,創造模擬環境,讓各種各樣的機器人進行物理模擬,學習從時間感測器到驅動器的控制等。在iGibson環境中,機器人可以學習與環境更豐富的交互,如學習使用洗碗機等。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

夏斐博士認為,上述工作表現的是從網路AI到具身AI的轉變。過去AI的訓練主要基於ImageNet、MS COCO等資料集,屬於網路任務。而具身AI要求AI的感知和動作形成閉環——AI要根據感知到的結果決定下一步的動作。夏斐的博士論文「large scale simulation for embodied perception and robot learning」就是關於將機器人模擬規模化後進行學習、感知和推理的。

近年來,基礎模型在人工智慧領域的快速發展。有研究者認為,可以不依賴模擬環境,而是從基礎模型中提取訊息,幫助機器人做出決策。夏斐博士稱這個新的方向為“Foundation Model for Decision Making”,並和團隊提出了PaLM-SayCan等工作。

02 PaLM-SayCan:讓語言模式引導機器人

1. 機器人為什麼很難處理複雜長程的任務?

PaLM-SayCan團隊共有45位作者,是Google機器人團隊和Everyday Robots的合作項目,目的是探索用機器學習改變機器人領域,並讓機器人提供數據,提升機器學習的能力。研究主要關注兩個問題:非結構化的複雜環境,以及讓機器人在日常生活中更有用。

#

雖然人們已經有了類似Siri或Alexa這樣的個人助理,但機器人領域卻沒有這樣的存在。夏博士舉了這樣一個例子:在飲料灑了的時候,我們希望跟機器人說明狀況,請它幫忙。或運動後疲累,請它提供飲料和點心等。研究希望機器人能夠理解並執行這些任務。

目前的困難在於,機器人做長線或長程的任務還比較難,對於需要複雜規劃、常識和推理的任務依然無能為力,原因在於兩方面。 第一個是機器人領域缺乏好的使用者互動介面。傳統的機器人執行抓取-放置(Pick&Place)任務的時候,通常使用的是Goal-conditioning(目標條件)或獨熱條件(One-hot Conditioning)方法。 Goal-conditioning需要告訴機器人目標是什麼,讓機器人執行將初始條件改變為目標條件的任務,這需要先給機器人示範一下,完成後的任務條件是什麼樣的。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

而One-hot Conditioning採用的是One-hot編碼,機器人可以完成的所有任務(如100個任務)用0~99來進行編號。每次需要執行的時候,提供給機器人一個編號,它就知道要完成什麼任務。但獨熱條件的問題在於需要使用者記住每一個任務對應的編碼,而獨熱編碼並沒有獲得各個任務之間的依賴資訊(如完成一個目標對應的任務編碼序列)。

這些就導致目前#機器人只能完成短程的任務,通常是抓取和擺放,且機器人本身是靜態而非移動的。 此外,環境也被限制在實驗室這樣的場景中,往往沒有人類。

2.語言模型用於機器人:如何讓它能「說」機器人的語言?

為了解決這些問題,團隊想到透過使用基礎模型。語言模型可以取代Goal-conditioning,透過語言來清晰、無歧義地描述任務。同時,語言也包含了任務步驟之間的依賴訊息,如食譜上的第一步、第二步等,為機器人學習提供協助。此外,語言也可以去定義長程任務,解決採用模仿學習方法的限制。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

將大模型用在機器人上,可能面臨一些挑戰。最重要的是要確定面向機器人輸出的語言。大模型是根據人類的自然語言進行的訓練,其輸出的任務,機器人不一定能做。而且語言模型沒有在機器人的資料上訓練,所以它並不知道機器人的能力範圍。第二個是Grounding問題,大模型並沒有親身經歷物理世界,缺乏具身資訊。第三個則是在大模型引導下機器人本身的安全性和可解釋性問題。語言模型的偏見可能會因為與物理系統連結而放大,對真實世界造成影響。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

#

有關可信性方面有這樣一個例子:當人類用戶和谷歌的LaMDA模型交流的時候,用戶問模型“最喜歡的島”,模型回答的是希臘的克里特島,而且還能答出一些原因。但這個結果並不是可信的,因為AI應該給的結果是「不知道最喜歡哪個島,因為哪個島都沒去過」。語言模型的問題便是它沒有跟真實世界互動過,只是根據統計法則去輸出最有可能出現的下一句話。

如果語言模型被用於機器人上,不同的模型會給出不同的結果,其中一些對於驅動機器人執行任務沒有用處。例如,用戶提出需要讓機器人“將灑出的飲料清理掉”,GPT-3可能會說“你可以用一個吸塵器”。這個結果不完全正確,因為吸塵器並不能清除液體。

如果是LaMDA模型,LaMDA可能會說「不想讓我幫你找清潔工?」這個回答是正常的,但並沒有實際用處,因為LaMDA在話語料上的微調,其目標函數是盡可能延長對話長度,並非幫助完成任務。如果是FLAN模型,它會回覆「對不起,我不是故意的。」並沒有理解使用者的意圖:究竟是對話?還是需要解決問題?因此將大語言模型用於機器人上存在一系列問題。

PaLM-SayCan工作就是要解決這些挑戰。首先是讓大模型能夠說機器人的語言,方法是Few-shot Prompting(少樣本學習)。例如,建構諸如「將咖啡拿到櫥櫃上」、「給我一個橘子」等任務,並給出相應的步驟(如1-5和1-3)。然後,使用者給出模型一個指示:「將一個蘋果放在桌上」。在有了先前的步驟提示後,模型會自行尋找並組合出適當的任務步驟,一步一步產生完成任務的計畫。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

要注意的是,大模型主要有兩種互動方式, #一種是生成式(Generative Interface),根據輸入產生下一個Token;另一種是打分式(Scoring Interface),對給定的Token計算似然函數。 PaLM-SayCan使用的是打分式的方式,語言模型會更穩定,容易輸出想要的結果。在放置蘋果的任務中,模型會對各種步驟進行評分,並選出適當的結果。

3.彌補語言模型和真實世界的鴻溝:讓機器人探索環境的可供性

#還有一個問題要解決:語言模型產生任務步驟時並不知道機器人目前能做什麼。如果機器人跟前並沒有蘋果,機器人就無法完成放置蘋果的任務。因此,這需要讓語言模型知道機器人在當前的環境和狀態下可以做什麼任務。這裡需要引入一個新的概念,叫做Robotic Affordances(機器人可供性),也是這篇工作的核心。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

Affordances翻譯成中文稱為可供性,是美國心理學家詹姆斯‧吉布森(James J . Gibson)在1977年左右提出的一個概念,定義為一個智能體在一個環境中,在當前的狀態下可以做什麼任務,就代表它的可供性。 可供性可以採用監督學習去獲得,但是這樣需要大量的資料和標註。

#

對此,團隊採用了強化學習的方法,並利用Policy的值函數近似可供性。例如在環境中訓練機器人抓取各種東西,訓練後讓機器人在房間中進行探索,當它看到面前有物品的時候,撿起該物品的值函數就會變得很高,從而代替可供性的預測。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

將可供性和語言模型結合,就得到了PaLM-SayCan演算法。如上圖所示,左側為語言模型,對使用者提出的指令,對機器人可以完成的任務進行評分,計算出完成子任務對完成總任務有幫助的機率。右側是值函數,代表在目前狀態下完成每項任務的機率。兩者的乘積代表機器人成功完成一個對總任務有幫助的子任務的機率。在蘋果的例子中,當前狀態下機器人面前沒有蘋果,要完成這個任務,第一件事就是要找到蘋果,所以找到蘋果的可供性分數比較高,抓取蘋果的分數較低。找到蘋果後,抓取蘋果的可供性分數提高,則執行抓取蘋果的任務。不斷重複這個過程,直到總任務完成。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言


#03 更多具身智慧工作:提升模型推理能力,利用環境回饋形成閉環

1.Chain of Thought Prompting:理解複雜常識

#除了PaLM-SayCan之外,夏博士和同事們也完成了其他一些相關工作。在Prompt方面,團隊提出了Chain of Thought Prompting(可以理解為解題思路)工作,目的是為了讓語言模型有更多的推理能力。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

標準的Prompt模式是設計問題模板,並給出答案。模型推理時輸出答案,但有時候模型給的答案是錯誤的。因此,Chain of Thought Prompting的目標就是在提供問題的同時給模型一段解釋,這樣可以顯著提升模型的結果,甚至在一些任務上超過人類水平。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

模型在處理否定句的時候容易出錯。 例如,人類使用者提出「給我一個水果,但不要蘋果」。模型往往會提供一個蘋果,因為問題和可執行的選項中都有蘋果。利用Chain of Thought Prompting,可以提供一些解釋。例如,模型會輸出「使用者想要水果,但不是蘋果,香蕉是一種水果,不是蘋果。我可以給使用者一根香蕉」。

Chain of Thought Prompting也可以解決更微妙的否定要求。例如,使用者表示對咖啡因過敏,要求機器人拿一個飲料。過敏是否定的另一種微妙形式,如果用傳統的方法,機器人可能會拿一個含咖啡因的飲料(沒有理解過敏所代表的否定意義)。而Chain of Thought Prompting可以對過敏等進行解釋,提升推理效果。

#

2.Inner Monologue:修正錯誤,回到正確的執行軌道上

#將大模型做機器人決策和環境交互相結合也是研究的重要方向。團隊提出了Inner Monologue的工作,目的是讓語言模型可以根據環境的變化來回溯以往的決策,從錯誤的指令或環境帶來的意外中恢復。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

例如,人類回家的時候,發現選擇的鑰匙打不開門,這時候人們會選擇換另一把鑰匙試試,或是換個轉動的方向。這體現的就是根據環境的回饋來修正錯誤,更新出新的動作。 Inner Monologue工作就是這樣的想法。例如,機器人抓取可樂的過程中,如果可樂掉下去,後續的任務無法完成,就需Inner Monologue這樣的工作,檢測任務是否完成成功,並將反饋放入決策過程中,根據反饋信息來作出新的決策。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

如圖所示,Inner Monologue工作包含了主動情境描述(Active Scene Description)和任務成功偵測器(Success Detector)。當人類下達指令的時候,模型可以執行指令,並啟動情境描述,用於輔助機器人的決策。訓練過程依然使用Few-shot Prompt的方式,使其能夠舉一反三。例如,當機器人接到指令去拿飲料的時候,它會詢問人類究竟是取可樂還是蘇打水。

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

另一個案例是語言模型對歷史資訊的推理,在很多時候人類會在下達指令後改變主意,或改變多次指令後要求機器人完成「剛才的任務」。在這裡,「剛才的任務」沒有具體指定,這就需要模型回溯歷史,看看之前的任務是什麼。除了英文之外,目前Inner Monologue還可以在中文等語言上使用。經過其他領域的實驗,團隊發現這種環境回饋的方法能夠完成一些非常複雜且閉環的規劃任務。

04 

Q&A#Q:PaLM-SayCan的大語言模式是從頭訓練的嗎?還是只用了模型。

A:大預言模型不需要做Fine-tune,本身已經包含了許多決策的資訊.例如用1750億參數的GPT-3,或是PaLM都可以,本身已經包含了足夠的任務規劃的、序列的資訊。

Q:在Inner Monologue工作中,Agent也會主動提問嗎?這是怎麼吸納的?

A:我們用語言模型和Prompt的方法,在機器人完成一個任務的時候,會出現兩個選項「and ask」和「and continue」。究竟是提問還是繼續,取決於上下文語意中是否有歧義。 ##########

Q:機器人怎麼知道一件物品在什麼地方(例如薯片在抽屜裡)?如果將來機器人具備的能力逐漸增加,是否會造成在探索的過程中搜尋空間過大?

A:機器人對於物品的存放位置的知識,目前是硬編碼的,不是一個自動的過程。但大語言模型也包含了一定的語意知識,例如物品在哪裡。這種語義知識可以減少搜尋空間。同時,也可以根據找到物品的機率去做探索。目前,夏斐團隊發表了一篇新的工作來解決這個問題,其核心思想是建立一個自然語言索引的場景表示。參考網站nlmap-saycan.github.io

谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言

#Q: 另外,近年來興起的分層強化學習,是否對複雜任務規劃有一定的啟發?

#PaLM-SayCan和分層強化學習有異曲同工之處,有著底層技能和上層任務的規劃,可以說是一種分層的方法,但並不是分層強化學習。我個人比較看好這種分層方法,因為做任務規劃的時候,不一定要去做每一個細節的步驟,這樣會很浪費時間。任務規劃可以使用海量的互聯網數據訓練,但底層的技能需要物理數據,所以要和環境進行交互,學習。

Q:PaLM-SayCan真正用於機器人,是否還有原理性的問題沒有解決?如果作為日常保母的替代等應用,還需要多久能夠實現?

A:目前還有一些原理性的問題沒有解決,並不是簡單的工程問題。在原理性方面,機器人的底層的運動控制和抓取是一個很大的挑戰,我們還無法做到100%的抓取成功,這是一個很大的問題。

當然,目前已經能夠為行動不便的人提供一些價值。但如果真正做到商業化產品,目前還不行,任務成功率在大約百分之九十,沒有達到商業上的要求。

Q:機器人規劃的成功率受限於訓練資料集嗎?

A:機器人的規劃能力是受限於訓練語料的。語料中很容易可以找到一些指令,如“將垃圾扔掉”等。但語料中幾乎沒有「把機器人二指爪向右移10公分」這樣的語料,因為人們不會將這樣的資訊留在網路上。這就涉及到粒度訊息的問題,目前受限於語料,機器人只能完成粗粒度的任務。

另一方面,細粒度的規劃本身也不該由語言模型來做,因為它包含了太多的物理訊息,很可能無法用人類的語言來描述。一個想法是細粒度的操作可以用模仿學習(參考BC-Z工作),或是程式碼產生來實現(參考團隊最新工作 https://code-as-policies.github.io/)。大模型更大的作用是作為使用者的互動介面,根據人類給機器人的指令,進行解釋,並分解為機器可以執行的步驟。

此外,語言可以做高階語意規劃,不需要做更物理性的規劃。如果要實現細粒度的規劃任務,還是要依賴模仿學習或強化學習。

#

以上是谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除