项目介绍:NNI
NNI 是一种自动化深度学习过程的工具,它能够帮助用户进行特征工程、神经网络架构搜索、超参数调优以及模型压缩等繁琐任务。通过NNI,研究人员和开发者可以高效地探索和优化机器学习模型。以下是关于 NNI 的详细介绍。
项目的新闻
NNI 定期推出新版本和功能。例如,最新的预览版 3.0 于 2022 年 5 月发布。此外,NNI 还上线了新的演示,可以通过 YouTube 和 Bilibili 观看。同时,NNI 团队也在学术会议上发表了相关研究论文,展示了在深度学习模型稀疏化和隐私保护在线 AutoML 方面的成果。此外,完整的文档也进行了更新,用户可以通过官方文档深入了解 NNI 的各项功能。
安装指南
安装 NNI 十分简单,可以通过 pip 安装:
$ pip install nni
如果需要更新到最新版本,只需在命令末加上 --upgrade
。
NNI 的能力概览
NNI 提供广泛的功能,包括超参数调优、神经架构搜索和模型压缩。
超参数调优
NNI 支持多种超参数调优算法,包括:
- 穷举搜索(如网格搜索、随机搜索)
- 启发式搜索(如退火、进化算法、Hyperband 以及 PBT)
- 贝叶斯优化(如 BOHB、DNGO、GP、Metis、SMAC、TPE)
神经架构搜索
NNI 支持多试验搜索策略和一次性构建策略,包括:
- 多试验策略:例如,政策为基础的强化学习、正则化进化策略、TPE 等
- 一次性策略:如 DARTS、ENAS、FBNet、ProxylessNAS 和 SPOS
模型压缩
在模型压缩方面,NNI 支持多种剪枝和量化方法:
- 剪枝:如等级剪枝、L1范数、Taylor FO Weight 等
- 量化:包括 Naive、QAT、LSQ、Observer 以及 DoReFa 等
支持的框架和训练服务
NNI 支持多种机器学习框架,如 PyTorch、TensorFlow、Scikit-learn、XGBoost 和 LightGBM。此外,NNI 提供不同类型的训练服务支持,包括本地主机、远程 SSH 服务器和云服务,如 Azure Machine Learning、Kubernetes 基础设施等。
资源
NNI 提供全面的资源帮助用户上手和深入了解,包括:
- 官方文档和安装指南
- 示例代码和 Python API 参考
- 版本变更日志和相关研究论文
- 官方的 YouTube 和 Bilibili 频道
贡献指南
如果用户希望参与 NNI 的开发,NNI 提供详细的贡献指南,包括提交反馈、代码规范和行为守则。用户可以通过 GitHub 提交请求或在讨论区提出问题和新想法。
测试状态
NNI 在不同环境下进行全面的测试,包括本地、远程及通过 OpenPAI、Frameworkcontroller 和 Kubeflow 等多种平台的训练服务。详细测试状态可参考相应的持续集成链接。
相关项目
Microsoft Research 发布了多个开源项目,NNI 是其中之一,其它项目包括 OpenPAI、FrameworkController、MMdnn、SPTAG 和 nn-Meter,这些项目同样促进了 AI 开发及研究的加速。
许可证
NNI 整个代码库采用 MIT 许可证,这意味用户可以自由使用、复制和修改代码。
看完这篇简单的介绍,相信你对 NNI 已经有了基础的了解,无论是个人研究还是企业应用,NNI 都是一个强大的工具助力你的深度学习旅程。