NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning (AutoML) experiments. The tool dispatches and runs trial jobs generated by tuning algorithms to search the best neural architecture and/or hyper-parameters in different environments like local machine, remote servers and cloud.
- Those who want to try different AutoML algorithms in their training code (model) at their local machine.
- Those who want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud).
- Researchers and data scientists who want to implement their own AutoML algorithms and compare it with other algorithms.
- ML Platform owners who want to support AutoML in their platform.
Install through source code
- We only support Linux (Ubuntu 16.04 or higher) in our current stage.
- Run the following
pip install
in an environment that haspython >= 3.5
,git
andwget
.
git clone -b v0.3 https://github.com/Microsoft/nni.git
cd nni
source install.sh
Verify install
- The following example is an experiment built on TensorFlow. Make sure you have
TensorFlow installed
before running it. - Download the examples via clone the source code.
cd ~
git clone -b v0.3 https://github.com/Microsoft/nni.git
- Run the mnist example.
nnictl create --config ~/nni/examples/trials/mnist/config.yml
- Wait for the message
Info: Start experiment success!
in the command line. This message indicates that your experiment has been successfully started. You can explore the experiment using theWeb UI url
.
Info: Checking experiment...
...
Info: Starting experiment...
Info: Checking web ui...
Info: Starting web ui...
Info: Starting web ui success!
+ Info: Web UI url: http://127.0.0.1:8080 http://10.172.141.6:8080
+ Info: Start experiment success! The experiment id is LrNK4hae, and the restful server post is 51188.
- Installation
- Use command line tool nnictl
- Use NNIBoard
- Define search space
- [Use NNI sdk] - coming soon
- Config an experiment
- [Use annotation]- coming soon
- Debug
- How to run an experiment on local (with multiple GPUs)?
- How to run an experiment on multiple machines?
- How to run an experiment on OpenPAI?
- [Try different tuners and assessors] - coming soon
- [How to run an experiment on K8S services?] - coming soon
- [Implement a customized tuner] - coming soon
- [Implement a customized assessor] - coming soon
- [Implement a custmoized weight sharing algorithm] - coming soon
- [How to integrate NNI with your own custmoized training service] - coming soon
- [Compare different AutoML algorithms] - coming soon
- [Serve NNI as a capability of a ML Platform] - coming soon
This project welcomes contributions and suggestions, we use GitHub issues for tracking requests and bugs.
Issues with the good first issue label are simple and easy-to-start ones that we recommend new contributors to start with.
To set up environment for NNI development, refer to the instruction: Set up NNI developer environment
Before start coding, review and get familiar with the NNI Code Contribution Guideline: Contributing
We are in construction of the instruction for How to Debug, you are also welcome to contribute questions or suggestions on this area.
The entire codebase is under MIT license