OpenPAI:大規模人工智慧叢集管理平臺

微软研究院AI头条發表於2018-05-27

今天,在微軟舉辦的“新一代人工智慧開放科研教育平臺暨中國高校人工智慧科研教育高峰論壇”上,微軟亞洲研究院宣佈,攜手北京大學、中國科學技術大學、西安交通大學和浙江大學四所國內頂尖高校共建新一代人工智慧開放科研教育平臺,以推動中國人工智慧領域科研與教育事業的發展。作為由微軟亞洲研究院為該平臺提供的三大關鍵技術之一,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。

想要體驗、瞭解OpenPAI,請點選閱讀原文或直接訪問:

https://github.com/Microsoft/pai

你也許還想看

Tools for AI:以開發者為中心的全平臺人工智慧開發套件

● 實時人工智慧:微軟釋出Project Brainwave預覽版

● 微軟Build大會為開發者全面展現智慧雲與智慧邊緣計算新機遇

相關文章