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