0
解讀 | Antonio
Google Brain的機器人團隊(Robotics at Google)最近發布了一篇文章,介紹了他們如何將大規模語言模型的“說”的能力和機器人“行”的能力結合在一起,從而賦予機器人更適用于物理世界的推理能力(physically-grounded)。
面對對方“我不小心灑了我的飲料,你可以幫我一下嗎?”的問題的時候,你會怎么反應?
你評估一下當下的環境,可能會幫對方把飲料瓶收拾掉,如果周圍有抹布,你會拿起抹布幫他收拾干凈,當然這些一步一步的指令可能會在你的心中默念一遍。
當你沒有觀察到吸塵器在周圍時候,你顯然不會告訴對方要使用吸塵器收拾,因為那不符合當下的環境條件。
這樣的行為決策已經體現了兩個步驟:面對一個求助,你擁有一些可以解決當下問題的行為候選項,然后你還得實際下來,選擇最符合現實的那個行為。
放在機器人的語境下,在前一個步驟,我們需要一個語言模型去理解一段人類語言發出的指令,并“說出”我們可能的種種解決方案;第二個步驟需要結合周圍環境,挑出那些符合現實世界的方案。
這篇文章就是試圖將這兩個行為解耦出來,并以恰當的方式結合在一起。
首先是用于理解和生成可能的候選項的第一步。很自然地,文章使用了現在在自然語言處理領域很流行的大規模語言模型(LLM)。它可以是生成式的,即面對一個問題,生成可能的問答,如下圖所示:
三個LLM給出的回應
可以看出這種生成式的結構并非適用在面對行為的機器人領域,一方面如FLAN模型輸出的結果沒有明確的行為指令;另一方面,即使像GPT3中給出了具體的做法,它仍然沒有考慮到現實場景:萬一當下沒有吸塵器呢?
就像開頭想表達的:會說什么并不重要,重要的是可行嗎?
因此,第二個步就需要考慮機器人所處的環境、它能夠完成的行為、它當下擁有的技能等等了,這些往往采用強化學習的value function(VF)或者affordance function進行評估。
如果將第一步的LLM視作是可以思考和講話的“心和嘴”,后一步的affordance則充當了“眼和手”的功能。前一步“說”(Say),后一步判斷“能”(Can)做什么,文章將這一模型起名為SayCan。
從上文所述文章方法的關鍵是如何將沒有與現實世界結合的“理想化”的LLM變得更加“現實”。只是根據一段指令,采用對話生成的方式產生一段雖然合理但是無關的語句并非我們所要的。因此,SayCan采用了prompt以及給特定行為打分的方式。
具體而言,機器人先觀察周圍環境,利用VF找出一些可行(actionable)的行為候選項。LLM根據問題和一小段prompt對于這些行為進行打分。
VF和LLM打出的兩個分數的乘積作為最終選擇該行為的置信度,挑選出最高得分的行為作為這一步選擇的行為。
之后,將當前選擇的行為在接到上一步的回答模板中,作為下一步的模板輸入,繼續重復上述的動作,遞歸式推斷之后的行為,直到最終推斷出一個結束的標志。這一過程,可以參考下圖。
選擇行為的流程示意圖
具體LLM是如何做的呢?
如下圖所示,LLM采用模板“I would:1.”作為回答“How would...”問題的命令詞匯(prompt)。值得注意的是,文章中也提到,這樣以比較標準的方式開頭的對話都是在機器人語境下專門設計的,現實場景可能會更加復雜。除此之外,用于in-context learning的例子也由類似的語句構成,為了讓模型生成語句時候有所參考,也就是圖中的:prompt engineering的部分。
之后的LLM是針對預選好的行為進行打分,是一種類似分類或者檢索的方式,而不是生成式的。
LLM的具體實現過程
整個實現可以參考如下的偽代碼:
文章在模擬的廚房和現實的廚房做了測試,這包括101個由不同語言指令構成的任務,下面展示了一些SayCan完成的例子,作為給出了人類的指令,右邊則是機器人根據LLM和VF共同解碼出來的指令序列。藍色的條圖表示LLM對于特定動作得到的概率打分,右邊則是通過VF得到的分數。
場景一
人類:我灑了可樂,你能幫我用什么清理干凈嗎?
機器人:我會1)找到一塊抹布。2)拿起這塊抹布。3)把它帶給你。4)完成。
示例場景一
場景二
人類:我灑了可樂,你能幫我重新拿一罐嗎?
機器人:我會1)找到一罐可樂。2)拿起這罐可樂。3)把它帶給你。4)完成。
示例場景二
示例場景三
場景三
人類:你會怎么把抹布放在衣柜上
機器人:我會1)找到一塊抹布。2)拿起這塊抹布。3)走到衣柜附近。4)完成。
其中場景三的第一步的選擇盡管語言模型給出了“pick up the sponge”的最佳選項,但當機器人什么都沒有看到時,VF則給這個選項很低的得分。這說明了SayCan的語言部分可以做出對于物理世界的推理。同時有趣的是,最后一個動作,“笨拙”的機器人還是沒有做成功:它把海綿抹布掉到了地上。
更多視頻可以參考網站:https://say-can.github.io/
SayCan將使用強化學習的“行”的能力和大規模語言模型的“言”的能力結合在一起,突出了“行勝于言”的背后思想——僅僅發出可能的行為指令是不夠的,還需要結合外在的周圍環境,做可以做到的。不過,文章提出了如下的問題,作為未來的思考方向:
1)如何借鑒融合了真實世界的LLM,來進一步完善語言模型本身,如提高它對于世界知識的推理能力。
2)更為本質的,適用于人類的自然語言是否真的是用于機器人編程的本體(ontology)語言?
3)如何更好地在機器人領域融合自然語言理解技術?
可以來到,目前機器人的研究已經逐漸在“軟件”算法層面發力了,而且上游的AI算法也很快地應用到這一領域,期待它的更好發展。
參考鏈接
https://say-can.github.io/
https://arxiv.org/pdf/2204.01691.pdf
雷峰網(公眾號:雷峰網)
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。