Skip to main content

神经网络智能包

项目描述


麻省理工学院许可 构建状态 问题 错误 拉取请求 版本 在 https://gitter.im/Microsoft/nni 加入聊天 文件状态

简体中文

NNI(神经网络智能)是一个轻量级但功能强大的工具包,可帮助用户自动化 特征工程神经架构搜索超参数调整模型压缩

该工具管理自动化机器学习 (AutoML) 实验、调度和运行由调整算法生成的实验的试验作业,以在本地机器远程服务器OpenPAIKubeflowFrameworkController不同训练环境中搜索最佳神经架构和/或超参数在 K8S(AKS 等)DLWorkspace(又名 DLTS)和其他云选项上。

谁应该考虑使用 NNI

  • 那些想在他们的训练代码/模型中尝试不同 AutoML 算法的人。
  • 那些想要在不同环境中运行 AutoML 试用作业以加快搜索速度的人。
  • 想要轻松实现和试验新 AutoML 算法的研究人员和数据科学家,可能是:超参数调整算法、神经架构搜索算法或模型压缩算法。
  • 希望在其平台中支持 AutoML 的ML 平台所有者。

NNI v1.5 已经发布!  

NNI 功能一览

NNI 提供命令行工具以及用户友好的 WebUI 来管理训练实验。借助可扩展的 API,您可以自定义自己的 AutoML 算法和训练服务。为了方便新用户使用,NNI 还提供了一组内置的最先进的 AutoML 算法和对流行训练平台的开箱即用支持。

在下表中,我们总结了当前的 NNI 功能,我们正在逐步添加新功能,我们很乐意得到您的贡献。

框架和库 算法 培训服务
内置
  • 支持的框架
超参数调优 神经架构搜索 模型压缩 特征工程(测试版) 提前停止算法
参考

安装

安装

NNI 支持并在 Ubuntu >= 16.04、macOS >= 10.14.1 和 Windows 10 >= 1809 上进行了测试。只需pip install在具有python 64-bit >= 3.5.

Linux 或 macOS

python3 -m pip install --upgrade nni

视窗

python -m pip install --upgrade nni

如果您想尝试最新的代码,请从源代码安装 NNI 。

有关 NNI 的详细系统要求,请参阅此处(适用于 Linux 和 macOS)和此处适用于 Windows。

笔记:

  • 如果有任何权限问题,--user请在用户目录中添加安装 NNI。
  • 目前 Windows 上的 NNI 支持本地、远程和 pai 模式。强烈推荐 Anaconda 或 Miniconda 在 Windows 上安装 NNI。
  • 如有错误Segmentation fault,请参考FAQ。Windows 上的 FAQ,请参考Windows 上的 NNI

验证安装

以下示例基于 TensorFlow 1.x 构建。确保在运行时使用 TensorFlow 1.x。

  • 通过克隆源代码下载示例。

    git clone -b v1.5 https://github.com/Microsoft/nni.git
    
  • 运行 MNIST 示例。

    Linux 或 macOS

    nnictl create --config nni/examples/trials/mnist-tfv1/config.yml
    

    视窗

    nnictl create --config nni\examples\trials\mnist-tfv1\config_windows.yml
    
  • 等待INFO: Successfully started experiment!命令行中的消息。此消息表明您的实验已成功启动。您可以使用Web UI url.

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: http://223.255.255.1:8080   http://127.0.0.1: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
-----------------------------------------------------------------------
  • 在浏览器中打开Web UI url,您可以查看实验的详细信息以及所有提交的试用作业,如下图所示。这里有更多的 Web UI 页面。
绘画 绘画

文档

  • 要了解什么是 NNI,请阅读NNI 概述
  • 要熟悉如何使用 NNI,请阅读文档
  • 要开始并在您的系统上安装 NNI,请参阅安装 NNI

贡献

这个项目欢迎贡献和建议。大多数贡献要求您同意贡献者许可协议 (CLA),声明您有权并且实际上确实授予我们使用您的贡献的权利。有关详细信息,请访问https://cla.microsoft.com

当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供 CLA 并适当地装饰 PR(例如,标签、评论)。只需按照机器人提供的说明进行操作。您只需使用我们的 CLA 在所有存储库中执行此操作一次。

本项目采用了微软开源行为准则。有关详细信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com提出任何其他问题或意见。

在熟悉了贡献协议之后,你就可以创建你的第一个 PR =),按照 NNI 开发者教程开始:

外部存储库和参考

经作者许可,我们列出了一组 NNI 使用示例和相关文章。

反馈

加入 IM 讨论组:

吉特 微信
图片 或者 图片

相关项目

微软研究院 (MSR)以开放性和先进技术为目标,还发布了一些其他开源项目。

  • OpenPAI:开源平台,提供完整的 AI 模型训练和资源管理能力,易于扩展,支持各种规模的本地、云和混合环境。
  • FrameworkController:一个开源的通用 Kubernetes Pod 控制器,通过单个控制器在 Kubernetes 上编排各种应用程序。
  • MMdnn:一个全面的跨框架解决方案,用于转换、可视化和诊断深度神经网络模型。MMdnn 中的“MM”代表模型管理,“dnn”是深度神经网络的首字母缩写。
  • SPTAG : Space Partition Tree And Graph (SPTAG) 是一个用于大规模向量近似最近邻搜索场景的开源库。

我们鼓励研究人员和学生利用这些项目来加速人工智能的开发和研究。

执照

整个代码库都在MIT 许可下

项目详情