EP9對話王理睿:如何處理機器人領域中極為異構的資料集和任務

Robot Data前八期,我們圍繞著機器人資料金字塔,分別介紹了利用人類影片、動捕、遙操、模擬等方式獲得資料進行機器人學習的優秀工作。這些工作通常只聚焦利用單一資料突破機器人學習問題。那機器人學習是否可以將這些多模態資料綜合利用呢?答案是肯定的,也是必須的。參考人類與物理世界互動學習的過程就是多種模態的資料融合過程,比如小孩子會在腦子裡模仿動畫片裡的人物動作(模擬資料),也會模仿大人的動作(人類影片資料),在一些任務完成不好的時候需要大人手把手示教(遙操)。正式在多種維度的資料幫助下,人類可以在一些任務上完成的越來越好。
那如何處理機器人領域中極為異構的資料集和任務呢?機器人資料來自不同領域,如模擬環境、真實機器人操作以及人類影片演示。我們今天介紹的論文Policy Composition (PoCo)可以使用擴散模型在不同領域、模態和任務之間進行資料的組合。所組合的策略在具有普遍適應性的工具使用任務中展示了強大的場景級和任務級的泛化能力。
我非常榮幸的邀請到PoCo論文的一作王理睿博士來講解PoCo這篇論文。王理睿目前是MIT的博士生,導師是MIT CSAIL的Russ Tedrake教授。他還與Kaiming He教授密切合作。在來到MIT之前,他在華盛頓大學獲得了本科和碩士學位,與Dieter Fox教授合作。他的研究興趣在於機器人技術和機器學習,特別緻力於開發能夠在複雜且無結構的現實環境中進行泛化的機器人演算法和系統,從事於可以處理異構機器人資料的群體學習研究。
PoCo: Policy Composition From and For Heterogeneous Robot Learning的作者包括Lirui Wang, Jialiang Zhao, Yilun Du, Edward Adelson, Russ Tedrake,它被RSS 2024收錄。
以下為本文目錄
👇
1. PoCo介紹
2. PoCo的核心思想
3. 如何理解跨Domain的資料融合?
4. 怎麼理解Policy Composition?
5. 為何特別關注異構資料?
6. PoCo只針對工具使用類的任務嗎?
7. 為什麼加入觸覺資訊?
8. 其他關於PoCo的問題
9. 關於HPT
10. 關於Fleet Learning
一些想法
1. PoCo介紹
如何應對機器人領域中極為異構的資料集和任務?機器人資料來自不同領域,例如模擬環境、真實機器人操作以及人類影片。我們研究了使用擴散模型的策略組合(PoCo)方法,以應對這些挑戰。

PoCo介紹
我們專注於能夠泛化的機器人工具使用任務,這些任務強調了在現實世界操控中的組合性和豐富的接觸特性。工具使用任務在機器人應用中非常重要,並且有大量真實人類影片資源可供使用。為支援這一研究,我們在Drake模擬環境中開發了一個基準測試。

Data

PoCo 的核心理念是最佳化動作軌跡的組合能量景觀。這個推理過程無需重新訓練,可以應用於不同的任務(例如錘子和扳手任務)、行為(例如平滑度成本目標)和領域(例如模擬和現實環境)。
PoCo方法簡介
PoCo 展示了在不同場景中的泛化能力,能夠適應變化的物體和工具姿態、干擾物、新物體以及動態場景。受人類學習方式的啟發,PoCo 能夠在不同模態(如RGB、點雲、觸覺)和領域(如模擬、真實機器人、影片)中組合策略。

我們組合的多工策略在具有外部接觸、可變形物體、強力操控和外部干擾的任務中展示了任務級的泛化能力。此外,它在這四個工具使用任務中的表現也優於直接在多工上訓練的無條件策略。

工具1-飯勺子

工具2-扳手

工具三-小錘子

工具四-刀子

2. PoCo的核心思想
機器人資料獲取難度大很大一部分原因是機器人的形態很多,在不同的機器人上,會有不同的方法來表示它們的某些模態,分散的機器人載體和多模態的資料模式是導致目前機器人沒有完整模型的一個主要原因。我們提到的多模態,即包括RGB視覺資訊、文字資訊也包括點雲和觸覺等這些對靈巧操作任務至關重要的資訊模態。為了與目前大家常說的多模態大模型裡的模態加以區分,我們將這些資料類別統稱為多樣性(Heterogeneity)而不再稱之為多模態。
除了資料多樣性問題,機器人訓練所用到的資料領域(Domain)也存在巨大差異,比如人類影片、真實機器人資料以及模擬資料,這也是機器人學或具身智慧領域特有的挑戰。每個Domain都有自己的優勢和劣勢,模擬中我們可以生成大量資料,但有些東西可能無法模擬,存在模擬與現實之間的差距;人類影片資料在網上有大量可用,但可能缺少動作標籤,訓練起來較難;而真實機器人資料非常昂貴,因此,跨Domain的研究非常困難。
如何將機器人訓練資料多樣性和跨多個領域的資料組合起來,提高機器人訓練的通用性是PoCo這個工作最核心的思想。PoCo中,我們把不同的策略拆分成了幾個層次:第一,Task Level:在不同的任務,比如不同的工具使用,我們可以進行一些訓練,使用 classifier-free的diffusion training。這樣就可以在任務層次上進行組合,利用不同的工具。第二,Domain Level:在不同的領域來源,比如模擬和真實機器人上進行組合。我們可以研究如何將這兩個領域的策略組合在一起。第三,Behavior Level:在測試時可以指定一些成本,比如讓它的行為更加順滑或者更加安全。我們可以直接手動編寫一些任務或目標,然後進行組合。

3. 如何理解跨Domain的資料融合?

在真實機器人上,我們有一些感測器,例如攝像頭、手部攝像頭和第三視角攝像頭,還有觸覺感測器。在我們進行遠端操作時,這些感測器會收集資料,這些資料可以用來訓練模型,並且模型也可以工作,但常常會有一些問題,例如泛化能力不足。我們發現,很多時候這些演示資料會導致模型過擬合。舉個最基本的例子,在一個桌面環境中,機器人需要用錘子去敲擊釘子。如果我將釘子的位置移動到一個模型訓練時未見過的位置,它可能就無法正確執行任務了。更不用說在場景中新增障礙物或快速移動目標物體了,這些都會暴露出模型在泛化能力上的問題。
然而,在模擬環境中,針對這些場景相關的挑戰,可以很容易地被設計出來。在模擬環境中,我們可以新增各種雜亂的物體,並使用規劃器生成演示資料。這樣一來,基於模擬訓練的策略甚至可以透過另一種模態(比如點雲資料)表現出更好的泛化能力。
因此,在測試階段,如果我們有兩個策略——假設一個來自模擬,一個來自真實機器人操作,且它們已經分別完成了訓練,我們能否將它們結合起來,從而實現兩者的優勢互補?也就是說,既能保有現實世界中的流暢動作,又能利用模擬環境中的泛化能力。這正是這篇論文的動機所在。
我們假設這兩個策略已經各自訓練完畢,且在訓練過程中並沒有共享資料。例如,一個公司訓練了一個模型,另一個公司也訓練了一個模型。現在我們想將它們結合起來,以在兩個模型都未曾見過的全新場景中進行測試,看看能否實現更好的泛化能力。在機器人領域,我們可以將這種情況稱之為組合泛化(compositional generalization)。舉個例子,我們可以用錘子來釘釘子,也可以用扳手來擰螺絲。然而,如果我們想用扳手來釘釘子(tool use generalize to tool use),直接訓練一個基於RGB的策略往往是無法實現的,我們可以透過策略組合(policy composition)的方式,實現這種組合泛化的能力。
4. 怎麼理解Policy Composition?
Policy Composition就是每個領域的策略都是在各自的領域中獨立訓練的,然後將這些訓練出來的策略進行組合。策略的組合(policy composition)其實並不常見,基本上很少有人做這種工作。我們之所以能夠進行這種組合,是因為我們利用了擴散策略(diffusion policy)這個隱式模型的結構。
具體來說,擴散策略學習的是一個能量景觀(energy landscape),它隱式地表示了這個能量景觀。所以我們可以將兩個或多個能量景觀組合起來,而這在之前的研究中是比較少見的。另一種理解這種方法的方式是想象做梯度下降(gradient descent),由兩個不同的策略模型提供不同的梯度,然後在測試時將它們組合起來,這實際上是一個在測試階段進行的組合過程。
在傳統的機器人學中,比如軌跡最佳化領域,我們經常定義一些目標,比如我們可能會定義軌跡要儘可能平穩,也要避免碰撞等,這其實是兩個目標,在最佳化過程中,要為其提供梯度使其同時滿足這兩個目標或約束。策略組合相當於將這兩個目標替換為兩個策略,它可以非常靈活地選擇不同的策略,就像選擇多個元件一樣,然後將它們組合成一個模組,用來執行特定的任務。
如果是一個簡單的前饋策略,比如兩個MLP或兩個Transformer,一個預測左移,一個預測右移,簡單地平均,它們就往中間,可能會產生奇怪的效果。比如,如果我們需要避開中間的障礙物,有些目標是往左移動,有些是往右移動,簡單地平均它們反而可能會撞到中間的障礙物。但因為Diffusion Policy並不是簡單的平均,他是iterative和implicit的,因此在數學上這樣compose它是合理的,因此它可以真的支援一些組合的問題。
針對Diffusion Policy的這個特性,應該就是之前採訪遲宬博士提到Diffusion Policy可以很好的解決多模態分佈(multimodal distribution)。感興趣的朋友可以去之前的文章檢視(Diffusion Policy—基於擴散模型的機器人動作生成策略
Diffusion policy 是我們採用的一種策略類別,其基本假設是它需要是一種基於能量的模型,而Diffusion Policy算是一種基於能量的模型。在訓練時,Diffusion Policy就在預測一個降噪(denoise)的步驟,在測試時,它會持續預測,從一個隨機噪聲軌跡開始,一直不斷的降噪它,根據當前觀察到的情況,把它降噪成訓練階段設定的期望軌跡或可行動作。在這個持續降噪的過程中,如果我們有兩個不同的 diffusion policy,根據當下的觀測和噪聲軌跡,它們各自會生成一個預測,我們就可以把這兩個預測組合起來。
最理想的情況是,它為我們提供了一個使用者介面,其中包含許多不同的模組。例如,你可以選擇使策略的軌跡更安全,或者使其行為更像模擬中的策略,或者讓它執行更多類似於錘擊的任務,你就選擇即可。在選擇完畢後,在測試時將這些模組組合在一起即可,但這些策略都可以是分開訓練的。
上面是針對不同領域訓練的策略組合,那針對不同模態的資料訓練的策略組合是類似的邏輯。不同模態下產生的不同策略,只要它們的動作空間是相同的,就可以被組合起來。因此,它們可以是同一個領域內,兩個不同模態的資料訓練出的兩個策略,也可以是兩個不同的領域,同樣的模態資料訓練出來的兩個策略。
還有一個沒有提到的是人類影片,在這裡,我們建立了一個數據管道,能夠追蹤人類影片中“手-工具-物體”的點雲,利用這些點雲可以訓練出一些策略。這也是一個非常可擴充套件的方法,用於收集人類資料。這樣訓練出來的策略可以與其他兩個領域的策略一起組合,從而提升效果。
在實驗中,比如說結合了模擬和真實環境比單獨使用模擬或者單獨使用真實環境效果更好。這裡面使用了模擬的時候是用到了3D點雲,而在真實環境中則是用到了攝像頭和觸覺,所以這種情況下加入了不同的模態。
5. 為何特別關注異構資料?
在策略組合方面,其實之前已經有很多工作涉及類似的想法,比如 classifier-free diffusion model,這些都與我們的工作有一定聯絡。我們相當於是從一個新的視角出發,特別是從資料的異質性角度來考慮這個問題,儘量使其更加通用,這正是我們這個工作的創新之處。
具體來說,有一個既定目標,怎麼用這個既定目標來偏置(bias)取樣過程。舉例來說,假設我們訓練一個擴散策略(diffusion policy),在一個迷宮場景中,如果目標設定在迷宮的右上角,那麼策略就會被引導向右上角移動,這可以看作是一種引導性取樣過程。
我們的方法可以類比為,有一個現實機器人的策略,和一個模擬環境的策略,透過設定獎勵策略,把獎勵策略真實機器人策略往模擬環境的策略拉一下,使其更像模擬訓出來的策略。反過來, 真實機器人策略也可以把模擬策略往真實機器人策略方向拉一點,使其更像真機策略。
我的 PhD 論文主要是關於異構性資料(Heterogeneous Data),其中包括了我之前的兩個工作 Fleet Learning(Robot Fleet Learning via Policy Merging)和DEC SSL(Does Decentralized Learning with non-IID Unlabeled Data Benefit from Self Supervision?)其實包括PoCo,它核心思路也是如何更加高效地處理和利用這種異構性資料。這是一個更廣泛、更基礎的問題,除了視覺和語言領域外,幾乎所有其他領域都面臨資料不足的問題,但卻希望能夠應用機器學習。因此,他們都會遇到異構性資料的問題。
如何高效地從這些資料中提取資訊?這個大問題在當前的研究中仍然未被充分探索。在整個學術界,很多研究者可能會專注於單個問題,比如一種機器人、一種任務、一個模擬環境或一個真實世界的任務,或者某種特定的演算法,比如模仿學習或強化學習。但其實,把這些各類要素整合在一起,進行綜合研究,我認為是非常有價值的。
現在大家都在關注大模型,如何訓練一個大模型來支援多樣化的任務,這其實是一個非常有意義的問題。比如到底是 30% 的模擬資料加 50% 的真實世界資料,還是 10% 的模擬資料加 70% 的真實世界資料,這些比例如何選擇,目前其實並沒有太多的理解,很多時候都是憑感覺進行調整。我認為,對異構性資料的研究會在未來全面支援大模型的訓練和應用,這對於整個領域的發展是非常重要的。
GPT4o是一個很好的例子。過去,大家通常是以語言為中心,中間的模型必定是語言模型,輸出也只能是語言。但現在顯然他們提前把資料都tokenize好了,然後進行了一些異構預訓練,這就是HPT裡的一個想法。這樣做的好處是,它能夠融會貫通。最近也有一些工作表明,這種表示不同的模態最終會收斂,因為它們都是從不同的視角看待世界。
6. PoCo只針對工具使用類的任務嗎?
它不僅僅針對工具使用類任務,可以針對各類機器人任務,只是我認為工具使用類任務在機器人操作中非常有趣,也應該是比較具有挑戰性的,因為它對泛化能力的要求非常高。所以我選擇將工具使用這類任務作為主要關注點之一,但這並不意味著PoCo僅能做這種任務。
工具更換與靈巧手使用工具有所不同,我覺得現在工業界裡比較流行的還是工具更換。如果你要換一個工具,可能就需要重新訓練那個策略,這就很麻煩了。最好的情況是有一個基礎的策略,然後每次更換工具時只需要進行適配。甚至在理想情況下,連適配都不需要。
我當時選擇操作任務時,覺得grasping和pushing這些任務已經有很多人做了,所以決定選擇一個新的任務,挑一些不同的技能。我認為工具使用其實幾乎涵蓋了所有的東西。我們在這裡寫的是用錘子和扳手,實際上,烹飪也是在使用工具。雖然工具使用聽起來包羅永珍,但我的想法是,這樣的技能是可以被學習的。就像人類一樣,如果我要用石頭砸東西,我其實知道怎麼做,這些基本的物體之間的互動是可以被學出來的。所以我選擇了這個任務,儘管我知道它可能定義模糊,還涉及到很多力學方面的東西,但我覺得這個任務非常有意思。這就是我的基本思路。我認為,不論是資料的異構性還是工具使用,我們增加了更多的任務,相當於增加了更多的工具和更多的embodiment,雖然更有挑戰,但可能具身大模型就是這樣才能訓練出來。
增加了這些資料異構性、工具和任務,把這些放在一起為什麼會有幫助?怎麼可能會work?怎麼可以加在一起訓練?但如果你看大語言模型,比如說加入程式碼資料,這些資料對模型的效能提升是非常顯著的。直覺上,一個正常人不會覺得程式碼資料能幫助學習英語或者中文。但實際上,我們給模型增加了更難的任務,這些任務配合一些好的目標,比如next token prediction,讓模型面臨挑戰,它必須去學會一些抽象的、有推理能力的技能和知識,來完成各種不同的任務。所以我認為這種思維方式是非常基礎的。
7. 為什麼加入觸覺資訊?
因為我們在使用工具時,特別重要的是能夠感知到當一個物體碰撞另一個物體時的具體力量,這時就需要觸覺感測器來獲取這些資訊。如果只有視覺,可能無法獲得這些資訊。另外一個重要的方面是確定工具在手中的位置和姿態。這在工具使用中非常關鍵,因此很多工具使用的研究都會使用觸覺資訊。PoCo這個工作裡我們用的觸覺感測器是GelSight Svelvt,Jialiang的一個觸覺感測器,(關於Gelsight相關觸覺感測器,我們在GelSight十五年——簡述視觸覺感測器發展史有詳細介紹)。
8. 其他關於PoCo的問題
Without Retraining怎麼理解?
不需要像ChatGPT那樣把資料放在一起訓練,我們可以分開訓練,卻能在多個領域中達到類似的效果。這其實是一個更具挑戰性的設定,因為這些資料都是分開來使用的,你需要確保如何有效地整合它們在一起。
PoCo哪裡可以改進
PoCo有一個問題就是在實踐中可能速度不夠快,因為需要在測試時執行多個策略。不過這個問題應該可以比較容易解決,只需要更多的計算資源就行了。分散式計算可以很好地解決這個主要問題。另外,在演算法上我們其實還有很多可以改進的地方。
9. 關於HPT
PoCo我們有一個follow-up的工作,叫做Heterogeneous Pre-trained Transformer(HPT,異構預訓練變換器)。HPT的想法比PoCo簡單很多,也更通用,就是把所有資料放到一起,把OpenX、模擬資料、以及人類影片資料等多達50多種不同的資料集彙總在一起訓練,這可能是最異構的資料集了。訓練的方法就是,我們對每個Embodiment進行了單獨的tokenize。你可以想象,針對不同模態的資料,我們把不同模態的資料進行tokenize,但在robotics裡有embodiment這個概念,如果有不同的觀測和不同的動作,都需要單獨對待。所以我們tokenize embodiment,然後將其對映到一箇中間的Transformer,然後再將其映射回到每個獨立的任務。因此,在這種情況下,我們開發了一種新的架構,並觀察了他的可擴充套件性,我們研究了透過增加資料或模型大小是否可以提升效能。
HPT效果
效果就是我們可以將其遷移到一個新的領域,而不必重新訓練中間的那個 transformer。假設每個模態都有了自己的tokenizer,我們只需要訓練一個非常小的網路,將其調整到新的機器人領域即可,效果還挺好的,這個工作最近會發布。
HPT我們既是加了更多的資料,也是在增加更多的挑戰,透過這些挑戰讓模型不得不去學習一些可以通用的東西。這可能類似於不同層次的資料金字塔(pyramids of data),有些資料比較容易獲取,有些則比較昂貴,但每個資料的質量都不一樣,因此需要一個好的方法將它們結合在一起
10. 關於Fleet Learning
叢集學習(Fleet Learning)是我們提出了一個新的想法,包括Russ Tedrake也非常感興趣,TRI也一直在說這個概念。這個想法一直在討論,尤其是隨著越來越多的機器人技術的發展和投資,會有成百上千的機器人出現。每個機器人遇到一些資料或場景時,如果其他機器人不知道如何處理,它們是不是也得先看到相同的資訊才能學習?因此,我們想要實現的目標是,比如有1000個機器人,一個機器人學到了某些資訊或遇到了某些場景,其他所有機器人都應該能夠立即學習到這些資訊。因此,我們在這裡研究的這個想法叫做“Fleet Learning”。
它的一個例子是自動駕駛。實際上,每輛車都可以生成大量的資料,每天都會產生大量資料,而目前最基本的做法是將這些資料經過複雜的資料處理流程。Fleet Leanring實際上是在研究叢集學習的問題,每個機器人在執行不同任務時,就像我們之前提到的不同的模態一樣,因為它們是被設計成這樣,它們執行不同的任務,所以它們是非常異構的。那麼我們如何高效地處理這種異構性?或者如何在這種異構性中高效地學習資料和表示?這就是叢集學習的理念。
所以,我可以總結一下這四個工作:HPT、Fleet Learning、DEC SSL和PoCo。HPT相當於是將這些異構的資料放在一起,然後對這些資料進行tokenize,訓練一個大模型。Fleet Learning在訓練時將它們的權重進行平均,將神經網路的權重組合起來,這樣更加高效,可能權重只有幾MB,而不是每天上傳幾TB的資料。這些大量的資料比如說在一個月內完成訓練,然後在完成後對幾MB的資料進行平均。然後,對於DEC SSL,假設這些資料甚至都沒有標籤,是未標記的,那我能不能先做自監督學習,先學習到一種表示,然後再平均,再組合。最後是PoCo,如果這些策略都訓練完畢,我們能不能在它們的動作空間進行一些組合。所以實際上,這些工作是從不同的角度去解決這個問題。
一些想法
因為最近幾天睡前陪讀《恐龍王國》,我第一次瞭解曾經和人類共同生存在同一個星球上的物種的點滴。從最早出現在2億多年前的三疊紀晚期到6600萬年前因未知災難的滅絕,恐龍在地球上生活了1.6億年。從身長長達30米的樑龍,小到幾十釐米的美頜龍,進化了1億多年的恐龍生存能力比人類強太多,但如今它們也只能以地下的化石來證明他們曾經存在過。反觀人類文明,更進步一步到中華五千年文明,與以千萬年為單位計量的恐龍時代相比,真的是微不足道,人類文明下2024年的我們更是滄海一粟。每個當下的無災無難、平安健康都是值得被珍惜和慶幸的瞬間。恐龍帝國的消亡也許意味著人類文明的終點逃不過一些宿命,我也突然有些理解Elon Musk常說的火星殖民和人類文明的延續之間的關係。如果某一個輪迴我站在了人類文明的終點,我會非常感謝今天的人們在腦機介面、星際飛船、通用機器人、新能源、人工智慧這些領域做出的不懈努力。人類文明過於絢爛和精彩,穿越世代後,它不可以僅僅以化石的形式被埋藏在地下,它必須以某種形式延續下去!
Robot Data第一季最後一篇論文訪談結束了,真心感謝接受邀請的學者和對這個系列持續關注的朋友們。我們也用下圖總結概括全部9期訪談所描繪的機器人資料金字塔。通用機器人是人類關於生產力變革的終極目標,也是各種前沿技術在應用上的終極挑戰,這個“終極”的到來不一定如人們預期的那麼快,但它一定會到來!在這個也許漫長的未來,希望我的這些筆記可以在某一瞬間讓仰望著同一片星空、但在不同領域腳踏實地做事的創業者、學者、從業者有一點點啟發。

Robot Data Season 1 EP01-EP09

References:
PoCo
https://liruiw.github.io/policycomp/
Gensim
https://gen-sim.github.io/
Fleet Learning
https://arxiv.org/abs/2310.01362
DEC SSL
https://arxiv.org/abs/2210.10947
原創不易,歡迎“點贊”“打賞”“在看”三連
也歡迎我微信交流


相關文章