項目 | 內容 |
課程連接 | 人工智能實戰 2019(北京航空航天大學) |
第七次做業要求 | 第七次做業:學習OpenPAI和NNI的使用 |
個人課程目標 | 熟練掌握python語言,神經網絡相關應用,實操項目 |
本次做業的幫助 | 學習OpenPAI和NNI的使用 |
個人github帳戶 | linlixuan |
1.學習OpenPAI的使用:
學習文檔,並提交OpenPAI job,將體驗心得造成博客,選題方向能夠是:python
2.學習NNI的使用
學習文檔,並使用NNI進行調參或架構調整,將體驗心得造成博客,選題方向能夠是:git
隨着人工智能技術的快速發展,各類深度學習框架層出不窮,爲了提升效率,更好地讓人工智能快速落地,不少企業都很關注深度學習訓練的平臺化問題。例如,如何提高GPU等硬件資源的利用率,如何節省硬件投入成本,如何支持算法工程師更方便的應用各種深度學習技術,從繁雜的環境運維等工做中解脫出來。OpenPAI爲深度學習提供一個深度定製和優化的人工智能集羣管理平臺,讓人工智能堆棧變得簡單、快速、可擴展。github
● 爲深度學習量身定作,可擴展支撐更多AI和大數據框架算法
經過創新的PAI運行環境支持,幾乎全部深度學習框架如CNTK、TensorFlow、PyTorch等無需修改便可運行;其基於Docker的架構則讓用戶能夠方便地擴展更多AI與大數據框架。docker
● 容器與微服務化,讓AI流水線實現DevOps服務器
OpenPAI 100%基於微服務架構,讓AI平臺以及開發便於實現DevOps的開發運維模式。網絡
● 支持GPU多租,可統籌集羣資源調度與服務管理能力架構
在深度學習負載下,GPU逐漸成爲資源調度的一等公民,OpenPAI提供了針對GPU優化的調度算法,豐富的端口管理,支持Virtual Cluster多租機制,可經過Launcher Server爲服務做業的運行保駕護航。框架
● 提供豐富的運營、監控、調試功能,下降運維複雜度運維
PAI爲運營人員提供了硬件、服務、做業的多級監控,同時開發者還能夠經過日誌、SSH等方便調試做業。
● OpenPAI的架構以下:用戶經過Web Portal調用REST Server的API提交做業(Job)和監控集羣,其它第三方工具也可經過該API進行任務管理。隨後Web Portal與Launcher交互,以執行各類做業,再由Launcher Server處理做業請求並將其提交至Hadoop YARN進行資源分配與調度。能夠看到,OpenPAI給YARN添加了GPU支持,使其能將GPU做爲可計算資源調度,助力深度學習。其中,YARN負責做業的管理,其它靜態資源(下圖藍色方框所示)則由Kubernetes進行管理。
● OpenPAI平臺操做簡單,可是對於沒有提供好集羣IP的用戶來講須要用docker安裝PAI,過程稍複雜。線上訓練須要排隊,掉線後沒法及時準確恢復。
NNI (Neurol Network Intelligence) 是微軟開源的自動機器學習工具。與當前的各類自動機器學習服務或工具相比,有很是獨特的價值。
● NNI 支持私有部署。整個部署也很簡單,使用 pip 便可完成安裝。
支持私有部署。雲服務中的自動機器學習直接提供了自動機器學習的服務,不只包含了自動機器學習的功能,也包含了算力。若是團隊或我的已經有了很強的算力資源,就須要支持私有部署的自動學習工具了。
● 分佈式調度。NNI 能夠在單機上完成試驗,也支持如下兩種分佈式調度方案:
GPU 遠程服務器。經過 SSH 控制多臺 GPU 服務器協同完成試驗,並可以計劃每一個試驗所須要的 GPU 的數量。
OpenPAI。經過 OpenPAI,NNI 的試驗能夠在獨立的 Docker 中運行,支持多樣的實驗環境。在計算資源規劃上,不只能指定 GPU 資源,還能制定 CPU,內存資源。
超參搜索的直接支持。當前,大部分自動機器學習服務與工具都是在某個任務上使用,好比圖片分類。這樣的好處是,普通用戶只要有標記數據,就能訓練出一個高質量的平臺,不須要任何模型訓練方面的知識。但這須要對每一個訓練任務進行定製,將模型訓練的複雜性包裝起來。
● 與大部分現有的自動機器學習服務與工具不一樣,NNI 須要用戶提供訓練代碼,並指定超參的搜索範圍。這樣的好處在於,NNI 幾乎是通用的工具,任何訓練任務均可以使用 NNI 來進行超參搜索。但另外一方面,NNI 的通用性,也帶來了必定的使用門檻,使用 NNI 須要有基本的模型訓練的經驗。