Motphys/UniLab
UniLab: A Heterogeneous Architecture for Robot RL Beyond GPU-Dominant Paradigms
解決的問題
UniLab 解決了機器人強化學習(RL)任務被鎖定在特定物理模擬器或硬體上的難題。它提供了一個統一的架構,將任務定義(獎勵、觀測、動作)與底層模擬後端和 RL 學習器解耦,使研究人員能在不重寫環境程式碼的情況下,無縫切換不同的模擬器和硬體加速器。
工作原理
UniLab 使用「面向任務的契約」來分離任務的語義與執行。
- 宣告式設定:任務透過 Hydra 和 YAML 檔案定義。使用者無需為每個環境撰寫 Python 類別,而是透過組合「管理器項」(預定義的獎勵、觀測等函數)來建構任務。
- 後端適配器:採用
SimBackend契約,透過標準化 API 與多種物理引擎(如 MuJoCo、Motrix、Genesis 和 IsaacGym)互動。 - 統一 CLI:單一命令列介面處理訓練與評估,模擬器透過旗標指定(例如
--sim mujoco),無論後端為何,工作流程皆保持一致。 - 硬體無關性:系統支援廣泛的硬體,包括 CPU 並行模擬、CUDA、ROCm(AMD)和 MPS(macOS)。
適用對象
需要在多個模擬器上測試其代理、在不同硬體平台部署,或快速原型化機器人任務而無需撰寫大量樣板程式碼的機器人 RL 研究人員與開發者。
主要亮點
- 後端彈性:支援多種模擬器,包括 MuJoCo、Motrix、MJWarp、Drake、Genesis、IsaacGym 和 IsaacSim。
- 設定驅動設計:透過編輯 YAML 檔案而非撰寫新的 Python 環境類別,即可建立任務變體。
- 廣泛硬體支援:相容 NVIDIA GPU(CUDA)、AMD GPU(ROCm)、Intel GPU(XPU)和 Apple Silicon(MPS)。
- 整合生態系:與
unisim-core(用於物理適配器)和unilab-rl(用於 RL 算法與執行器)協同運作。
相關
- 專案
- 專案
- 專案
- 專案