NNI 簡(jiǎn)介
NNI (Neural Network Intelligence) 是一個(gè)輕量級(jí)但功能強(qiáng)大的自動(dòng)機(jī)器學(xué)習(xí)(AutoML)工具包秃踩,可幫助用戶自動(dòng)化特征工程、神經(jīng)架構(gòu)搜索业筏、超參數(shù)調(diào)優(yōu)和模型壓縮憔杨,并支持單機(jī)、本地多機(jī)蒜胖、云等不同的運(yùn)行環(huán)境消别。
NNI 的主要特性
NNI 的特性主要包括:易于使用,可擴(kuò)展台谢,靈活寻狂,高效。
-
易于使用:NNI 可通過(guò)
pip
安裝朋沮。 只需要在代碼中添加幾行蛇券,就可以利用 NNI 來(lái)調(diào)優(yōu)參數(shù)》兀可使用命令行工具或 Web 界面來(lái)查看Experiment
纠亚。 -
可擴(kuò)展:調(diào)優(yōu)超參或網(wǎng)絡(luò)結(jié)構(gòu)通常需要大量的計(jì)算資源。NNI 在設(shè)計(jì)時(shí)就支持了多種不同的計(jì)算資源筋夏,如遠(yuǎn)程服務(wù)器組蒂胞,訓(xùn)練平臺(tái)(如:OpenPAI,Kubernetes)等等条篷。 根據(jù)您配置的訓(xùn)練平臺(tái)的能力骗随,可以并行運(yùn)行數(shù)百個(gè)
Trial
。 - 靈活:除了內(nèi)置的算法赴叹,NNI 中還可以輕松集成自定義的超參調(diào)優(yōu)算法鸿染,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法,提前終止算法等等乞巧。 還可以將 NNI 連接到更多的訓(xùn)練平臺(tái)上涨椒,如云環(huán)境中的虛擬機(jī)集群,Kubernetes 服務(wù)等等摊欠。 此外丢烘,NNI 還可以連接到外部環(huán)境中的特殊應(yīng)用和模型上。
- 高效:NNI 在系統(tǒng)及算法級(jí)別上不斷地進(jìn)行優(yōu)化些椒。 例如:通過(guò)早期的反饋來(lái)加速調(diào)優(yōu)過(guò)程播瞳。
NNI 的主要概念
-
Experiment(實(shí)驗(yàn)): 表示一次任務(wù),例如免糕,尋找模型的最佳超參組合赢乓,或最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)等忧侧。它由
Trial
和自動(dòng)機(jī)器學(xué)習(xí)算法
所組成。 - Search Space(搜索空間):是模型調(diào)優(yōu)的范圍牌芋。 例如蚓炬,超參的取值范圍。
-
Configuration(配置):配置是
搜索空間的實(shí)例化
躺屁,從搜索空間中固定下來(lái)一定的超參數(shù)肯夏,每個(gè)超參都會(huì)有特定的值。 -
Trial(嘗試):是一次獨(dú)立的嘗試犀暑,它會(huì)使用某組配置(例如驯击,一組超參值,或者特定的神經(jīng)網(wǎng)絡(luò)架構(gòu))耐亏。 Trial 會(huì)基于提供的
配置
來(lái)運(yùn)行徊都。 -
Tuner(調(diào)優(yōu)器):一種自動(dòng)機(jī)器學(xué)習(xí)算法,會(huì)為下一個(gè)
Trial
生成新的配置广辰。 新的Trial
會(huì)使用這組配置來(lái)運(yùn)行暇矫。 -
Assessor(評(píng)估器):分析
Trial
的中間結(jié)果(例如,定期評(píng)估數(shù)據(jù)集上的精度)择吊,來(lái)確定Trial
是否應(yīng)該被提前終止李根。 -
訓(xùn)練平臺(tái):是
Trial
的執(zhí)行環(huán)境。 根據(jù)Experiment
的配置干发,可以是本機(jī)朱巨,遠(yuǎn)程服務(wù)器組,或其它大規(guī)模訓(xùn)練平臺(tái)(如OpenPAI
枉长,Kubernetes
等)。
NNI 體系結(jié)構(gòu)
NNI體系結(jié)構(gòu)如上圖所示琼讽,其中包括:
- NNI Controller(nnictl): 這是個(gè)命令行工具必峰,用于控制 Web 服務(wù)器,和其他管理功能钻蹬,用戶可以使用這個(gè)命令來(lái)進(jìn)行管理吼蚁。比如,啟動(dòng) Experiment问欠。
-
NNI Core: 這是 NNI 的核心肝匆,實(shí)現(xiàn)了
Web UI
,nnimanager
,訓(xùn)練服務(wù)等核心功能顺献。當(dāng) Experiment 出現(xiàn)嚴(yán)重錯(cuò)誤時(shí)旗国,從它的日志中才能找到原因。(例如注整,Web 界面無(wú)法打開(kāi)能曾,或者訓(xùn)練平臺(tái)失敹认酢) -
Advisor: Advisor是 NNI 的超參數(shù)調(diào)整系統(tǒng),包括
Tuner
和Assessor
寿冕,分別負(fù)責(zé)生成下一個(gè)trial
和評(píng)估該trial
蕊程。 -
訓(xùn)練平臺(tái):右側(cè)的訓(xùn)練平臺(tái)可以是
本機(jī)/遠(yuǎn)程服務(wù)器/OpenPAI/Kubernetes
等,可以將許多trial
進(jìn)行分配到各個(gè)平臺(tái)中驼唱,完成一次嘗試(trial)藻茂。
從上圖中,我們也看到了 NNI Experiment 的運(yùn)行過(guò)程如下:
- Tuner 接收搜索空間并生成配置玫恳。
- 這些配置將被提交到訓(xùn)練平臺(tái)辨赐,如本機(jī),遠(yuǎn)程服務(wù)器組或訓(xùn)練集群纽窟。
- 執(zhí)行的性能結(jié)果會(huì)被返回給 Tuner肖油。
- 然后,再生成并提交新的配置臂港。
每次 Experiment 執(zhí)行時(shí)森枪,用戶只需要定義搜索空間,改動(dòng)幾行代碼审孽,就能利用 NNI 內(nèi)置的 Tuner/Assessor 和訓(xùn)練平臺(tái)來(lái)搜索最好的超參組合以及神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)县袱。 基本上分為三步:
- 步驟一:定義搜索空間
- 步驟二:改動(dòng)模型代碼
- 步驟三:定義實(shí)驗(yàn)配置
NNI 的核心功能
NNI 提供了并行運(yùn)行多個(gè)實(shí)例以查找最佳參數(shù)組合的能力。此功能可用于各種領(lǐng)域佑力,例如式散,為深度學(xué)習(xí)模型查找最佳超參數(shù),或查找具有真實(shí)數(shù)據(jù)的數(shù)據(jù)庫(kù)和其他復(fù)雜系統(tǒng)的最佳配置打颤。
NNI 還希望提供用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的算法工具包暴拄,尤其是神經(jīng)體系結(jié)構(gòu)搜索(NAS)算法,模型壓縮算法和特征工程算法编饺。
超參數(shù)調(diào)優(yōu)
這是 NNI 最核心乖篷、最基本的功能,其中提供了許多流行的自動(dòng)調(diào)優(yōu)算法(即 Tuner) 以及提前終止算法(即 Assessor)透且。
NNI 內(nèi)置的 Tuner
NNI 能用簡(jiǎn)單快速的方法來(lái)配置超參調(diào)優(yōu)算法撕蔼,稱之為 Tuner。
Tuner 從 Trial 中接收指標(biāo)結(jié)果秽誊,來(lái)評(píng)估一組超參或網(wǎng)絡(luò)結(jié)構(gòu)的性能鲸沮。 然后 Tuner 會(huì)將下一組超參或網(wǎng)絡(luò)結(jié)構(gòu)的配置發(fā)送給新的 Trial。
NNI 內(nèi)置的自動(dòng)調(diào)優(yōu)算法如下表格所示:
概述 | 算法簡(jiǎn)介 |
---|---|
TPE | Tree-structured Parzen Estimator (TPE) 是一種 sequential model-based optimization(SMBO锅论,即基于序列模型優(yōu)化)的方法讼溺。 SMBO 方法根據(jù)歷史指標(biāo)數(shù)據(jù)來(lái)按順序構(gòu)造模型,來(lái)估算超參的性能棍厌,隨后基于此模型來(lái)選擇新的超參肾胯。 參考論文 |
Random Search(隨機(jī)搜索) | 在超參優(yōu)化時(shí)竖席,隨機(jī)搜索算法展示了其驚人的簡(jiǎn)單和效果。 建議當(dāng)不清楚超參的先驗(yàn)分布時(shí)敬肚,采用隨機(jī)搜索作為基準(zhǔn)毕荐。 參考論文 |
Anneal(退火) | 這種簡(jiǎn)單的退火算法從先前的采樣開(kāi)始,會(huì)越來(lái)越靠近發(fā)現(xiàn)的最佳點(diǎn)取樣艳馒。 此算法是隨機(jī)搜索的簡(jiǎn)單變體憎亚,利用了反應(yīng)曲面的平滑性。 退火率不是自適應(yīng)的弄慰。 |
Na?ve Evolution(樸素進(jìn)化) | Na?ve Evolution(樸素進(jìn)化算法)來(lái)自于 Large-Scale Evolution of Image Classifiers第美。 它會(huì)基于搜索空間隨機(jī)生成一個(gè)種群。 在每一代中陆爽,會(huì)選擇較好的結(jié)果什往,并對(duì)其下一代進(jìn)行一些變異(例如,改動(dòng)一個(gè)超參慌闭,增加或減少一層)别威。 樸素進(jìn)化算法需要很多次的 Trial 才能有效,但它也非常簡(jiǎn)單驴剔,也很容易擴(kuò)展新功能省古。 參考論文 |
SMAC | SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型優(yōu)化方法)丧失。 它會(huì)利用使用過(guò)的突出的模型(高斯隨機(jī)過(guò)程模型)豺妓,并將隨機(jī)森林引入到SMBO中,來(lái)處理分類參數(shù)布讹。 SMAC 算法包裝了 Github 的 SMAC3琳拭。 注意:SMAC 需要通過(guò) pip install nni[SMAC] 命令來(lái)安裝。 參考論文 代碼倉(cāng)庫(kù)
|
Batch tuner(批處理) | Batch Tuner 能讓用戶簡(jiǎn)單的提供幾組配置(如描验,超參選項(xiàng)的組合)臀栈。 當(dāng)所有配置都完成后,Experiment 即結(jié)束挠乳。 Batch Tuner 僅支持 choice 類型。 |
Grid Search(遍歷) | 網(wǎng)格搜索會(huì)窮舉定義在搜索空間文件中的所有超參組合姑躲。 遍歷搜索可以使用的類型有 choice, quniform, randint睡扬。 |
Hyperband | Hyperband 試圖用有限的資源來(lái)探索盡可能多的組合,并發(fā)現(xiàn)最好的結(jié)果黍析。 基本思想是生成許多配置卖怜,并通過(guò)少量的 Trial 來(lái)運(yùn)行一部分。 一半性能不好的配置會(huì)被拋棄阐枣,剩下的部分與新選擇出的配置會(huì)進(jìn)行下一步的訓(xùn)練马靠。 數(shù)量的多少對(duì)資源約束非常敏感(例如奄抽,分配的搜索時(shí)間)。 參考論文 |
Network Morphism | 網(wǎng)絡(luò)模態(tài)(Network Morphism)提供自動(dòng)搜索深度學(xué)習(xí)體系結(jié)構(gòu)的功能甩鳄。 它會(huì)繼承父網(wǎng)絡(luò)的知識(shí)逞度,來(lái)生成變形的子網(wǎng)絡(luò)。 包括深度妙啃、寬度档泽、跳連接等變化。 然后使用歷史的架構(gòu)和指標(biāo)揖赴,來(lái)估計(jì)子網(wǎng)絡(luò)的值阎肝。 然后會(huì)選擇最有希望的模型進(jìn)行訓(xùn)練铭拧。 參考論文 |
Metis Tuner | 大多數(shù)調(diào)參工具僅僅預(yù)測(cè)最優(yōu)配置,而 Metis 的優(yōu)勢(shì)在于有兩個(gè)輸出:(a) 最優(yōu)配置的當(dāng)前預(yù)測(cè)結(jié)果焊虏, 以及 (b) 下一次 Trial 的建議。 它不進(jìn)行隨機(jī)取樣疏尿。 大多數(shù)工具假設(shè)訓(xùn)練集沒(méi)有噪聲數(shù)據(jù)褥琐,但 Metis 會(huì)知道是否需要對(duì)某個(gè)超參重新采樣敌呈。 參考論文 |
BOHB | BOHB 是 Hyperband 算法的后續(xù)工作磕洪。 Hyperband 在生成新的配置時(shí)析显,沒(méi)有利用已有的 Trial 結(jié)果签赃,而本算法利用了 Trial 結(jié)果。 BOHB 中箩绍,HB 表示 Hyperband荞下,BO 表示貝葉斯優(yōu)化(Byesian Optimization)仰税。 BOHB 會(huì)建立多個(gè) TPE 模型陨簇,從而利用已完成的 Trial 生成新的配置河绽。 參考論文 |
GP Tuner | Gaussian Process(高斯過(guò)程) Tuner 是序列化的基于模型優(yōu)化(SMBO)的方法,并使用了高斯過(guò)程來(lái)替代苟跪。 參考論文, Github 倉(cāng)庫(kù) |
PPO Tuner | PPO Tuner 是基于 PPO 算法的強(qiáng)化學(xué)習(xí) Tuner件已。 參考論文 |
PBT Tuner | PBT Tuner 是一種簡(jiǎn)單的異步優(yōu)化算法篷扩,在固定的計(jì)算資源下,它能有效的聯(lián)合優(yōu)化一組模型及其超參來(lái)最大化性能茉盏。 參考論文 |
NNI 內(nèi)置的 Assessor
為了節(jié)省計(jì)算資源,NNI 支持提前終止策略鸠姨,并且通過(guò)叫做 Assessor 的接口來(lái)執(zhí)行此操作。
Assessor 從 Trial 中接收中間結(jié)果享怀,并通過(guò)指定的算法決定此 Trial 是否應(yīng)該終止。 一旦 Trial 滿足了提前終止策略(這表示 Assessor 認(rèn)為最終結(jié)果不會(huì)太好)添瓷,Assessor 會(huì)終止此 Trial梅屉,并將其狀態(tài)標(biāo)志為 ==EARLY_STOPPED==
。
NNI 當(dāng)前支持的提前終止算法如下表格:
Assessor | 算法簡(jiǎn)介 |
---|---|
Medianstop | Medianstop 是一個(gè)簡(jiǎn)單的提前終止算法鳞贷。 如果嘗試 X 的在步驟 S 的最好目標(biāo)值比所有已完成嘗試的步驟 S 的中位數(shù)值明顯低,就會(huì)停止運(yùn)行嘗試 X搀愧。 參考論文 |
Curvefitting | Curve Fitting Assessor 是一個(gè) LPA (learning, predicting, assessing咱筛,即學(xué)習(xí)、預(yù)測(cè)饲趋、評(píng)估) 的算法堂污。 如果預(yù)測(cè)的 Trial X 在 step S 比性能最好的 Trial 要差,就會(huì)提前終止它龄砰。 此算法中采用了 12 種曲線來(lái)擬合精度曲線盟猖。 參考論文 |
通用 NAS 框架
此 NAS 框架可供用戶輕松指定候選的神經(jīng)體系結(jié)構(gòu),例如寝贡,可以為單個(gè)層指定多個(gè)候選操作(例如扒披,可分離的 conv、擴(kuò)張 conv)圃泡,并指定可能的跳過(guò)連接碟案。 NNI 將自動(dòng)找到最佳候選。 另一方面颇蜡,NAS 框架為其他類型的用戶(如价说,NAS 算法研究人員)提供了簡(jiǎn)單的接口,以實(shí)現(xiàn)新的 NAS 算法风秤。
NNI 通過(guò) Trial SDK
支持多種 one-shot(一次性) NAS 算法鳖目,如:ENAS、DARTS缤弦。 使用這些算法時(shí)领迈,不需要啟動(dòng) NNI Experiment。 在 Trial 代碼中加入算法,直接運(yùn)行即可狸捅。 如果要調(diào)整算法中的超參數(shù)衷蜓,或運(yùn)行多個(gè)實(shí)例,可以使用 Tuner 并啟動(dòng) NNI Experiment尘喝。
除了 one-shot NAS 外磁浇,NAS 還能以 NNI 模式運(yùn)行,其中每個(gè)候選的網(wǎng)絡(luò)結(jié)構(gòu)都作為獨(dú)立 Trial 任務(wù)運(yùn)行朽褪。 在此模式下置吓,與超參調(diào)優(yōu)類似,必須啟動(dòng) NNI Experiment 并為 NAS 選擇 Tuner缔赠。
模型壓縮
NNI 提供了一個(gè)易于使用的模型壓縮框架來(lái)壓縮深度神經(jīng)網(wǎng)絡(luò)衍锚,壓縮后的網(wǎng)絡(luò)通常具有更小的模型尺寸和更快的推理速度,模型性能也不會(huì)有明顯的下降橡淑。 NNI 上的模型壓縮包括剪枝和量化算法构拳。 這些算法通過(guò) NNI Trial SDK
提供 。 可以直接在 Trial 代碼中使用梁棠,并在不啟動(dòng) NNI Experiment 的情況下運(yùn)行 Trial 代碼置森。 用戶還可以使用 NNI 模型壓縮框架集成自定義的剪枝和量化算法。
自動(dòng)特征工程
自動(dòng)特征工程符糊,可以為下游任務(wù)找到最有效的特征凫海。 自動(dòng)特征工程通過(guò) NNI Trial SDK 支持,不必創(chuàng)建 NNI Experiment男娄, 只需在 Trial 代碼中加入內(nèi)置的自動(dòng)特征工程算法行贪,然后直接運(yùn)行 Trial 代碼。
自動(dòng)特征工程算法通常有一些超參模闲。 如果要自動(dòng)調(diào)整這些超參建瘫,可以利用 NNI 的超參數(shù)調(diào)優(yōu),即選擇調(diào)優(yōu)算法(即 Tuner)并啟動(dòng) NNI Experiment尸折。
安裝
通過(guò)pip安裝
python3 -m pip install --upgrade nni
通過(guò)源碼構(gòu)建
# 拉取NNI源碼并指定分支
git clone -b v2.0 https://github.com/Microsoft/nni.git
cd nni
# 設(shè)置環(huán)境變量
export NNI_RELEASE=2.0
# 構(gòu)建
python3 -m pip install --upgrade pip setuptools wheel
python3 setup.py clean --all
python3 setup.py build_ts
python3 setup.py bdist_wheel -p manylinux1_x86_64
python3 -m pip install dist/nni-2.0-py3-none-manylinux1_x86_64.whl
Docker安裝
# 拉取NNI鏡像
docker pull msranni/nni:v2.2
# 啟動(dòng)NNI容器
docker run -i -t -p 9090:8080 msranni/nni:v2.0
備注:
在Docer中運(yùn)行NNI的時(shí)候
如果直接使用 NNI 的官方鏡像
msranni/nni
來(lái)啟動(dòng) Experiment啰脚,可以直接使用nnictl
命令。 NNI 官方鏡像有最基礎(chǔ)的 Python 環(huán)境和深度學(xué)習(xí)框架实夹。如果使用自己的 Docker 鏡像橄浓,需要首先安裝 NNI, 如
python3 -m pip install --upgrade nni
亮航。
NNI 超參數(shù)調(diào)優(yōu)實(shí)驗(yàn)的簡(jiǎn)單示例
NNI 用來(lái)幫助超參調(diào)優(yōu)的偽代碼如下:
- 輸入: 搜索空間, Trial 代碼, 配置文件
- 輸出: 一組最優(yōu)的參數(shù)配置
1: For t = 0, 1, 2, ..., maxTrialNum,
2: hyperparameter = 從搜索空間選擇一組參數(shù)
3: final result = run_trial_and_evaluate(hyperparameter)
4: 返回最終結(jié)果給 NNI
5: If 時(shí)間達(dá)到上限,
6: 停止實(shí)驗(yàn)
7: 返回最好的實(shí)驗(yàn)結(jié)果
開(kāi)發(fā)并啟動(dòng)一個(gè) NNI 實(shí)驗(yàn)
啟動(dòng) Experiment 的包含如下三個(gè)步驟:
第一步 :編寫(xiě) JSON 格式的 搜索空間
文件荸实,包括所有需要搜索的超參的 名稱
和 分布
(離散和連續(xù)值均可)。
search_space.json
{
"batch_size": {"_type":"choice", "_value": [16, 32, 64, 128]},
"hidden_size":{"_type":"choice","_value":[128, 256, 512, 1024]},
"lr":{"_type":"choice","_value":[0.0001, 0.001, 0.01, 0.1]},
"momentum":{"_type":"uniform","_value":[0, 1]}
}
第二步 :修改 Trial
代碼來(lái)從 NNI 獲取超參缴淋,并返回 NNI 最終結(jié)果准给。
mnist.py
import nni
def main(args):
# 下載數(shù)據(jù)
train_loader = torch.utils.data.DataLoader(datasets.MNIST(...), batch_size=args['batch_size'], shuffle=True)
test_loader = torch.tuils.data.DataLoader(datasets.MNIST(...), batch_size=1000, shuffle=True)
# 構(gòu)造模型
model = Net(hidden_size=args['hidden_size'])
optimizer = optim.SGD(model.parameters(), lr=args['lr'], momentum=args['momentum'])
# 訓(xùn)練
for epoch in range(10):
train(args, model, device, train_loader, optimizer, epoch)
test_acc = test(args, model, device, test_loader)
print(test_acc)
nni.report_intermeidate_result(test_acc)
print('final accuracy:', test_acc)
# 報(bào)告評(píng)估指標(biāo)
nni.report_final_result(test_acc)
if __name__ == '__main__':
# 設(shè)置超參數(shù)默認(rèn)值
params = {'batch_size': 32, 'hidden_size': 128, 'lr': 0.001, 'momentum': 0.5}
# 獲取一次Trail的超參數(shù)
params = nni.get_next_parameter()
main(params)
第三步: 定義 YAML 格式的 配置
文件泄朴,聲明搜索空間和 Trail 文件的 路徑
。 它還提供其他信息圆存,例如調(diào)整算法叼旋,最大 Trial 運(yùn)行次數(shù)和最大持續(xù)時(shí)間的參數(shù)。
config.yml
authorName: default
experimentName: example_mnist
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
trainingServicePlatform: local
# 搜索空間文件路徑
searchSpacePath: search_space.json
useAnnotation: false
tuner:
builtinTunerName: TPE
# 運(yùn)行的命令沦辙,以及 Trial 代碼的路徑
trial:
command: python3 mnist.py
codeDir: .
gpuNum: 0
最后,從命令行使用 config.yml 文件啟動(dòng) MNIST Experiment 讹剔。
nnictl create --config config.yml
注意
如果要使用遠(yuǎn)程服務(wù)器或集群作為訓(xùn)練平臺(tái)油讯,為了避免產(chǎn)生過(guò)大的網(wǎng)絡(luò)壓力,NNI 限制了文件的最大數(shù)量為 2000延欠,大小為 300 MB陌兑。 如果 codeDir 中包含了過(guò)多的文件,可添加
.nniignore
文件來(lái)排除部分由捎,與.gitignore
文件用法類似兔综。
在命令行中等待輸出 INFO: Successfully started experiment!
。 此消息表明實(shí)驗(yàn)已成功啟動(dòng)狞玛。 期望的輸出如下:
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: [Your IP]: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
-----------------------------------------------------------------------
如果根據(jù)上述步驟準(zhǔn)備好了相應(yīng) Trial
软驰,搜索空間
和 配置
,并成功創(chuàng)建的 NNI 任務(wù)心肪。NNI 會(huì)自動(dòng)開(kāi)始通過(guò)配置的搜索空間來(lái)運(yùn)行不同的超參集合锭亏,搜索最好的超參。 通過(guò) Web 界面可看到 NNI 的進(jìn)度硬鞍。
通過(guò)Web UI 可視化實(shí)驗(yàn)過(guò)程
啟動(dòng) Experiment 后慧瘤,可以在命令行界面找到如下的 Web 界面地址
:
The Web UI urls are: [Your IP]:8080
在瀏覽器中打開(kāi) Web 界面地址
(即:[IP地址]:8080
),就可以看到 Experiment 的詳細(xì)信息固该,以及所有的 Trial 任務(wù)锅减。
查看概要頁(yè)面
Experiment 相關(guān)信息會(huì)顯示在界面上,如配置和搜索空間等伐坏。 NNI 還支持通過(guò) Experiment summary 按鈕下載這些信息和參數(shù)怔匣。
查看 Trial 詳情頁(yè)面
可以在此頁(yè)面中看到最佳的嘗試指標(biāo)和超參數(shù)圖。 當(dāng)您單擊按鈕 Add/Remove columns
時(shí)著淆,表格內(nèi)容包括更多列劫狠。 當(dāng)您單擊按鈕 Add/Remove columns
時(shí),表格內(nèi)容包括更多列永部。
查看 Experiment 管理頁(yè)面
All experiments
頁(yè)面可以查看計(jì)算機(jī)上的所有實(shí)驗(yàn)独泞。
到處為止,一次AutoML超參數(shù)調(diào)優(yōu)的實(shí)驗(yàn)運(yùn)行就已經(jīng)完成苔埋。
總結(jié)
本文簡(jiǎn)單介紹了自動(dòng)機(jī)器學(xué)習(xí)工具NNI的基本概念懦砂、主要功能特點(diǎn)以及如何使用NNI進(jìn)行一個(gè)超參調(diào)優(yōu)實(shí)驗(yàn),希望能夠幫助到你。
參考文檔
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布荞膘!