係統粉 > IT資訊 > 微軟資訊

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功

發布時間:2019-12-31    瀏覽數:
機器之心報道

項目作者:微軟NNI團隊
參與:思源、一鳴

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(1)


根據 GitHub 項目上的介紹,NNI(Neural Network Intelligence)意圖幫助用戶使用自動機器學習算法、幫助進行算法加速、實現更好的超參數、神經架構和模型壓縮,以及進行平台部署。大約一周前,這一開源項目更新到了 1.2 版本,並有了一個中文的官方文檔。

項目地址:https://github.com/microsoft/nni

從觀察來看,NNI 是相當全麵的 AutoML 庫了,支持很多模型、部署環境、框架和庫,也提供了很多工具和數據集。不僅如此,除了使用 CLI 進行操作之外,還提供了可視化界麵。

NNI 庫特性有什麼

根據微軟 NNI 項目文檔頁麵,我們可以了解到該項目希望自動設計並調優神經網絡架構、複雜係統的參數等。NNI 擁有如下非常優秀的特性。

NNI (Neural Network Intelligence) 是一個工具包,可有效的幫助用戶設計並調優機器學習模型的神經網絡架構,複雜係統的參數(如超參)等。NNI 的特性包括:易於使用,可擴展,靈活,高效。

易於使用:NNI 可通過 pip 安裝,隻需要在代碼中添加幾行,就可以利用 NNI 來調優超參數與模型架構。可擴展:調優超參或網絡結構通常需要大量的計算資源。NNI 在設計時就支持了多種不同的計算資源,如遠程服務器組、OpenPAI 和 Kubernetes 等訓練平台。靈活:除了內置的算法,NNI 中還可以輕鬆集成自定義的超參調優算法、神經網絡架構搜索算法、提前終止算法等等。還可以將 NNI 連接到更多的訓練平台上,如雲計算虛擬機集群、Kubernetes 服務等等。高效:NNI 在係統及算法級別上不停地優化,例如可通過 Trial 早期的反饋來加速調優過程。

下圖顯示了 NNI 的體係結構:

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(2)


在 NNI 中,Experiment 指搜索最優超參組合的任務,它的運行過程可以分為:Tuner 接收搜索空間並生成配置;配置被提交到訓練平台;執行結果返回 Tuner。在每次執行超參搜索時,我們隻需要定義搜索空間,就能利用 NNI 內置的 Tuner/Assessor 以及訓練平台搜索最好的超參組合。

這樣的搜索三步走可以展示為:

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(3)


NNI 庫的廣泛支持

從功能上,NNI 庫具有命令行(NNICTL)和可視化界麵(NNI Board)兩個部分,用戶可以使用它們進行管理。在 NNI 中,它內置了自動機器學習算法,並為流行的訓練平台提供了很多支持。

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(4)


具體而言,NNI 支持各種深度學習框架、機器學習庫、很多機器學習算法(如超參調優搜索、神經架構搜索、模型剪枝和壓縮、特征工程等)。除了這些之外,NNI 庫還對部署環境進行了支持,不論是本地、遠程還是基於 Kubernetes 平台都可以使用。

完整的支持功能列表如下:

長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(5)


長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+煉金基本功(6)


正確的使用姿勢

在 NNI 的整個架構中,自動模型壓縮、自動特征工程都非常吸引人,但下麵我們主要展示如何三步走搜索模型超參與架構。

超參搜索 超參搜索是 NNI 最核心、基本的功能,其中提供了許多流行的自動調優算法(Tuner)以及提前終止算法(Assessor)。這裏我們可以通過 MNIST 展示如何使用 NNI 搜索最優超參。

首先對於一般的 MNIST 建模,它的主要過程可以描述為:

NNI 項目中使用的是論文 Efficient Neural Architecture Search via Parameter Sharing 中的實現。使用的 py 文件可以在相關文件夾中找到。

目前項目仍在進一步開發的過程中,項目作者表示,希望有更多的誌願者加入到 NNI 的開源工作中,貢獻新的代碼和模型。

上一篇:Chromium內核Edge體驗:微軟有史以來最好用的瀏覽器 下一篇:索尼與微軟次世代主機GPU配置泄露,運算性能提升明顯

相關資訊

最新熱門應用

電腦問答