Google强化学习框架SEED RL环境部署
如上述博客有任何錯誤或者疑問,請加VX:1755337994,及時告知!萬分感激!?
本框架是Google發(fā)布于ICLR2020頂會上,這兩天發(fā)布于Google Blog上
**論文Arxiv:**https://arxiv.org/abs/1910.06591
|| 關(guān)于Seed RL
現(xiàn)階段在云端訓(xùn)練復(fù)雜的機器學(xué)習(xí)模型十分昂貴。報告顯示,華盛頓大學(xué)(University of Washington)的Grover專為生成和檢測假新聞而設(shè)計,該模型在兩周的在訓(xùn)練中共花費了2.5萬美元;OpenAI訓(xùn)練其GPT-2語言模型,每小時需花費256美元;谷歌訓(xùn)練其BERT雙向轉(zhuǎn)換器模型,預(yù)估也花費了6912美元。而這些模型前期的訓(xùn)練成本,對一些大型AI實驗室或科技巨頭來說也許不足為提,但對于許多的AI創(chuàng)企和小型AI實驗室而言,卻帶來了壓力.
當(dāng)前的框架
上一代的分布式強化學(xué)習(xí)代理(例如IMPALA)利用專門用于數(shù)值計算的加速器,充分利用了(無)監(jiān)督學(xué)習(xí)多年來受益的速度和效率。RL代理的體系結(jié)構(gòu)通常分為actor和learner。actor通常在CPU上運行,并且在環(huán)境中采取的步驟與對模型進行推斷之間進行迭代,以預(yù)測下一個動作。通常,actor會更新推理模型的參數(shù),并且在收集到足夠數(shù)量的觀察結(jié)果之后,會將觀察結(jié)果和動作的軌跡發(fā)送給learner,從而對learner進行優(yōu)化。在這種架構(gòu)中,learner使用來自數(shù)百臺機器上的分布式推理的輸入在GPU上訓(xùn)練模型。
RL Agent(例如IMPALA)的體系結(jié)構(gòu)具有許多缺點:
-
與使用加速器相比,使用CPU進行神經(jīng)網(wǎng)絡(luò)推理的效率和速度要慢得多,并且隨著模型變得越來越大且計算量越來越大,問題變得越來越嚴(yán)重。
-
在actor和learner之間發(fā)送參數(shù)和中間模型狀態(tài)所需的帶寬可能是瓶頸。
-
在一臺機器上處理兩個完全不同的任務(wù)(即環(huán)境渲染和推理)不可能最佳地利用機器資源。
SEED RL體系結(jié)構(gòu)
SEED RL體系結(jié)構(gòu)旨在解決這些缺點。通過這種方法,learner可以在專用硬件(GPU或TPU)上集中進行神經(jīng)網(wǎng)絡(luò)推理,從而通過確保模型參數(shù)和狀態(tài)保持局部狀態(tài)來加快推理速度并避免數(shù)據(jù)傳輸瓶頸。盡管觀察結(jié)果在每個環(huán)境步驟都發(fā)送給learner,但由于基于gRPC框架和異步流RPC的非常高效的網(wǎng)絡(luò)庫,延遲保持在較低水平。這使得在一臺機器上每秒最多可以實現(xiàn)一百萬個查詢。learner可以擴展到數(shù)千個核心(例如,在Cloud TPU上最多2048個),actor的數(shù)量可以擴展到數(shù)千臺機器,以充分利用learner,從而可以以每秒數(shù)百萬幀的速度進行訓(xùn)練。SEED RL基于TensorFlow 2 API,在我們的實驗中,是通過TPU加速的。
SEED RL的特點與性能
-
基于谷歌的TensorFlow 2.0框架,SEED RL的特點是能通過集中模型推理,來利用圖形卡和TPU(張量處理單元)。
-
為了避免數(shù)據(jù)傳輸瓶頸,SEED RL還使用學(xué)習(xí)器組件來集中執(zhí)行AI推理,而該組件也使用來自分布式推理的輸入來訓(xùn)練模型。
-
目標(biāo)模型的變量和狀態(tài)信息將保持在本地,并將每個環(huán)境步驟的觀察結(jié)果發(fā)送給學(xué)習(xí)器組件。同時,由于該模型使用了基于開放源代碼通用RPC框架的網(wǎng)絡(luò)庫,因此它的延遲也將保持在最低水平。
-
SEED RL的學(xué)習(xí)器組件能夠擴展到成千上萬個核心,例如在Cloud TPU上最多可擴展到2048個,而actor的數(shù)量可擴展多達(dá)數(shù)千臺機器。
實驗結(jié)果如下
SEED RL在常用的Arcade學(xué)習(xí)環(huán)境,DeepMind Lab環(huán)境以及最近發(fā)布的Google Research Football環(huán)境中進行了基準(zhǔn)測試。
在DeepMind Lab上,作者使用64個Cloud TPU內(nèi)核實現(xiàn)了每秒240萬幀的數(shù)據(jù)傳輸速度,與以前的最新分布式代理IMPALA相比,提高了80倍。這樣可以顯著提高掛鐘時間和計算效率。對于相同的速度,IMPALA需要的CPU是SEED RL的3-4倍。
通過針對現(xiàn)代加速器進行優(yōu)化的架構(gòu),自然會增加模型大小,以提高數(shù)據(jù)效率。我們表明,通過增加模型的大小和輸入分辨率,我們可以解決以前未解決的Google Research Football任務(wù)“困難”。
更多參數(shù)請查看Google blog:
https://ai.googleblog.com/2020/03/massively-scaling-reinforcement.html
|| 代碼使用
1.?克隆倉庫
1git clone https://github.com/google-research/seed_rl.git 2cd seed_rl 3
單機本地機器訓(xùn)練
1./run_local.sh [Game] [Agent] [Num. actors] 2./run_local.sh atari r2d2 4 3./run_local.sh football vtrace 4 4./run_local.sh dmlab vtrace 4 5
3.?使用AI平臺進行分布式訓(xùn)練
第一步是配置GCP和一個將用于培訓(xùn)的Cloud項目:
-
按照https://cloud.google.com/sdk/install上的說明安裝Cloud SDK,并設(shè)置您的GCP項目。
-
確保為您的項目啟用了計費。
-
啟用AI平臺(“云機器學(xué)習(xí)引擎”)和Compute Engine API。
-
如https://cloud.google.com/ml-engine/docs/
working-with-cloud-storage所述,授予對AI Platform服務(wù)帳戶的訪問權(quán)限。
-
在您的shell腳本中進行云身份驗證,以便SEED腳本可以使用您的項目:
更多詳情查看:
GitHub - google-research/seed_rl: SEED RL: Scalable and Efficient Deep-RL with Accelerated Central Inference. Implements IMPALA and R2D2 algorithms in TF2 with SEED's architecture.
總結(jié)
以上是生活随笔為你收集整理的Google强化学习框架SEED RL环境部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python深拷贝,浅拷贝,赋值引用
- 下一篇: Snipaste在Window运行后遇到