谷歌科學家親講:具身推理如何實現?讓大模型「說」機器人的語言
隨著大規模語言模型的發展,是否能夠借助它的能力,引導機器人理解復雜指令,完成更高級的任務?而在這一過程中,又會面臨哪些挑戰?近日,智源社區邀請谷歌研究科學家夏斐博士做“基于語言和視覺的具身推理”報告,詳細介紹了團隊在這一新興領域的前沿工作。
作者介紹:夏斐,目前在谷歌大腦的機器人團隊任職研究科學家。他的主要研究方向是將機器人應用到非結構化的復雜環境中。他的代表工作有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名作者,是谷歌機器人團隊和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/)。大模型更大的作用是作為用戶的交互界面,根據人類給機器人的指令,進行解釋,并分解為機器可以執行的步驟。
此外,語言可以做高級語義規劃,不需要做更物理的規劃。如果要實現細粒度的規劃任務,還是要依靠模仿學習或強化學習。