百度正式釋出PaddlePaddle深度強化學習框架PARL

pythontab發表於2019-01-18

 

強化學習作為AI技術發展的重要分支,為各家AI公司高度重視。去年,百度首次參與NeurIPS 2018的強化學習賽事,就擊敗了多達400支來自全球研究機構以及各大公司研究部門的參賽隊伍,大比分以絕對優勢拿下了冠軍,並受邀在加拿大蒙特利爾舉辦的NeurIPS 2018 Competition Workshop上分享。近日,百度PaddlePaddle正式釋出在賽事奪冠中起到關鍵作用的深度強化學習框架PARL同時開源了基於該框架的NeurIPS 2018強化學習賽事的完整訓練程式碼。(冠軍解決方案見https://github.com/PaddlePaddle/PARL

PARL的名字來源於PAddlepaddle Reinfocement Learning,是一款基於百度PaddlePaddle打造的深度強化學習框架。PARL凝聚了百度多年來在強化學習領域的技術深耕和產品應用經驗。與現有強化學習工具和平臺相比,PARL具有更高的可擴充套件性、可復現性和可複用性,強大的大規模並行化和稀疏特徵的支援能力,以及工業級應用案例的驗證。

百度正式釋出PaddlePaddle深度強化學習框架PARL

自2012年以來,百度就將在multi-arm bandits問題上的研究成果成功落地到推薦系統中,廣泛應用於搜尋、對話、推薦等產品,透過點選反饋結合線上訓練的方式,動態調整探索(exploration)和收益(exploitation)的平衡點,降低探索風險的同時最大化推薦收益。近年來,百度在工業應用以及學術研究上進一步引入強化學習,落地在不僅限於鳳巢,新聞Feed推薦等應用上,並且應用在前沿的學術研究領域例如機器人控制,通用人工智慧AGI等。2018年,在機器人控制會議CoRL上,百度發表了干預強化學習機制的工作;進而在NeurIPS 2018的強化學習賽事上擊敗了400多個全球研究機構的參賽隊伍,首次參賽就拿下了NeurIPS2018 強化學習賽事冠軍。參賽隊伍中不乏RNN之父創立的公司、衛冕冠軍NNAISENSE、阿里、Yandex、Intel等強勁對手。

設計深度強化學習框架是相當具備挑戰性的工作。雖然各大公司先後推出了一些強化學習框架,比如Intel的Coach、OpenAI的baseline、Google的Dopamine等,但截止到目前,開源社群中仍沒有一個主導的RL框架。這其中主要的一個原因是強化學習近年來發展迅猛,新的研究方向不斷湧現。從15年Deepmind 發表DQN 演算法以來,湧現了大量的DQN演算法變種,包括Double DQN、Dueling DQN、Rainbow等,同時在連續控制(continuous control RL),分層控制(hierarchical RL),多機器人控制(multi-agent RL)上湧現出相當多的新技術,甚至和元學習(meta-learning)以及環境建模(model-based)等結合起來。當前社群中存在的開源框架雖然可以支援其中的一部分演算法,但是由於技術迭代太快,之前設計的框架難以跟上最新的研究熱點。第二個原因是深度強化學習演算法和應用,具有方法各異、超參難調、隨機性大等特點,即便是針對同一個問題,使用同一種演算法,不同的實現方式會帶來極大的差異,學術界也一再強調強化學習可復現性問題。綜合這些因素,要實現一個統一的模型和計算平臺,是相當困難的事情。

百度正式釋出PaddlePaddle深度強化學習框架PARL

PARL 在設計之初就考慮了上述提到的擴充套件性和可復現性的問題。從上圖可以看出,PARL透過抽象出Model、Algorithm、Agent等基礎類幫助使用者快速搭建可以和環境互動的機器人。Model類負責強化學習演算法中的網路前向計算(forward)部分,通常巢狀在algorithm中。Algorithm 類則定義了網路的更新方式(backward)部分,通常屬於一個agent。Agent類負責和環境進行互動,並且收集資料訓練底下的algorithm。透過這樣的設計方案,PARL保證了演算法擴充套件性:針對同一個場景,使用者想調研不同的網路結構對演算法效果影響的時候,比如調研RNN建模或者CNN建模,只需要重寫model部分即可;針對不同場景想用同一個演算法調研的時候,也只需重寫model即可。可復現性主要體現在框架提供的algorithm集合上,在下一段和複用性一起結合理解。

PARL 的這種設計結構的另一個好處是高複用性。倉庫內的提供了大量經典演算法的例子(algorithms目錄內), 包括主流的DQN 、DDQN、Dueling DQN、DDPG、PPO等,這些演算法由於和網路結構進行了解耦(網路結構定義在Model類中),因此不針對特定任務,而是一個相當通用的演算法抽象。使用者透過PARL搭建強化學習演算法來解決自己目前遇到的問題時,可以直接import 這些經典演算法,然後定義自己的網路前向部分即可短時間內構建出經典的RL演算法。這種高複用性不僅極大地降低了使用者的開發成本,而且由於PARL提供的演算法內部包含完整的超引數列表,確保倉庫內模型具備復現論文級別指標的能力。

下圖是PARL官方提供的一個構建示例,展示瞭如何快速構建可以解決Atari遊戲的DQN模型。使用者只需要定一個前向網路(Model類),然後呼叫框架演算法集合裡面的DQN algorithm即可構建一個經典DQN演算法了。DQN演算法裡面的繁瑣的構建target 網路,同步target 網路引數等細節,已經包含在構建的algorithm裡面,使用者無需再特別關注。

百度正式釋出PaddlePaddle深度強化學習框架PARL

PARL基於百度內部的成熟應用開源,因此更能方便地定製大規模並行演算法。透過呼叫簡單的函式介面,使用者可以將演算法從單機版擴充套件成GA3C、A3C、IMPALA等並行訓練架構。 PARL對於通訊機制,資料I/O等也有獨特的加速處理。此外,基於PaddlePaddle對大規模工業級排序/推薦等稀疏模型的支援能力,PARL也能輕鬆擴充套件到百億級別資料或特徵的訓練。

 百度正式釋出PaddlePaddle深度強化學習框架PARL

PARL的並行能力在開源社群中處於絕對領先地位。根據百度在NeurIPS上做的技術分享,基於PARL最多可以同時透過8塊GPU來拉動近20000個CPU節點運算,完全發揮整個CPU叢集的計算潛力,在賽事中成功將需要近5個小時迭代一輪的PPO演算法加速到了不到1分鐘,實現了相對單機運算高達幾百倍的加速比。這種目前開源社群中框架難以支援的並行提速,是他們拿下本次冠軍的關鍵因素之一。

百度正式釋出PaddlePaddle深度強化學習框架PARL

百度本次正式釋出PARL, 不僅在學術界引發熱議,更是在工業界引起巨大反響。百度擁有國內唯一有影響力的深度學習基礎庫,並積極推進AI生態戰略。隨著百度PaddlePaddle在工業界的影響不斷深入,一個高效能、高規格的深度強化學習框架,也是滿足工業界日趨發展旺盛的強化學習應用需求的必要條件。 而這一系列舉措,對於百度最終決勝AI時代將是有力的推動。


相關文章