Medianstop 是一个简单的提前终止算法。如果尝试 X 的在步骤 S 的最好目标值比所有已完成尝试的步骤 S 的中位数值明显低,就会停止运行尝试 X。参考论文
Curvefitting
Curve Fitting Assessor 是一个 LPA (learning, predicting, assessing,即学习、预测、评估) 的算法。如果预测的 Trial X 在 step S 比性能最好的 Trial 要差,就会提前终止它。此算法中采用了 12 种曲线来拟合精度曲线。参考论文
通用 NAS 框架
此 NAS 框架可供用户轻松指定候选的神经体系结构,例如,可以为单个层指定多个候选操作(例如,可分离的 conv、扩张 conv),并指定可能的跳过连接。NNI 将自动找到最佳候选。另一方面,NAS 框架为其他类型的用户(如,NAS 算法研究人员)提供了简单的接口,以实现新的 NAS 算法。
NNI 通过 Trial SDK 支持多种 one-shot(一次性) NAS 算法,如:ENAS、DARTS。使用这些算法时,不需要启动 NNI Experiment。在 Trial 代码中加入算法,直接运行即可。如果要调整算法中的超参数,或运行多个实例,可以使用 Tuner 并启动 NNI Experiment。
除了 one-shot NAS 外,NAS 还能以 NNI 模式运行,其中每个候选的网络结构都作为独立 Trial 任务运行。在此模式下,与超参调优类似,必须启动 NNI Experiment 并为 NAS 选择 Tuner。
模型压缩
NNI 提供了一个易于使用的模型压缩框架来压缩深度神经网络,压缩后的网络通常具有更小的模型尺寸和更快的推理速度,模型性能也不会有明显的下降。NNI 上的模型压缩包括剪枝和量化算法。这些算法通过 NNI Trial SDK 提供 。可以直接在 Trial 代码中使用,并在不启动 NNI Experiment 的情况下运行 Trial 代码。用户还可以使用 NNI 模型压缩框架集成自定义的剪枝和量化算法。
自动特征工程
自动特征工程,可以为下游任务找到最有效的特征。自动特征工程通过 NNI Trial SDK 支持,不必创建 NNI Experiment, 只需在 Trial 代码中加入内置的自动特征工程算法,然后直接运行 Trial 代码。
自动特征工程算法通常有一些超参。如果要自动调整这些超参,可以利用 NNI 的超参数调优,即选择调优算法(即 Tuner)并启动 NNI Experiment。
1: For t = 0, 1, 2, ..., maxTrialNum, 2: hyperparameter = 从搜索空间选择一组参数 3: final result = run_trial_and_evaluate(hyperparameter) 4: 返回最终结果给 NNI 5: If 时间达到上限, 6: 停止实验 7: 返回最好的实验结果
在命令行中等待输出 INFO: Successfully started 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: [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 -----------------------------------------------------------------------
如果根据上述步骤准备好了相应 Trial,搜索空间 和 配置 ,并成功创建的 NNI 任务。NNI 会自动开始通过配置的搜索空间来运行不同的超参集合,搜索最好的超参。通过 Web 界面可看到 NNI 的进度。
通过Web UI 可视化实验过程
启动 Experiment 后,可以在命令行界面找到如下的 Web 界面地址 :
The Web UI urls are: [Your IP]:8080
在浏览器中打开 Web 界面地址 (即:[IP地址]:8080 ),就可以看到 Experiment 的详细信息,以及所有的 Trial 任务。