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

Pranjal Vyas's avatar
Pranjal Vyas committed
3
[![MIT licensed](https://img.shields.io/badge/license-MIT-yellow.svg)](https://github.com/Microsoft/nni/blob/master/LICENSE)
4
[![Build Status](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6)
Gems Guo's avatar
Gems Guo committed
5
6
7
[![Issues](https://img.shields.io/github/issues-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen)
[![Bugs](https://img.shields.io/github/issues/Microsoft/nni/bug.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
[![Pull Requests](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen)
8
[![Version](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases)
Microsoft Open Source's avatar
Microsoft Open Source committed
9

Irene Tenison's avatar
Irene Tenison committed
10
11
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.
12

QuanluZhang's avatar
QuanluZhang committed
13
<p align="center">
Scarlett Li's avatar
Scarlett Li committed
14
<img src="./docs/img/nni_arch_overview.png" alt="drawing" width="800"/>
QuanluZhang's avatar
QuanluZhang committed
15
16
</p>

17
## **Who should consider using NNI**
Irene Tenison's avatar
Irene Tenison committed
18
19
20
21
* 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.
22

Scarlett Li's avatar
Scarlett Li committed
23
## **Install & Verify**
Scarlett Li's avatar
Scarlett Li committed
24

Gems Guo's avatar
Gems Guo committed
25
26
27
28
**Install through pip** 	
* We only support Linux in current stage, Ubuntu 16.04 or higher are tested and supported. Simply run the following `pip install` in an environment that has `python >= 3.5`.	
```bash	
    python3 -m pip install --user nni
29
```
Gems Guo's avatar
Gems Guo committed
30
31
32
33
34
35
36
37

**Install through source code**
* We only support Linux (Ubuntu 16.04 or higher) in our current stage. 
* Run the following commands in an environment that has `python >= 3.5`, `git` and `wget`.
```bash	
    git clone -b v0.3.0 https://github.com/Microsoft/nni.git	
    cd nni	
    source install.sh	
38
39
```

Gems Guo's avatar
Gems Guo committed
40
41
42
43
44
45
46
47
**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.	
```bash	
    cd ~	
    git clone -b v0.3.0 https://github.com/Microsoft/nni.git
```
* Run the mnist example.
48
```bash
Scarlett Li's avatar
Scarlett Li committed
49
    nnictl create --config ~/nni/examples/trials/mnist/config.yml
50
```
Scarlett Li's avatar
Scarlett Li committed
51

Irene Tenison's avatar
Irene Tenison committed
52
* 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 the `Web UI url`.
Scarlett Li's avatar
Scarlett Li committed
53
54
55
56
57
58
59
```diff
    Info: Checking experiment...
    ...
    Info: Starting experiment...
    Info: Checking web ui...
    Info: Starting web ui...
    Info: Starting web ui success!
60
+   Info: Web UI url: http://yourlocalhost:8080   http://youripaddress:8080
Scarlett Li's avatar
Scarlett Li committed
61
62
+   Info: Start experiment success! The experiment id is LrNK4hae, and the restful server post is 51188.
```
Scarlett Li's avatar
Scarlett Li committed
63

Scarlett Li's avatar
Scarlett Li committed
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
## **Documentation**
* [Overview](docs/Overview.md)
* [Get started](docs/GetStarted.md)
## **How to**
* [Installation](docs/InstallNNI_Ubuntu.md)
* [Use command line tool nnictl](docs/NNICTLDOC.md)
* [Use NNIBoard](docs/WebUI.md)
* [Define search space](docs/SearchSpaceSpec.md)
* [Use NNI sdk] - *coming soon*
* [Config an experiment](docs/ExperimentConfig.md)
* [Use annotation]- *coming soon*
* [Debug](docs/HowToDebug.md)
## **Tutorials**
* [How to run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md)
* [How to run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md)
fishyds's avatar
fishyds committed
79
* [How to run an experiment on OpenPAI?](docs/PAIMode.md)
Scarlett Li's avatar
Scarlett Li committed
80
81
82
83
84
85
86
87
88
89
90
* [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*
### **Best practice**
* [Compare different AutoML algorithms] - *coming soon*
* [Serve NNI as a capability of a ML Platform] - *coming soon*

## **Contribute**
91
This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs.
Scarlett Li's avatar
Scarlett Li committed
92

93
94
95
96
97
98
99
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](docs/SetupNNIDeveloperEnvironment.md)

Before start coding, review and get familiar with the NNI Code Contribution Guideline: [Contributing](docs/CONTRIBUTING.md)

We are in construction of the instruction for [How to Debug](docs/HowToDebug.md), you are also welcome to contribute questions or suggestions on this area.
Microsoft Open Source's avatar
Microsoft Open Source committed
100

Scarlett Li's avatar
Scarlett Li committed
101
## **License** 
Vipul Gupta's avatar
Vipul Gupta committed
102
103
The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE)