當前位置:係統粉 >   IT資訊 >   微軟資訊 >  上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解

上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解

時間:2019-12-26 來源:互聯網 瀏覽量:

2018年9月,微軟亞洲研究院發布了第一版 NNI (Neural Network Intelligence) ,目前已在 GitHub 上獲得 3.8K 星,成為最熱門的自動機器學習(AutoML)開源項目之一。

作為為研究人員和算法工程師量身定製的自動機器學習工具和框架,NNI 在過去一年中不斷迭代更新,我們發布了穩定 API 的 1.0 版本,並且不斷將最前沿的算法加入其中,加強對各種分布式訓練環境的支持。

最新版本的 NNI 對機器學習生命周期的各個環節做了更加全麵的支持,包括特征工程、神經網絡架構搜索(NAS)、超參調優和模型壓縮在內的步驟,你都能使用自動機器學習算法來完成。

無論你是剛剛入門機器學習的小白,還是身經百戰的“調參大法師”,NNI 都能助你一臂之力。在這篇文章中,我們會全方位解讀 NNI 最新版本中的各項功能,讓大家了解這個簡單易用的自動機器學習工具。


上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(1)


概述

自動機器學習是近年來火熱的應用和研究方向,各種自動機器學習工具也層出不窮,它們各有優點與局限性。有的聚焦於算法,但不支持分布式訓練;有的功能強大,但沒有易用的用戶界麵,學習成本較高;有的隻支持特定領域,不提供通用功能;還有的隻能在雲端使用。

微軟自動深度學習工具 NNI 具備以下優勢:

• 支持多種框架:提供基於 Python 的 SDK,支持 PyTorch、TensorFlow、scikit-learn、LightGBM 等主流框架和庫;

• 支持多種訓練平台:除在本機直接運行外,還能通過 SSH 調度一組 GPU 服務器,或通過 FrameworkController、KubeFlow、OpenPAI 等在 Kubernetes 下調度大規模集群;

• 支持機器學習生命周期中的多環節:特征工程、神經網絡架構搜索(NAS)、超參調優和模型壓縮等;

• 提供易用的命令行工具和友好的 WEB 用戶界麵;

• 大量的示例能幫助你很快上手;

• 最後劃重點,NNI的所有文檔都有中文版!

完整中文文檔請參考:https://aka.ms/nnizh

上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(2)

自動機器學習工具對比


NNI 入門與超參優化

機器學習和人工智能通過近些年的厚積薄發,已經形成不少經典的機器學習算法和深度學習網絡,這些算法各有特點,在不同的數據集上所需要的超參也有所不同。而自動機器學習中的超參優化就是為了解決這個問題,通過啟動多個實例來找到調優結果較好的組合。

NNI 的超參調優功能就是為這樣的場景準備的。在超參搜索算法上,NNI 不僅提供了 TPE、SMAC、進化算法等優秀算法,還提供了遍曆、批處理、隨機、Hyperband 等十多種算法。另外,還支持自動終止低效實例,加速學習過程。

NNI 的安裝基於 Python pip 命令,“pip install nni”即可一步完成。

NNI 的使用也非常簡單:首先,定義好需要搜索的超參空間;然後,在需要調參的網絡啟動之前,通過 NNI 的接口讀取參數並在訓練中將精確度等指標傳入 NNI;最後,配置好要使用的調參算法等,即可開始。

具體過程可參考入門教程:https://aka.ms/nnizq

你也可以在這裏找到所有示例:https://aka.ms/nnize

上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(3)

一圖了解 NNI 使用

NNI 的超參調優不僅能用於機器學習,對於各類係統、數據庫的繁雜參數都可以根據實際場景進行有針對性的調優。使用過程和超參調優非常類似,通過 Python 為係統傳入不同的參數配置,然後將確定的調優指標(如讀寫速度,磁盤空間大小等)回調給 NNI 即可。

更多信息請訪問:https://aka.ms/nnizrd

上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(4)

NNI 在運行中,可隨時通過界麵了解進度


上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(5)

分析超參之間的關聯關係,快速發現規律

自動特征工程

特征工程是應用經典機器學習算法的前置步驟,通過特征工程,能讓機器學習過程更快得到較好的結果。

前麵介紹的 NNI 的超參調優功能,可直接應用於特征增強、自動特征選擇等特征工程中的各個子領域。為使新手輕鬆上手,NNI 還內置了基於梯度和決策樹的自動特征選擇算法,同時還提供了擴展其它算法的接口。

NNI 團隊還對自動特征工程的效果進行了對比,在流行的 colon-cancer、gisette、rcv1、neews20.binary、real-sim 等數據集上進行了測試。我們發現如果在成千上萬個特征中僅選擇前20個,決策樹基本都能取得較好的結果,如果選出更多特征,會得到更好的效果。

更多信息請訪問:https://aka.ms/nnizfe

神經網絡結構搜索(NAS)

神經網絡搜索(Neural Architecture Search,簡稱 NAS)通過自動搜索網絡結構來獲得較好的性能,在今年湧現了大量研究成果。NAS 算法多種多樣,實現也各不相同。

為了促進 NAS 的創新,我們對 NAS 算法抽象與實現進行了探索,讓用戶不僅能在自己的數據集上直接應用算法,還能很容易地橫向比較不同 NAS 算法的效果。

NNI 中實現了 ENAS、DARTS、P-DARTS 算法,並提供了 one-shot 算法的接口。另外,還支持了網絡模態(Network Morphism)這樣的經典搜索方法。

算法介紹及用法:https://aka.ms/nnizn

模型壓縮

隨著深度學習的發展,模型也越來越大。雖然精確度有了很大的提升,但較大的模型尺寸不僅會影響推理速度,還對部署的硬件要求較高。因此,模型壓縮也是一個熱門話題。

主要的模型壓縮算法可分為兩類,一類是壓縮網絡結構的剪枝算法,另一類是減小模型精度的量化算法。NNI 目前提供了 AGP、L1Filter、Slim、Lottery Ticket、FPGM、QAT、DoReFa 等9種模型壓縮算法。用戶也可根據需要,通過 NNI 的模型壓縮接口來實現自己的壓縮算法。

相關算法介紹及用法:https://aka.ms/nnizc

結語


隨著人工智能的發展,理論和建模方法也始終在不斷演進。立足於研究與應用的最前線,我們希望將最好用的工具提供給每一位研究員和算法工程師,加速人工智能領域的發展進步。

2020年,我們將加速創新,力圖讓 NNI 能夠提供全生命周期的自動化框架、更豐富的算法、更高效的分布式調參效率,進一步提升 NNI 的易用性和用戶體驗。

作為一個開源項目,我們期待大家為 NNI 添加新算法、功能、示例,也希望大家為 NNI 提出建議、報告問題,讓我們為大家提供更好的工具,如果您有任何反饋與建議,歡迎在 GitHub 社區中告知我們。

NNI 的 GitHub 社區:https://aka.ms/nniis

掃描下方二維碼或點擊閱讀原文,訪問 NNI 的中文文檔。

上新了,NNI!微軟開源自動機器學習工具NNI概覽及新功能詳解(6)

NNI 中文文檔鏈接:https://aka.ms/nnizh

我要分享:

最新熱門遊戲

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航