README.md 4.2 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

QuanluZhang's avatar
QuanluZhang committed
5
6
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).
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
* 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**
QuanluZhang's avatar
QuanluZhang committed
32
33
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
34
```
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
QuanluZhang's avatar
QuanluZhang committed
43
* tensorflow installed
44
45
46

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

Scarlett Li's avatar
Scarlett Li committed
51
52
53
54
55
56
57
58
59
60
61
62
## **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
63

Scarlett Li's avatar
Scarlett Li committed
64
65
66
67
# 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
68