CMU 周銜:物理引擎 Genesis 的源啟與未來丨具身先鋒十人談
仿真和真機需並行發展,但要先解決遺留問題更多的仿真。
作者丨賴文昕
編輯丨陳彩嫻
不久前,我們發佈《CMU 具身智能風雲榜:從傳統到全面》一文,介紹了來自 CMU 的一眾具身智能華人人才。
就在上個月,CMU 聯合18個研究機構開源發佈了一個生成式物理引擎——Genesis,引起了具身智能領域的廣泛討論與關注,在國內與海外呈現出霸榜的熱度。Genesis 的核心團隊為 12 位青年華人學者,其項目領導者為 CMU 機器人研究所剛畢業的博士生周銜。
憑藉從底層開始重新設計和構建的通用物理引擎,Genesis 將各種物理求解器及其耦合集成到一個統一的框架中,通過在更高層次上運行的生成式智能體框架得到進一步增強,旨在為機器人技術及其他領域實現全自動數據生成。
據項目頁面介紹,與先前的模擬平台相比,Genesis 具備多個關鍵特點:
-
原生 Python,包括前端界面和後端物理引擎,全部用 Python 語法開發。底層由嵌套在 Python 內的 GPU 加速的 DSL taichi支持。
-
輕鬆安裝,API 設計極其簡單且用戶友好。
-
並行模擬,速度空前:Genesis 是世界上最快的物理引擎,其模擬速度比現有的 GPU 加速機器人模擬器(Isaac Gym/Sim/Lab、Mujoco MJX 等)快一個多數量級,且並沒有在模擬精度和保真度上為了優化速度做妥協。
-
一個支持各種最先進物理求解器的統一框架,可對大量材料和物理現象進行建模。
-
具有優化性能的逼真光線追蹤渲染。
-
可微性:Genesis 旨在與可微模擬完全兼容。目前,我們的物質點法(MPM)求解器和工具求解器是可微的,其他求解器的可微性也將很快添加(從剛體模擬開始)。
-
物理精確且可微的觸覺傳感器。
-
原生支持生成式模擬,允許通過語言提示生成各種模態的數據:交互式場景、任務提議、獎勵、資產、角色動作、策略、軌跡、相機運動、(物理精確的)影片等等(這個框架會內部的各模塊會慢慢放出)。
項目頁面:https://genesis-embodied-ai.github.io/
從速度來看,Genesis 在單台 RTX4090 設備上的數據量可以達到實時的 430000 倍,26 秒就能訓練出可遷移至現實世界的機器人運動策略;從效果來看, Genesis 能生成 4D 物理世界,如機器人操作和運動策略、開放世界鉸接式物體、角色運動、3D 和完全交互式場景等等。
不過,在 Genesis 紛紛被認可其實現大模型「創世紀」的可能性之際,也有一些質疑的聲音對其精確度和速度表示懷疑。本週三,Genesis 團隊更新了一份詳細技術報告,測評了各種場景下和主流並行仿真器的速度對比,並且開源了所有測試代碼。
主導項目的周銜本科就讀於新加坡南洋理工大學的機械工程系,以最高榮譽畢業後在 2017 年來到 CMU 讀博,成為導師 Katerina Fragkiadaki 組里首位研究機器人學習(Robot Learning)的PhD。
2022 年 5 月,周銜在師姐的牽線下來到 MIT-IBM Watson AI Lab 實習,與淦創展開合作。也是從這時起,周銜的研究重點確認為建立統一的神經策略和數據引擎。
從「天馬行空」地嘗試複雜的流體操作任務開始,周銜逐漸與更多誌同道合的華人學者相識,就此開啟了 Genesis 的故事。
對於 Genesis 正在面臨的討論,周銜十分自信且坦誠,「我們肯定會長期維護,要把它做成一個具身智能和物理AI最好用的仿真和數據平台,同時通過借助開源社區的力量把這個底層的平台維護好。」
以下是 AI 科技評論與周銜的對話。
1
從仿真器到數據引擎
AI科技評論:22年你到 MIT-IBM Watson AI Lab 實習,Genesis 的 idea 是怎麼誕生的?
周銜:以前機器人做偏向於剛體的操作任務,22 年到 MIT 時我想做與流體相關的複雜操作任務,如咖啡拉花、與煙霧交互。但這些任務在現實中採集數據困難,因機器人置於水中易損壞,環境也雜亂,用強化學習或優化軌跡時,有水等液體的環境重置不易,所以自然就想到從仿真環境入手。
這也是我首次接觸仿真。此前仿真器多是計算機圖形學的學者在研究,當時想用仿真器,卻發現沒有特別合適的,像英偉達的 Flex 及基於它的 SoftGym,雖有基本的水和衣服模擬,但無法實現不同性質流體的交互,存在諸多問題。此外,我們希望仿真器可用,能借助其梯度信息搜尋策略。
正巧淦創老師組里之前有相關工作,還與發表「太極」編譯器的胡淵鳴合作過,於是我們設計了許多與各類流體交互的任務,自己寫了一個流體仿真的環境和測評基準「FluidLab」。
當時我結識了桑治舒然老師的學生許臻佳和在 MIT 的王尊玄(Johnson),然後我們大家一起合作做了幾個在不同領域但底層框架類似的項目,比如 Johnson 做軟體機器人模擬,許振佳做切水果、切牛排等任務,然後我們分別為這些項目實現了底層的物理仿真,不過當時更多聚焦於軟體、流體以及軟體機器人本身,且都是項目特定的,無法讓研究社區的使用者很容易的就安裝體驗。
我們覺得一個統一的物理仿真平台會對整個機器人領域有幫助,23 年初便決定將這些成果整合起來,打造一個對有軟體仿真需求的人而言好用、易配置環境並訓練策略的框架——這就是 Genesis 的前身,我們致力於打造一個大一統的仿真平台,重點在軟體方面。後來我們覺得剛體很重要,但當時這個超出了我們的知識範圍,於是就又找了馬里蘭大學的 PhD 祖懌淩,他做過一系列可微仿真的工作,加入後負責幫助我們實現整套剛體的仿真框架。
AI科技評論:那 Genesis 是如何從一個仿真器演進為數據引擎的?
周銜:起初,我們本只想做一個仿真器。但到了 2022 年末,ChatGPT 問世且效果出色。
在此之前,即便我們能做出比英偉達 Omniverse 更好的仿真環境,在仿真環境里收集數據仍需耗費大量人力。
具體來說,在現實中收集機器人的視覺校準數據,即給定任務描述後,機器人依據所見規劃電機動作與周圍環境交互來完成任務,一般採用人力採集的範式,不管是用 VR、AR 設備還是其他操控裝置,本質上數據量與人力呈線性關係,要採集上百億條數據極為困難。
在仿真環境中也不輕鬆,雖像人狗跑跳的演示是用強化學習在仿真中訓練出來的,但在訓練策略前,確定機器人學習的任務、學習環境、環境佈置、物體交互方式以及獎勵函數等環節都依賴人力。所以即便有了仿真環境,若要真正實現數據收集的規模化擴展,依舊艱難。
GPT 出現後,推理能力質的飛躍使其足以擔當推理引擎。在機器人領域,很多人試圖直接讓 GPT 輸出動作指令,但我們意識到此路不通。儘管 GPT 有推理能力和常識,可它缺乏對物理動力學、動作等模態信息的理解。比如讓它關筆記本,它雖知道語言層面的操作步驟,卻不懂實際手部動作的反饋、力度控制等物理細節。
經過反復討論,我們在23年上半年有了新的思路:利用 GPT 等語言或視覺模型的正確方式,是提取其擅長的部分,比如確定機器人有意義的任務(如拿外賣、擦桌子等),以及每個任務適合的訓練環境(如拿外賣對應客廳的佈局、物體設置等),還有任務完成與否的判定標準,通過編寫代碼的方式生成獎勵函數。
半年後,Google的「Language to Rewards for Robotic Skill Synthesis」和英偉達的「Eureka」接連發佈,其思路與我們一致,即借助在代碼里設置獎勵函數的手段,構建起大語言模型在語言範疇對世界的認知以及在物理領域同世界的交互聯繫,待語義層面的靜態信息完整生成後,就可以把它們交給強化學習,使其在物理引擎中對策略展開訓練。
AI科技評論:團隊很快就確認 Genesis 是一條行得通的路。
周銜:沒錯,想通這個 pipeline 那晚的我們特別激動,因為突然意識到可以打通整個流程,從提出任務到獲取解決任務的行動數據,理論上完全無需人力,能靠算力自動化生成機器人數據。這也是從大語言和視覺模型中提取其掌握範圍內的信息,再通過物理仿真讓機器人試錯、迭代,最終掌握演示方法。
23 年初到年中,我們試驗中發現這個全新框架雖各環節尚不成熟,但切實可行,從現有技術到最終實現,每個環節都有清晰的提升路徑,不存在有一個環節在技術上還存在巨大鴻溝的情況,只需將各環節從四五十分提升到七八十分,就能打通流程獲取數據。從數據驅動來看,若要使機器人策略模型達到 GPT、Sora 的水平,也需要海量數據,那麼這條路便是更具擴展性的方法。
2
Genesis 的核心:易、快、準、開
AI科技評論:Genesis 最大的亮點是什麼?它和其他仿真引擎相比,有何異同?
周銜:我認為有三大亮點,分別是易用性、速度與功能。
易用性方面,雖不和技術強相關,但是我個人最喜歡的部分。儘管還有很多滿足各種需求的 API 還沒有完全暴露給用戶,但已完成的部分 API 設計簡潔,學習和理解成本非常低,我還精心設計了整套可視化方式,從機器人狀態呈現到顏色、縮進、emoji 運用等都花費很多沒有意義但是我很enjoy的時間,希望可以優化特別是剛進入具身智能和機器人領域研究者的用戶體驗。
速度上,英偉達用 GPU 加速讓仿真的速度大幅提高,而我們在此基礎上又將速度提升一個數量級。不過,目前我們還需研究如何更好利用此速度優勢,開發新的強化學習訓練方案。
功能上,多數成熟仿真環境只能做剛體仿真,像 Omniverse 對軟體和流體的仿真物理不準。我們在統一框架里集成各類物理求解器,如 MPM 等,支持多種物理性質物體求解,也實現了不同求解器間交互,雖處於早期但會持續迭代,且前端用戶界面好用,後端用太極和 Python,語法透明,便於開發者貢獻和維護。
AI科技評論:感覺你對開源很有熱情。
周銜:這和我一個強烈的個人動機相關。以往仿真環境多由計算機圖形學領域的人開發,該領域人才厲害但壁壘高,也很少開源工作,雖現在逐漸開源但祖傳C++ 代碼依舊難懂,其成果應用也比較難。
在機器人和具身智能領域,對仿真能力有依賴,但以往計算機圖形學研究者不懂機器人研究需求,機器人研究者不懂仿真物理原理,並且雙方都受英偉達閉源的 CUDA 生態製約。比如在仿真環境中製定策略部署到真機上,發現差異想回仿真環境調參卻因不瞭解原理而無法操作,導致兩個領域雖相互依賴卻存在巨大割裂。
所以我認為當下亟需讓計算機圖形學領域的優秀人才和算法重煥光彩,讓其為機器人領域所用。具身智能領域能夠充分發揮計算機圖形學從渲染到仿真的技術和人才價值。因此,我有很強的動力去打造一個完全透明、底層全開源、易於訪問、理解和貢獻的平台,無論是機器人領域人才還是其他相關人員都能輕鬆參與,這便是我願意為此事投入大量時間的原因。
AI科技評論:可微分性的實現難度大、也容易和優化策略產生衝突,現有的大多數物理引擎都不支持,為什麼 Genisis 會採取這個路徑呢?
周銜:這裏其實有個誤區,大家以為我們的目標是做可微仿真,實則不然,這隻是我們提供的一個會幫助這個領域發展的重要feature。
最初在做流體等精細操作任務時,我們意識到,單純依靠純強化學習通過大量采樣軌跡來尋找最優路徑,而若有梯度信息,就能引導策略朝著正確方向發展,這在當時極大地加速了訓練過程。不過,利用可微仿真和梯度信息來加速強化學習的策略搜索,在學界至今仍處於研究階段,尚未達成共識。
目前的框架不成熟也不好用,屬於小眾探索領域。此前的工具如 Google 的物理模擬引擎 Brax,學習曲線很高,功能也不完善物,而之前我們做的 FluidLab 這些工作,因為和底層的 taichi 綁定比較深,對於外部用戶來說想要獲取梯度也存在困難。
所以,為了加速這一領域的研究,我們認為有必要打造一個如同 Pytorch 般好用的工具,方便獲取梯度並與策略網絡連接。這並非我們主要的優化方向,而是我們額外提供的工具和功能,旨在推動可微仿真研究的加速發展,以便讓我們瞭解其對學習策略的提升作用。
3
「為愛發電」
AI科技評論:Genesis 曆時兩年,你覺得其中最大的困難是什麼?又是如何克服的呢?
周銜:Genesis 如此龐大的系統,涉及諸多方面的開發,而個人的專業知識無法覆蓋全面。一方面,我們要尋覓各領域的專業人士,比如做生成式模塊時,得拓展人脈,拉更多合作者加入。就像我自己,兩年前對仿真一竅不通,也是在這個過程中學習的。
我深感推進這樣的大項目在學界極為困難,因為我們採用的是自下而上的合作方式。淦創老師雖為項目顧問,卻並非傳統意義上的導師,大家是平等的合作者,他幫忙聯繫一些人參與進來。
一般的學術合作,導師手握經費,學生為其工作,但這個項目由我來主導推進統籌規劃,但卻無法給予任何人經費上的激勵,全靠大家「為愛發電」。這就導致合作形式鬆散,每個人都有各自的學業得完成,時常忙得不可開交。
我其實有點完美主義,常常想花很多的功夫想把事情打磨到極致,然而在這種模式下,當其他合作者不認同我提出的需求時,因為我們這種自下而上的合作方式,我很難以像PhD老闆那樣要求他們。比如另一位核心貢獻者、馬里蘭大學博士祖懌淩負責剛體仿真框架的實現,最初的版本因為我們想統一各種材料的表示和全局的碰撞檢測和求解,速度很慢,當時我希望可以在速度上至少可以達到 Isaac 和 MJX 的水平,但當時的團隊認為可能很難實現。
於是我當時唯一的選擇是自己把整套框架拿過來逐行拆解優化,嘗試對每個 GPU Kernel 內的數據結構和循環層級進行優化。當時我連睡覺都想著如何給它提速,經過多輪不懈努力後,最終我們成功實現比 Issac Gym 快了很多。類似情況還有很多,當合作者缺乏達成目標的動力時,我有時需要自己接手重新優化和設計,並證明一個更好的狀態是可行的。我們之間的信任就是在這樣的過程中建立起來。
無論如何,我們還是堅持下來並完成了項目。若有一個高效的七八人工程師團隊,或許七八個月就能完成,而我們作為缺乏工程經驗的博士生,很多東西都是邊摸索邊做,把自己當工程師使,在探索中學習如何設計、搭建和整合各個模塊。
AI科技評論:自學成為工程師是一種什麼體驗?
周銜:我覺得最有趣的是,過去大家常用的仿真環境代碼極為複雜,作為初學者,會被其複雜程度嚇到,還會揣測其背後是否真有不得不如此複雜的緣由,只是自己尚未理解。
但我個人傾向於精心打磨用戶體驗,期望每個功能都能通過一行代碼調用,簡單易用。而隨著自己的鑽研,我意識到大多代碼能大幅簡化。如今我簡化後的成果,收到很多用戶反饋,都說非常好用,對新手很友好。
這讓我有了另一個感悟:很多時候,我們以為一些事情複雜背後定有隱情,但當自己親自上手去做,就會發現完全可以將其做得更好。
AI科技評論:當時你有想過 Genesis 會耗時這麼久嗎?
周銜:2023年初我開始做 Genesis 時以為大半年就能寫完,到2023年底時,感覺已經寫得差不多了。但後來發現距離成熟框架還差很遠,於是不斷迭代、修改。
要是最初有人跟我說這得做兩年,我可能都不會開始。我們有幾套成熟軟件框架,能直接在上面改,但大家都在抱怨現在的物理引擎難用,卻沒人去解決這個問題,我們就想著自己來試試。
從23年一月開始,最初我們只是想寫個仿真框架,到了三月有了新想法,可以真正實現自動化,不僅有底層物理引擎,還能通過它自動生成數據,是能原生生成數據的引擎。這意味著這個工作上升到了一個新維度,特別令人興奮,所以我們就一直做下去了。
4
回應質疑
AI科技評論:Genesis發佈之後熱度頗高,在收穫讚揚的同時也有些對測試速度、精確度等方面的challenge,你怎麼看待這些質疑的聲音?
周銜:網傳的一份質疑我們速度的報告賺足了很多眼球,一開始我們擔心確實是我們的疏漏導致早期的測試結果與實際不符,所以最初的兩天壓力非常大,於是這幾天一直在做各種測試,測試的結果是 Genesis 確實在速度上有很大的優勢。
那份質疑里有很多存在的問題,有些我們覺得不是作者的主觀意圖,比如沒有用相同的機器人模型,同時因為我們內部一個碰撞檢測的環節對於方塊的支撐函數實現中有個bug,導致那份測試報告的某個場景在打開自碰撞之後掉速嚴重,這個我們已經修復了。其他地方我們發現有很多是事實性的錯誤和有誤導性的設置,比如因為不知名原因改掉了官方使用的求解器選擇,對於一些基本概念的錯誤理解等等,這些我們在和作者的溝通過程中對面也承認了,並且承諾會更改這些錯誤。
另外有關對 Genesis 精確度方面的質疑,認為我們的物理引擎不如 PhysX,需要更多計算資源才能達到其精確度,但事實卻相反。學界公認 Mujoco 的物理引擎和英偉達的 PhysX 相比是更加符合解析解的 formulation,後者是比較接近 PBD(基於位置的動力學)的相對簡化的物理模型。我們構造約束系統時遵循了 Mujoco 的約束,然後額外實現了 GPU 加速的碰撞檢測,在控制變量的情況下行為能和 Mujoco 完全保持一致的,像方塊掉落旋轉再回轉,行為和時間點都能精準匹配。
另外可能需要注意的是,抓取的穩定性有時候和物理的準確性並不完全對應,因為在現實世界中很多時候的抓取也會存在不穩定性,我們現在的這個模塊可以完全匹配Mujoco的求解結果。而我們下一個大版本的更新會支持 GPU 加速的 ABD(Affine Body Dynamics,仿射體動力學)和 IPC(Incremental Potential Contact,增量式潛在接觸),可以更加精確的建模現實世界的接觸模型,這也是其他主流剛體仿真器不支持的。
AI科技評論:目前的機器人操作領域,大家的共識集中在真機而非仿真,為什麼你會選擇非共識?你怎麼看待仿真與真機數據呢?
周銜:我並非認為只有仿真才能行得通而真機不行,我們更多的是覺得,所有有價值的路線都值得探索,而且需要推動到極致。
仿真陷入瓶頸,一方面是生態不透明,無法在其基礎上迭代和貢獻;另一方面,當下眾多優秀模型如 GPT 等的發展,離不開算力提升。
但完全依賴真機採集數據無法利用這一點,難以指數級擴展數據規模,人力成本又高。而仿真有很大優勢,雖真機在縮小與真實世界的差距以及處理複雜物理現象上有優勢,但仿真能提供大量數據,讓機器人建立與物理世界交互的基本認知,即便不精準,也可通過真機的精準數據提升其局限性。
我認為兩者應結合,仿真佔比絕大多數,因為其可通過算力無限擴展,雖質量有欠缺,但能提供廣泛數據。
真機存在的問題是,如人形機器人通過強化學習行走等炫酷演示,只是數據驅動的結果,並非真機有本質科學突破,只是大家意識到數據重要性而暴力採集真機數據,這就像「吸鴉片」,一旦真機數據帶來的 demo 效果達到飽和,便難以為繼。
總之,我認為仿真和真機兩條路都要走,真機也有價值,做仿真不是認定只有它行,而是其存在很多遺留的問題需要解決,所以我們希望可以把這條路繼續向前推進。
AI科技評論:那接下來 Genesis 還會有更新嗎?後續會有更多對 manipulation 的支持嗎?
周銜:我們肯定會持續更新,目標是將其打造成對機器人最友好的平台,讓大家共同維護好這個開源社區。之後會組建一個成熟的工程師團隊長期運維,今年年初開始做整體的路線規劃及團隊搭建。
關於 manipulation 方面,之前有一些聲音稱 Genesis更支持移動(locomotion),操作精度有仿真精度的問題,但實際上並非如此,我們不存在不支持操作的情況。而對於機器人領域有意義的功能、特性以及需要修復的漏洞等,我們都會以高效方式及時添加和解決。我們做這個平台的初心就是可以有一個完全透明,所有人都可以貢獻,而且功能強大的框架,作為一個平台把計算機圖形學,物理仿真,渲染,以及具身智能的學者可以團結起來,一起來創造物理 AI。