NNI与其他自动机器学习工具的比较:
根据各个自动学习工具特点绘制以下图表:
由上图所示,NNI相较于其他自动学习工具的特点概括如下:
NNI同 Google Vizier一样,偏向于神经网络学习的参数和模型机构的自动化搜索。但是NNI支持的深度学习框架更多,并且安装和使用更加便捷。
相比于AutoML中的自动识别特征的框架,NNI不考虑自动生成特征,自动筛选特征的问题。因为神经网络方法兴起后,特征不再需要人工的构造,也就不存在生成筛选特征的工作了。
NNI相比于AutoML中的超参搜索的框架更加侧重于神经网络学习框架上的参数搜索(AutoML中的超参搜索框架更多的是基于scikit-learn, numpy等传统机器学习库,对gbdt,xgboost等算法进行参数的搜索。)
NNI相比于全流程框架autoML, autosklearn, TPOT, 更加专注,侧重于神经网络模型参数搜索,同时也支持scikit-learn等传统机器学习库的参数搜索,更加小而精。
安装过程体会:
由于第一次在virtual machine上运行Linux系统,因此大量时间花费在了VM/Ubuntu18.04和Anaconda/Tensorflow等框架的安装上。但当上述框架安装完毕后,NNI的安装相对简单,只需要参考官方文档https://github.com/Microsoft/nni中的说明即可
使用过程体会:
在NNI的使用过程中,能够深切体会到NNI对机器学习算法带来的便利。其特点概括为以下五点:
支持私有部署。云服务中的自动机器学习直接提供了自动机器学习的服务,不仅包含了自动机器学习的功能,也包含了算力。如果团队或个人已经有了很强的算力资源,就需要支持私有部署的自动学习工具了。
分布式调度。NNI 可以在单机上完成试验,也支持以下两种分布式调度方案:
GPU 远程服务器。通过 SSH 控制多台 GPU 服务器协同完成试验,并能够计划每个试验所需要的 GPU 的数量。
OpenPAI。通过 OpenPAI,NNI 的试验可以在独立的 Docker 中运行,支持多样的实验环境。在计算资源规划上,不仅能指定 GPU 资源,还能制定 CPU,内存资源。
超参搜索的直接支持。当前,大部分自动机器学习服务与工具都是在某个任务上使用,比如图片分类。这样的好处是,普通用户只要有标记数据,就能训练出一个高质量的平台,不需要任何模型训练方面的知识。但这需要对每个训练任务进行定制,将模型训练的复杂性包装起来。
使用建议:
1.在使用webUI的时候,出错信息都是在stdder里面,希望可以直接在web界面显示,而不用在输入nnictl log stdder或者去路径下寻找
2.每次结束一次实验后重新开始下一次实验室都会报错,需要重启虚拟机才能恢复
ERROR: Port 8080 is usedby another process, please reset the port!
希望可以自动配置端口,方便多次重复调参。