微軟開源工具包NNI:自動特征工程、NAS、超參調優、模型壓縮


NNI (Neural Network Intelligence) 是一個輕量但強大的工具包,幫助用戶 自動的進行  特征工程神經網絡架構搜索,  超參調優以及 模型壓縮

NNI 管理自動機器學習 (AutoML) 的 Experiment, 調度運行 由調優算法生成的 Trial 任務來找到最好的神經網絡架構和/或超參,支持 各種訓練環境,如 本機遠程服務器OpenPAIKubeflow基於 K8S 的 FrameworkController(如,AKS 等)DLWorkspace (又稱 DLTS)AML (Azure Machine Learning) 以及其它雲服務。

使用場景

  • 想要在自己的代碼、模型中試驗不同的自動機器學習算法
  • 想要在不同的環境中加速運行自動機器學習。
  • 想要更容易實現或試驗新的自動機器學習算法的研究員或數據科學家,包括:超參調優算法,神經網絡搜索算法以及模型壓縮算法。
  • 在機器學習平台中支持自動機器學習

NNI 功能一覽

NNI 提供命令行工具以及友好的 WebUI 來管理訓練的 Experiment。 通過可擴展的 API,可定制自動機器學習算法和訓練平台。 為了方便新用戶,NNI 內置了最新的自動機器學習算法,並為流行的訓練平台提供了開箱即用的支持。

下表中,包含了 NNI 的功能,同時在不斷地增添新功能,也非常希望您能貢獻其中。

  框架和庫 算法 訓練平台
內置
    • 支持的框架
      • PyTorch
      • Keras
      • TensorFlow
      • MXNet
      • Caffe2
更多...
    • 支持的庫
      • Scikit-learn
      • XGBoost
      • LightGBM
更多...
更多...
超參調優
窮舉搜索
啟發式搜索
貝葉斯優化
基於強化學習
神經網絡架構搜索 模型壓縮
剪枝
量化
特征工程(測試版) 提前終止算法
參考

安裝

安裝

NNI 支持並在 Ubuntu >= 16.04, macOS >= 10.14.1, 和 Windows 10 >= 1809 通過了測試。 在 `python 64 位 >= 3.6` 的環境中,只需要運行 `pip install` 即可完成安裝。

Linux 或 macOS
python3 -m pip install --upgrade nni
Windows
python -m pip install --upgrade nni

如果想要嘗試最新代碼,可通過源代碼安裝 NNI

Linux 和 macOS 下 NNI 系統需求參考這里,Windows 參考這里

注意:

  • 如果遇到任何權限問題,可添加 --user 在用戶目錄中安裝 NNI。
  • 目前,Windows 上的 NNI 支持本機,遠程和 OpenPAI 模式。 強烈推薦使用 Anaconda 或 Miniconda 在 Windows 上安裝 NNI
  • 如果遇到如 Segmentation fault 這樣的任何錯誤請參考 常見問題。 Windows 上的常見問題,參考在 Windows 上使用 NNI

驗證安裝

以下示例基於 TensorFlow 1.x 構建。 確保運行環境中使用的是 TensorFlow 1.x

  • 通過克隆源代碼下載示例。

    git clone -b v2.0 https://github.com/Microsoft/nni.git
  • 運行 MNIST 示例。

    Linux 或 macOS
    nnictl create --config nni/examples/trials/mnist-tfv1/config.yml
    Windows
    nnictl create --config nni\examples\trials\mnist-tfv1\config_windows.yml
  • 在命令行中等待輸出 INFO: Successfully started experiment! 此消息表明 Experiment 已成功啟動。 通過命令行輸出的 Web UI url 來訪問 Experiment 的界面。

    INFO: Starting restful server...
    INFO: Successfully started Restful server!
    INFO: Setting local config...
    INFO: Successfully set local config!
    INFO: Starting experiment...
    INFO: Successfully started experiment!
    -----------------------------------------------------------------------
    The experiment id is egchD4qy
    The Web UI urls are: http://223.255.255.1:8080   http://127.0.0.1:8080
    -----------------------------------------------------------------------
    
    You can use these commands to get more information about the experiment
    -----------------------------------------------------------------------
      commands                       description
    1. nnictl experiment show        show the information of experiments
    2. nnictl trial ls               list all of trial jobs
    3. nnictl top                    monitor the status of running experiments
    4. nnictl log stderr             show stderr log content
    5. nnictl log stdout             show stdout log content
    6. nnictl stop                   stop an experiment
    7. nnictl trial kill             kill a trial job by id
    8. nnictl --help                 get help information about nnictl
    -----------------------------------------------------------------------
    
  • 在瀏覽器中打開 Web UI 地址,可看到下圖的 Experiment 詳細信息,以及所有的 Trial 任務。 查看這里的更多頁面示例。
     

文檔

貢獻

本項目歡迎任何貢獻和建議。 大多數貢獻都需要你同意參與者許可協議(CLA),來聲明你有權,並實際上授予我們有權使用你的貢獻。 有關詳細信息,請訪問 https://cla.microsoft.com

當你提交拉取請求時,CLA 機器人會自動檢查你是否需要提供 CLA,並修飾這個拉取請求(例如,標簽、注釋)。 只需要按照機器人提供的說明進行操作即可。 CLA 只需要同意一次,就能應用到所有的代碼倉庫上。

該項目采用了 Microsoft 開源行為准則 。 有關詳細信息,請參閱行為守則常見問題解答或聯系 opencode@microsoft.com 咨詢問題或評論。

熟悉貢獻協議后,即可按照 NNI 開發人員教程,創建第一個 PR =) 了:

其它代碼庫和參考

經作者許可的一些 NNI 用法示例和相關文檔。

外部代碼庫

相關文章

反饋

 

相關項目

以探索先進技術和開放為目標,Microsoft Research (MSR) 還發布了一些相關的開源項目。

  • OpenPAI:作為開源平台,提供了完整的 AI 模型訓練和資源管理能力,能輕松擴展,並支持各種規模的私有部署、雲和混合環境。
  • FrameworkController:開源的通用 Kubernetes Pod 控制器,通過單個控制器來編排 Kubernetes 上所有類型的應用。
  • MMdnn:一個完整、跨框架的解決方案,能夠轉換、可視化、診斷深度神經網絡模型。 MMdnn 中的 "MM" 表示 model management(模型管理),而 "dnn" 是 deep neural network(深度神經網絡)的縮寫。
  • SPTAG : Space Partition Tree And Graph (SPTAG) 是用於大規模向量的最近鄰搜索場景的開源庫。

我們鼓勵研究人員和學生利用這些項目來加速 AI 開發和研究。

 

原文鏈接:https://nni.readthedocs.io/zh/latest/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM