谷歌讓機(jī)器人充當(dāng)大語言模型的手和眼,一個(gè)任務(wù)拆解成16個(gè)動(dòng)作一氣呵成
大模型在機(jī)器人領(lǐng)域找到了用武之地。
「我把飲料撒了,你能幫我一下嗎?」這是我們?nèi)粘I钪性僬2贿^的一句求助語。聽到這句話,你的家人或朋友往往會(huì)不假思索地遞給你一塊抹布、幾張紙巾或直接幫你清理掉。
但如果換成機(jī)器人,事情就沒有那么簡(jiǎn)單了。它需要理解「飲料撒了」、「幫我一下」是什么意思,以及到底要怎么幫。這對(duì)于平時(shí)只能聽懂簡(jiǎn)單指令(如移動(dòng)到 (x,y),抓取可樂瓶)的機(jī)器人來說確實(shí)有些困難。
為了讓機(jī)器人聽懂,你可以把上面那句話分解成幾個(gè)簡(jiǎn)單的指令,但這一過程的繁瑣可能會(huì)讓你放棄使用機(jī)器人。為了消除這種尷尬,我們需要給機(jī)器人安裝一個(gè)聰明的大腦。
深度學(xué)習(xí)領(lǐng)域的研究表明,擁有優(yōu)秀語言理解能力的大型語言模型(如 GPT-3, PaLM 等)有望充當(dāng)這個(gè)大腦。對(duì)于同樣一句話(我把飲料撒了,你能幫我一下嗎?),大模型們給出的回應(yīng)可能是:「可以試試用吸塵器」或「你想讓我去找個(gè)清理工具嗎?」
可以看出,大型語言模型可以理解稍微復(fù)雜一些的高級(jí)指令,不過它們給出的回答并不總是可行的(比如機(jī)器人可能沒辦法拿取吸塵器或屋子里沒有吸塵器)。要想將二者更好地結(jié)合,大模型還需要了解機(jī)器人的技能范圍以及周圍的環(huán)境限制。
谷歌的「Robotics at Google」最近就瞄準(zhǔn)了這一方向,并提出了一個(gè)名為「Saycan」(DO AS I CAN, NOT AS I SAY)的算法。在這個(gè)算法中,他們讓機(jī)器人充當(dāng)語言模型的「手和眼睛」,而語言模型提供有關(guān)任務(wù)的高級(jí)語義知識(shí)。
在這種合作模式下,機(jī)器人甚至能夠完成一個(gè)包含 16 個(gè)步驟的長(zhǎng)任務(wù):
那么,這是怎么做到的呢?研究團(tuán)隊(duì)在項(xiàng)目網(wǎng)站上介紹了他們的方法。
項(xiàng)目網(wǎng)站:https://say-can.github.io/
論文地址:https://arxiv.org/abs/2204.01691
方法概覽
研究者將大型語言模型(LLM)與機(jī)器人的物理任務(wù)組合到一起時(shí)用到了這樣一個(gè)原則:除了讓 LLM 簡(jiǎn)單地解釋一條指令之外,我們還可以用它來評(píng)估單個(gè)動(dòng)作對(duì)完成整個(gè)高級(jí)指令有幫助的概率。簡(jiǎn)單來說,每個(gè)動(dòng)作可以有一個(gè)語言描述,我們可以通過 prompt 語言模型讓它給這些動(dòng)作打分。此外,如果每個(gè)動(dòng)作都有一個(gè)相應(yīng)的 affordance 函數(shù),可以量化它從當(dāng)前狀態(tài)(比如學(xué)到的價(jià)值函數(shù))獲得成功的可能性。兩個(gè)概率值的乘積就是機(jī)器人能成功地完成一個(gè)對(duì)于指令有幫助的動(dòng)作的概率。根據(jù)這個(gè)概率將一系列動(dòng)作排序,選取概率最高的一個(gè)。
選擇了某個(gè)動(dòng)作之后,我們就可以讓機(jī)器人去執(zhí)行這個(gè)動(dòng)作,這個(gè)過程通過迭代式地選擇一個(gè)任務(wù)并將其添加到指令上來進(jìn)行。實(shí)際上,這里將規(guī)劃結(jié)構(gòu)化為用戶和機(jī)器人之間的對(duì)話:用戶提供高級(jí)指令,比如「你如何給我一個(gè)可樂罐?」然后語言模型會(huì)以一個(gè)明確的順序來回應(yīng),比如「我會(huì):1、找到一個(gè)可樂罐;2、把可樂罐撿起來;3、把它拿給你;4、完成?!?/p>
總之,給定一個(gè)高層次的指令,SayCan 將來自語言模型的概率(某個(gè)動(dòng)作對(duì)高級(jí)指令有用的概率)與來自值函數(shù)的概率(成功執(zhí)行上述動(dòng)作的概率)結(jié)合起來,然后選擇要執(zhí)行的動(dòng)作。這種方法選出來的動(dòng)作是可行的、有用的。研究者通過將選擇的動(dòng)作附加到機(jī)器人響應(yīng)中并再次查詢模型來重復(fù)這個(gè)過程,直到輸出步驟終止。
實(shí)驗(yàn)數(shù)據(jù)
研究者在兩個(gè)場(chǎng)景中對(duì)提出的算法 Saycan 進(jìn)行了測(cè)試,一個(gè)是辦公室廚房,另一個(gè)是模擬辦公室廚房,其中 101 個(gè)任務(wù)由自然語言指令指定。下面將展示一些結(jié)果的亮點(diǎn)。
從下圖中,我們可以直觀地看到 SayCan 的決策過程。藍(lán)色條表示(歸一化)LLM 概率,紅色條表示(歸一化)成功執(zhí)行選定動(dòng)作的概率。綜合得分為綠色條,算法會(huì)選擇綜合得分最高的動(dòng)作。這種可視化突出了 SayCan 的可解釋性。
比如任務(wù)是「我把可樂弄灑了,你能給我拿點(diǎn)東西來清理嗎?」,SayCan 成功地計(jì)劃和執(zhí)行了以下步驟:1、找一塊海綿;2、拿起海綿;3、把它拿給你;4、完成。如下所示:
如果把任務(wù)稍微調(diào)整為「我把可樂弄灑了,你能給我換一瓶嗎?」,SayCan 會(huì)用這些步驟來執(zhí)行:1、找到一瓶可樂;2、把可樂拿起來;3、把它拿給你;4、完成。這表明 SayCan 能夠利用 LLM 的大容量,它們關(guān)于世界的語義知識(shí)對(duì)于解釋指令和理解如何執(zhí)行指令都是有用的。
在下一個(gè)例子中,SayCan 利用了 affordance 的能力來「推翻」語言模型做出的選擇。盡管語言模型認(rèn)為拿取海綿是正確的動(dòng)作,但 affordance 意識(shí)到這是不可能的,因此選擇了「尋找海綿」。這突出了 affordance grounding 的必要性。
作者將 SayCan 應(yīng)用到一個(gè)很復(fù)雜的指令上 “我把可樂撒在了桌上,你能把它扔掉并且拿東西來擦一下嗎”,這個(gè)指令需要 8 個(gè)動(dòng)作,機(jī)器人成功規(guī)劃并完成了這個(gè)任務(wù)。在實(shí)驗(yàn)中,最長(zhǎng)的任務(wù)長(zhǎng)達(dá) 16 個(gè)步驟。
總結(jié)來說,該方法實(shí)現(xiàn) 101 個(gè)任務(wù)的總計(jì)劃成功率為 70% ,執(zhí)行成功率為 61% ,如果去掉 affordance grouding,大致會(huì)損失一半的性能。
更多細(xì)節(jié)可參考原論文。本文共有 43 個(gè)作者,共同通訊作者為 Karol Hausman、Brian Ichter 和華人學(xué)者夏斐。