當前位置:
首頁 > 科技 > 資源 | Facebook開源首個適應大規模產品的強化學習平台Horizon,基於PyTorch 1.0

資源 | Facebook開源首個適應大規模產品的強化學習平台Horizon,基於PyTorch 1.0


選自

code.fb


作者:JASON GAUCI、EDOARDO CONTI、KITTIPAT VIROCHSIRI


機器之心編譯


參與:路、王淑婷




今日,Facebook 開源了適合大規模產品和服務的強化學習平台 Horizon,這是第一個使用強化學習在大規模生產環境中優化系統的開源端到端平台。Horizon 包含的工作流程和演算法建立在開放的框架上(PyTorch 1.0、Caffe2、Spark),任何使用 RL 的人都可以訪問 Horizon。去年,Facebook 內部已經廣泛應用 Horizon,包括幫助個性化 M suggestions、提供更有意義的通知、優化流視頻質量。




Horizon GitHub 地址:https://github.com/facebookresearch/Horizon




今天,Facebook 開源了一個強化學習端到端平台 Horizon,該平台利用強化學習(RL)來優化數十億用戶規模的產品及服務。Facebook 開發此平台的目的是彌補 RL 在研究領域日益增強的影響力與其在生產領域的狹窄應用之間的落差。過去一年,Facebook 已在內部廣泛部署了 Horizon,提高了該平台將 RL 基於決策的方法應用於大規模應用的能力。儘管其他人也在做 RL 應用方面的研究,但 Horizon 是第一個用於生產的開源 RL 平台。



Horizon 專註於將 RL 應用於大型系統。本次開源包含用於模擬環境的工作流程及用於生產預處理、訓練及模型導出的分散式平台。Horizon 平台已經提高了 Facebook 的性能,包括發送相關度更高的通知、優化流視頻比特率及提升 Messenger 中 M suggestions 的效果。但 Horizon 的開放性設計和工具集使得它可以惠及該領域其他研究人員,尤其是對利用 RL 從大量信息中學習策略的公司和研究團隊而言。Horizon 不僅是 Facebook 繼續投資 RL 的證明,也表明這個充滿希望的人工智慧研究領域現在可以用於實際應用。




大規模決策:Horizon 如何利用 RL 進行生產





機器學習(ML)系統通常產生預測,但之後就需要工程師將這些預測轉化為策略(即採取行動的策略)。另一方面,RL 創建的系統能夠決策、採取行動,並基於收到的反饋進行改進。這種方法無需手動製造的策略就可以優化一系列決策。例如,RL 系統可以在視頻播放時,基於來自其他 ML 系統的評估和視頻緩衝器的狀態直接選擇高/低比特率。



儘管 RL 的策略優化能力在研究中已經展示出不錯結果,但人工智慧社區很難調整這些模型來處理截然不同的現實生產環境需求。Horizon 專註於縮小兩種不同應用類型之間的差距:研究相關模擬器的複雜但有限的環境;基於 ML 的策略優化系統,該系統依賴本質上帶雜訊、稀疏和任意分布的數據。雖然在一些遊戲中,RL 驅動的機器人可以對有限的一組預測和重複性規則作出反應,但在現實世界中不可能實現完美模擬,且反饋也更難融入到部署代碼中去,因為與受控的實驗環境相比,這種環境中的任何改動都必須更加小心。




與深度學習對神經網路應用的改變類似,Horizon 等項目有望通過使用策略優化產生影響,定義科學家和工程師把 RL 應用於生產環境的方式。具體來說,Horizon 考慮了具體的生產環境問題,包括特徵歸一化、分散式訓練、大規模部署和服務,以及具有數千種不同特徵類型和分布與高維離散和連續動作空間的數據集。





Horizon 的工作流程分為三部分:1)時間線生成,在數千個 CPU 上運行;2)訓練,在多個 GPU 上運行;3)服務,也跨越數千台機器。該工作流程允許 Horizon 擴展到 Facebook 數據集。對於在策略學習(如使用 OpenAI Gym),Horizon 可以選擇將數據直接傳輸給閉環訓練。



Horizon 還解決了大規模構建和部署 RL 系統帶來的獨特挑戰。RL 通常以在線方式訓練,系統首選隨機選擇動作,然後實時更新。考慮到 Facebook 上系統的規模和影響,這種隨機性和實時更新目前尚無法選擇。Facebook 的模型首先基於產品工程師設計的策略開始訓練。該模型必須離線訓練,使用離策略方法和反事實策略評估(counterfactual policy evaluation,CPE)來估計如果 RL 模型做了之前的決策,它會做什麼。一旦 CPE 結果被接受,研究人員就在一個小實驗中部署 RL 模型,並收集結果。有趣的是,結果顯示與保持相對恆定的已有系統不同,RL 系統會隨著時間的推移繼續學習和改進。




行業數據集通常包含數十億條記錄和數千個具有任意分布和高維離散與連續動作空間的狀態特徵。根據研究和觀察,研究人員發現,與傳統的深度網路相比,應用 RL 模型對帶雜訊和非標準化的數據更敏感。Horizon 利用 Apache Spark 並行預處理這些狀態和動作特徵(此次開源包括 Spark pipeline)。訓練數據經過預處理後,研究人員使用基於 PyTorch 的演算法在 GPU 上進行歸一化和訓練。







儘管 Horizon 可以在單個 GPU 或 CPU 上運行,但該平台使用大型集群。在多個 GPU 上進行分散式訓練可使工程師解決涉及數百萬示例的問題,且更快迭代模型。Facebook 研究人員在 PyTorch 中使用數據並行和分散式數據並行功能進行分散式訓練。此次發布包括深度 Q 網路(DQN)、parametric DQN 和深度確定策略梯度(deep deterministic policy gradient,DDPG)模型。訓練過程中,研究人員還運行 CPE,將評估結果記錄到 TensorBoard 上。訓練完成後,Horizon 將使用 ONNX 導出模型,以便模型實現大規模高效服務。




在很多強化學習領域中,你可以通過嘗試衡量模型的性能。Facebook 想在大規模部署模型之前進行全面的模型測試。由於 Horizon 解決了策略優化任務,因此訓練工作流可以自動化運行多個當前最優策略評估技術,包括 sequential doubly robust 策略評估和 MAGIC。最終的策略評估報告在工作流中導出,可在 TensorBoard 中觀察報告。策略評估可與異常檢測結合起來,在大規模部署該策略之前,自動提醒工程師模型的新迭代是否與之前的模型性能迥異。




在工作中學習:Horizon 對 Messenger、360 video 等的影響





過去一年 Facebook 在內部廣泛使用 Horizon,期間該平台展示了 RL 通過即時反饋做出提升性能的決策,從而對生產應用產生影響。




例如,Horizon 允許通過實時優化比特率參數來改善 Facebook 360 video 的圖像質量。Horizon 使用可用帶寬和已緩衝視頻量決定是否轉化為更高畫質的視頻。這個過程利用了 RL 使用新的無監督數據瞬間創造刺激(incentive)的能力,這種方法在播放給定視頻時即可奏效,而不是事後分析性能和仔細標註的數據。





反事實策略評估為工程師在離線環境中部署 RL 模型提供了見解。上圖將幾種 CPE 方法和記錄的策略(最初生成訓練數據的系統)進行了比較。1.0 分表示 RL 和記錄策略性能相當。這些結果表明 RL 模型的累積獎勵大約是記錄系統的兩倍。



Horizon 反饋循環高級圖示。首先,預處理現有系統已記錄的部分數據。然後在離線環境中訓練模型,分析反事實的策略結果。最後,將模型部署到一組人並衡量真正的策略。將來自新模型的數據傳輸回下一個迭代,這樣大部分團隊每天都可以部署新模型。




Horizon 還為 Messenger 中的智能助手 M 過濾建議。M 為人們的開放對話提供相關內容的建議或者豐富人們的溝通。Horizon 使用強化學習幫助 M 學習,在學習對話策略方面,強化學習比基於規則的方法更具擴展性、前瞻性,對用戶反饋也更具響應性。例如,如果人們更常使用某個建議,M 可能會更多地展示該建議。有了 Horizon,M 變得更加智能、更加個人化,因為它每天要幫助數百萬人進行溝通。




Horizon 平台還改進了 Facebook 利用 AI 確定要發送給用戶哪些 Facebook 通知及發送頻率的方式。過去,Facebook 不會發送每一個可能的通知(包括新 post、評論等),而是利用機器學習模型幫助預測哪個通知最有意義、最相關,過濾掉其它的通知。但是這些模型依賴於監督學習,無法解釋發送通知的長期價值。例如,每天訪問 Facebook 多次的人可能不需要關於新 post 的通知,因為他們總能看到,而不那麼活躍的用戶會從 post 通知中受益,確保不漏掉家人朋友有意思的 post。




為了更好地解決這些長期信號,同時確保通知的效果達到預期,Facebook 向整個平台的所有用戶提供價值,他們利用 Horizon 訓練一個離散動作 DQN 模型用於發送 push 通知。用戶通過通知看到了可能漏掉的內容時該模型獲得獎勵,反之,如果用戶本就能看到新內容,而 Facebook 發送了 post 通知,則模型會被懲罰。只有通知對用戶的價值比懲罰高時,強化學習模型才會發送通知。該模型還會使用大批量狀態轉換進行定期更新,實現增量改進,並最終調整通知的數量。由於 Facebook 用 Horizon 強化學習模型取代了之前基於監督學習的系統,目前通知相關度方面已經有了改進,同時通知的總數並未增加。Facebook 不是通過點擊通知來判斷相關度,而是看得更寬更深,確保通知為用戶提供真正的幫助。




允許在生產環境中部署強化學習




這些優勢強調了強化學習對工業界的作用,即基於前一個次優策略收集的樣本直接學習最優策略的能力。Facebook 已經確定了一些適合強化學習的特定用例和應用,但這僅是一個開始。Facebook 期待人工智慧社區能夠基於 Horizon 平台產生更多想法、功能和產品。




任何使用機器學習進行決策的人都可以嘗試 Horizon。第一步是記錄 propensity(執行某個動作的概率)和替代方案(可能的其它動作)。Horizon 利用二者學習何時可獲取更好的動作。第二步是定義和記錄獎勵(執行動作帶來的價值)。收集數據後,可以運行 Horizon 的訓練循環,並導出可制定新決策並最大化整體獎勵的模型。






原文鏈接:https://code.fb.com/ml-applications/horizon/






本文為機器之心編譯,

轉載請聯繫本公眾號獲得授權



?------------------------------------------------


加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com


投稿或尋求報道:

content

@jiqizhixin.com


廣告 & 商務合作:bd@jiqizhixin.com

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

2018 AIIA人工智慧開發者大會,思必馳AI語音公開課

TAG:機器之心 |