語言、機器人破壁,MIT等用GPT-4自動生成模擬任務,并遷移到真實世界
在機器人領域,實現通用機器人策略需要大量數據,而在真實世界收集這些數據又耗時費力。盡管模擬為生成場景級和實例級的不同體量的數據提供了一種經濟的解決方案,但由于需要大量的人力(尤其是對復雜任務),在模擬環境中增加任務多樣性仍面臨挑戰。這就導致典型的人工模擬基準通常僅能包含數十到數百個任務。
如何解決呢?近年來,大語言模型在自然語言處理及各類任務的代碼生成方面不斷取得重大進展。同樣,LLM 已經應用于機器人的多個方面,包括用戶界面、任務和運動規劃、機器人日志總結、成本和獎勵設計,揭示了在物理基礎和代碼生成任務上的強大能力。
在近日的一項研究中,來自 MIT CSAIL、上海交通大學等機構的研究者進一步探究 LLM 是否可以用來創建多樣化的模擬任務,并進一步挖掘它們的能力。
具體來講,研究者提出了一種基于 LLM 的框架 GenSim,它為設計和驗證任務資產安排、任務進展提供了一種自動化機制。更重要的是,生成的任務表現出了極大的多樣性,促進了機器人策略的任務級泛化。此外從概念上講,利用 GenSim,LLM 的推理和編碼能力通過中間合成的模擬數據被提煉成了語言 - 視覺 - 行動策略。
論文地址:https://arxiv.org/pdf/2310.01361.pdf
GenSim 框架由以下三部分組成:
- 首先是通過自然語言指令提出新任務以及相應代碼實現的提示機制;
- 其次是緩存以前生成的高質量指令代碼以用于驗證和語言模型微調的任務庫,并作為綜合任務數據集返回;
- 最后是利用生成的數據來增強任務級泛化能力的語言調整多任務策略訓練流程。
同時該框架通過兩種不同的模式運行。其中在目標導向設置中,用戶有特定的任務或者希望設計一個任務課程。這時 GenSim 采取自上而下的方法,以預期任務作為輸入,迭代地生成相關任務以實現預期目標。而在探索性環境中,如果缺少目標任務的先驗知識,則 GenSim 逐漸探索現有任務以外的內容,并建立與任務無關的基礎策略。
在下圖 1 中,研究者初始化了包含 10 個人工策劃任務的任務庫,使用 GenSim 對它進行擴展并生成 100 多個任務。
研究者還提出了幾個定制化的指標來漸進地衡量生成模擬任務的質量,并在目標導向和探索性設置中評估了幾種 LLM。其中對于 GPT-4 生成的任務庫,他們對 GPT-3.5 和 Code-Llama 等 LLM 進行有監督微調,進一步提升了 LLM 的任務生成性能。同時通過策略訓練定量地衡量任務的可實現性,并提供不同屬性的任務統計數據和不同模型之間的代碼比較。
不僅如此,研究者還訓練了多任務機器人策略,與僅僅在人工策劃任務上訓練的模型相比,這些策略在所有生成任務上都能很好地泛化,并提高了零樣本泛化性能。其中與 GPT-4 生成任務的聯合訓練可以將泛化性能提升 50%,并在模擬中將大約 40% 的零樣本任務遷移到新任務中。
最后,研究者還考慮了模擬到真實的遷移,表明在不同模擬任務上的預訓練可以將真實世界的泛化能力提升 25%。
總之,在不同 LLM 生成的任務上訓練的策略實現了對新任務的更好任務級泛化能力,彰顯了通過 LLM 擴展模擬任務來訓練基礎策略的潛力。
Tenstorrent AI 產品管理總監 Shubham Saboo 給予了這項研究很高的評價,他表示,這是 GPT-4 結合機器人的突破性研究,通過 GPT-4 等 LLM 來生成 autopilot 上的一系列模擬機器人任務,使機器人的零樣本學習和真實世界適應成為了現實。
方法介紹
如下圖 2 所示,GenSim 框架通過程序合成生成模擬環境、任務和演示。GenSim pipeline 從任務創建器開始,prompt 鏈以兩種模式運行,即目標導向模式和探索模式,具體取決于目標任務。GenSim 中的任務庫是一個內存組件,用于存儲之前生成的高質量任務,任務庫中存儲的任務可用于多任務策略訓練或微調 LLM。
任務創建器
如下圖 3 所示,語言鏈會首先生成任務描述,然后再生成相關的實現。任務描述包括任務名稱、資源和任務摘要。該研究在 pipeline 中采用少樣本 prompt 來生成代碼。
任務庫
GenSim 框架中的任務庫會存儲任務創建器生成的任務,以生成更好的新任務和訓練多任務策略。任務庫是根據人工創建的基準中的任務進行初始化的。
任務庫為任務創建器為描述生成階段提供了作為條件的先前的任務描述,為代碼生成階段提供了先前的代碼,并 prompt 任務創建器從任務庫中選擇參考任務作為編寫新任務的樣例。完成任務實現并通過所有測試后,LLM 會被 prompt,以「反思(reflect)」新任務和任務庫,并形成是否應將新生成的任務添加到庫中的綜合決策。
如下圖 4 所示,該研究還觀察到 GenSim 表現出有趣的任務級組合和外推行為:
LLM 監督的多任務策略
生成任務后,該研究使用這些任務實現來生成演示數據并訓練操作策略,并使用與 Shridhar et al. (2022) 類似的雙流傳輸網絡架構。
如下圖 5 所示,該研究將程序視為任務和相關演示數據的有效表征(圖 5),就可以定義任務之間的嵌入空間,其距離指標對于來自感知的各種因素(例如對象姿態和形狀)更加穩健。
實驗及結果
該研究通過實驗來驗證 GenSim 框架,針對以下具體問題:(1)LLM 設計和實現模擬任務的效果如何?GenSim 可以改進 LLM 在任務生成方面的表現嗎?(2) 對 LLM 生成的任務進行訓練是否可以提高策略泛化能力?如果給出更多的生成任務,策略訓練是否會受益更多?(3) 針對 LLM 生成的模擬任務進行預訓練是否有利于現實世界的機器人策略部署?
評估 LLM 機器人模擬任務的泛化能力
如下圖 6 所示,對于探索模式和目標導向模式任務生成,少樣本和任務庫的兩階段 prompt 鏈可以有效提高代碼生成的成功率。
任務級泛化
對相關任務的少樣本策略優化。從下圖 7 左可以觀察到,聯合訓練 LLM 生成的任務可以將原始 CLIPort 任務上的策略性能提升 50% 以上,尤其是在低數據情況(如 5 個 demo)下。
對未見過任務的零樣本策略泛化。從圖 7 中可以看到,通過對 LLM 生成的更多任務進行預訓練,研究者的模型可以更好地泛化到原始 Ravens 基準中的任務。圖 7 右中,研究者還對人工編寫任務、閉源 LLM 和開源微調 LLM 等不同任務源上的 5 個任務進行了預訓練,并觀察到了類似的零樣本任務級泛化。
使預訓練模型適應真實世界
研究者將模擬環境中訓練的策略遷移到了真實環境中。結果如下表 1 所示,在 70 個 GPT-4 生成的任務上進行預訓練的模型在 9 個任務上進行了 10 次實驗,取得 68.8% 的平均成功率,與僅在 CLIPort 任務上進行預訓練的基線模型相比提升了 25% 以上,與僅在 50 個任務上預訓練的模型相比提升了 15%。
研究者還觀察到,對不同模擬任務的預訓練提高了長期復雜任務的穩健性。比如說,GPT-4 預訓練的模型在真實世界的 build-wheel 任務上表現出了更加穩健的性能。
消融實驗
模擬訓練成功率。在下表 2 中,研究者在擁有 200 個 demo 的生成任務子集上,演示了單任務和多任務策略訓練的成功率。對于 GPT-4 生成任務的策略訓練,它的平均任務成功率為單任務 75.8%,多任務 74.1%。
生成任務統計。下圖 9 (a) 中,研究者展示了 LLM 生成的 120 個任務的不同特征的任務統計。其中 LLM 模型生成的顏色、資產、動作和實例數量之間存在著有趣的平衡。例如,生成的代碼包含了很多超過 7 個對象實例的場景,以及很多拾起 - 放置原始動作和塊等資產。
代碼生成比較。下圖 9 (b) 中,研究者定性地評估了 GPT-4 和 Code Llama 的自上而下實驗中的失敗案例。
更多技術細節請參閱原論文。