NNI (Neural Network Intelligence) is a toolkit to help users running 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 at different environments (e.g. local, remote servers, Cloud).
AutoML experiment Training Services
┌────────┐ ┌────────────────────────┐ ┌────────────────┐
│ nnictl │ ─────> │ nni_manager │ │ Local Machine │
└────────┘ │ sdk/tuner │ └────────────────┘
│ hyperopt_tuner │
│ evolution_tuner │ trail 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, 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
- requirements: python >= 3.5
pip3 install -v --user git+https://github.com/Microsoft/NeuralNetworkIntelligence.git
source ~/.bashrc
Requirements:
- with NNI installed on your machine.
Run the following command to create an experiment for [mnist]
nnictl create --config ~/nni/examples/trials/mnist-annotation/config.ymlThis command will start the experiment and WebUI. The WebUI endpoint will be shown in the output of this command (for example, http://localhost:8080). Open this URL using your browsers. You can analyze your experiment through WebUI, or open trials' tensorboard. Please refer to here for the GetStarted tutorial.
NNI is designed as an automatic searching framework with high extensibility. NNI has a very clear modular design. Contributing more tuner/assessor algorithms, training services, SDKs are really welcome. Please refer to here for how to contribute.
The Microsoft Enterprise and Developer Privacy Statement describes the privacy statement of this software.