README.md 4.07 KB
Newer Older
1
2
3
# Neural Network Intelligence

[![Build Status](https://travis-ci.org/Microsoft/nni.svg?branch=master)](https://travis-ci.org/Microsoft/nni)
Microsoft Open Source's avatar
Microsoft Open Source committed
4

5
NNI (Neural Network Intelligence) is a toolkit to help users running automated machine learning experiments. 
Scarlett Li's avatar
Scarlett Li committed
6
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 and cloud).
7
8
9
10
11
12
13

```
            AutoML experiment                                 Training Services
┌────────┐        ┌────────────────────────┐                  ┌────────────────┐
│ nnictl │ ─────> │  nni_manager           │                  │ Local Machine  │
└────────┘        │    sdk/tuner           │                  └────────────────┘
                  │      hyperopt_tuner    │
QuanluZhang's avatar
QuanluZhang committed
14
                  │      evolution_tuner   │    trial jobs    ┌────────────────┐
15
16
17
18
19
20
21
22
23
24
                  │      ...               │     ────────>    │ Remote Servers │          
                  ├────────────────────────┤                  └────────────────┘
                  │  trial job source code │                  
                  │    sdk/annotation      │                  ┌────────────────┐
                  ├────────────────────────┤                  │ Yarn,K8s,      │
                  │  nni_board             │                  │ ...            │
                  └────────────────────────┘                  └────────────────┘
```
## **Who should consider using NNI**
* You want to try different AutoML algorithms for your training code (model) at local
Scarlett Li's avatar
Scarlett Li committed
25
* You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud)
26
27
28
29
30
31
32
33
34
* 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

# Getting Started with NNI

## **Installation**
Install through python pip
* requirements: python >= 3.5
```
35
pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.1
36
37
38
39
40
41
source ~/.bashrc
```


## **Quick start: run an experiment at local**
Requirements:
Scarlett Li's avatar
Scarlett Li committed
42
* NNI installed on your local machine
43
44
45

Run the following command to create an experiment for [mnist]
```bash
46
    nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml
47
```
Scarlett Li's avatar
Scarlett Li committed
48
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. 
Microsoft Open Source's avatar
Microsoft Open Source committed
49

Scarlett Li's avatar
Scarlett Li committed
50
51
52
53
54
55
56
57
58
59
60
61
## **Please refer to [Get Started Tutorial](docs/GetStarted.md) for more detailed information.**
## More tutorials
* [How to write a trial running on NNI (Mnist as an example)?](WriteYourTrial.md)
* [Tutorial of NNI python annotation.](../tools/annotation/README.md)
* [Tuners supported by NNI.](../src/sdk/pynni/nni/README.md)
* [How to enable early stop (i.e. assessor) in an experiment?](EnableAssessor.md)
* [How to run an experiment on multiple machines?](RemoteMachineMode.md)
* [How to write a customized tuner?](CustomizedTuner.md)
* [How to write a customized assessor?](../examples/assessors/README.md)
* [How to resume an experiment?](NNICTLDOC.md)
* [Tutorial of the command tool *nnictl*.](NNICTLDOC.md)
* [How to use *nnictl* to control multiple experiments?]()
Microsoft Open Source's avatar
Microsoft Open Source committed
62

Scarlett Li's avatar
Scarlett Li committed
63
64
65
66
# Contributing
This project welcomes contributions and suggestions, we are constructing the contribution guidelines, stay tuned =).

We use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
Microsoft Open Source's avatar
Microsoft Open Source committed
67