上次開場白說明了NNI最基本的Hyper-parameters(超參)調整,其實只是其中的功能之一。NNI尚有其他的特性及核心功能。
NNI的特性:
NNI 是一個工具包,可有效的幫助使用者設計並調優機器學習模型的神經網路架構,複雜系統的引數(如超參)等。NNI 的特性包括:易於使用,可擴充套件,靈活,高效
• 易於使用:NNI 可通過 pip 安裝,只需要在程式碼中新增幾行,就可以利用 NNI 來調優超引數與模型架構。
• 可擴充套件:調優超參或網路結構通常需要大量的計算資源。NNI 在設計時就支援了多種不同的計算資源,如遠端 伺服器組、OpenPAI 和 Kubernetes 等訓練平臺。
• 靈活:除了內建的演算法,NNI 中還可以輕鬆整合自定義的超參調優演算法、神經網路架構搜尋演算法、提前終止演算法等等。還可以將 NNI 連線到更多的訓練平臺上,如雲計算虛擬機器叢集、Kubernetes 服務等等。
高效:NNI 在系統及演算法級別上不停地優化,例如可通過 Trial 早期的反饋來加速調優過程
核心功能:
• 超參數優化:最核心的功能,提供了許多流行的自動調優演算法和提前終止演算法。
• 通用NAS框架:指定候選的架構,並且可以為NAS的研究人員提供了簡單的介面,便於開發新的NAS演算法。NNI支援多種one-shot NAS演算法,使用這些演算法不需要啟動NNI experiment,只需直接運行。 但是如果需要調整超參數,就需要啟動NNI experiement。
• 模型壓縮:壓縮后的網路通常具有更小的模型尺寸和更快的推理速度, 模型性能也不會有明顯的下降。NNI 上的模型壓縮包括剪枝和量化演算法
自動特徵工程:為下游任務找到最有效的特徵。