NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. The tool dispatches and runs trial jobs that generated by tuning algorithms to search the best neural architecture and/or hyper-parameters in different environments (e.g. local machine, remote servers and cloud).
AutoML experiment Training Services
┌────────┐ ┌────────────────────────┐ ┌────────────────┐
│ nnictl │ ─────> │ nni_manager │ │ Local Machine │
└────────┘ │ sdk/tuner │ └────────────────┘
│ hyperopt_tuner │
│ evolution_tuner │ trial jobs ┌────────────────┐
│ ... │ ────────> │ Remote Servers │
├────────────────────────┤ └────────────────┘
│ trial job source code │
│ sdk/annotation │ ┌────────────────┐
├────────────────────────┤ │ Yarn,K8s, │
│ nni_board │ │ ... │
└────────────────────────┘ └────────────────┘
- You want to try different AutoML algorithms for your training code (model) at local
- You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud)
- As a researcher and data scientist, you want to implement your own AutoML algorithms and compare with other algorithms
- As a ML platform owner, you want to support AutoML in your platform
Install through python pip. (the current version only supports linux, nni on ubuntu 16.04 or newer has been well tested)
- requirements: python >= 3.5, git, wget
pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.1
source ~/.bashrc
Requirements:
- NNI installed on your local machine
- tensorflow installed
Run the following command to create an experiment for [mnist]
nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
This command will start an experiment and a WebUI. The WebUI endpoint will be shown in the output of this command (for example, http://localhost:8080
). Open this URL in your browser. You can analyze your experiment through WebUI, or browse trials' tensorboard.
Please refer to Get Started Tutorial for more detailed information.
- How to write a trial running on NNI (Mnist as an example)?
- Tutorial of NNI python annotation.
- Tuners supported by NNI.
- How to enable early stop (i.e. assessor) in an experiment?
- How to run an experiment on multiple machines?
- How to write a customized tuner?
- How to write a customized assessor?
- How to resume an experiment?
- Tutorial of the command tool nnictl.
This project welcomes contributions and suggestions, we are constructing the contribution guidelines, stay tuned =).
We use GitHub issues for tracking requests and bugs.