大模型解決機械人專業技能學習問題?很難 | 數智來信

.. 文 | 珞石機械人CTO韓峰濤

編輯 | 石亞瓊

文章經授權轉載

封面來源|IC photo

**

震驚!這是前言!

隨着大模型的研究方向愈加廣泛,業內領先企業和研究機構也陸續發佈了一系列的機械人/具身大模型,尤其最近RT-2的發佈,又一次引起了業內媒體的震驚體爆發,彷彿距離機械人接管世界已為時不遠。當然,媒體關注多對於行業來講是個好事情,正好也趁着這個熱點梳理下大模型落地機械人的路徑有哪些,我們需要什麼樣的機械人/具身大模型。 

我們知道,基於Internet-Scale數據預訓練的語言和圖像大模型(LLMs&VLMs)具備強大的語義理解、內容推理、圖像識別、文本/圖像生成、代碼生成等能力,這些能力對於需要在真實世界裡執行多種任務的通用機械人來講至關重要。但是LLMs和VLMs在機械人領域落地效果並不好,其主要原因是這些模型欠缺真實物理世界的知識,導致其推理輸出很難落地到實際機械人場景中。還有一部分原因是由於現有大模型主要進行語義推理和文本提示,而機械人需要的是可用的機械人運動指令,譬如機械臂末端位置指令或者底盤移動位置指令等,二者無法直接匹配。 

為了解決這些落地問題,來自不同機構和企業的研究人員開展了一系列工作,有直接使用Transformer Model進行端到端訓練的,也有利用機械人技能數據集對LLM直接微調的,有專註於解決機械人高層(High-Level)決策問題的,有用於解決三維空間軌跡規劃問題的,也有把大模型用於機械人底層(Low-level)運動規劃問題的,從而產出了一系列的具身大模型。 

本節將簡要介紹近期發表的PaLM-E、RT-1、RT-2、RoboCat、VoxPoser所代表的幾種主流Grounding方案,並探討大模型與機械人結合的可能方向。 

還有其他很多與機械人相關的工作和項目譬如MOO、Gato、BC-Z、VC-1、R3M、VIMA、DIAL、AdA、CLIPort,Voltron等,篇幅限制在此不再贅述,感興趣的可以去查看主頁或者翻閱論文,有很多思路可以借鑒: 

PaLM-E:PaLM-E: An embodied multimodal language model;鏈接:https://ai.googleblog.com/2023/03/palm-e-embodied-multimodal-language.html

SayCan: Do As I Can, Not As I Say:Grounding Language in Robotic Affordances;鏈接:https://say-can.github.io/

RT-1: RT-1: Robotics Transformer for real-world control at scale;鏈接:https://ai.googleblog.com/2022/12/rt-1-robotics-transformer-for-real.html

RT-2: RT-2: New model translates vision and language into action;鏈接:https://www.deepmind.com/blog/rt-2-new-model-translates-vision-and-language-into-action

RoboCat: Stacking our way to more general robots;鏈接:https://www.deepmind.com/blog/stacking-our-way-to-more-general-robots

VoxPoser: VoxPoser: Composable 3D Value Maps for Robotic Manipulation with Language Models;鏈接:https://voxposer.github.io/

ChatGPT for Robotics: ChatGPT for Robotics: Design Principles and Model Abilities;鏈接:ChatGPT for Robotics (microsoft.com)

MOO: Open-World Object Manipulation using Pre-Trained Vision-Language Models;鏈接:Open-World Object Manipulation using Pre-Trained Vision-Language Models (robot-moo.github.io)

BC-Z: BC-Z: Zero-Shot Task Generalization with Robotic Imitation Learning;鏈接:https://sites.google.com/view/bc-z/home

CLIPort: CLIPort: What and Where Pathways for Robotic Manipulation;鏈接:CLIPort

VC-1: Where are we in the search for an Artificial Visual Cortex for Embodied Intelligence?;鏈接:Visual Cortex (VC-1) (eai-vc.github.io)

R3M: R3M: A Universal Visual Representation for Robot Manipulation;鏈接:https://sites.google.com/view/robot-r3m/?pli=1

VIMA:VIMA: General Robot Manipulation with Multimodal Prompts;鏈接:VIMA | General Robot Manipulation with Multimodal Prompts (vimalabs.github.io)

EmbodiedGPT: EmbodiedGPT: Vision-Language Pre-Training via Embodied Chain of Thought;鏈接:EmbodiedGPT

Voltron: Language-Driven Representation Learning for Robotics;鏈接:https%3A//github.com/siddk/voltron-robotics

DIAL: Robotic Skill Acquisition via Instruction Augmentation with Vision-Language Models;鏈接:https://instructionaugmentation.github.io/

Gato A Generalist Agent;鏈接:https://www.deepmind.com/blog/a-generalist-agent

AdA:  Human-Timescale Adaptation in an Open-Ended Task Space;鏈接:https://sites.google.com/view/adaptive-agent/

幾個典型的機械人大模型

PaLM-E: An embodied multimodal language model

為了更好的將圖像語言大模型的能力和知識遷移到機械人領域,研究人員融合了Google當時最新的大型語言模型 PaLM 和最先進的視覺模型 ViT-22B ,使用文本和其他多模態數據(主要來自於機械人的傳感器,比如圖像、機械人狀態、場景環境信息等)代替之前的純文本作為輸入,輸出以文本形式表示的機械人運動指令,進行端到端的訓練,從而得到了用於機械人任務的多模態大模型PaLM-E(Embodied)。 

PaLM-E總覽 

 

下圖簡明展示了PaLM-E的機械人操作能力,例如,給機械人下達文字指令:「把抽屜里的薯片拿來給我」,模型會輸出以下機械人的運動指令: 

  • 移動到抽屜旁邊;

  • 打開抽屜;

  • 把薯片從抽屜里拿出來;

  • 把薯片帶到用戶旁邊;

  • 放下薯片;

  • 任務結束;

PaLM-E具備拆解和執行長程任務(Long Horizon Task)的能力,以及較強的抗干擾能力(人為的移動或者打掉薯片) 

 

PaLM-E的任務推理頻率為1Hz,機械人按照5Hz的控制頻率執行Low-level運動 

 

關於機械人執行部分的內容,可以參考Robotics@Google的另一項工作 Talking to Robots in Real Time 。 

PaLM-E最大的貢獻,是展示了將圖像和語言大模型的知識遷移到機械人領域的路徑之一,有了大模型的通識理解和推理能力,機械人可以將原有能力更好的泛化到新場景中。

SayCan:Do As I Can, Not As I Say

如上述PaLM-E章節所述,大模型可以把高層級的任務拆分成若干個在語義上符合邏輯的子任務,但是由於LLMs普遍缺乏真實物理世界的經驗,無法判斷其輸出會對環境產生什麼樣的影響,也不知道真實環境和機械人的狀態信息以及機械人是否具備執行這些子任務的能力,所以其生成的看似邏輯上合理的子任務指令不一定能在某個實際的場景中被機械人順利執行。

譬如,對於任務「我把瓜子皮撒地上了,能不能幫忙清理一下?」,大模型輸出「使用吸塵器清潔」是符合邏輯的,但實際上執行這項任務的機械人可能還不會使用吸塵器,甚至,家裡根本就沒有吸塵器。 

SayCan把大模型的任務拆解能力與機械人實際可執行的任務這二者結合起來進行機械人規劃和控制 

 

因此,SayCan的設計邏輯很簡單,將決定機械人應該如何執行任務的決策拆成兩個部分,Say代表大模型LLM,用於輸出可用的高層級運動指令,Can代表機械人在當前環境下能做的事情,二者通過值函數(Value Function)的方式結合起來,共同決定選擇哪條指令用於實際執行。 

SayCan的決策流程示意圖 

 

如上圖所示,給機械人系統輸入「你怎麼把蘋果放在桌子上?」,對於該任務而言,大模型(Say)最可能的運動輸出順序是 

  • 撿起蘋果;

  • 放下蘋果;

  • 找到蘋果;

但是對於機械人(Can)來講,通過傳感器(攝像頭)環視一圈發現周邊並沒有蘋果可撿,大模型輸出的第一條運動指令「撿起蘋果」是無法被執行的,因此機械人機械人輸出的運動順序是 

  • 找到蘋果;

  • 。。。

結合LLM輸出與值函數(VF),SayCan系統最終輸出的第一條指令是「先找到蘋果」,避免了在周邊沒有蘋果的時候去指揮機械人撿起蘋果從而無法完成任務。 

PaLM 540B vs FLAN 137B,PaLM-SayCan的所有分項測試結果均好於FLAN-SayCan

此外,在SayCan的實驗過程中,研究人員得出了類似的結論,即模型能力的增長會導致整個機械人系統能力的進步。

RT-1:Robot Transform - 1

RT-1是由Robotics@Google和Everyday Robots的研究人員於2022年開發的機械人End-to-End控制模型,主要特徵有: 

基於Transformer的模型,包含一個FiLM-conditioned EfficientNet用於處理圖像和文字輸入得到vision-language tokens,接着一個TokenLearner用於壓縮輸入給Transformer模型的Token數量以提升模型推理速度,以及一個Transformer模型;

採用模仿學習的方式進行訓練,輸入自然語言和圖像,輸出機械人運動指令(底盤位置和機械臂末端位置); 

RT-1使用自然語言和圖像作為輸入,輸出離散的機械臂和底盤動作(位置和姿態) 

 

RT-1研究兩個事情,第一通過Transformer Model學習得到機械人的技能,第二如何使用自然語言控制機械人的運動。

RT-1的研究團隊闡述了一個很有意義的觀點: 

When it comes to robotics, usefulness is determined not just bywhat robots can do, but also how we tell them to do it — for example, how we instruct a helper robot to clean up a cup of spilled coffee. That』s where natural language understanding comes into play. 

尤其是上面「How we tell robot to do it」,闡述了人機交互(Human Robot Interface)的重要性。一個機械人技能再多再厲害,如果使用的難度很高很難部署,我們也很難說這個機械人是很有用的。 

RT-1不是傳統意義上的大模型,只是主體使用了Transformer架構,總體參數量只有35M,Transformer部分的參數量只有19M,是面向機械人操作單獨訓練的一個多任務機械人控制模型。 

此外,RT-1很重要的一個工作成果是為期17個月的機械人操作訓練數據收集,作者團隊使用了fleet of robots的描述,其實只有13台機械人,整個數據收集過程使用了人工遙操作演示示教的方式進行。最後得到了一個包含700多種任務,130000多個執行片段的數據集。這個數據集後來也被應用到多個具身大模型的訓練中。

前面講的SayCan用大模型做任務理解和任務拆分(谷歌這幫人稱之為High-Level),把一個任務拆解為若干個子任務(Sub-task)或者技能(Skill),RT-2用大模型做技能學習(Skill,Low-level),學習到的技能用於支持SayCan的任務執行。 

RT-2:Robot Transform - 2

發佈RT-1之後,團隊發現這貨泛化能力不行啊,遇到沒見過(Unseen)的任務(包括物體和環境)就傻眼,但是如果靠人工示範繼續去搞更多的數據集去接着訓練RT-1的模型,又是個費時費力效率很低的事,那有沒有更好的辦法讓機械人能更快的獲得更好的常識性任務的泛化能力呢? 

用大模型啊! 

於是: 

We study how vision-language models trained on Internet-scale data can be incorporated directly into end-to-end robotic control to boost generalization and enable emergent semantic reasoning. 

RT-2的目的是為了研究將使用互聯網規模數據(Internet-scale data)訓練得到的VLM大模型直接用於端到端的機械人控制,提升機械人操作的泛化能力和語義推理能力。

RT-2拋棄了從頭訓練Transformer模型的方式,而是直接採用已有的VLM模型作為主模型,再使用更適合機械人任務的fine-tuning方法對其進行微調。簡單來講,RT-2是使用機械人數據集進行fine-tuning且其輸出的text被設計成了機械人位置指令形式的VLM(PaLM-E、PaLI-X)。

此外,為了更符合機械人的應用,RT-2主要研究的是利用大模型的優勢直接生成Low-level的機械人運動指令的內容。 

使用Web數據和機械人數據集co-fine-tuing已有的VLM大模型,並將模型的Output設計成機械人目標位置的格式 

 

當然為了防止原有VLM模型性能退化,在fine-tuning環節同時使用了原有的Web數據和機械人操作數據集進行訓練,作者稱之為co-fine-tuning(這一點個人認為不是特別關鍵的點,相對容易想到和實施)。 

RT-2證明了使用機械人技能數據集對已有的LLMs或者VLMs進行微調,可以快速的利用VLM的海量通識能力,大幅提升機械人的任務執行成功率和泛化能力。

其他的所謂VLA中的Action,更多是發文章層面的創新點,原因之一是直接生成機械人的Action並不是RT-2專屬,RT-1也是Action-Generation Model,其模型輸出形式也是機械人的位置指令(The RT-1 Robotics Transformer is a simple and scalable action-generation model for real-world robotics tasks.);其次RT-2生成的Action只有機械臂末端的期望位置(Position)和姿態(Orientation),在傳統機械人控制中,這最多是��用指令級別的API,甚至都不算是典型的Low-Level API範疇(詳細說明參考本文第三節關於High-Level和Low-Level的內容)。 

此外,因為RT-2的Backbone模型是PaLM-E 540B,所以無法運行在機械人的硬件上,只能部署在雲端,而RT-1可以直接運行在機械人上。 

RoboCat:機器貓?

當前訓練機械人大模型/具身大模型面臨的最主要的挑戰之一是高質量訓練數據非常欠缺,前面提到的RT-1、RT-2以及PaLM-E中所使用的機械人數據集絕大部分數據是通過人工示範與人工遙操作的方式收集的,費時費力,效率很低。如果可以通過某種方式自動生成機械人的訓練數據,無疑可以節約大量時間和人工成本。 

RoboCat基於DeepMind最新的多模態通用大模型 Gato (西班牙語中「貓」的意思)創建,除了能實現與前面所講的其他機械人大模型/具身大模型類似的場景識別、任務推理拆解、機械人控制功能之外,一個比較重要的創新是在之前需要大量人工遠程操作演示的方式來提供機械人數據集的基礎上,RoboCat可以通過自己生成機械人訓練數據集的方式來更快完善其能力。

整個過程首先通過一系列的機械人數據集對於Gato模型進行第一輪的訓練,之後便進入作者稱之為自改進(self-improvement)的訓練環節,該環節包括一系列之前機械人沒有見過的任務,整個學習過程包括5步: 

對於每個新任務或者新機械臂,通過人工控制機械臂,收集100-1000個演示過程;

針對該新任務/機械人,對RoboCat進行微調,生成一個新的分支;

新生成的分支自己在新任務/機械臂上練習10000次,產生更多的訓練數據; 

把人工示教和機械人自己生成的數據併入到RoboCat已有的數據集中;

使用最新的數據集訓練新版本的RoboCat; 

使用最新的數據集訓練新版本的RoboCat;

首先通過人工示教數百次建立新任務基礎能力,然後通過機械人自己生成的訓練數據,加快其技能學習速度。 

在長達50頁的論文中,RoboCat團隊研究了如何在單一模型里支持多個機械人,多任務間技能遷移的效果如何,跨機械人的技能遷移效果如何,虛實遷移(sim-to-real)的效果如何,模型架構和參數縮放如何影響模型性能等多項內容,有時間的話推薦認真讀一下。 

這種通過機械人自動生成大批量訓練數據的方式,倒是跟哆啦A夢從異次元口袋裡掏出很多寶貝有些相似。 

VoxPoser:Composable 3D Value Maps for Robotic Manipulation with Language Models

Google系的幾個機械人大模型,總體思路都是側重於任務理解、拆分和邏輯推理,對於機械人運動控制本身尤其規劃問題涉及較少,只是用端到端訓練的方式生成了簡單且離散分佈的機械臂末端位置和底盤移動指令,未考慮連續路徑和軌跡規劃等更偏機械人領域的內容。 

VoxPoser與前幾個方法較大的不同點是,沒有將LLM和VLM用於常見的輸入文本+圖像輸出機械人運動的端到端控制方法,而是使用VLM和VLM的能力來將機械人的觀測空間(一般為三維空間和待操作的對象)轉換為一個3D值圖,然後就可以使用成熟的路徑搜索算法(VoxPoser使用了概率路線圖Probabilistic RoadMap)在3D值圖上搜索生成可用的機械人運動路徑。有了可用路徑,接下來做軌跡規劃和控制機械人運動就是當前機械人領域解決的比較好的問題了(當然VoxPoser中並未涉及更多高性能軌跡規劃的討論)。 

VoxPoser總覽圖 

 

如上圖所示,給定工作環境的RGB-D信息和語言指令,利用LLM的代碼生成能力與VLM進行交互,生成一系列的機械人觀測空間的3D affordance maps and constraint maps(統稱為值圖),組合而成的值圖接下來被用於機械人的路徑規劃,整個過程並未引入任何額外的訓練。 

總體上,VoxPoser的方法與傳統機械人界的思路更為貼近,即給定可用的工作與構型空間,使用較為成熟、可控的基於隨機採樣的路徑規劃方法進行規劃,而不是把幾乎所有的工作都交給大模型來做。 

這種組合各種技術的優勢的方案我認為是目前相對較好的研究方向,應該也是最適合、最可能落地的方向。 

機械人大模型到底有多機械人?

本節我們討論目前的具身大模型/機械人大模型里,到底有多機械人? 

全都是在抓取?

目前大模型在機械人領域的現狀可以概況為: 

理解看到是什麼東西、大小、形狀、冷熱、顏色,以及針對這些物體的基本操作如撿起/扔掉/移動(不考慮精度和性能指標),會簡單的數學和邏輯推理用於推進任務。

雖然論文上都歸為Manipulation,但實際上還非常初級,距離常規理解的操作(從擰螺絲釘到組裝宜家傢具)還有較大差距;譬如,在RT-2中展示了一些失敗的案例,移動筆的時候未考慮圓形的筆會滾動&控制周期太慢無法快速響應筆的運動;移動香蕉的時候未考慮長條形狀物體的重心,機械人推動香蕉時無法得到期望的運動; 

RT-2未能成功的兩個案例,主要原因是在操作過程中缺乏對物理信息的考慮 

 

歸納起來,大模型在以下場景的性能表現非常的Poor: 

通過特定部位抓取物體,例如門把手,這裡通用Grasping的問題,  @李淼robot  是專家;

機械人數據集里沒有見過的新動作,或者學會如何使用新工具,涉及泛化和Zero-shot問題;

需要靈巧性和精確性的場景,絕大部分技能型動作都屬於此類; 

需要多層間接推理的場景,此處受限於大模型的能力;

對於第三個問題,很重要的一個因素是,只靠給機械人輸入文字和圖像是無法讓機械人學會很多很專業技能的,包括從簡單的二維平面寫毛筆字、雕刻,到需要複雜動作和力交互的場景。 

正好最近在學游泳,為了更好的理解動作,在跟着教練上課之餘,也會在B站上觀看教學視頻,因此深刻體會到了如果不自己下水刻苦訓練,即使看遍世界上所有的游泳教材和游泳視頻,你也學不會游泳這個道理。只有自己下水去實際練習,體會教練說的「感受水與肢體的交流」,增強水性,才能慢慢的學會。 

而如果有教練在關鍵的點給予專業的糾偏和指導(專家系統&RLHF),則可以大幅縮短學成的時間。 

機械人也是一樣,它可以通過文字、圖片、視頻學會雕刻的動作,但是無法通過圖片把自己練成雕刻大師,這裡面有大量的與物理交互相關的經驗知識無法通過文字和圖片表達。 

High-Level與Low-Level

很多大模型論文里說的Low-Level控制接口與傳統機械人控制中所說的Low-Level接口概念有較大區別,為了避免混淆,這裡做一個簡要說明。 

關於機械人控制層級有很多種分法,為方便理解大模型論文和機械人的結合點,在本文中將控制層級分為5級: 

任務級Task Level:我咖啡灑了,你能幫忙嗎;

技能級Skill Level:找到抹布、撿起抹布、移動抹布、放下抹布;

動作級Motion Level:直線運動、圓弧運動、樣條曲線運動、手抓開合;

基元級Primitive Level:根據動作和機械人物理限制進行軌跡規劃完畢之後插值生成的控制指令,包括目標位置、姿態、速度前饋、力矩前饋,一般周期要做到至少500Hz,常見的控制周期現在已經做到1000Hz以上。如果是力控制,這周期一般回到2000~4000hz;

伺服級Servo Level:運行在伺服驅動器里的位置速度電流三環控制; 

主流機械人大模型的控制層級 

 

谷歌系的一系列文章中提到的High-Level指的是任務級,Low-Level指的是技能級。而傳統機械人控制領域對於Low-level的定義一般是在動作級,多數在基元級。

大模型不適合做偏底層的精確運動控制,實際上因為有成熟的Model based的方法可用,也沒有迫切需求引入新方法。此外,從實際發表的成果來看也可以知道大模型不適合做精確的運動控制,目前幾乎所有的具身大模型輸出的都是離散的目標位置點,未考慮連續運動的軌跡平順性、時間最優、功耗等額外因素,雖然VoxPoser考慮了路徑生成的概念,但是對於後續的軌跡規劃並未探討太多(軌跡部分可以更換底層接口更完善、運動性能更好的機械人來解決),如果原速看這些模型生成的控制軌跡會發現機械人是斷續運動,頗有當年玩網絡遊戲被lag卡瘋的既視感。 

我卡卡卡 

 

實時性Real-time

另一個存在差異的點是關於Real-time實時性的定義。 

RT-1和RT-2所謂的實時性(Real-time)其實只能做到1~5Hz的推理和控制指令生成速率,這裡的Real-time更適合對應是機械人在線規劃的Online概念,即根據反饋在線生成新的控制指令。 

而機械人控制中的Real-time跟頻率和控制周期無關,實時系統嚴格的定義指「能夠在指定或者確定的時間內完成系統功能,對外部或內部、同步或異步事件做出響應的系統」,系統的正確性不僅依賴系統計算的邏輯結果, 還依賴於產生這個結果的時間,所謂「Later answer is wrong answer」。所以運動控制領域的實時性是個時間範圍內確定性高的概念,不是頻率高的概念。 

當然從控制精度和平順性的要求出發,機械人底層實時控制的控制頻率也確實很高,一般位置控制頻率要大於500Hz,力控制更高一般超過2000Hz。 

上帝的歸上帝,凱撒的歸凱撒

從目前的研究內容中我們可以觀察到一個很有意思的現象,即AI背景的工程師和機械人背景的工程師在用大模型時的區別:AI背景的試圖打造一個具備超強泛化能力的通用機械人AI系統,完成機械人所需的從感知-決策-規劃-控制的全流程任務;而機械人背景的則更多把大模型當做工具,期望使用具備一定通用智能的大模型系統讓機械人快速學會某些特定技能。 

大模型能大幅提升機械人對世界理解與技能泛化能力?是的。

大模型能解決主流機械人專業技能學習問題?很難。

從具體的機械人技能學習角度來看,基於數學模型或者針對特定應用專門訓練一個小模型(一定要引入人工示範和主動干預),大概率是比預訓練大模型+微調更合適、效率更高、效果更好的方式。 

譬如,根據圖像生成機械人運動在機械人領域最常見的方向就是視覺伺服Visual Servoing,相比前面介紹的大模型生成的帕金森一樣的運動能力,基於傳統AI和Model-base方法可以用相比大模型少的多的計算量實現遠比現在更加平滑、可用的運動控制效果: 

因此,大模型在機械人的作用仍然是在決策、任務拆解、常識理解上。大模型不具備、也不適合做具備實時性和精確性要求的機械人規劃和控制任務。大模型負責常識、決策、推理,模型控制+專家知識負責專業技能,二者各自負責各自擅長的,結合使用是目前看到相對較快的落地方式。 

此外,大模型非常適合處理Corner Case,因為靠建模和針對場景訓練的小模型無法窮舉涵蓋全場景,這部分工作可以由大模型的通識理解與強泛化、推理能力處理。 

從機械人應用角度來看,大模型是加速器和工具,不是目的。 

現在大模型+機械人還處在內卷升級,群魔亂舞的階段,加一個新的方法或者把舊的方法用到新的場景,就會獲得非常不錯的效果,發一篇有影響力的論文,但是我們還是要回歸本源,回歸到大模型對於機械人最重要的作用:大模型負責常識能力,傳統機械人控制方法負責專業技能,這也是大模型在機械人領域應用最為Promising的方向,詳細內容參考上一篇關於機械人和大模型的文章「任務級交互」章節,在此不再贅述。 

 

 

本文來自微信公眾號

 


想在手機閱讀更多HP Palm / WebOS資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems