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