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