OpenPAI:大規模人工智能集群管理平臺

OpenPAI:大规模人工智能集群管理平台

今天,在微軟舉辦的“新一代人工智能開放科研教育平臺暨中國高校人工智能科研教育高峰論壇”上,微軟亞洲研究院宣佈,攜手北京大學、中國科學技術大學、西安交通大學和浙江大學四所國內頂尖高校共建新一代人工智能開放科研教育平臺,以推動中國人工智能領域科研與教育事業的發展。作為由微軟亞洲研究院為該平臺提供的三大關鍵技術之一,Open Platform for AI(OpenPAI)也備受矚目。

事實上,隨著人工智能技術的快速發展,各種深度學習框架層出不窮,為了提高效率,更好地讓人工智能快速落地,很多企業都很關注深度學習訓練的平臺化問題。例如,如何提升GPU等硬件資源的利用率?如何節省硬件投入成本?如何支持算法工程師更方便的應用各類深度學習技術,從繁雜的環境運維等工作中解脫出來?等等。

為了解決這些問題,微軟亞洲研究院和微軟(亞洲)互聯網工程院基於各自的特長,聯合研發、創建了OpenPAI,希望為深度學習提供一個深度定製和優化的人工智能集群管理平臺,讓人工智能堆棧變得簡單、快速、可擴展

為什麼要使用OpenPAI?

● 為深度學習量身定做,可擴展支撐更多AI和大數據框架

通過創新的PAI運行環境支持,幾乎所有深度學習框架如CNTK、TensorFlow、PyTorch等無需修改即可運行;其基於Docker的架構則讓用戶可以方便地擴展更多AI與大數據框架。

● 容器與微服務化,讓AI流水線實現DevOps

OpenPAI 100%基於微服務架構,讓AI平臺以及開發便於實現DevOps的開發運維模式。

● 支持GPU多租,可統籌集群資源調度與服務管理能力

在深度學習負載下,GPU逐漸成為資源調度的一等公民,OpenPAI提供了針對GPU優化的調度算法,豐富的端口管理,支持Virtual Cluster多租機制,可通過Launcher Server為服務作業的運行保駕護航。

● 提供豐富的運營、監控、調試功能,降低運維複雜度

PAI為運營人員提供了硬件、服務、作業的多級監控,同時開發者還可以通過日誌、SSH等方便調試作業。

● 兼容AI開發工具生態

平臺實現了與Visual Studio Tools for AI等開發工具的深度集成,用戶可以一站式進行AI開發。

OpenPAI架構與功能簡介

OpenPAI是由微軟亞洲研究院和微軟(亞洲)互聯網工程院聯合研發的,支持多種深度學習、機器學習及大數據任務,可提供大規模GPU集群調度、集群監控、任務監控、分佈式存儲等功能,且用戶界面友好,易於操作。

OpenPAI的架構如下圖所示,用戶通過Web Portal調用REST Server的API提交作業(Job)和監控集群,其它第三方工具也可通過該API進行任務管理。隨後REST Server與Launcher交互,以執行各種作業,再由Launcher Server處理作業請求並將其提交至Hadoop YARN進行資源分配與調度。可以看到,OpenPAI給YARN添加了GPU支持,使其能將GPU作為可計算資源調度,助力深度學習。其中,YARN負責作業的管理,其它靜態資源(下圖藍色方框所示)則由Kubernetes進行管理。

OpenPAI:大规模人工智能集群管理平台

OpenPAI架構

OpenPAI完全基於微服務架構,所有的OpenPAI服務和AI Job均在容器中運行,這樣的設計讓OpenPAI的部署更加簡單,無論是在Ubuntu裸機集群還是在雲服務器上,僅需運行幾個腳本即可完成部署。這同時也使其能夠支持多種不同類型的AI任務,如CNTK、TensorFlow、PyTorch等不同的深度學習框架。此外,用戶通過自定義Job容器即可支持新的深度學習框架和其他機器學習、大數據等AI任務,具有很強的擴展性。

在運維方面,OpenPAI提供了AI任務在線調試、錯誤報警、日誌管理、性能檢測等功能,顯著降低了AI平臺的日常運維難度。同時,它還支持MPI、RDMA網絡,可滿足企業對大規模深度學習任務的性能要求。

不僅如此,OpenPAI還實現了與Visual Studio的集成。Visual Studio Tools for AI是微軟Visual Studio 2017 IDE的擴展,用戶在Visual Studio中就可以開發、調試和部署深度學習和AI解決方案。集成後,用戶在Visual Studio中調試好的模型可便捷地部署到OpenPAI集群中。

OpenPAI:大规模人工智能集群管理平台

任務部署成功後Visual Studio中的任務列表概覽

運行管理界面

OpenPAI提供了友好的用戶界面,操作簡單,便於用戶進行集群監控、任務提交等。例如,主界面上顯示了集群的GPU利用率、節點總數、CPU利用率、網絡狀況等。當某項數據異常時,OpenPAI將啟動報警機制通知用戶,並在UI上以顏色改變的形式進行提醒(如變成紅色等)。

OpenPAI:大规模人工智能集群管理平台

OpenPAI主界面

OpenPAI:大规模人工智能集群管理平台

集群Job概覽,點擊Job名稱可以查看詳細信息及日誌信息

OpenPAI:大规模人工智能集群管理平台

Job運行狀態頁顯示容器的IP地址、端口和GPU位置,該頁面還提供遠程SSH登錄容器的信息

OpenPAI:大规模人工智能集群管理平台

集群中機器運行狀況概覽,不同顏色展現了不同的忙閒程度

OpenPAI:大规模人工智能集群管理平台

集群中每臺機器上的Service運行狀況

入門教程

OpenPAI部署

平臺部署主要分為以下幾個步驟:

1. 編譯支持GPU調度的Hadoop AI容器,詳見

https://github.com/Microsoft/pai/blob/master/hadoop-ai/README.md

2. 部署Kubernetes以及系統服務(如drivers、zookeeper、REST Server等)。詳見

https://github.com/Microsoft/pai/blob/master/pai-management/README.md

3. 訪問Web Portal進行任務提交和集群管理。

提交深度學習Job示例

1. 將你的數據和代碼上傳至HDFS:

如用hdfs命令行將數據上傳至

hdfs://host:port/path/tensorflow-distributed-jobguid/data

2. 準備Job配置文件:(詳見

https://github.com/Microsoft/pai/tree/master/job-tutorial)

OpenPAI:大规模人工智能集群管理平台

3. 瀏覽Web Portal,點擊"Submit Job"上傳配置文件,即可提交你的Job。

https://github.com/Microsoft/pai

你也許還想看

OpenPAI:大规模人工智能集群管理平台


分享到:


相關文章: