姚鐵錘,王 玨,王彥棡,遲學(xué)斌,王曉光
(1.中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190;2.中國科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049)
強(qiáng)化學(xué)習(xí)作為機(jī)器學(xué)習(xí)領(lǐng)域的研究熱點(diǎn),在博弈游戲[1-2]、機(jī)器人控制、圖像處理、機(jī)器翻譯、交通控制[3]和自動駕駛等任務(wù)中表現(xiàn)優(yōu)異。隨著對強(qiáng)化學(xué)習(xí)研究的不斷深入,各個研究機(jī)構(gòu)和公司相繼研發(fā)了不同的強(qiáng)化學(xué)習(xí)實(shí)驗(yàn)環(huán)境和平臺。
OpenAI Gym[4]集文字任務(wù)、Atari、Box2D、經(jīng)典控制、MuJoCo[5]和機(jī)械手臂等物理引擎于一體,提供統(tǒng)一的算法接口用于強(qiáng)化學(xué)習(xí)算法訓(xùn)練。DeepMind Control Suite[6]對MuJoCo 進(jìn)行封裝,輔以基礎(chǔ)強(qiáng)化學(xué)習(xí)算法,用于機(jī)器人控制。DeepMind Lab和TORCS(The Open Racing Car Simulator)[7]分別構(gòu)建迷宮和賽車的模擬器,訓(xùn)練強(qiáng)化學(xué)習(xí)智能體的導(dǎo)航、3D 視覺和策略等方面能力。OpenAI Gym、DeepMind Control Suite、RLlab[8]、DeepMind Lab[9]、TORCS、Pybullet[10]和PySC2[11]等用于強(qiáng)化學(xué)習(xí)的實(shí)驗(yàn)環(huán)境均包含物理引擎和基礎(chǔ)渲染顯示模塊,其中,物理引擎通過感知用戶操作和物體當(dāng)前狀態(tài)計(jì)算物體新的狀態(tài),渲染顯示模塊根據(jù)物體的信息進(jìn)行渲染并在顯示界面感知用戶的操作。然而此類強(qiáng)化學(xué)習(xí)環(huán)境中實(shí)驗(yàn)場景的物理引擎模塊和渲染模塊耦合性較高,且模擬渲染的方式各成一體[1,5-6,8-9,12-13],這限制了大規(guī)模集群資源的利用率,增加了強(qiáng)化學(xué)習(xí)訓(xùn)練環(huán)境部署和算法驗(yàn)證的難度。
2018 年加州大學(xué)伯克利分校DASARI 等人開發(fā)的RoboNet[14]平臺,收集了線下實(shí)體機(jī)器人1 500 萬幀手臂與物體交互的視頻作為強(qiáng)化學(xué)習(xí)訓(xùn)練數(shù)據(jù)集,2019 年李飛飛團(tuán)隊(duì)開發(fā)的RoboTurk[15]平臺則提供了137.5 h 的機(jī)器人交互數(shù)據(jù)。然而此類平臺僅提供特定的數(shù)據(jù)集[5,8,12,15-17],缺少強(qiáng)化學(xué)習(xí)訓(xùn)練環(huán)境和硬件資源的支撐。此外,阿里巴巴PAI 平臺[18]、騰訊智能鈦平臺[19]和百度AI Studio 開發(fā)平臺[20]集成了Notebook、Shell 工具和Tensorflow、PyTorch 深度學(xué)習(xí)框架,側(cè)重支持傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法,同樣無法友好地支持需要環(huán)境模擬的強(qiáng)化學(xué)習(xí)算法。
本文通過設(shè)計(jì)物理引擎與渲染模塊之間的數(shù)據(jù)結(jié)構(gòu)、WebRender 算法和接口標(biāo)準(zhǔn)構(gòu)建Web 云端交互式模型,用于對物理引擎和渲染模塊進(jìn)行解耦?;谠撃P蛯?shí)現(xiàn)并驗(yàn)證針對MuJoCo 物理引擎的Web 模擬器,同時集成可視化交互開發(fā)工具和面向項(xiàng)目的知識管理模塊,開發(fā)一個支持云端可視化交互的強(qiáng)化學(xué)習(xí)平臺。
本文構(gòu)建的云端交互式模型抽象了物理引擎與渲染模塊之間的數(shù)據(jù)結(jié)構(gòu),通過引入WebRender 算法和相應(yīng)接口,將實(shí)驗(yàn)環(huán)境的物理引擎和渲染模塊分離,從而幫助不同物理引擎接入,促進(jìn)強(qiáng)化學(xué)習(xí)中環(huán)境模擬標(biāo)準(zhǔn)的統(tǒng)一。如圖1 所示,該模型涉及到客戶端和服務(wù)器端之間的通信。在限定時間內(nèi),瀏覽器端的交互操作由操作塊即操作字典(operation_dict)傳入服務(wù)器端進(jìn)行解析處理,服務(wù)器端通過物理引擎計(jì)算產(chǎn)生元素塊即元素字典(element_dict)并將其傳回客戶端,通過Web 端渲染模塊在瀏覽器端渲染。
圖1 云端交互式模型Fig.1 Cloud interactive model
圖2 所示的元素字典記錄幾何體的名稱、類型、位置、顏色信息以及相機(jī)的類型和視角等關(guān)鍵信息,用于Web 端渲染模塊的可視化。圖3 所示的操作字典記錄鼠標(biāo)點(diǎn)擊和位移等交互信息,用于不同物理引擎的物理變量計(jì)算。
圖2 元素字典Fig.2 Element dictionary
圖3 操作字典Fig.3 Operation dictionary
WebRender 算法通過圖4 所示的3 個接口接入物理引擎,使其獨(dú)立于渲染模塊,具體描述如下:move_perturb 接口傳入操作字典,使用自定義物理引擎計(jì)算動力學(xué)信息;move_camera 接口傳入操作字典,使用自定義物理引擎計(jì)算相機(jī)位置信息;generate_element 接口使用自定義物理引擎輸出元素字典。
圖4 云端交互式模型接口設(shè)計(jì)Fig.4 Interfaces design of cloud interactive model
WebRender 算法通過translate_operation 解析操作字典,在給定的時間步內(nèi),循環(huán)調(diào)用move_perturb或move_camera 進(jìn)行計(jì)算,并調(diào)用generate_element產(chǎn)生當(dāng)前時間步的元素字典,最終輸出最后時刻的元素字典。
WebRender 算法偽代碼如下:
算法1WebRender
基于云端可視化交互的強(qiáng)化學(xué)習(xí)平臺架構(gòu)如圖5 所示,其中包括基礎(chǔ)設(shè)施層、應(yīng)用服務(wù)層以及接口訪問層。
圖5 基于云端可視化交互的強(qiáng)化學(xué)習(xí)平臺架構(gòu)Fig.5 Architecture of reinforcement learning platform based on cloud visual interaction
1)基礎(chǔ)設(shè)施層基于異構(gòu)GPU 計(jì)算資源和存儲系統(tǒng)資源[21],采用虛擬化技術(shù)為模擬器的穩(wěn)定運(yùn)行和強(qiáng)化學(xué)習(xí)算法的使用提供軟硬件保障。
2)應(yīng)用服務(wù)層包括虛擬開發(fā)環(huán)境接口、可視化交互模塊和基于項(xiàng)目的知識管理模塊。虛擬開發(fā)環(huán)境接口負(fù)責(zé)前端頁面對可視化工具的控制。云端交互式模擬器基于可視化交互模塊實(shí)現(xiàn)。Web 端渲染模塊采用WebGL[22]技術(shù)統(tǒng)一實(shí)現(xiàn),物理引擎模塊支持用戶自定義,僅需要少量工作即可接入模擬器,提高了實(shí)驗(yàn)環(huán)境模擬的便捷性和統(tǒng)一性?;陧?xiàng)目的知識管理模塊將強(qiáng)化學(xué)習(xí)所涉及的模擬器、可視化工具、數(shù)據(jù)、算法以及研究環(huán)境以項(xiàng)目的形式封裝在虛擬化容器中,并劃分為私有項(xiàng)目和公共項(xiàng)目。其中,私有項(xiàng)目包括發(fā)布為公共項(xiàng)目的功能、支持分享特定數(shù)據(jù)集、自定義算法和實(shí)驗(yàn)環(huán)境,公共項(xiàng)目可以快速復(fù)制為私有項(xiàng)目,用戶復(fù)制后即可查看共享的知識。
3)接口訪問層是用戶的接入層,其中較為典型的應(yīng)用是用戶注冊、用戶統(tǒng)一登錄接口以及用戶認(rèn)證模塊。
本文在OpenStack[23]云平臺虛擬化技術(shù)的基礎(chǔ)上,通過多臺服務(wù)器搭建包含云端交互式模擬器的強(qiáng)化學(xué)習(xí)平臺,并以MuJoCo 物理引擎為例,驗(yàn)證云端交互式模型接入自定義物理引擎的便捷性。
登錄平臺后展現(xiàn)的用戶私有項(xiàng)目如圖6 所示,可見其中提供了OpenAI Gym、MuJoCo-py、PyTorch等多個基礎(chǔ)模板。
圖6 用戶私有項(xiàng)目Fig.6 User’s private project
針對MuJoCo 物理引擎的實(shí)驗(yàn)場景,本文平臺僅通過動力學(xué)等模塊的少量函數(shù)實(shí)現(xiàn)WebRender 算法的接口,即可使用云端交互式模擬器渲染,而無需再安裝額外的依賴包。云端交互式模擬器與MuJoCo的渲染效果對比如圖7 所示,其在強(qiáng)化學(xué)習(xí)平臺上驗(yàn)證的效果如圖8 所示。
圖7 云端交互式模擬器與MuJoCo 的渲染效果對比Fig.7 Rendering effect comparison of cloud interactive simulator and MuJoCo
圖8 云端交互式模擬器渲染界面Fig.8 Rendering interface of cloud interactive simulator
本文設(shè)計(jì)的平臺除了集成Notebook、Shell 類基本工具,還提供了在線代碼編輯器、TensorBoard、視頻播放器和數(shù)據(jù)集中心等可視化開發(fā)工具,如圖9所示。其中,在線代碼編輯器相較Notebook 更易支持在線大規(guī)模開發(fā),TensorBoard 能夠?qū)崿F(xiàn)函數(shù)圖像、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)等數(shù)據(jù)的可視化,視頻播放器便于驗(yàn)證需要錄制視頻的算法,數(shù)據(jù)集中心提供了數(shù)據(jù)集的上傳、下載、管理等功能,便于用戶保存、分享數(shù)據(jù)集。
圖9 可視化開發(fā)工具Fig.9 Visualization development tools
本文在強(qiáng)化學(xué)習(xí)實(shí)驗(yàn)場景下構(gòu)建云端交互式模型,并通過融合可視化工具和基于項(xiàng)目的知識管理模塊功能,設(shè)計(jì)一站式的強(qiáng)化學(xué)習(xí)平臺。結(jié)合MuJoCo 物理引擎在平臺中實(shí)現(xiàn)云端交互式模擬器,以驗(yàn)證云端交互式模型的有效性。實(shí)驗(yàn)結(jié)果表明,該模型提升了物理引擎接入模擬器的便捷性,對統(tǒng)一實(shí)驗(yàn)場景的模擬標(biāo)準(zhǔn)具有一定的借鑒意義,在其基礎(chǔ)上搭建的平臺可支持100 余個具有云端交互式模擬器的項(xiàng)目并發(fā)穩(wěn)定運(yùn)行。下一步將對不同物理引擎接口標(biāo)準(zhǔn)進(jìn)行優(yōu)化,使平臺適用于更多實(shí)驗(yàn)場景,同時設(shè)計(jì)分布式強(qiáng)化學(xué)習(xí)算法并優(yōu)化集群異構(gòu)資源調(diào)度過程,實(shí)現(xiàn)對大規(guī)模強(qiáng)化學(xué)習(xí)算法訓(xùn)練的支持和加速。