NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. For each experiment, user only need to define a search space and update a few lines of code, and then leverage NNI build-in algorithms and training services to search the best hyper parameters and/or neural architecture.
Step 1: Define search space
Step 2: Update model codes
Step 3: Define Experiment
After user submits the experiment through a command line tool nnictl, a demon process (NNI manager) take care of search process. NNI manager continuously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatch and run trial jobs in a targeted training environment (e.g. local machine, remote servers and cloud). The results of trials jobs such as model accurate will send back to tuning algorithms for generating more meaningful search settings. NNI manager stops the search process after it find the best models.
User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment.
NNI provides a set of examples in the package to get you familiar with the above process.
Experiment in NNI is a method for testing different assumptions (hypotheses) by Trials under conditions constructed and controlled by NNI. During the experiment, one or more conditions are allowed to change in an organized manner and effects of these changes on associated conditions.
Trial in NNI is an individual attempt at applying a set of parameters on a model.
Tuner in NNI is an implementation of Tuner API for a special tuning algorithm. Read more about the Tuners supported in the latest NNI release
Assessor in NNI is an implementation of Assessor API for optimizing the execution of experiment.