
Isaac Gym由英偉達開發,通過直接將數據從物理緩存傳遞到PyTorch張量進行通信,可以端到端地在GPU上實現物理模擬和神經網絡策略訓練,無需CPU。Isaac Gym提供了一個高性能的學習平臺,使得各種智能體訓練能夠直接在GPU上進行。與使用CPU模擬器和GPU神經網絡的傳統RL訓練相比,Isaac Gym大幅度縮減了復雜機器任務在單個GPU上的訓練時間,使其訓練速度提高了1-2個數量級。圖1:Isaac Gym使不同機器人在復雜環境中進行各種高性能訓練。研究人員對8種不同的復雜環境進行了基準測試,并展示了模擬器在單個GPU上進行快速策略訓練的優勢。上面:Ant, Humanoid,Franka-cube-stack,Ingenuity。下面:Shadow Hand, ANYmal, Allegro, TriFinger.項目地址:https://sites.google.com/view/isaacgym-nvidia近年來,強化學習(RL)已經成為機器學習中最值得研究的領域之一,它在解決復雜決策問題方面擁有巨大的潛力。無論是圍棋、國際象棋等經典策略游戲,還是《星際爭霸》、《DOTA》等即時戰略游戲,深度強化學習(Deep RL)對于這種具有挑戰性的任務表現得都很突出,它在機器人環境中的表現也令人印象深刻,包括腿部運動和靈巧的操作等。模擬器可以提高學習過程中的安全性和迭代速度,在訓練機器人的過程中發揮著關鍵作用。在真實世界中訓練仿人機器人,比如讓它進行上下樓梯的訓練,可能會破壞其器械和周邊環境,甚至有可能傷害到操控它的研究人員。有一種方法可以排除在現實世界中訓練的安全隱患,那就是在模擬器內進行訓練。模擬器可以提供一個高效、可擴展的平臺,允許進行大量試錯實驗。目前,大多數研究人員還是結合CPU和GPU來運行強化學習系統,利用這兩個部分分別處理物理模擬和渲染過程的不同步驟。CPU用于模擬環境物理、計算獎勵和運行環境,而GPU則用于在訓練和推理過程中加速神經網絡模型,以及在必要時進行渲染。然而,在優化順序任務的CPU內核和提供大規模并行性的GPU之間來回轉換,需要在訓練中系統的不同部分的多個點之間傳輸數據,這種做法從本質上來說是非常低效的。因此,機器人深度強化學習的擴展面臨著兩個關鍵瓶頸:1)龐大的計算需求 2)模擬速度有限。機器人在進行高度自由的復雜學習行為時,這些問題尤為突出。物理引擎如MuJoCo、PyBullet、DART、Drake、V-Rep等都需要大型CPU集群來解決具有挑戰性的RL任務,這些無一不面臨著上述瓶頸。例如,在“Solving Rubik’s Cube with a Robot Hand”這項研究中,近30,000個CPU核心(920臺工人機器,每臺有32個核心)被用來訓練機器人使用RL解決魔方任務。在一個類似研究“Learning dexterous in-hand manipulation”中,使用了一個由384個系統組成的集群,包含6144個CPU核,加上8個NVIDIA V100 GPU,進行30個小時的訓練,RL才能收斂。用硬件加速器可以加快模擬和訓練。在計算機圖形學方面已經取得巨大成功的GPU自然也能適用于高度并行的模擬。“Gpu-accelerated robotic simulation for distributed reinforcement learning”研究中采取了這種方法,并顯示了在GPU上運行模擬的令人喜出望外的結果,這證明了有可能可以極大縮減訓練時間以及使用RL解決極具挑戰性的任務所需的計算資源。但是,此項工作中仍有一些瓶頸沒有解決——模擬是在GPU上進行的,但物理狀態會被復制回CPU。因此,觀察和獎勵是用優化的C++代碼計算的,接著再復制回GPU,在那里運行策略和價值網絡。此外,該項工作只訓練了簡單的基于物理學的場景,而不是具有代表性的機器人環境,也沒有嘗試實現sim2real(從模擬環境遷移到現實環境)。為了解決這些瓶頸問題,我們提出了Isaac Gym——一個端到端的高性能機器人模擬平臺。它可以運行一個端到端的GPU加速訓練管道,使研究人員能夠克服上述限制,在連續控制任務中實現100倍-1000倍的訓練速度。Isaac Gym利用NVIDIA PhysX提供了一個GPU加速的模擬后端,使其能夠以使用高度并行才能實現的速度來收集機器人RL所需的經驗數據。它提供了一個基于PyTorch張量的API來訪問GPU上的物理模擬結果。觀察張量可以作為策略網絡的輸入,產生的行動張量可以直接反饋給物理系統。我們注意到,其他研究人員最近已經開始嘗試使用與Isaac Gym類似的方法,在硬件加速器上運行端到端訓練。通過端到端方法,包括觀察、獎勵和動作緩存的整個學習過程可以直接在GPU上進行,無需從CPU上讀回數據。這種設置允數以萬計的模擬環境在一個GPU上同時進行,使研究人員能夠只使用一個小型GPU服務器就能解決以前無法完成的任務,輕松地在桌面級計算機上運行以前需要在整個數據中心才能進行的實驗。Isaac Gym為創建和填充機器人及物體的場景提供了一個簡單的API,支持從常見的URDF和MJCF文件格式加載數據。每個環境可根據需要被復制多次,并且同時保留了副本的可變性(例如通過Domain Randomization來合成新數據)。在不與其他環境互動的情況下,這些環境可以同時進行模擬。而且,研究人員用一個完全由GPU加速的模擬和訓練管道降低了研究的門檻,使其可以用一個GPU解決以前只能在大規模CPU集群上實現的任務。Isaac Gym還包括一個基本的近似策略優化(PPO)執行和一個簡單的RL任務系統,用戶可以根據需要替換其他任務系統或RL算法。雖然一些研究使用PyTorch,但用戶也應該能夠通過進一步的定制與TensorFlow訓練庫整合。圖2提供了該系統的概覽。圖2:Isaac Gym管道的圖示。Tensor API為Python代碼提供了一個接口,可以直接在GPU上啟動PhysX后端,獲取和設置模擬器狀態,從而使整個RL訓練管道的速度提高100-1000倍,同時提供高保真模擬和與現有機器人模型連接的能力。研究人員首先將模擬性能描述為環境數量的函數。當改變這個數字時,目的是通過按比例減少horizon length(即PPO的步驟數,計算獎勵前智能體的執行步驟數)來保持RL智能體觀察到的整體經驗不變,以便進行公平的比較。雖然我們在后面提供了許多環境的詳細訓練研究,但這里只描述了 Ant、Humanoid 和Shadow Hand 的模擬性能,因為它們足夠復雜,可以測試模擬的極限,也代表了復雜性的逐步增加。這三種環境都使用前饋網絡進行訓練。圖3:螞蟻實驗的獎勵和有效FPS與并行環境的數量有關。最佳訓練時間是在8192個環境和16個horizon length 的情況下實現的。研究人員首先用標準的螞蟻環境進行實驗,在這個環境中,訓練智能體在平地上運動。我們發現,隨著智能體數量的增加,訓練時間如預期的那樣減少了,也就是當把環境的數量從256個增加為8192個(增加了5個數量級)后,使得達到7000獎勵的訓練時間減少了一個數量級,訓練時間從1000秒(約16.6分鐘)減少到100秒(約1.6分鐘)。然而,請注意,螞蟻在單個GPU上僅用20秒就達到了3000獎勵的高性能運動。由于螞蟻是最簡單的模擬環境之一,如圖3(b)所示,每秒并行環境步驟的數量可高達700K。由于horizon length減少,當環境數量從8192增加到16384時,沒有觀察到收益。仿人環境有更多的自由度,需要智能體發現用兩只腳保持平衡并在地面上行走的步態。從圖4和圖5可以看出,與圖3中的螞蟻相比,訓練時間增加了一個數量級。
圖4:人形實驗的獎勵和有效FPS與并行環境的數量有關。最佳訓練時間是在4096個環境和32個horizon length 的情況下實現的。圖5:人形實驗的獎勵和有效FPS與平行環境的數量有關。在4096和8192個環境中實現了最佳訓練時間,horizon length 分別為64和32。研究人員在圖中4還注意到,隨著智能體數量的增加,從256個增加到4096個,達到最高獎勵7000的訓練時間從10^4秒(約2.7小時)減少到10^3秒(約17分鐘)的數量級。然而,獎勵為5000左右時,高性能運動出現了,訓練時間僅為4分鐘。在這種情況下,如果超過4096個環境,就不會有進一步的收益,實際上會導致訓練時間的增加和收斂于次優步態。研究人員將此歸因于環境的復雜性,這使得在如此小的horizon length 上學習行走具有挑戰性。可以通過對另一組環境和horizon length 的組合進行訓練來驗證這一點,與圖4相比,horizon length 增加了2倍。如圖5所示,即使在8192和16384環境中,人形機器人也能行走,這兩個環境的horizon length 分別為32和16,但足夠長,可以進行學習。另外值得注意的是,由于自由度的增加,每秒并行環境步驟的數量從螞蟻的700K減少到人形的200K,如圖4和5所示。圖6:Shadow Hand實驗的獎勵和有效FPS與并行環境的數量有關。在8192和16384個環境以及16和8個horizon length 的情況下,達到最佳訓練時間。最后,研究人員用影子手進行實驗,讓它學習用手指和手腕將放在手掌上的立方體旋轉到目標方向。受所涉及的DoF數量和旋轉過程中的接觸影響,這項任務具有不小的挑戰。我們在 "影子手"環境中的結果也遵循類似的趨勢。隨著智能體數量的增加,在這種情況下,從256增加到16384,訓練時間減少了一個數量級,從5×10^4秒(約14小時)到3×10^3秒(約1小時)。我們發現,該環境在短短5分鐘內就達到了連續10次成功的獎勵的靈巧性能。此外,16384個智能體的horizon length 為8,仍然允許學習重新擺放立方體。16384個智能體的最大有效幀率為每秒150K個并行環境步驟。圖8:在模擬和真實機器人上測試的粗糙地形上的ANYmal的訓練策略圖10:Franka Cube堆疊環境和相應的獎勵曲線圖11:在Isaac Gym中實現的三種手內操縱環境:Shadow Hand, Trifinger和 Allegro圖12:在Isaac Gym中實現的三種手內操縱環境的獎勵曲線。這些結果是通過(a)采用OpenAI觀察和LSTM的Shadow Hand(b)采用OpenAI觀察和前饋網絡的Shadow Hand(c)采用標準觀察的Shadow Hand(d)采用標準觀察的Allegro Hand獲得的。Shadow Hand OpenAI是用不對稱的actor-critic 和領域隨機化訓練的,而Shadow Hand標準和Allegro Hand標準是用標準觀察和對稱的actor-critic訓練的,沒有領域隨機化。
圖13:(a)采用OpenAI觀察和LSTM的Shadow Hand,(b)采用OpenAI觀察和前饋網絡的Shadow Hand(c)采用標準觀察的Shadow Hand(d)采用標準觀察的Allegro Hand,每集的連續成功率。Shadow Hand Standard和Allegro Hand Standard都使用前饋網絡來實現策略和價值功能。
圖14:Trifinger學習了各種靈巧的操縱行為,能夠將立方體移動到正確的位置和方向。研究表明,Isaac Gym是一個高性能和高仿真的平臺,可以在單個NVIDIA A100 GPU上對許多具有挑戰性的模擬機器人環境進行快速訓練,而以前使用傳統的RL設置和純CPU的模擬器則需要大型異構集群的CPU和GPU。此外,模擬后端也適用于學習具有接觸的操作,這一點在我們用ANYmal運動和TriFinger立方體擺放進行的模擬到真實的遷移演示中得到了證實。雷鋒網雷鋒網雷鋒網
雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知。