From 2f4324407bcede1fed842522424522dcf5f0308d Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 18 Oct 2018 20:14:37 +0800 Subject: [PATCH 01/35] refactor doc --- README.md | 82 +++++------ docs/GetStarted.md | 2 +- docs/InstallNNI_Ubuntu.md | 40 ++++++ docs/Overview.md | 54 +++++++ ...riteYourTrial.md => howto_1_WriteTrial.md} | 0 ...zedTuner.md => howto_2_CustomizedTuner.md} | 0 docs/tutorial_1_CR_exp_local_api.md | 136 ++++++++++++++++++ docs/tutorial_2_RemoteMachineMode.md | 65 +++++++++ 8 files changed, 328 insertions(+), 51 deletions(-) create mode 100644 docs/InstallNNI_Ubuntu.md create mode 100644 docs/Overview.md rename docs/{WriteYourTrial.md => howto_1_WriteTrial.md} (100%) rename docs/{CustomizedTuner.md => howto_2_CustomizedTuner.md} (100%) create mode 100644 docs/tutorial_1_CR_exp_local_api.md create mode 100644 docs/tutorial_2_RemoteMachineMode.md diff --git a/README.md b/README.md index 5b9ea131d8..ca56a59dba 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,56 @@ # Neural Network Intelligence -[![Build Status](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6) -[![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) -[![Version](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) +[![Build Status](https://travis-ci.org/Microsoft/nni.svg?branch=master)](https://travis-ci.org/Microsoft/nni) 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). -

-drawing -

- ## **Who should consider using NNI** -* 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 and 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 +1. You want to try different AutoML algorithms for your training code (model) at local +2. You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud) +3. As a researcher or a data scientist, you want to implement your own AutoML algorithm and compare it with other algorithms +4. As a ML platform owner, you want to provide AutoML support on the platform -# Get Started with NNI +Check out the [Tutorials](#Tutorials) for each goal. -## **Installation** -pip Installation Prerequisites -* linux (ubuntu 16.04 or newer version has been well tested) -* python >= 3.5 -* git, wget +## **Install & Verify** +**pip install** +* 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`, `git` and `wget`. ``` python3 -m pip install -v --user git+https://github.com/Microsoft/nni.git@v0.2 source ~/.bashrc ``` -## **Quick start: run your first experiment at local** -It only requires 3 steps to start an experiment on NNI: -![](./docs/3_steps.jpg) - - -NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment. - -**NOTE**: The following example is an experiment built on TensorFlow, make sure you have **TensorFlow installed** before running the following command. - -Try it out: +**verify install** +* The following example is an experiment built on TensorFlow, make sure you have `TensorFlow installed` before running it. ```bash nnictl create --config ~/nni/examples/trials/mnist/config.yml ``` -In the command output, find out the **WebUI url** and open it in your browser. You can analyze your experiment through WebUI, or browse trials' tensorboard. - -To learn more about how this example was constructed and how to analyze the experiment results in NNI WebUI, please refer to [How to write a trial run on NNI (MNIST as an example)?](docs/WriteYourTrial.md) +* In the command terminal, waiting for the message `Info: Start experiment success!` which indicates your experiment had been successfully started. You are able to explore the experiment using the `Web UI url`. +```diff + Info: Checking experiment... + ... + Info: Starting experiment... + Info: Checking web ui... + Info: Starting web ui... + Info: Starting web ui success! ++ Info: Web UI url: http://127.0.0.1:8080 http://10.172.141.6:8080 ++ Info: Start experiment success! The experiment id is LrNK4hae, and the restful server post is 51188. +``` -## **Please refer to [Get Started Tutorial](docs/GetStarted.md) for more detailed information.** -## More tutorials +## **Tutorials** +1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) +2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) +3. [Compare different AutoML algorithms] - *coming soon* +4. [Serve NNI as a capability of a ML Platform] - *coming soon* -* [Tutorial of NNI python annotation.](tools/nni_annotation/README.md) -* [Tuners supported by NNI.](src/sdk/pynni/nni/README.md) -* [How to enable early stop (i.e. assessor) in an experiment?](docs/EnableAssessor.md) -* [How to run an experiment on multiple machines?](docs/RemoteMachineMode.md) -* [How to run an experiment on OpenPAI?](docs/PAIMode.md) -* [How to write a customized tuner?](docs/CustomizedTuner.md) -* [How to write a customized assessor?](examples/assessors/README.md) -* [How to resume an experiment?](docs/NNICTLDOC.md) -* [Tutorial of the command tool *nnictl*.](docs/NNICTLDOC.md) -* [How to debug in NNI](docs/HowToDebug.md) +## **For more information** +* [NNI Overview](docs/Overview.md) +* [Install NNI on Ubuntu](docs/InstallNNI_Ubuntu.md) -# Contributing -This project welcomes contributions and suggestions, please refer to our [contributing](./docs/CONTRIBUTING.md) document for the same. +## **Contribute** +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. - -# License -The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE) - diff --git a/docs/GetStarted.md b/docs/GetStarted.md index a98efcda7f..73b04af0de 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -34,7 +34,7 @@ An experiment is to run multiple trial jobs, each trial job tries a configuratio **Prepare trial**: Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example: - python ~/nni/examples/trials/mnist-annotation/mnist.py + python3 ~/nni/examples/trials/mnist-annotation/mnist.py This command will be filled in the yaml configure file below. Please refer to [here]() for how to write your own trial. diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md new file mode 100644 index 0000000000..206b3f420f --- /dev/null +++ b/docs/InstallNNI_Ubuntu.md @@ -0,0 +1,40 @@ +**Install NNI on Ubuntu** +=== + +## **Installation** +* __Dependencies__ + + python >= 3.5 + git + wget + + python pip should also be correctly installed. You could use "which pip" or "pip -V" to check in Linux. + + * Note: we don't support virtual environment in current releases. + +* __Install NNI through pip__ + + pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.1 + source ~/.bashrc + +* __Install NNI through source code__ + + git clone -b v0.1 https://github.com/Microsoft/nni.git + cd nni + chmod +x install.sh + source install.sh + + +## Further reading +* [NNI Overview](docs/Overview.md) +* [Tutorial: Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) +* [Tutorial: Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) +* [How to write a Trial?](howto_1_WriteTrial.md) +* [How to write a customized Tuner?](howto_2_CustomizedTuner.md) +* [How to write a customized Assessor?](../examples/assessors/README.md) +* [How to enable Assessor for early stop in an experiment?](EnableAssessor.md) + +* [Tutorial: Compare different AutoML algorithms] - *coming soon* +* [Tutorial: Serve NNI as a capability of a ML Platform] - *coming soon* +* [How to write an experiment?] - *coming soon* +* [How to resume an experiment?] - *coming soon* \ No newline at end of file diff --git a/docs/Overview.md b/docs/Overview.md new file mode 100644 index 0000000000..1ab91649ad --- /dev/null +++ b/docs/Overview.md @@ -0,0 +1,54 @@ +# NNI Overview + +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). + +## Architecture Overview + +

+drawing +

+ +## Key Concepts + +### **Trial** +A **Trial** in NNI is an individual attempt at applying a set of parameters on a model. + +### **Tuner** +A **Tuner** in NNI is an implementation of Tuner API for a special tuning algorithm. + +Current supported Tuner list: + - TPE + - Random Search + - Anneal + - Naive Evolution + - SMAC (to install through `nnictl`) + - ENAS (under development, coming soon) + - Batch (under development, coming soon) + +[Read more about the Tuners supported in the latest NNI release](../src/sdk/pynni/nni/README.md) + +### **Assessor** +A **Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment. + +### **Experiment** +A **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. + +### **nnictl** +[*nnictl*](NNICTLDOC.md) + + +### **NNI Python Annotation** +[NNI Python Annotation Usage](../tools/nni_annotation/README.md) + +## Get Startted +* [How to write a Trial?](howto_1_WriteTrial.md) +* [How to write an experiment?] - *coming soon* +* [How to write a customized Tuner?](howto_2_CustomizedTuner.md) +* [How to write a customized Assessor?](../examples/assessors/README.md) +* [How to resume an experiment?] - *coming soon* +* [How to enable Assessor for early stop in an experiment?](EnableAssessor.md) + +## What's New +* **07/09/2018:** NNI launched! + diff --git a/docs/WriteYourTrial.md b/docs/howto_1_WriteTrial.md similarity index 100% rename from docs/WriteYourTrial.md rename to docs/howto_1_WriteTrial.md diff --git a/docs/CustomizedTuner.md b/docs/howto_2_CustomizedTuner.md similarity index 100% rename from docs/CustomizedTuner.md rename to docs/howto_2_CustomizedTuner.md diff --git a/docs/tutorial_1_CR_exp_local_api.md b/docs/tutorial_1_CR_exp_local_api.md new file mode 100644 index 0000000000..e28598b82e --- /dev/null +++ b/docs/tutorial_1_CR_exp_local_api.md @@ -0,0 +1,136 @@ +**Tutorial: Create and Run an Experiment on local with NNI API** +=== + +In this tutorial, we will use the example in [~/examples/trials/mnist] to explain how to create and run an experiment on local with NNI API. + +>Before starts + +You have an implementation for MNIST classifer using convolutional layers, the Python code is in `mnist_before.py`. + +>Step 1 - Update model codes + +To enable NNI API, make the following changes: +~~~~ +1.1 Declare NNI API + Include `import nni` in your trial code to use NNI APIs. + +1.2 Get predefined parameters + Use the following code snippet: + + RECEIVED_PARAMS = nni.get_parameters() + + to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example: + + {"conv_size": 2, "hidden_size": 124, "learning_rate": 0.0307, "dropout_rate": 0.2029} + +1.3 Report NNI results + Use the API: + + `nni.report_intermediate_result(accuracy)` + + to send `accuracy` to assessor. + + Use the API: + + `nni.report_final_result(accuracy)` + + to send `accuracy` to tuner. +~~~~ +We had made the changes and saved it to `mnist.py`. + +**NOTE**: +~~~~ +accuracy - The `accuracy` could be any python object, but if you use NNI built-in tuner/assessor, `accuracy` should be a numerical variable (e.g. float, int). +assessor - The assessor will decide which trial should early stop based on the history performance of trial (intermediate result of one trial). +tuner - The tuner will generate next parameters/architecture based on the explore history (final result of all trials). +~~~~ + +>Step 2 - Define SearchSpace + +The hyper-parameters used in `Step 1.2 - Get predefined parameters` is defined in a `search_space.json` file like below: +``` +{ + "dropout_rate":{"_type":"uniform","_value":[0.1,0.5]}, + "conv_size":{"_type":"choice","_value":[2,3,5,7]}, + "hidden_size":{"_type":"choice","_value":[124, 512, 1024]}, + "learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]} +} +``` +Refer to [SearchSpaceSpec.md](SearchSpaceSpec.md) to learn more about search space. + +>Step 3 - Define Experiment + +>>3.1 enable NNI API mode + +To enable NNI API mode, you need to set useAnnotation to *false* and provide the path of SearchSpace file (you just defined in step 1): + +``` +useAnnotation: false +searchSpacePath: /path/to/your/search_space.json +``` + +To run an experiment in NNI, you only needed: + +* Provide a runnable trial +* Provide or choose a tuner +* Provide a yaml experiment configure file +* (optional) Provide or choose an assessor + +**Prepare trial**: +>A set of examples can be found in ~/nni/examples after your installation, run `ls ~/nni/examples/trials` to see all the trial examples. + +Let's use a simple trial example, e.g. mnist, provided by NNI. After you installed NNI, NNI examples have been put in ~/nni/examples, run `ls ~/nni/examples/trials` to see all the trial examples. You can simply execute the following command to run the NNI mnist example: + + python ~/nni/examples/trials/mnist-annotation/mnist.py + +This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial) for how to write your own trial. + +**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](CustomizedTuner.md)), but for simplicity, here we choose a tuner provided by NNI as below: + + tuner: + builtinTunerName: TPE + classArgs: + optimize_mode: maximize + +*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner (the spec of builtin tuners can be found [here]()), *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result. + +**Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below: + +``` +authorName: your_name +experimentName: auto_mnist + +# how many trials could be concurrently running +trialConcurrency: 2 + +# maximum experiment running duration +maxExecDuration: 3h + +# empty means never stop +maxTrialNum: 100 + +# choice: local, remote +trainingServicePlatform: local + +# choice: true, false +useAnnotation: true +tuner: + builtinTunerName: TPE + classArgs: + optimize_mode: maximize +trial: + command: python mnist.py + codeDir: ~/nni/examples/trials/mnist-annotation + gpuNum: 0 +``` + +Here *useAnnotation* is true because this trial example uses our python annotation (refer to [here](../tools/annotation/README.md) for details). For trial, we should provide *trialCommand* which is the command to run the trial, provide *trialCodeDir* where the trial code is. The command will be executed in this directory. We should also provide how many GPUs a trial requires. + +With all these steps done, we can run the experiment with the following command: + + nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml + +You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command line tool. + +## View experiment results +The experiment has been running now, NNI provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features. The WebUI is opened by default by `nnictl create`. \ No newline at end of file diff --git a/docs/tutorial_2_RemoteMachineMode.md b/docs/tutorial_2_RemoteMachineMode.md new file mode 100644 index 0000000000..cbfc32ee40 --- /dev/null +++ b/docs/tutorial_2_RemoteMachineMode.md @@ -0,0 +1,65 @@ +**Tutorial: Run an experiment on multiple machines** +=== +NNI supports running an experiment on multiple machines, called remote machine mode. Let's say you have multiple machines with the account `bob` (Note: the account is not necessarily the same on multiple machines): + +| IP | Username| Password | +| -------- |---------|-------| +| 10.1.1.1 | bob | bob123 | +| 10.1.1.2 | bob | bob123 | +| 10.1.1.3 | bob | bob123 | + +## Setup environment +Install NNI on each of your machines following the install guide [here](GetStarted.md). + +For remote machines that are used only to run trials but not the nnictl, you can just install python SDK: + +* __Install python SDK through pip__ + + python3 -m pip install --user git+https://github.com/Microsoft/NeuralNetworkIntelligence.git#subdirectory=src/sdk/pynni + +* __Install python SDK through source code__ + + git clone https://github.com/Microsoft/NeuralNetworkIntelligence + cd src/sdk/pynni + python3 setup.py install + +## Run an experiment +Still using `examples/trials/mnist-annotation` as an example here. The yaml file you need is shown below: +``` +authorName: your_name +experimentName: auto_mnist +# how many trials could be concurrently running +trialConcurrency: 2 +# maximum experiment running duration +maxExecDuration: 3h +# empty means never stop +maxTrialNum: 100 +# choice: local, remote, pai +trainingServicePlatform: local +# choice: true, false +useAnnotation: true +tuner: + builtinTunerName: TPE + classArgs: + optimize_mode: maximize +trial: + command: python mnist.py + codeDir: /usr/share/nni/examples/trials/mnist-annotation + gpuNum: 0 +#machineList can be empty if the platform is local +machineList: + - ip: 10.1.1.1 + username: bob + passwd: bob123 + - ip: 10.1.1.2 + username: bob + passwd: bob123 + - ip: 10.1.1.3 + username: bob + passwd: bob123 +``` +Simply filling the `machineList` section. This yaml file is named `exp_remote.yaml`, then run: +``` +nnictl create --config exp_remote.yaml +``` +to start the experiment. This command can be executed on one of those three machines above, and can also be executed on another machine which has NNI installed and has network accessibility to those three machines. From 01dd6e71c1f9eecd4715843129f6e82c4d048d80 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Fri, 19 Oct 2018 14:32:42 +0800 Subject: [PATCH 02/35] update with Mao's suggestions --- README.md | 29 +++++++++++++++++++++++++++++ docs/3_steps.jpg | Bin 163024 -> 0 bytes docs/Overview.md | 38 +++++++++++++++++++++----------------- docs/img/3_steps.jpg | Bin 0 -> 79533 bytes 4 files changed, 50 insertions(+), 17 deletions(-) delete mode 100644 docs/3_steps.jpg create mode 100644 docs/img/3_steps.jpg diff --git a/README.md b/README.md index ca56a59dba..d6031df88b 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ 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). +

+drawing +

+ ## **Who should consider using NNI** 1. You want to try different AutoML algorithms for your training code (model) at local 2. You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud) @@ -40,7 +44,32 @@ source ~/.bashrc + Info: Start experiment success! The experiment id is LrNK4hae, and the restful server post is 51188. ``` +## **Documentation** +* [Overview](docs/Overview.md) +* [Get started](docs/Overview.md) +## **How to** +* [Installation](docs/InstallNNI_Ubuntu.md) +* [Use command line tool nnictl](docs/InstallNNI_Ubuntu.md) +* [Use NNIBoard](docs/InstallNNI_Ubuntu.md) +* [Define search space](docs/InstallNNI_Ubuntu.md) +* [Use NNI sdk](docs/InstallNNI_Ubuntu.md) +* [Config an experiment](docs/InstallNNI_Ubuntu.md) +* [Use annotation](docs/InstallNNI_Ubuntu.md) +* [Debug](docs/InstallNNI_Ubuntu.md) ## **Tutorials** +* [Try different tuners and assessors]() +* [How to run an experiment on local (with multiple GPUs)?]() +* [How to run an experiment on multiple machines?]() +* [How to run an experiment on OpenPAI?]() +* [How to run an experiment on K8S services?]() +* [Implement a customized tuner]() +* [Implement a customized assessor]() +* [Implement a custmoized weight sharing algorithm]() +* [How to integrate NNI with your own custmoized training service]() + + + +## **Best practice** 1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) 2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) 3. [Compare different AutoML algorithms] - *coming soon* diff --git a/docs/3_steps.jpg b/docs/3_steps.jpg deleted file mode 100644 index e5e18540ea8832dfa662e18322d26bb339c17e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163024 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

xn|8M^Wu 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 B6uAHZ diff --git a/docs/Overview.md b/docs/Overview.md index 1ab91649ad..7b24f4796b 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -1,38 +1,42 @@ # NNI Overview -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). +NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. For each experiemnt, user only need to define a search space and update a few lines of code, and then leverage exsited build-in algorithms and training services to search the best hyper parameters and/or neural architecture. -## Architecture Overview +

+drawing +

+After user submits the experiment thourgh a command line tool nnictl, a demeon process (NNI manager) take care of search process. NNI manager continiously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatches and runs 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. + +## Architecture Overview

drawing

+User can use the nnictl and/or a visulized Web UI nniboard to monitor and debug a given experiment. + +##Web UI (to be added) + +NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment. + ## Key Concepts +**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** -A **Trial** in NNI is an individual attempt at applying a set of parameters on a model. +**Trial** in NNI is an individual attempt at applying a set of parameters on a model. ### **Tuner** -A **Tuner** in NNI is an implementation of Tuner API for a special tuning algorithm. - -Current supported Tuner list: - - TPE - - Random Search - - Anneal - - Naive Evolution - - SMAC (to install through `nnictl`) - - ENAS (under development, coming soon) - - Batch (under development, coming soon) +**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](../src/sdk/pynni/nni/README.md) ### **Assessor** -A **Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment. +**Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment. + -### **Experiment** -A **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. +### **Read More** ### **nnictl** [*nnictl*](NNICTLDOC.md) diff --git a/docs/img/3_steps.jpg b/docs/img/3_steps.jpg new file mode 100644 index 0000000000000000000000000000000000000000..291ea3ba2a5fa4cfc3cf294b0d9f9adc246e9340 GIT binary patch literal 79533 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 Date: Fri, 19 Oct 2018 14:34:14 +0800 Subject: [PATCH 03/35] Set theme jekyll-theme-dinky --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index b849713594..9da9a0291e 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1 @@ -theme: jekyll-theme-leap-day \ No newline at end of file +theme: jekyll-theme-dinky \ No newline at end of file From 6447fb17ef340b37383e2122a4e1672e977ae93f Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 22 Oct 2018 09:43:43 +0800 Subject: [PATCH 04/35] update doc --- README.md | 23 ++++++----------- docs/HowToDebug.md | 1 + docs/Overview.md | 64 +++++++++++++++++++++++++--------------------- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index d6031df88b..ae459140ce 100644 --- a/README.md +++ b/README.md @@ -46,16 +46,16 @@ source ~/.bashrc ## **Documentation** * [Overview](docs/Overview.md) -* [Get started](docs/Overview.md) +* [Get started](docs/GetStarted.md) ## **How to** * [Installation](docs/InstallNNI_Ubuntu.md) -* [Use command line tool nnictl](docs/InstallNNI_Ubuntu.md) -* [Use NNIBoard](docs/InstallNNI_Ubuntu.md) -* [Define search space](docs/InstallNNI_Ubuntu.md) -* [Use NNI sdk](docs/InstallNNI_Ubuntu.md) -* [Config an experiment](docs/InstallNNI_Ubuntu.md) -* [Use annotation](docs/InstallNNI_Ubuntu.md) -* [Debug](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** * [Try different tuners and assessors]() * [How to run an experiment on local (with multiple GPUs)?]() @@ -66,19 +66,12 @@ source ~/.bashrc * [Implement a customized assessor]() * [Implement a custmoized weight sharing algorithm]() * [How to integrate NNI with your own custmoized training service]() - - - ## **Best practice** 1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) 2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) 3. [Compare different AutoML algorithms] - *coming soon* 4. [Serve NNI as a capability of a ML Platform] - *coming soon* -## **For more information** -* [NNI Overview](docs/Overview.md) -* [Install NNI on Ubuntu](docs/InstallNNI_Ubuntu.md) - ## **Contribute** This project welcomes contributions and suggestions, we are constructing the contribution guidelines, stay tuned =). diff --git a/docs/HowToDebug.md b/docs/HowToDebug.md index 0d62705512..fe146e35d2 100644 --- a/docs/HowToDebug.md +++ b/docs/HowToDebug.md @@ -1,3 +1,4 @@ **How to Debug in NNI** === +*Coming Soon* diff --git a/docs/Overview.md b/docs/Overview.md index 7b24f4796b..8fda94ecbc 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -1,21 +1,24 @@ # NNI Overview -NNI (Neural Network Intelligence) is a toolkit to help users run automated machine learning experiments. For each experiemnt, user only need to define a search space and update a few lines of code, and then leverage exsited build-in algorithms and training services to search the best hyper parameters and/or neural architecture. +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.

drawing

-After user submits the experiment thourgh a command line tool nnictl, a demeon process (NNI manager) take care of search process. NNI manager continiously get search settings that generated by tuning algorithms, then NNI manager asks the training service component to dispatches and runs 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. +After user submits the experiment through a command line tool [nnictl](../tools/README.md), 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. ## Architecture Overview

-drawing +drawing

-User can use the nnictl and/or a visulized Web UI nniboard to monitor and debug a given experiment. +User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment. + +

+drawing +

-##Web UI (to be added) NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment. @@ -23,36 +26,39 @@ NNI provides a set of examples in the package to get you familiar with the above **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** **Trial** in NNI is an individual attempt at applying a set of parameters on a model. ### **Tuner** -**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](../src/sdk/pynni/nni/README.md) +**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](../src/sdk/pynni/nni/README.md) ### **Assessor** **Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment. -### **Read More** - -### **nnictl** -[*nnictl*](NNICTLDOC.md) - - -### **NNI Python Annotation** -[NNI Python Annotation Usage](../tools/nni_annotation/README.md) - -## Get Startted -* [How to write a Trial?](howto_1_WriteTrial.md) -* [How to write an experiment?] - *coming soon* -* [How to write a customized Tuner?](howto_2_CustomizedTuner.md) -* [How to write a customized Assessor?](../examples/assessors/README.md) -* [How to resume an experiment?] - *coming soon* -* [How to enable Assessor for early stop in an experiment?](EnableAssessor.md) - -## What's New -* **07/09/2018:** NNI launched! - +## Learn More +* [Get started](docs/GetStarted.md) +### **How to** +* [Installation](docs/InstallNNI_Ubuntu.md) +* [Use command line tool nnictl](docs/InstallNNI_Ubuntu.md) +* [Use NNIBoard](docs/InstallNNI_Ubuntu.md) +* [Define search space](docs/InstallNNI_Ubuntu.md) +* [Use NNI sdk](docs/InstallNNI_Ubuntu.md) +* [Config an experiment](docs/InstallNNI_Ubuntu.md) +* [Use annotation](docs/InstallNNI_Ubuntu.md) +* [Debug](docs/InstallNNI_Ubuntu.md) +### **Tutorials** +* [Try different tuners and assessors]() +* [How to run an experiment on local (with multiple GPUs)?]() +* [How to run an experiment on multiple machines?]() +* [How to run an experiment on OpenPAI?]() +* [How to run an experiment on K8S services?]() +* [Implement a customized tuner]() +* [Implement a customized assessor]() +* [Implement a custmoized weight sharing algorithm]() +* [How to integrate NNI with your own custmoized training service]() +### **Best practice** +1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) +2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) +3. [Compare different AutoML algorithms] - *coming soon* +4. [Serve NNI as a capability of a ML Platform] - *coming soon* From 2bd43e5f24ef30e4c9e90fc12c9a1948f2f38156 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 22 Oct 2018 09:56:43 +0800 Subject: [PATCH 05/35] fix links --- docs/Overview.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/Overview.md b/docs/Overview.md index 8fda94ecbc..fbb03159fe 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -37,16 +37,16 @@ NNI provides a set of examples in the package to get you familiar with the above ## Learn More -* [Get started](docs/GetStarted.md) +* [Get started](GetStarted.md) ### **How to** -* [Installation](docs/InstallNNI_Ubuntu.md) -* [Use command line tool nnictl](docs/InstallNNI_Ubuntu.md) -* [Use NNIBoard](docs/InstallNNI_Ubuntu.md) -* [Define search space](docs/InstallNNI_Ubuntu.md) -* [Use NNI sdk](docs/InstallNNI_Ubuntu.md) -* [Config an experiment](docs/InstallNNI_Ubuntu.md) -* [Use annotation](docs/InstallNNI_Ubuntu.md) -* [Debug](docs/InstallNNI_Ubuntu.md) +* [Installation](InstallNNI_Ubuntu.md) +* [Use command line tool nnictl](InstallNNI_Ubuntu.md) +* [Use NNIBoard](InstallNNI_Ubuntu.md) +* [Define search space](InstallNNI_Ubuntu.md) +* [Use NNI sdk](InstallNNI_Ubuntu.md) +* [Config an experiment](InstallNNI_Ubuntu.md) +* [Use annotation](InstallNNI_Ubuntu.md) +* [Debug](InstallNNI_Ubuntu.md) ### **Tutorials** * [Try different tuners and assessors]() * [How to run an experiment on local (with multiple GPUs)?]() @@ -58,7 +58,7 @@ NNI provides a set of examples in the package to get you familiar with the above * [Implement a custmoized weight sharing algorithm]() * [How to integrate NNI with your own custmoized training service]() ### **Best practice** -1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) -2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) +1. [Create and Run your first experiement at local with NNI API](tutorial_1_CR_exp_local_api.md) +2. [Run an experiment on multiple machines](tutorial_2_RemoteMachineMode.md) 3. [Compare different AutoML algorithms] - *coming soon* 4. [Serve NNI as a capability of a ML Platform] - *coming soon* From 6a11b6cc4e6e6725236ef9716599f04bbfbc8240 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 22 Oct 2018 10:00:01 +0800 Subject: [PATCH 06/35] fix links --- docs/InstallNNI_Ubuntu.md | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index 206b3f420f..0c6cf1547e 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -25,16 +25,28 @@ source install.sh -## Further reading -* [NNI Overview](docs/Overview.md) -* [Tutorial: Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) -* [Tutorial: Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) -* [How to write a Trial?](howto_1_WriteTrial.md) -* [How to write a customized Tuner?](howto_2_CustomizedTuner.md) -* [How to write a customized Assessor?](../examples/assessors/README.md) -* [How to enable Assessor for early stop in an experiment?](EnableAssessor.md) - -* [Tutorial: Compare different AutoML algorithms] - *coming soon* -* [Tutorial: Serve NNI as a capability of a ML Platform] - *coming soon* -* [How to write an experiment?] - *coming soon* -* [How to resume an experiment?] - *coming soon* \ No newline at end of file +## Learn More +* [Get started](GetStarted.md) +### **How to** +* [Use command line tool nnictl](InstallNNI_Ubuntu.md) +* [Use NNIBoard](InstallNNI_Ubuntu.md) +* [Define search space](InstallNNI_Ubuntu.md) +* [Use NNI sdk](InstallNNI_Ubuntu.md) +* [Config an experiment](InstallNNI_Ubuntu.md) +* [Use annotation](InstallNNI_Ubuntu.md) +* [Debug](InstallNNI_Ubuntu.md) +### **Tutorials** +* [Try different tuners and assessors]() +* [How to run an experiment on local (with multiple GPUs)?]() +* [How to run an experiment on multiple machines?]() +* [How to run an experiment on OpenPAI?]() +* [How to run an experiment on K8S services?]() +* [Implement a customized tuner]() +* [Implement a customized assessor]() +* [Implement a custmoized weight sharing algorithm]() +* [How to integrate NNI with your own custmoized training service]() +### **Best practice** +1. [Create and Run your first experiement at local with NNI API](tutorial_1_CR_exp_local_api.md) +2. [Run an experiment on multiple machines](tutorial_2_RemoteMachineMode.md) +3. [Compare different AutoML algorithms] - *coming soon* +4. [Serve NNI as a capability of a ML Platform] - *coming soon* From e2291005b8656a00cd2c592b2883cf493f7861c2 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 22 Oct 2018 10:09:47 +0800 Subject: [PATCH 07/35] fix links --- README.md | 26 +++++++++--------- docs/AnnotationSpec.md | 55 +++++++++++++++++++++++++++++++++++++++ docs/InstallNNI_Ubuntu.md | 27 ------------------- docs/Overview.md | 36 ++++++++++++------------- 4 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 docs/AnnotationSpec.md diff --git a/README.md b/README.md index ae459140ce..b614682cfe 100644 --- a/README.md +++ b/README.md @@ -57,20 +57,18 @@ source ~/.bashrc * [Use annotation]- *coming soon* * [Debug](docs/HowToDebug.md) ## **Tutorials** -* [Try different tuners and assessors]() -* [How to run an experiment on local (with multiple GPUs)?]() -* [How to run an experiment on multiple machines?]() -* [How to run an experiment on OpenPAI?]() -* [How to run an experiment on K8S services?]() -* [Implement a customized tuner]() -* [Implement a customized assessor]() -* [Implement a custmoized weight sharing algorithm]() -* [How to integrate NNI with your own custmoized training service]() -## **Best practice** -1. [Create and Run your first experiement at local with NNI API](docs/tutorial_1_CR_exp_local_api.md) -2. [Run an experiment on multiple machines](docs/tutorial_2_RemoteMachineMode.md) -3. [Compare different AutoML algorithms] - *coming soon* -4. [Serve NNI as a capability of a ML Platform] - *coming soon* +* [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) +* [How to run an experiment on OpenPAI?](docs/PAIMode.md) +* [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** This project welcomes contributions and suggestions, we are constructing the contribution guidelines, stay tuned =). diff --git a/docs/AnnotationSpec.md b/docs/AnnotationSpec.md new file mode 100644 index 0000000000..5383e3cc24 --- /dev/null +++ b/docs/AnnotationSpec.md @@ -0,0 +1,55 @@ +# Introduction + +For good user experience and reduce user effort, we need to design a good annotation grammar. + +If users use NNI system, they only need to: + + 1. Annotation variable in code as: + + '''@nni.variable(nni.choice(2,3,5,7),name=self.conv_size)''' + + 2. Annotation intermediate in code as: + + '''@nni.report_intermediate_result(test_acc)''' + + 3. Annotation output in code as: + + '''@nni.report_final_result(test_acc)''' + + 4. Annotation `function_choice` in code as: + + '''@nni.function_choice(max_pool(h_conv1, self.pool_size),avg_pool(h_conv1, self.pool_size),name=max_pool)''' + +In this way, they can easily realize automatic tuning on NNI. + +For `@nni.variable`, `nni.choice` is the type of search space and there are 10 types to express your search space as follows: + + 1. `@nni.variable(nni.choice(option1,option2,...,optionN),name=variable)` + Which means the variable value is one of the options, which should be a list The elements of options can themselves be stochastic expressions + + 2. `@nni.variable(nni.randint(upper),name=variable)` + Which means the variable value is a random integer in the range [0, upper). + + 3. `@nni.variable(nni.uniform(low, high),name=variable)` + Which means the variable value is a value uniformly between low and high. + + 4. `@nni.variable(nni.quniform(low, high, q),name=variable)` + Which means the variable value is a value like round(uniform(low, high) / q) * q + + 5. `@nni.variable(nni.loguniform(low, high),name=variable)` + Which means the variable value is a value drawn according to exp(uniform(low, high)) so that the logarithm of the return value is uniformly distributed. + + 6. `@nni.variable(nni.qloguniform(low, high, q),name=variable)` + Which means the variable value is a value like round(exp(uniform(low, high)) / q) * q + + 7. `@nni.variable(nni.normal(label, mu, sigma),name=variable)` + Which means the variable value is a real value that's normally-distributed with mean mu and standard deviation sigma. + + 8. `@nni.variable(nni.qnormal(label, mu, sigma, q),name=variable)` + Which means the variable value is a value like round(normal(mu, sigma) / q) * q + + 9. `@nni.variable(nni.lognormal(label, mu, sigma),name=variable)` + Which means the variable value is a value drawn according to exp(normal(mu, sigma)) + +10. `@nni.variable(nni.qlognormal(label, mu, sigma, q),name=variable)` + Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index 0c6cf1547e..9e7cb8b1b6 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -23,30 +23,3 @@ cd nni chmod +x install.sh source install.sh - - -## Learn More -* [Get started](GetStarted.md) -### **How to** -* [Use command line tool nnictl](InstallNNI_Ubuntu.md) -* [Use NNIBoard](InstallNNI_Ubuntu.md) -* [Define search space](InstallNNI_Ubuntu.md) -* [Use NNI sdk](InstallNNI_Ubuntu.md) -* [Config an experiment](InstallNNI_Ubuntu.md) -* [Use annotation](InstallNNI_Ubuntu.md) -* [Debug](InstallNNI_Ubuntu.md) -### **Tutorials** -* [Try different tuners and assessors]() -* [How to run an experiment on local (with multiple GPUs)?]() -* [How to run an experiment on multiple machines?]() -* [How to run an experiment on OpenPAI?]() -* [How to run an experiment on K8S services?]() -* [Implement a customized tuner]() -* [Implement a customized assessor]() -* [Implement a custmoized weight sharing algorithm]() -* [How to integrate NNI with your own custmoized training service]() -### **Best practice** -1. [Create and Run your first experiement at local with NNI API](tutorial_1_CR_exp_local_api.md) -2. [Run an experiment on multiple machines](tutorial_2_RemoteMachineMode.md) -3. [Compare different AutoML algorithms] - *coming soon* -4. [Serve NNI as a capability of a ML Platform] - *coming soon* diff --git a/docs/Overview.md b/docs/Overview.md index fbb03159fe..412b37f089 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -40,25 +40,23 @@ NNI provides a set of examples in the package to get you familiar with the above * [Get started](GetStarted.md) ### **How to** * [Installation](InstallNNI_Ubuntu.md) -* [Use command line tool nnictl](InstallNNI_Ubuntu.md) -* [Use NNIBoard](InstallNNI_Ubuntu.md) +* [Use command line tool nnictl](NNICTLDOC.md) +* [Use NNIBoard](WebUI.md) * [Define search space](InstallNNI_Ubuntu.md) -* [Use NNI sdk](InstallNNI_Ubuntu.md) -* [Config an experiment](InstallNNI_Ubuntu.md) -* [Use annotation](InstallNNI_Ubuntu.md) -* [Debug](InstallNNI_Ubuntu.md) +* [Use NNI sdk] - *coming soon* +* [Config an experiment](SearchSpaceSpec.md) +* [Use annotation](AnnotationSpec.md) +* [Debug](HowToDebug.md) ### **Tutorials** -* [Try different tuners and assessors]() -* [How to run an experiment on local (with multiple GPUs)?]() -* [How to run an experiment on multiple machines?]() -* [How to run an experiment on OpenPAI?]() -* [How to run an experiment on K8S services?]() -* [Implement a customized tuner]() -* [Implement a customized assessor]() -* [Implement a custmoized weight sharing algorithm]() -* [How to integrate NNI with your own custmoized training service]() +* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md) +* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md) +* [How to run an experiment on OpenPAI?](PAIMode.md) +* [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** -1. [Create and Run your first experiement at local with NNI API](tutorial_1_CR_exp_local_api.md) -2. [Run an experiment on multiple machines](tutorial_2_RemoteMachineMode.md) -3. [Compare different AutoML algorithms] - *coming soon* -4. [Serve NNI as a capability of a ML Platform] - *coming soon* +* [Compare different AutoML algorithms] - *coming soon* +* [Serve NNI as a capability of a ML Platform] - *coming soon* From 781ee75a06ddbab2f24fa57f3dd5a40ae770c86a Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:22:34 +0800 Subject: [PATCH 08/35] merge --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 18916db97e..39f23c0ff1 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,6 @@ The tool dispatches and runs trial jobs that generated by tuning algorithms to s 3. As a researcher or a data scientist, you want to implement your own AutoML algorithm and compare it with other algorithms 4. As a ML platform owner, you want to provide AutoML support on the platform -<<<<<<< HEAD -======= -Check out the [Tutorials](#Tutorials) for each goal. - ->>>>>>> e2291005b8656a00cd2c592b2883cf493f7861c2 ## **Install & Verify** **pip install** From 4a4804f8f6fba079053fba95ebdee9916ac3de14 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:31:11 +0800 Subject: [PATCH 09/35] fix links and doc errors --- README.md | 4 ---- docs/GetStarted.md | 2 +- docs/InstallNNI_Ubuntu.md | 4 +--- docs/howto_2_CustomizedTuner.md | 2 +- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 39f23c0ff1..a559c36ec5 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,6 @@ source ~/.bashrc 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. -<<<<<<< HEAD ## **License** The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE) - -======= ->>>>>>> e2291005b8656a00cd2c592b2883cf493f7861c2 diff --git a/docs/GetStarted.md b/docs/GetStarted.md index 5f710f3139..ad31c58504 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -38,7 +38,7 @@ An experiment is to run multiple trial jobs, each trial job tries a configuratio This command will be filled in the yaml configure file below. Please refer to [here]() for how to write your own trial. -**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](CustomizedTuner.md)), but for simplicity, here we choose a tuner provided by NNI as below: +**Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](howto_2_CustomizedTuner.md), but for simplicity, here we choose a tuner provided by NNI as below: tuner: builtinTunerName: TPE diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index 9e7cb8b1b6..ac8d01d0e3 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -9,12 +9,10 @@ wget python pip should also be correctly installed. You could use "which pip" or "pip -V" to check in Linux. - - * Note: we don't support virtual environment in current releases. * __Install NNI through pip__ - pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.1 + pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.2 source ~/.bashrc * __Install NNI through source code__ diff --git a/docs/howto_2_CustomizedTuner.md b/docs/howto_2_CustomizedTuner.md index 7994a82cad..774545d95a 100644 --- a/docs/howto_2_CustomizedTuner.md +++ b/docs/howto_2_CustomizedTuner.md @@ -1,4 +1,4 @@ -# Customized Tuner for Experts +# **How To** - Customize Your Own Tuner *Tuner receive result from Trial as a matric to evaluate the performance of a specific parameters/architecture configure. And tuner send next hyper-parameter or architecture configure to Trial.* From 091e5026443d711bc8871164f7788e994357ec63 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:34:25 +0800 Subject: [PATCH 10/35] merge --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a559c36ec5..98e910b558 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ # Neural Network Intelligence -[![Build Status](https://travis-ci.org/Microsoft/nni.svg?branch=master)](https://travis-ci.org/Microsoft/nni) +[![Build Status](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6) +[![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) +[![Version](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) + 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). From c6b3d358d5c25f5c245ea383fdabbc06dfc52d40 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:35:20 +0800 Subject: [PATCH 11/35] merge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 98e910b558..b0e1fa088e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ [![Pull Requests](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen) [![Version](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) - 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). From b141cffbaf927e13ccb21df87f46022d34c674b9 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:36:21 +0800 Subject: [PATCH 12/35] merge --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b0e1fa088e..e2cbd97378 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,10 @@ The tool dispatches and runs trial jobs that generated by tuning algorithms to s

## **Who should consider using NNI** -1. You want to try different AutoML algorithms for your training code (model) at local -2. You want to run AutoML trial jobs in different environments to speed up search (e.g. remote servers and cloud) -3. As a researcher or a data scientist, you want to implement your own AutoML algorithm and compare it with other algorithms -4. As a ML platform owner, you want to provide AutoML support on the platform +* 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 and 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 & Verify** @@ -79,3 +79,4 @@ We use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking req ## **License** The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE) + From 47da3ba799de3e8fc3d8a8d19712676eb3786d23 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 25 Oct 2018 14:38:33 +0800 Subject: [PATCH 13/35] merge --- docs/HowToDebug.md | 3 ++- docs/InstallNNI_Ubuntu.md | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/HowToDebug.md b/docs/HowToDebug.md index 71140cb982..f5b3d3a774 100644 --- a/docs/HowToDebug.md +++ b/docs/HowToDebug.md @@ -1,3 +1,4 @@ **How to Debug in NNI** === -*Coming Soon* \ No newline at end of file + +*Coming soon* \ No newline at end of file diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index ac8d01d0e3..224d03de1a 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -21,3 +21,14 @@ cd nni chmod +x install.sh source install.sh + + +## Further reading +* [Overview](Overview.md) +* [Use command line tool nnictl](NNICTLDOC.md) +* [Use NNIBoard](WebUI.md) +* [Define search space](SearchSpaceSpec.md) +* [Config an experiment](ExperimentConfig.md) +* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md) +* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md) +* [How to run an experiment on OpenPAI?](PAIMode.md) From 4a8c8a97c24dc993d153fc589ce5ba65e664455f Mon Sep 17 00:00:00 2001 From: SparkSnail Date: Wed, 31 Oct 2018 18:38:42 +0800 Subject: [PATCH 14/35] Quick fix nnictl config logic (#289) * fix nnictl bug * fix install.sh * add desc for Dockerfile.build.base * update document for Dockerfile * update * refactor port detect * update * refactor NNICTLDOC.md * add document for pai and nnictl * add default value for port * add exception handling in trial_keeper.py * fix port bug * fix resume * fix nnictl resume and fix nnictl stop * fix document * update * refactor nnictl * update * update doc * update * update nnictl * fix comment * revert dockerfile * update * update * update * fix nnictl error hit * fix comments * fix bash-completion * fix paramiko install * quick fix resume logic * update * quick fix nnictl --- tools/nnicmd/nnictl_utils.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/nnicmd/nnictl_utils.py b/tools/nnicmd/nnictl_utils.py index 40a3af8284..1585890508 100644 --- a/tools/nnicmd/nnictl_utils.py +++ b/tools/nnicmd/nnictl_utils.py @@ -42,8 +42,11 @@ def check_experiment_id(args): if not args.id: running_experiment_list = [] for key in experiment_dict.keys(): - if experiment_dict[key]['status'] == 'running': - running_experiment_list.append(key) + try: + if experiment_dict[key]['status'] == 'running': + running_experiment_list.append(key) + except: + pass if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') experiment_information = "" @@ -80,8 +83,11 @@ def parse_ids(args): result_list = [] running_experiment_list = [] for key in experiment_dict.keys(): - if experiment_dict[key]['status'] == 'running': - running_experiment_list.append(key) + try: + if experiment_dict[key]['status'] == 'running': + running_experiment_list.append(key) + except: + pass if not args.id: if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') From 1ce3310d67391191ad23b4a5407d115c18e7dd92 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 31 Oct 2018 19:03:15 +0800 Subject: [PATCH 15/35] merge --- docs/InstallNNI_Ubuntu.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index 7de6871bdf..12f6335ef8 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -12,12 +12,7 @@ * __Install NNI through pip__ -<<<<<<< HEAD - pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.2 - source ~/.bashrc -======= python3 -m pip install --user nni-pkg ->>>>>>> upstream/master * __Install NNI through source code__ From 3e8920ad680f876362a0a169a38988768519f717 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 31 Oct 2018 19:16:50 +0800 Subject: [PATCH 16/35] updated the "Contribute" part (merged Gems' wiki in, updated ReadMe) --- README.md | 10 ++++++++-- ...ToContribute.md => SetupNNIDeveloperEnvironment.md} | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) rename docs/{HowToContribute.md => SetupNNIDeveloperEnvironment.md} (97%) diff --git a/README.md b/README.md index efba873fe4..77f4ec8eff 100644 --- a/README.md +++ b/README.md @@ -81,9 +81,15 @@ The tool dispatches and runs trial jobs that generated by tuning algorithms to s * [Serve NNI as a capability of a ML Platform] - *coming soon* ## **Contribute** -This project welcomes contributions and suggestions, we are constructing the contribution guidelines, stay tuned =). +This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs. -We use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs. +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. ## **License** The entire codebase is under [MIT license](https://github.com/Microsoft/nni/blob/master/LICENSE) diff --git a/docs/HowToContribute.md b/docs/SetupNNIDeveloperEnvironment.md similarity index 97% rename from docs/HowToContribute.md rename to docs/SetupNNIDeveloperEnvironment.md index 34384df4e0..a233e688d9 100644 --- a/docs/HowToContribute.md +++ b/docs/SetupNNIDeveloperEnvironment.md @@ -1,4 +1,4 @@ -**How to contribute** +**Set up NNI developer environment** === ## Best practice for debug NNI source code From 91fd9b6528a21f825ec7bc9810d9d3f31fc43db6 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 31 Oct 2018 19:19:42 +0800 Subject: [PATCH 17/35] fix link --- docs/SetupNNIDeveloperEnvironment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/SetupNNIDeveloperEnvironment.md b/docs/SetupNNIDeveloperEnvironment.md index a233e688d9..a9a9cb9d01 100644 --- a/docs/SetupNNIDeveloperEnvironment.md +++ b/docs/SetupNNIDeveloperEnvironment.md @@ -51,4 +51,4 @@ After you change some code, just use **step 4** to rebuild your code, then the c --- At last, wish you have a wonderful day. -For more contribution guidelines on making PR's or issues to NNI source code, you can refer to our [CONTRIBUTING](./docs/CONTRIBUTING.md) document. +For more contribution guidelines on making PR's or issues to NNI source code, you can refer to our [CONTRIBUTING](./CONTRIBUTING.md) document. From 9fdc11ea1c0f201a954b37b02bcb374424d39fde Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 1 Nov 2018 13:03:10 +0800 Subject: [PATCH 18/35] revise the installation cmd to v0.2 --- README.md | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d7636888d6..52f50182a7 100644 --- a/README.md +++ b/README.md @@ -22,23 +22,15 @@ The tool dispatches and runs trial jobs generated by tuning algorithms to search ## **Install & Verify** -**Install through source code** -* We only support Linux (Ubuntu 16.04 or higher) in our current stage. -* Run the following `pip install` in an environment that has `python >= 3.5`, `git` and `wget`. -```bash - git clone -b v0.3 https://github.com/Microsoft/nni.git - cd nni - source install.sh +**pip install** +* 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`, `git` and `wget`. ``` - -**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 https://github.com/Microsoft/nni.git +python3 -m pip install -v --user git+https://github.com/Microsoft/nni.git@v0.2 +source ~/.bashrc ``` -* Run the mnist example. + +**verify install** +* The following example is an experiment built on TensorFlow, make sure you have `TensorFlow installed` before running it. ```bash nnictl create --config ~/nni/examples/trials/mnist/config.yml ``` @@ -51,7 +43,7 @@ The tool dispatches and runs trial jobs generated by tuning algorithms to search Info: Checking web ui... Info: Starting web ui... Info: Starting web ui success! -+ Info: Web UI url: http://127.0.0.1:8080 http://10.172.141.6:8080 ++ Info: Web UI url: http://yourlocalhost:8080 http://youripaddress:8080 + Info: Start experiment success! The experiment id is LrNK4hae, and the restful server post is 51188. ``` From d777f131172eda4342ba8686e817647d8a267ef9 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 1 Nov 2018 13:06:32 +0800 Subject: [PATCH 19/35] revise to install v0.2 --- docs/InstallNNI_Ubuntu.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index 12f6335ef8..fc3f64f798 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -12,15 +12,16 @@ * __Install NNI through pip__ - python3 -m pip install --user nni-pkg + pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.2 + source ~/.bashrc * __Install NNI through source code__ - git clone -b v0.3 https://github.com/Microsoft/nni.git + git clone -b v0.2 https://github.com/Microsoft/nni.git cd nni + chmod +x install.sh source install.sh - ## Further reading * [Overview](Overview.md) * [Use command line tool nnictl](NNICTLDOC.md) From 233c7eeec4c802597ff5d6a7c217adc6a4de2b6e Mon Sep 17 00:00:00 2001 From: Scarlett Li <39592018+scarlett2018@users.noreply.github.com> Date: Thu, 1 Nov 2018 14:40:53 +0800 Subject: [PATCH 20/35] Update nnictl_utils.py --- tools/nnicmd/nnictl_utils.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/nnicmd/nnictl_utils.py b/tools/nnicmd/nnictl_utils.py index 1585890508..f8e4a477cb 100644 --- a/tools/nnicmd/nnictl_utils.py +++ b/tools/nnicmd/nnictl_utils.py @@ -42,11 +42,9 @@ def check_experiment_id(args): if not args.id: running_experiment_list = [] for key in experiment_dict.keys(): - try: if experiment_dict[key]['status'] == 'running': running_experiment_list.append(key) - except: - pass + if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') experiment_information = "" @@ -83,11 +81,9 @@ def parse_ids(args): result_list = [] running_experiment_list = [] for key in experiment_dict.keys(): - try: if experiment_dict[key]['status'] == 'running': running_experiment_list.append(key) - except: - pass + if not args.id: if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') From 13fb771fb254618f4551218158fa5ac0f848a2c5 Mon Sep 17 00:00:00 2001 From: QuanluZhang Date: Thu, 1 Nov 2018 14:42:24 +0800 Subject: [PATCH 21/35] Update nnictl_utils.py --- tools/nnicmd/nnictl_utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/nnicmd/nnictl_utils.py b/tools/nnicmd/nnictl_utils.py index f8e4a477cb..09c673bc23 100644 --- a/tools/nnicmd/nnictl_utils.py +++ b/tools/nnicmd/nnictl_utils.py @@ -42,8 +42,8 @@ def check_experiment_id(args): if not args.id: running_experiment_list = [] for key in experiment_dict.keys(): - if experiment_dict[key]['status'] == 'running': - running_experiment_list.append(key) + if experiment_dict[key]['status'] == 'running': + running_experiment_list.append(key) if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') @@ -81,8 +81,8 @@ def parse_ids(args): result_list = [] running_experiment_list = [] for key in experiment_dict.keys(): - if experiment_dict[key]['status'] == 'running': - running_experiment_list.append(key) + if experiment_dict[key]['status'] == 'running': + running_experiment_list.append(key) if not args.id: if len(running_experiment_list) > 1: From e0f31db8c3f0a2dc913fbfbf21d11ebd8119bc76 Mon Sep 17 00:00:00 2001 From: QuanluZhang Date: Thu, 1 Nov 2018 14:42:57 +0800 Subject: [PATCH 22/35] Update nnictl_utils.py --- tools/nnicmd/nnictl_utils.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/nnicmd/nnictl_utils.py b/tools/nnicmd/nnictl_utils.py index 09c673bc23..40a3af8284 100644 --- a/tools/nnicmd/nnictl_utils.py +++ b/tools/nnicmd/nnictl_utils.py @@ -44,7 +44,6 @@ def check_experiment_id(args): for key in experiment_dict.keys(): if experiment_dict[key]['status'] == 'running': running_experiment_list.append(key) - if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') experiment_information = "" @@ -83,7 +82,6 @@ def parse_ids(args): for key in experiment_dict.keys(): if experiment_dict[key]['status'] == 'running': running_experiment_list.append(key) - if not args.id: if len(running_experiment_list) > 1: print_error('There are multiple experiments running, please set the experiment id...') From a889587f1452129374952c1e55f02fc9deddf5f9 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Fri, 2 Nov 2018 16:02:28 +0800 Subject: [PATCH 23/35] Update documentation for v0.3 --- README.md | 24 ++++++--------- docs/AnnotationSpec.md | 2 +- docs/ExperimentConfig.md | 2 +- docs/tutorial_3_tryTunersAndAccessors.md | 37 ++++++++++++++++++++++++ examples/assessors/README.md | 2 +- 5 files changed, 49 insertions(+), 18 deletions(-) create mode 100644 docs/tutorial_3_tryTunersAndAccessors.md diff --git a/README.md b/README.md index a85ddddfb2..3f0fc4f4bb 100644 --- a/README.md +++ b/README.md @@ -55,24 +55,18 @@ source ~/.bashrc * [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* +* [How to define search space](docs/SearchSpaceSpec.md) * [Config an experiment](docs/ExperimentConfig.md) -* [Use annotation]- *coming soon* +* [Use annotation](docs/AnnotationSpec.md) * [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) -* [How to run an experiment on OpenPAI?](docs/PAIMode.md) -* [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* +* [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md) +* [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md) +* [Run an experiment on OpenPAI?](docs/PAIMode.md) +* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAccessors.md) +* [Implement a customized tuner](docs/howto_2_CustomizedTuner.md) +* [Implement a customized assessor](examples/assessors/README.md) +* [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md) ## **Contribute** This project welcomes contributions and suggestions, we use [GitHub issues](https://github.com/Microsoft/nni/issues) for tracking requests and bugs. diff --git a/docs/AnnotationSpec.md b/docs/AnnotationSpec.md index 62d2c60392..3f665c94de 100644 --- a/docs/AnnotationSpec.md +++ b/docs/AnnotationSpec.md @@ -1,4 +1,4 @@ -# Introduction +# NNI Annotation For good user experience and reduce user effort, we need to design a good annotation grammar. diff --git a/docs/ExperimentConfig.md b/docs/ExperimentConfig.md index 74fc121f3f..a84a6e4322 100644 --- a/docs/ExperimentConfig.md +++ b/docs/ExperimentConfig.md @@ -1,4 +1,4 @@ -Experiment config reference +# Experiment config reference === If you want to create a new nni experiment, you need to prepare a config file in your local machine, and provide the path of this file to nnictl. diff --git a/docs/tutorial_3_tryTunersAndAccessors.md b/docs/tutorial_3_tryTunersAndAccessors.md new file mode 100644 index 0000000000..2e3ad4917f --- /dev/null +++ b/docs/tutorial_3_tryTunersAndAccessors.md @@ -0,0 +1,37 @@ +# Tutorial - Try different Tuners and Accessors + +NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Accessors**. + +**Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner. +1. Directly use tuner provided by nni sdk + + required fields: builtinTunerName and classArgs. + +2. Customize your own tuner file + + required fields: codeDirectory, classFileName, className and classArgs. + +### **Learn More about tuners** +* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md) +* [Tuners in the latest NNI release](../src/sdk/pynni/nni/README.md) +* [How to implement your own tuner](howto_2_CustomizedTuner.md) + + +**Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor. +1. Directly use accessor provided by nni sdk + + required fields: builtinAssessorName and classArgs. + +2. Customize your own tuner file + + required fields: codeDirectory, classFileName, className and classArgs. + +### **Learn More about assessor** +* For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md) +* Find more about the detailed instruction about [enable accessor](EnableAssessor.md) +* [How to implement your own assessor](../examples/assessors/README.md) + +## **Learn More** +* [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md) +* [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md) +* [How to run an experiment on OpenPAI?](PAIMode.md) diff --git a/examples/assessors/README.md b/examples/assessors/README.md index 8e6376dce2..2944c2f472 100644 --- a/examples/assessors/README.md +++ b/examples/assessors/README.md @@ -1,4 +1,4 @@ -# Customized Assessor for Experts +# Define your own Assessor *Assessor receive intermediate result from Trial and decide whether the Trial should be killed. Once the Trial experiment meets the early stop conditions, the assessor will kill the Trial.* From f232d441b242231bb1ddc83e8bdcc2169a08e144 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 5 Nov 2018 15:25:30 +0800 Subject: [PATCH 24/35] update release note --- docs/RELEASE.md | 47 +++++++++++++++-------------- docs/tutorial_1_CR_exp_local_api.md | 2 +- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 78e0c6c9c6..e849923b7e 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,36 +1,39 @@ # Release 0.3.0 - 11/2/2018 -## Major Features -* Support running multiple experiments simultaneously. You can run multiple experiments by specifying a unique port for each experiment: +## NNICTL new features and updates +* Support running multiple experiments simultaneously. + + Before v0.3, NNI only supports running single experiment once a time. After this realse, users are able to run multiple experiments simultaneously. Each experiment will require a unique port, the 1st experiment will be set to the default port as previous versions. You can specify a unique port for the rest experiments as below: ```nnictl create --port 8081 --config ``` +* Support updating max trial number. + use ```nnictl update --help``` to learn more. Or refer to [NNICTL Spec](https://github.com/Microsoft/nni/blob/master/docs/NNICTLDOC.md) for the fully usage of NNICTL. - You can still run the first experiment without '--port' parameter: +## API new features and updates +* **breaking change**: nn.get_parameters() is refactored to nni.get_next_parameter. All examples of prior releases can not run on v0.3, please clone nni repo to get new examples. If you had applied NNI to your own codes, please update the API accordingly. - ```nnictl create --config ``` -* A builtin Batch Tuner which iterates all parameter combination, can be used to submit batch trial jobs. -* nni.report_final_result(result) API supports more data types for result parameter, it can be of following types: +* New API **nni.get_sequence_id()**. + Each trial job is allocated a unique sequence number, which can be retrieved by nni.get_sequence_id() API. + + ```git clone -b v0.3 https://github.com/Microsoft/nni.git``` +* **nni.report_final_result(result)** API supports more data types for result parameter. + It can be of following types: * int * float * A python dict containing 'default' key, the value of 'default' key should be of type int or float. The dict can contain any other key value pairs. -* Continuous Integration - * Switched to Azure pipelines -* Others - * New nni.get_sequence_id() API. Each trial job is allocated a unique sequence number, which can be retrieved by nni.get_sequence_id() API. - * Download experiment result from WebUI - * Add trial examples using sklearn and NNI together - * Support updating max trial number - * Kaggle competition TGS Salt code as an example - * NNI Docker image: - ```docker pull msranni/nni:latest``` - -## Breaking changes -* API nn.get_parameters() is renamed to nni.get_next_parameter(), this is a broken change, all examples of prior releases can not run on v0.3, please clone nni repo to get new examples. +## New tuner support +* **Batch Tuner** which iterates all parameter combination, can be used to submit batch trial jobs. - ```git clone -b v0.3 https://github.com/Microsoft/nni.git``` +## New examples +* A NNI Docker image for public usage: + ```docker pull msranni/nni:latest``` +* New trial example: [NNI Sklearn Example](https://github.com/Microsoft/nni/tree/master/examples/trials/sklearn) +* New competition example: [Kaggle Competition TGS Salt Example](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt) + +## Others +* Continuous Integration: NNI had switched to Azure pipelines +* [Known Issues in release 0.3.0](https://github.com/Microsoft/nni/labels/nni030knownissues). -## Know issues -[Known Issues in release 0.3.0](https://github.com/Microsoft/nni/labels/nni030knownissues). # Release 0.2.0 - 9/29/2018 ## Major Features diff --git a/docs/tutorial_1_CR_exp_local_api.md b/docs/tutorial_1_CR_exp_local_api.md index e28598b82e..9d78755c8d 100644 --- a/docs/tutorial_1_CR_exp_local_api.md +++ b/docs/tutorial_1_CR_exp_local_api.md @@ -17,7 +17,7 @@ To enable NNI API, make the following changes: 1.2 Get predefined parameters Use the following code snippet: - RECEIVED_PARAMS = nni.get_parameters() + RECEIVED_PARAMS = nni.get_next_parameter() to get hyper-parameters' values assigned by tuner. `RECEIVED_PARAMS` is an object, for example: From f8877f3254827749cfc3d6ce859125207989105b Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 5 Nov 2018 15:30:51 +0800 Subject: [PATCH 25/35] update v0.3.0 release note +1 --- docs/RELEASE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index e849923b7e..49558fd046 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -31,6 +31,7 @@ * New competition example: [Kaggle Competition TGS Salt Example](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt) ## Others +* UI refactoring, refer to [WebUI doc](WebUI.md) for how to work with the new UI. * Continuous Integration: NNI had switched to Azure pipelines * [Known Issues in release 0.3.0](https://github.com/Microsoft/nni/labels/nni030knownissues). From 3586cfeac85ac95e14dcabd14528ed2b0076dcae Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 5 Nov 2018 18:31:58 +0800 Subject: [PATCH 26/35] update doc for installation tag v0.3.3 --- README.md | 7 ++++--- docs/GetStarted.md | 2 +- docs/InstallNNI_Ubuntu.md | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 307aba3e2f..53ad6b5537 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,17 @@ Note: If you are in docker container (as root), please remove `--user` from the * 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.2 https://github.com/Microsoft/nni.git + git clone -b v0.3.3 https://github.com/Microsoft/nni.git cd nni source install.sh ``` **Verify install** -* The following example is an experiment built on TensorFlow. Make sure you have **TensorFlow installed** before running it. + +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 - git clone -b v0.3.2 https://github.com/Microsoft/nni.git + git clone -b v0.3.3 https://github.com/Microsoft/nni.git ``` * Run the mnist example. ```bash diff --git a/docs/GetStarted.md b/docs/GetStarted.md index a5d950299d..cde8a3cb85 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -18,7 +18,7 @@ * __Install NNI through source code__ - git clone -b v0.3.2 https://github.com/Microsoft/nni.git + git clone -b v0.3.3 https://github.com/Microsoft/nni.git cd nni source install.sh diff --git a/docs/InstallNNI_Ubuntu.md b/docs/InstallNNI_Ubuntu.md index e32d7006b7..3256028db0 100644 --- a/docs/InstallNNI_Ubuntu.md +++ b/docs/InstallNNI_Ubuntu.md @@ -16,7 +16,7 @@ * __Install NNI through source code__ - git clone -b v0.3.2 https://github.com/Microsoft/nni.git + git clone -b v0.3.3 https://github.com/Microsoft/nni.git cd nni source install.sh From 25626d5329803bc59a6ed01279737872b29bdd8c Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 7 Nov 2018 13:45:00 +0800 Subject: [PATCH 27/35] fix contributing doc problems --- docs/CONTRIBUTING.md | 2 +- docs/SetupNNIDeveloperEnvironment.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 4d0f488082..9fc7ff3c96 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -28,7 +28,7 @@ When raising issues, please specify the following: Provide PRs with appropriate tags for bug fixes or enhancements to the source code. Do follow the correct naming conventions and code styles when you work on and do try to implement all code reviews along the way. -If you are looking for How to go about contributing and debugging the NNI source code, you can refer our [How to Contribute](./HowToContribute.md) file in the `docs` folder. +If you are looking for How to develop and debug the NNI source code, you can refer to [How to set up NNI developer environment doc](./SetupNNIDeveloperEnvironment.md) file in the `docs` folder. Similarly for [writing trials](./WriteYourTrial.md) or [starting experiments](StartExperiment.md). For everything else, refer [here](https://github.com/Microsoft/nni/tree/master/docs). diff --git a/docs/SetupNNIDeveloperEnvironment.md b/docs/SetupNNIDeveloperEnvironment.md index a9a9cb9d01..ea93ce60e2 100644 --- a/docs/SetupNNIDeveloperEnvironment.md +++ b/docs/SetupNNIDeveloperEnvironment.md @@ -47,7 +47,7 @@ And open WebUI to check if everything is OK **6. Redeploy** -After you change some code, just use **step 4** to rebuild your code, then the change will take effect immediately +After the code changes, use **step 3** to rebuild your codes, then the changes will take effect immediately. --- At last, wish you have a wonderful day. From 800751c696ce0a9455829b9166ee1f450c4c4165 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Mon, 12 Nov 2018 10:27:06 +0800 Subject: [PATCH 28/35] update doc for "write trial" --- README.md | 11 ++++++----- docs/Overview.md | 33 ++++++++++----------------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 64c49ff943..0c47f769fb 100644 --- a/README.md +++ b/README.md @@ -88,16 +88,17 @@ You can use these commands to get more information about the experiment ## **Documentation** -* [Overview](docs/Overview.md) -* [Get started](docs/GetStarted.md) +* [NNI overview](docs/Overview.md) +* [Quick start](docs/GetStarted.md) + ## **How to** -* [Installation](docs/InstallNNI_Ubuntu.md) +* [Install NNI](docs/InstallNNI_Ubuntu.md) * [Use command line tool nnictl](docs/NNICTLDOC.md) * [Use NNIBoard](docs/WebUI.md) * [How to define search space](docs/SearchSpaceSpec.md) +* [How to define a trial](docs/howto_1_WriteTrial.md) * [Config an experiment](docs/ExperimentConfig.md) -* [Use annotation](docs/AnnotationSpec.md) -* [Debug](docs/HowToDebug.md) +* [How to use annotation](docs/howto_1_WriteTrial.md#nni-python-annotation) ## **Tutorials** * [Run an experiment on local (with multiple GPUs)?](docs/tutorial_1_CR_exp_local_api.md) * [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md) diff --git a/docs/Overview.md b/docs/Overview.md index d072af179b..f93764266f 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -2,6 +2,13 @@ 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](SearchSpaceSpec.md) + +>Step 2: [Update model codes](howto_1_WriteTrial.md) + +>Step 3: [Define Experiment](ExperimentConfig.md) + +

drawing

@@ -15,11 +22,6 @@ After user submits the experiment through a command line tool [nnictl](../tools/ User can use the nnictl and/or a visualized Web UI nniboard to monitor and debug a given experiment. -

-drawing -

- - NNI provides a set of examples in the package to get you familiar with the above process. In the following example [/examples/trials/mnist], we had already set up the configuration and updated the training codes for you. You can directly run the following command to start an experiment. ## Key Concepts @@ -35,28 +37,13 @@ NNI provides a set of examples in the package to get you familiar with the above ### **Assessor** **Assessor** in NNI is an implementation of Assessor API for optimizing the execution of experiment. - ## Learn More * [Get started](GetStarted.md) -### **How to** -* [Installation](InstallNNI_Ubuntu.md) +* [Install NNI](InstallNNI_Ubuntu.md) * [Use command line tool nnictl](NNICTLDOC.md) * [Use NNIBoard](WebUI.md) -* [Define search space](InstallNNI_Ubuntu.md) -* [Use NNI sdk] - *coming soon* -* [Config an experiment](SearchSpaceSpec.md) -* [Use annotation](AnnotationSpec.md) -* [Debug](HowToDebug.md) +* [Use annotation](howto_1_WriteTrial.md#nni-python-annotation) ### **Tutorials** * [How to run an experiment on local (with multiple GPUs)?](tutorial_1_CR_exp_local_api.md) * [How to run an experiment on multiple machines?](tutorial_2_RemoteMachineMode.md) -* [How to run an experiment on OpenPAI?](PAIMode.md) -* [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* +* [How to run an experiment on OpenPAI?](PAIMode.md) \ No newline at end of file From f9e1a86b42ef705fb19a08d013f1510a656296b3 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Tue, 13 Nov 2018 19:09:58 +0800 Subject: [PATCH 29/35] fix link --- docs/GetStarted.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/GetStarted.md b/docs/GetStarted.md index 096804da2a..6e124c574f 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -34,7 +34,7 @@ An experiment is to run multiple trial jobs, each trial job tries a configuratio python3 ~/nni/examples/trials/mnist-annotation/mnist.py -This command will be filled in the yaml configure file below. Please refer to [here]() for how to write your own trial. +This command will be filled in the yaml configure file below. Please refer to [here](howto_1_WriteTrial.md) for how to write your own trial. **Prepare tuner**: NNI supports several popular automl algorithms, including Random Search, Tree of Parzen Estimators (TPE), Evolution algorithm etc. Users can write their own tuner (refer to [here](howto_2_CustomizedTuner.md), but for simplicity, here we choose a tuner provided by NNI as below: @@ -43,7 +43,7 @@ This command will be filled in the yaml configure file below. Please refer to [h classArgs: optimize_mode: maximize -*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner (the spec of builtin tuners can be found [here]()), *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result. +*builtinTunerName* is used to specify a tuner in NNI, *classArgs* are the arguments pass to the tuner, *optimization_mode* is to indicate whether you want to maximize or minimize your trial's result. **Prepare configure file**: Since you have already known which trial code you are going to run and which tuner you are going to use, it is time to prepare the yaml configure file. NNI provides a demo configure file for each trial example, `cat ~/nni/examples/trials/mnist-annotation/config.yml` to see it. Its content is basically shown below: @@ -86,7 +86,8 @@ You can refer to [here](NNICTLDOC.md) for more usage guide of *nnictl* command l ## View experiment results The experiment has been running now, NNI provides WebUI for you to view experiment progress, to control your experiment, and some other appealing features. The WebUI is opened by default by `nnictl create`. -## Further reading +## Read more +* [Tuners supported in the latest NNI release](../src/sdk/pynni/nni/README.md) * [Overview](Overview.md) * [Installation](InstallNNI_Ubuntu.md) * [Use command line tool nnictl](NNICTLDOC.md) From 248d5908a352d80d9a230ad3f28bfebfe0302f8a Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 29 Nov 2018 15:49:49 +0800 Subject: [PATCH 30/35] issue 414 --- docs/howto_1_WriteTrial.md | 2 +- tools/nni_annotation/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/howto_1_WriteTrial.md b/docs/howto_1_WriteTrial.md index 907ff5b72e..506c6b8fa1 100644 --- a/docs/howto_1_WriteTrial.md +++ b/docs/howto_1_WriteTrial.md @@ -113,7 +113,7 @@ with tf.Session() as sess: >> >>`@nni.report_intermediate_result`/`@nni.report_final_result` will send the data to assessor/tuner at that line. >> ->>Please refer to [Annotation README](../tools/annotation/README.md) for more information about annotation syntax and its usage. +>>Please refer to [Annotation README](../tools/nni_annotation/README.md) for more information about annotation syntax and its usage. >Step 2 - Enable NNI Annotation diff --git a/tools/nni_annotation/README.md b/tools/nni_annotation/README.md index 5383e3cc24..92ff444095 100644 --- a/tools/nni_annotation/README.md +++ b/tools/nni_annotation/README.md @@ -1,4 +1,4 @@ -# Introduction +# NNI Annotation Introduction For good user experience and reduce user effort, we need to design a good annotation grammar. From 69fbaacd5bc63383de6a35e0061cfa6f03221b10 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 5 Dec 2018 14:25:05 +0800 Subject: [PATCH 31/35] update arch overview diagram in README --- README.md | 2 +- docs/img/nni_arch_overview.png | Bin 57236 -> 44051 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c654874b8..329296699d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ NNI (Neural Network Intelligence) is a toolkit to help users run automated machi 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.

-drawing +drawing

## **Who should consider using NNI** diff --git a/docs/img/nni_arch_overview.png b/docs/img/nni_arch_overview.png index 7ed3ca96abac0de32061a4f96d0a5d6d9313fb15..1dfdee242555a0c9ce3a4c27e917b18c12bdfb03 100644 GIT binary patch literal 44051 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 F{sKEck~9DS literal 57236 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 yAaFN;{{XNQbm>35|9_Ay`|s}7^XI! Date: Wed, 5 Dec 2018 19:26:51 +0800 Subject: [PATCH 32/35] update image --- docs/img/nni_arch_overview.png | Bin 44051 -> 43447 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/img/nni_arch_overview.png b/docs/img/nni_arch_overview.png index 1dfdee242555a0c9ce3a4c27e917b18c12bdfb03..6403154ab92a8b9051bc0ba1347b851185513b13 100644 GIT binary patch literal 43447 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

Uij4Six&z$wb(47wZ7z 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 literal 44051 zcmeFZc{tSl_dhKts~C-JXo&fp&=zni+3A*EeM=fF4nT(k_dAP`&v=Z+&Q z_|gr}MDm#NLC;7i)U4Q@EiwTywV_!N;Z1gwtKh)G{cDG$bYGhz)%x%p_(X=s3OY?>fCLk09Qu)Z? z?-z0Z_XVU9DB)6JiAKm#7MA94o+aAnpL42pp|}M{2M6INS;$f;a5=J3Y; zj!k7G=h^r7!dRL)8=1pzD)59i>Xbn;MgM>Gljsaxaddwj#dhiLWNVy$zJTcv3y;b% zsGs-t%9QsD10^e$Vc%Rt=47AQK2Au@{Y~YwwR}Ja1C_1!VI_#xCwD$9;BCG+uEzA{ z=;r6171+m_rd{?lA)ftTsxfdsdLvcI%iv+AgBDXHtl@w_|9#b+<>tQU!m(LwoCeuX zwXu&ev~Oh5H_JDABTGqaELKxe;kV~IkU@3)kXS7x*95tcJ9g1 zi|4Ce6mF9_q(7JOWGx|7x8@B66dhlzxNxGW?8;O#{UB-M?8ApRWZQ-gg?Q&t z8q$eG){HKZ841OqP_&W%WsQ_pEt9sghp;D(eBU2;5+_@da25NS`X*N|^HR2^6Xk=R zNIOA2QUy70&Wj=&SZw`6=AXo3+HN^F^B_G_kmZQ+ewnY!&Ah4>IQ>Hc3TC7AwZw!H zO~H|Cp7rXwjy;Y}tNZ`AVTnhwQUnCg@KcuE)aJP!6LL_Yx?`?ETL!^a+u3c)s(aan z7#KALJ0-wYaO?eUb{p4BB2+w4CPn<_kZ*=lpF-)}xe2v2*6g3z5&_efPWjk-(s7f{ z3ghGKtl|?I+fLnDy&B3)|79KPHFq4w4K3%cq)0<2;W0*&xOhZyv#V1_rL~-h zi$&kzQ?tSaZ_pPOlg|Ww^-bS(ztx9mpN=t88p$72i1P@#q0)^X+PJ9H($&Q=weYxA zQ9Ypc$uy0|7a!w9ksY3qJO+pKaMw26pNL}Mp`-%Oyux;^X^*x!tQE&&Z`Xz^;1{vU z8(2AHbJa0oLsjjugav-~Tr-MVbjKj!bn3s4SDQ_D(;2HbvugN%-ymhrqRZNNyEd5P zA#8qPr#2p8BBg-8Q8aZDf5XlS8dK)ki-=yGmwmc?h$n}3z_mW9=(2P3!V`nO_jzp( zRx3+Hx<9aAHpi#?+P4#Yk{@radWo(w%Pr!1QoJ?si&G{6+t=l1*ZI6(L_IWb?(;r{ z(T*0a+j|@emHe}9JJQ5c(5fg@bU=NOuSgqv7t?W|Y-8w8Sx@hW|qJH~^XL?#;w%5ws zHdf@k+g{}ueCC)B-H9|g?pl88dwJXbnZpZy{A=1}4og#macbzGQnN1R3lUKSfdPpu zY3Bv?gM{NHYKGWBrD0>BZu-aZ{D3j-eViYc&kHMxhnKovpS;BFO?g|$RN56OqCq}u zJ^MY31-qhT+fi7|W}{o|_lg)^&Sp_8arF0fwZhEs^kGZNsVL{iVi%OUdHL2z9-OHvHR9fQiv(fU-3tk`c%RX;0mN&O9 z7{G;~Ij4Od#3K4j#3NXPp|dJNIHK1)%Hxn1Vr$Hmxi0CQ7Y=s9EVp>N@JTz>8uiA` zWYl3j+|JV3Gs9DO->$~H)u5AbNVHG{D znfUXw$ECxH4-mg?+?6))x*R=#FM4rU#%ApmYPJ6!zHgJhUi7B*KdJ{NE$Nev|1^G8 zJsBoh;@|#`CzyK{8x|cwm=s5F2h|SVQ3#^X!na9p5r?A>93sg_L=9M@JfZU3I%{e# z6Wy5W#F{p*^8daEMI+~?ptp%_b3%9{B`)T$jA2yWAz8@(MEwEz#)!1Ir-2tAH2u*j zuUeF~e|Vt)X(I#Om3H1QNKI`p0&%LH5jAxtA;P!lhh$%}vJ0v`NE?9XpHkz$7Dn$V zcw2BGvC0tHvU9;|o-5PX6BXxCgEK^p@p)t0V_d|i(q11<&&|1@zS8xe-88p&A+nw7 z)It8KSkmsyF6|OY$R$QYH5XoNbZQ2F#y7LYQGV`JyjsEcMxV#6qzH;l3VS7_tI8B< zb&vn}@}lpMhg*Y!x`oC@2q}bnSS%4Y^`tI2uni(r#w|b$K$ z^xz%eWz}iN*XJEkUdfu?+QNc^e#y$S7f&D1Ym!h4-Bk-V7(8ZOrM@(giE!PE!4joi zRsVe%MvW23u_m9}k72ov`JZ8TC#u>e=yI_zQyj|LNB9_A>MUW1Gnx24Psk+S%z3A) z5Ee~_)1YoSNcZ&dbMM?H@b0%Lgzte{t1V6UpDr}CQ!%nOE%*x0vv{a;q2LIXu_3{J@LClPU#GbemL?C4uoiUSZB@^jRl z-#%O?SNSH4aKA)%2kBaNsdG#w^jH>h(7&WPL#Tccleqx-ok#VmK-erbSvj4cry6o{ zd7c7XP5a}F3se%h<>dH40GYQkT^L!!lLw1R@k!uM`YkeUJ&HsLG+brlG?9IwtjhF4ggEw5X%da?gT<=9rHv+t>A;2hm5W${^IsBn40 z>6`5BOHV!O(G)MIj@N@~v}mg|oleu4Uc92LXlfn^NBcL2Tsr1{uCP&FlEV_$RSWCO zx9g>y6}$1B#P-P+S1ZvbByH7`j)zY8@1HqBYV{2gYY5pIiB&fe@l5r)r9BUCnT~PM zbgdKFdD^5Y89KBKpIZ2Env{RO5*q$1LY@|3Z;q^&sA$FRQpY(0V@n!FqorZk@d#F$ zBvCG=j0ZhNc{lqmFT4@vJ~0H*>4;jD9pPv=m^2vlD+!RGSzN5$Y5s9W2m$>Bm$GP| zrpeBinNkn}4_XNS2-#Jx*-gMU;N}i>T?ow|&PZ>Q7f;9WrK26%zGetUU!6FQ?^G&n zTee@_fc1PA=T8+hO!ggbz92YXmn#ucXQ4%661D>w+{^4cXVnB0>s3Gb?BM&1b!OIW z%8mu#@53%rQ;Bm)(pW_bBnDbOICYrNyGe9QYhPAJkc2csJyQUvzV$MmeJ1o~5FvzI zHW(U$1_YrKH|wD>@K;VNmosW7%@dQ}NzBVK^hp&>m77pQkc17p`ID*;#pq4dS&?Fv zr3}TK%#V1PTUWaqwn$`l#|`ScMomdnpH9MLH_@Yq;MVv|6Knoosug)nsO}vvyI>rZ zWHO^O&Rq23FXiu_2;<(`htr4&z}w#zBLqW96i$1OiIcpCD88hc<`tz;`+THyb5|Xb zr-&!L)D0=Rax z+N8NK^VJ=qD|S+jN5X2tZtUEhz#ZDVxW*owFnI4h^xx2xiOFWG-HICz5W&pWhH?qE zz#4HrE$9gk1FYU2(iQ5i$~uzYRf?9u-X*&h<{T|GH6y@Y;Ja$eac+2nRxxECj$})R z?}4}18(`0I@pTO)A_5u(k#1>|%V?V`Z3Z;5k54Z`fBp{J8F){<4M(olUYi{v+p8y} zArd>I93c6S;DJSRZ@?;u32b|>1}lAQjJnaDHgxm>d!K&`x|Tlf+P~*Gd6Tvuf{6n`J3Noj+S0p9(b~mNc6FE5JwTy8^shoaNPhll8|)|f2WtNgx0R`q{XK(Vb_ONWue^hRD5r&UDc7fwO{yvx0A zL!p<91q?YFFRy}tKg%{Y{&D#-*i0ZUa*Q*Q^}`0CR3G2i#l;s^)1_3Vf3hhx%4$Ya zUZ55WgDU%f$^`(1 zb;J$_EoIlQv_d`ZiH(-_!AYS7_MpiBqm0Bj2dyUi=;avSVE^hX@aX@ul0VZ?qXz`9 zxX7JSSnjs#k-s@BC6BH-+9aR9P?1q1JIuSr_Fq*JBa{jK-=F+Vkkl<5Z7ao5GLW*mxcgf8|;g^i=P z9-EHD$Jn-g{MVnekmi`NxyeH8=G3Z7%>}8kj5VeKp?!^)Np?Z&f!?fLL7@-?veCRmZyee9Yn=Fb+ zP`PzbwsJPmhkhExgkI(}9r-ELeYYd@=T#UxpN=q@eoGQO?()25^4_O;LAf1Rl32-ySEebJReP)$GVr|9O8X?`x^_ijnlH{@WR zLlLaq44beVgAF#wGYEOeEOhl1pKCVg1Z83HWlz z_Rj0Ye0|HeV6h*;YrVRoAI8>86`Lnw#M8U1Ea6?s-Xrgk(+25k7t<=_8b+Adk3KcD zHJDT~n!=Q=D0!BDk(_%|tn*mVxjlvimd2Q7tai+dKa1yP0|Mn6?bg%Q+m-vyK_Dwp z_wPp!Rk-B)5#3M1joHHhk2*KAWox%nbp3WO~ zCpMVY9cIu5fqWL?6ucULbj|`$l1cEALgH29Ufu z_W;5}xH>b})%Odkf!E=fosXB&?(UJoIxm<gcde<_yfSt;CU)4&U#Gh5>kzI?+3Ga;h=nK6YbFZi!F&*yp zVr^k^Yp-;)64=hTkn&Iv$V&;hu*0uCn?7DrwyWG5$WnB?m@%$p-ev}M7TxR);po`j z=?WMyEJ-AO_X)gr@d2{zou+w}#8Cm^t%-;RG46@?+&Uc(v>gwis+$Mu*k4841&a$x}Xv)it$ zEXP$GqrnadpNMmC33+{3$%%B8a`vjfIB2h5C&gSJBJE zE@7HGE4x7ogI0%vxHS1r1#v-VYA4B>rEGEf!U3*j4vk@B0w=b17TzJFXqjFE)K5*o zGh_MwIR^?#Dq|UQFFQsZ&nvoNcX5A*h2xas!?3w<*jrc8{?~-ND3=3UX~-~j zk&w_=6PnSm1?w)&;A2ONwU_J-5A8NZ6DH*mjhBV5{@@M>X+|Hr0a`$@{~V&7ldB)K zuKF?5Wk_BMmA1b8m3=RD0|fri7@LF{&Cq$9pfJ&<3*41UDdJ<;j}OxB+K(Z&DBlon z=?&u|vL}}F+v0USU;C!6u-Vx6YCs^ytc^{O<8TPX%-mn{vP!pj2ny=|6a{;hy8ghT|pc<`dZNmQcOMrOz{7MSEMj z2E6n+ksBuYY8%263Td`k5^DS{mm_>@MlW0@38d>dc0B0LO;_bKTZ6-tLa&)r@&b9a z%FccS2^hpYk(HDDv~}^~_YO*N>hd|KsU4nLf@M^L#-u%uVV``n>&hB!H?4ad_!7XBr{bTj*5v;vcQ=zZRZrQnv3Wc(WC-uGW?4x3q zi8Gwq%u(Eo^<`iG`&}&bH0v;&4ttI!OPdX(aA{)B@ml^;>?8Jw` zNhRK1jIT-yRI% zlG~e)Uw#4roqXkQb_^(1BK~dn5fuBD#aLcU98>GI`gHpD08|pi1RrGqP z51Z&8_o@bB5)cj!4)6;F-p0_Z8mIZdJSn6uc4z*R`C`qH?iy36u0Z=*-*j4wTg7O) z)YrRvTLY>`goT9(To_R^-Gb6rA+&FA7iXhflJ*Gb&3Na;p4kt zcX@sCPeL5d3~*zPn^_igZLOIk*YJi-e|;-g*ilIfTjaUu5wE&Y9y7{akyM?ZR5uY? z{nwezn5w9hlo5>x2izp7u1w(ZW1y!D<-x|q-~AFr~<6xbM;;V-{K?ev$1R2m{5lAoIh zebpx?dB58HA+z}Tv6w%i)aH9qz1etG9E9x!`QU(*uHBBq%?5u?;OCUJ7qk-5+tuot zVe!Fhk8p<^t1cX=Uc*|4dM@j@H3Hvex8W3&j` z&d}zE3|W+V8Z#shN?smWbA-S1rDp@mL{1-_Bl9pdH^?0fO9L57S zwUU})SgL2YKArLHG^FPu#-@J55Smky$KSd~`Xg|~e09`guhBUdQlq`z@x@Yox|QxR z6PEo77#EWKWuWSz`!dU=s?#6mTV8Wg1x>P;A^xdNQCaELnLd1nr6HG~0&@P;udESK zOoT^LmPGZX^=&^DQ>II2%!sq)53@%6w20~y0p~6=h%x(sBF1mHZYH7>wYzh1(=U%X ze7K;#*ZE*t?F=(RJ1s9hbZe${s2_&(Uq{A!&ko9snk{_EEg3a+oc{WHE{yVR%_n41 zbg_oQMrl3-GM6rs(LNr!!mXlBvsdR3(W&ae0Wdrvl2>DvN98-Dif9*HP4fP52Hd9= zCeUop{{YxUl>9=~nM?c&WDc!6*+g@HJJr+pB(idT!9#(iWK* zO#CqR?zYO}`^j$?Ay1LJ>qht;)0dhd%R*m9hi%@0#ZOK|EY0O-1c-XSpMb3s7OKY6 zyI8|z2Q)D;u=_xX-0NTHJudZKM%S5V_YbIx?}CHCkuh%+^QXY3nXsm0>@A@)yLyi{&0IM5AO+LhkRVlteNq18O?|{&lyklnUOkaE?#o0`aINT;d>-+ zfT&L`?!(Vk(a~b7ijiH~($dCg;JCjWa&5Vrgq=o4xb&z2C%VxB1 zO;x@rsd7DQt+b@=^!3%bFZdE`^OA!sYy1ORn8%nJ@79XNXseEIII@838`Si0#qoL1 zsERI_Oj`NygZ=y?CzEeIk6(``KY*tln>L1;_4CCKNMQOD)CmPTDZ` z2rKM_$<&%m&S>s!`*&F%&_?tH=h~B#vZ{MMKE`ozR)g*%LtIbR$pyvK5L zJRmyxx^UuY>al^^Y+k0YdRt!Ig7As##F|<0h9DQ}ID_I+&>yIA?dHFoyT{F2(tie% zIv;B3j+mo(e7({XRzB5b70|@sziQrNv=jNIHomb1A>Xdz#fEQd%bXARW zHLuydYf&A2*lmcaD8HeFP_U;Aurp^dN2k_AL=~0RNV_>Ca!1}>y_z%USa*m3q&C$p zJL@y1R@Hk|)R|l`*dt(07NliMVofnV6gsltR&n!DX>0pI6Kv4eO3ev%_ba4)^s?%P zB)$aa)xn8wE|d5(gB{mK2#9La9I+&A3@R0#A!Dm%tH0gZpCFSG=OFRep;5cc*q}JO zFT-7R`V}JEMSAe;DHqvUl7gZ& zBF-ssfa=5&eiylqlWNW}V3nU1kn(}H_<;fN*^!HlJp#A@(^FhLm&so-e%}2kZjx<@ zG5v^!-9U{Yji2(-Bc&m(zSh}kC&&hghiy1lF4o>nnZcSip$BlERnt>u#AOmYWJH5y z6+{~^3zmrSHeObA)UisG{_1-XxwG#0msGnmg;<;2PMj`c;Zr@%Ec_=BgpYTX4rmR?)TZzWn?~1Hcw;Q=Yecy#ojE&w$R2VHc`*-(_Lw)@#`_t$j9w3k+pPc z>2*}bu*)!;>ZrZ_@GQ35KI~a-n;h9}=1k7_OQc*p=z^V@^NE=@FHC+crm7@ALd*s| ze=u?Z4;H3JI!F{*8=SqtCu^2-{rpCW?Gf_=T)U+>4>hygbhIf} z*629z#0TC`ZHyQ;#NCBON)(GzxCB?^=*GcV@rbCw-5kw>|JjRdb`c-+;>a0OvoEBb zvOjp-?BKn$rfoqvuBnvEnfCn$WoIQ_-EWPCtai@5+|7=*HPL=w9KSztzzY&Pa8UMW z$a3QsbwQ9fy)bmE2iGyIq_coq7UOiDGO&XdPBl|;1sdya)$q2O0zYxN7gap0V!HvZ zYPGKsH+m6m(@`|cjMUP_12c1jcT9gaYLz`TFOd|M4-l)0P)v* zpurK_?q)X@6W%gSO1oFsb8eQ*A?Ux_nh^5ixE_l~1ARkZL?0)r>@HlHk^1B`fL?(j zpqIGYx=)0k)oun3IVaC{-x&VojhsC5cf+4{4XzQhsMvzqM+46`bPV8{f&=*)XM{YI zTVczRw{(Xlf&b7?{5HO*2n;o%HzK z9mO;Fv_o<^Uf+a_1)t1fhqES*aAv!?Z*F%K)rPfR{iWH2tc5SZ@lLD$^Y7>rIC*Q{ z6fhcBbn%@FOFvZhMjA}9@YZ~!>{0w!5aliN0o4TqC-Ga<@bU$VlcljLY6FIS7_*e& zf8^I$U6(L9*~msU2PO`fvk@zow8QG!5=Wyuj&NG+MQO`Wn4*hd5mB!%xJYWAJVJY< z7v?(LZO}?S%pK}t)&Ix>_3n=U)rjb9{LA*Dh1<^S4S7c>Wh839ojIxSx{GQ;5@(f- z6GZ{%TxmZn=T*@#id*PW@*si1v|F)aAKL5PZBcC(ebQOAh6TNn#UkbFr~p(18zb^d z9VSXYEMAx9r}@Ht>efeiROi3r$3tm~%}F-i)wk=TwRzS34PcxQ6i_}S^TqG49D?P5 z*aWJtX*JSnq*AaMCmL%kE_QdwH_W#th-d8Mw!YoWt?b{exfcQxf|Qea1jT}8B?6~k zyOjDRH6aqzlRyG~7ep|apVqhoZPQGJT#!T9#)~n=Oa444dk^drFots3%#}xfsat86 znS1G;XOyuxMqdn6CJU%TI!!IhGGX)D;?y3Pi^X>Hoi^xpnJ$B5NI1watpM){i(s`q zaA$KgP-@Q}y*}VQKZwg^N!ElEVB*1~XuinzaVnwe+i5EyyL*l|Zx59_gR1f&aInGP zrMee1^TXSNZ5kHVY>)@Pq7w*#WqpRK)d^uclVA2!7vCekEz60%-(k9B&WJhFJ{jl@ zy|$IP;%IP3C!s9i?}6=bD-C`;V_TyDeQfjI*YU2V4CEA;Uj?za@HqU{dFR+vWgokh zJr-WIrz5Iap04YmT##ricQqBped6h`?=0fi$V%R09GN$u zjS+O|mQdP4a$yz2_^S4HX;Q254Ld7<7Wi@emx#cZPaPQt=J-B_IXoUH>M2M`+zrlR z!W}`nbUhlR=#HKKT^0~y9k5)%sPnq1=PA`3CJ5JW?^$%vYRKIg@#_ZM{#k!ucX#^? zluNc30>cJ_C?%s_RijBs%;8Sp7uov8RiF|@l4WgoGgCcSE}8#UYE2|7x*~r(l0Dq8 z@B;iSujWo!s-lO*`JGu^&FlHhmlT1IKzcxt$gr}S$S6*^_aEbg&o!N~t~>=e2JJr3 zcTD!M_3Koed!^6ZtGZO{XYk5cLDsHT#r6Q?uNn}6o?uSuC%r`!EqR#dj@>-+AG1(} zzn{&1On4I=_>qbI{W(PIdmN(ecJxd}n1(GgBo_HQR6h@DAH0`15i3)AEtxs|Jz!BC z>HGu(9To-!{yBSN4d`(G{bYPEZ>8@sb#`NO<%lT1Zgrwp?a$V^LGp*9rRte<5AQ*^ z!pObJxVf7UKF}(4jO14G1(m-SYa`5&cD+-Dc_?aMckhi(mUK+J(8 zkZ^DE)iMZV^vZ9ORs}yXERuouthb*_*^ToFX|@dS!Erdq-{rn{K zp`u$OI4$@*k8PczP{r^?Al?E?eY)Ii=rr zM^Y_Z8lcd|Sg=oE$C)aiz|&@fz*vd>Ry98;KikBOW|%K&{9bdkF`|B`g14dsKiuvG zVrj2d+&xG^Hn7pnTO8Ufiap9BzS>pm1e*`5U8>#CJ1qzGM)3}f5taKOEg%n=P3P24 zmiwo)4@-CWuI6{ z_e=^&qhTU+xslzaU1B^ZK_g}7GT+$|kb|7sTC)-k0@#~p`i6lGc}F2F0A+iRuQ2Ye zhElo+u1LR)8YxmAkfhUlmQmn8+RbGP^&D52RS}M3F)*<#`>xztazB({<&tY^(TCN& zb@$83Ik?Z%fGrrCPi2rg)|e^|!Lzpp4$E#e=BJgE-JNRpZ+HK@O8+!0k?L9gNK`$j z(&nAJx%Gid^8X`2Su@X<&Ii;qjoF>}jm#eQpv3SiG+qVZa!oH!n?5JjrD@cHhR?~# zj-)gC`o#e~TI?mOsw;JWHeSA#6|v~o_u%YHQ2H@~s}jkxV)|wYK&W$tyuV=F&(but zSTAD^7w~yys$&#TP|w4&#+#zt`tqv3ypYOATnYnNkgfZp5ctFQ2+om*2ak_r>pcE; znyx3_w2$-B1)#x)^>ajz@o10IYRR;UlrE>9HIh$*dfGP|6hH+Yi{o{~Uq?SE3wRJj z8cbiJIrgy3x9TD&>c=zhWZM9}HZY_By}LCLvuP`3OZ)bKPiS@@FrA<)44-~1SL52r z{zgOX<)s9us?r6uy`9y$L!ECIq~MU0tWpQ9#{2XuHuE=`(W`;2M_k?_>MR9hukn-5 zMX+*Nf`E{nX{s4R>+}h|z%Tu|L;VQ+IILwTNmMP zZV@S^ppbueH%07QhGe6KonLU7$0^43ahSXoXrCEcjGy^lp41 zx58~X`wJP53%t`-uw5E|NW*B^SM56z+K;wERtbyRuBw1g$e~dr7&-ey8SorCnVDy*00W zmM)^yS`x}3nun2BP#=l6AoKUGi0ptNM3Vg(4>P%t8=2l9LIjT7(Y?Dm1V=k-o6gp~ zCi3*E?bXR*c+KQnhD~u)ZOU>7M$9zzT0-HT*O8*`rnU-Lu6wFJrIRGCp1${r>d^=0 z9AP878*ZueJBhs-E#x`4I;Ms+Zb6b$4LE1riZwzYOLr5Xq9DOfuozMXb1J{m$3+K6 z;|Glq(yk3o>rsh?(q87TEbddAc+Zto6#v03<7*F}c-%gN{#@uere;5A)f?k5c9(j# z2Qj=m{N8A_aw+s;@1CR8F*D0D-vM*WlURCr)||4>R}V-V`GiTcJQr)_*kG`R#f-oJ zZwm4HcA3V(GvXc(J)n-0{jN}Jp&l7V4jSUYVB_*b+eK6UAn^1Co7-zVSn@OI_An|e zw)e3@3)e4|q#Yz^XV;t$xsm9V+nI}gG~iNFDT=7%Ms=jt*7V1x8c|{gawM@`{pUlk zJqrvmyV{*)*KcfPW$&#TA~`!Shq`RAEgCJC zCt|ebBL`e<37?l^md`14&T3y=iX3gxxVPigqXy+qT-_w*vFLz^GT$}FpoD)B3*%cu zJ(U*(o3!EZc+(75RD*_6N?whmq|cE|IY#=IC{icR z;GlmbOE|43avL1kvIo~CgWSLE% z7(}vVvb*LEA|;UPNxa{C1M4dLHutbtydG(??_ROGHQr|y`YWJ;;vm@U2=(w?xE0l` zmwMW_m;I`WQ9{;rRcyJub@F~qHPDQ6?jT6*!kT!;Uiqr7GfjoP$ehgKJp`3$c*e)Z zeF@}WjNEy|!p7@x-L{qKT-{uQv)eUxW#SkUyctQveYqL z^aJoo%*$1_1_^t!pRLn{%_Ybd=ICtXkuww@50eAM<<68B7BHSe-uW5|>-QZ!Q=6hM z-NT6Sfy~_Zo1Rp)2ewWLO5qLiiRM(a&D@TlDuU( zb{^Q~W7knkA2MVo$d=@gKf1G`vtaUtq`b!S z%O7LF;i#9EHC19ohO%mTkDN})ziys*S7xrv^+=eFV!G~XJ3*?%|L6&P8lLCOQdqdV z?XV?!Yiok#DWeiB?~r4p0b@3}8oi}Y@Z+{|Y7M1l4=^`x-ZM!fUZ?YQ$;-$)qO(_U z3v$*#%uBZ91A-Q%w_eAuv)3s%Z(O!JHr!5opGG})OR_lFsR=m+n2{K~w#$8tsSk8B zn;utqlc1@s)va@nO*?UNvZw|apzazNVxIqES2`= zef`<7Ro8RpElVeq_s&T#`Pi7~l%mWv1a^3@&_2p%^JXu5a(Y$8XI*Api0PdyDyFlx z16_kgkvwX2{1^K&-A9ul+#3kC=xg@LcXHNQ>Ma}lEF-g93!m&0iWXexm$DwiCK#AB z!~XU&+I&R<2~-zU@*%l8WyAvCfc8YymI!v(&^2F!BiSvV0V4}WG7GI3e_2nOS+d|j zT~;k(a+TtO+@R}Q>$FJ;TF(@&ylNf)bv+iL9AknMK}cEar(o=Yd}DX*d& zU!)cG#PQm4fr5;6wD#w5@$G9X!{a^;^yftHc{W!O>couXdOG(w1y>$4POcLsh@vQo zzUfJw9y=a(?-wm7{AcWQO}}^8uodV7S7jBt_5CV?>TxktU8r>Z9Y~IN#I%gjf_P)R z9;z+$v*Vntz5EI*pd@jFqG9i1=@C2nQrI2S6C;ain2dLZ;KNO}`9IIXPv2ZWmpi+y zjRyC+Vx!$`43>YZ_hMuahj^iNI9}RRlsAUoP({M+gtrwT(gSCk~^s0*^lo;n)#?hqQz+o*nlRuwuzUCLbztUq zAsH{99#kxxy5!SAcx0MB%s0wN=L*{l44YX56}{pljtOE73LFR|&Ft6LziYqa@a2Wt)vmcP zNY4?F`(SHVuCIJprbZiWKH2`65ca0a%3zf#^F~@@6X331jx>-T9*_6UPY-g3Ar;B8 z5OYA^G6*IfLAjdQKQ=*6^`GLMS7R%a&9UHo1mr0epd+Zg ztn#~t!}jQX7mK`V=JLE3N29ejh;@kYzF?1f+CaIjN zzSg5nbbDI#WLh4OG@x|917f*UM#$ZpQgdVGGiib8sW7DbG_g8fZRJ|v&d)Z+wts6U zund$)s_y|inD>ik*vDy_cSA1}zrd(M^NV+LA1>_NW`cq0ezzcTH=Hf z@%4&ojZt}Hpbd4kmLaZ5W4?eAi0~4x0Tlg(^hTQnZ8-)IXjMt=OqY&;RKeZIXtc3O?!)}^kZ|z9yU{@Vnti`1 zo`=4_i)JvxH|p{)qR8=gV_HT~c2Vys^e_i=lH32u;~_n6;4J~Gt#Qg@ zgSPi3qP)L6Ke=eXJ7rG*Px6n^#x^Ban@tm#jsd%JQ1%%Cs5w&U*7w{kAR#J>Q%Eu^ za@sy%$oY!`(lo1GU8cAw97Gd>_$A{#5bBGyh@> zPV7{F@$ET@aZmoOA3!>SkK}=NC90D>#jv3-mzM(kJ;hBEc>lNO5aUu%-3f$>0h;NH z^Fa$2FEF0D$e0;eo#{5xXS#%|iC}%L;C6GRgV(~v%{bF{cY6kmO{vpYtKV>92rg%!F4(L>;+s`#qQ;=tu)Y z0E;=|^a9n5LBxx_)o8{%Ms+`hK~oVSkUL;L>H(O`UYz9odPURV)!<#POG8g3a>?0us^StIWcUOEXR_GcLa{9RvXilWT+$%ny<)l%D%LiOOU6ACD`;6-jaJ5@HV+8t#h0a6s{Q90R7%2DG=>GyXB`% zD-FBm{6Lq3=0&wjI!e;*4P}gTBh;KF6nHJj0GST0dGfY0 zlTQjf)$o2q9;M>ApqyDr&iaVSOqLJ;%Grx35C9p@zFBC5mWFn~X5RQc7gbR*vC}E# zW$zRv=N<*zS1_4N@XADl?M9|nT#Iu@Qm$XB{`zB)zlO*1!brpe3qo<8YpI|qTg@Pn z`>jM$LZS;`!~?vs1^lHKASu?#hu_Ur`rzn5NtErJF702WpWi>UV{XIGdPZE6O2799 z)FVDSww9mUCW19n9Ypn-mmVz-4}J;ON!H$KxXU1N^K(;l8}mgbve~>oB>O5JWN5;+ z@iG{!4%15>{__`NDrw7jNennkk6+QDWl^Qy5U)c^X5wMIb(a7*b$>Ahft1l#`Hd{V z*H%YHs{Q(K)2A?>>Cq(`eExKMF|==s;dlp)?_1DE z53QC=vsw@ukkBZ4(S(1>W{`j@C&)<`c@*>XWjZ@0HL9KFFYn+QT3&HN$bkkLW>VTUhsJMYzr z#nY?{+0BFsy-h|Zu|^%OWLQxjm;<5SAkAu~Pq*Q<5)6)u(izQ~rKxOM!&a6ne}O^v zCRzq;yH{j*(?%EhN^_K4c6MJ`&`FE&sEG)&NQq_SfF+pn^{vAxrI|qUg8GQ=|9v>n z-56x_7xbKiLCS$GR9JUBk0ke>F#BBeF!&7i4`StVqO8?VoQ8U;-Y&;nEJr?a{97ld+);)YvmVG>v| zV}wdEyO|s|{bsY8=ip4D`KYj16}%cAd5d)A@3U!2Sq1oAjmoasGv}}DBXErGSx9{v zcEFf6p)kQt>uCd)8tN9Fw92uwZ+c;?8#;Y-yn`xI0Vx)A|34kB4+lx>UrM+P-jizZ z&DhWDTG_m8$m#X0?~jpGb6|sU&igeVI8m18wB@-JD&ugxeYLG2*E(hr`_wWY0ldWo zQRnhsK;G#&-M?MDd$y#X1(UNP(vUJkbd*lE#3%CTzzruA%6l2ujJbJicprEND2$4_ zOwy8dkx!#uVP;~@ewdWMIj8pSL6K|ogSB(5op_1b}z8(BFV*;Hl zL4~5fD51MyBy{VOBh_*Gw&(9`PbKFgI-e3%%vqEz+A44IKA5;K|HjfRztB;fWT@Ek zj%OeZxL}i4!A(nM1JLc75Z|2;|F&1|-`A>UupQ!)Tj$iY8D^4pVt1#!&6HyzaO*KS zWiVj&Jym;t<$zm$d>4r)GnD~(PzK~tt%`sXT-v#CWG#z7edv2%%+oz4%QdFkl?EE> zx35u_i8d#0Wnf*!dh|y*1O@&dzTP|@%KiNxAC(G;QWT+`A{0`#K_}X5*>`eerKP5 z-&C%kEo#%?KMJ9y)6f;y`tu`4_fA!z*M5yQI-(`^$Fnd=P3DijILn6HzSr~Ke)|yN z#X|{L&E;Dmw>-<~`dbYZg9TRep zP@*1sqe;Y*Jdb%e+~|^f{n-ld_BC-&w+fcHY>OLa7bh+VPWzltTzQpHiHt?pdu$YajVH(PBxA2`0_QRCjze&Kjz zB3aa>Q2ScvC5aT$e>c`8?M6C0V~tCbRga1n*0^EM*T!b1WW1o%E90zi5vzPowL8xG zqW^Uzjr9{XT*Kq69OOd4rWlWg*bS40&(U~hki=T7D70sVHJe3+Dt6veci7W($n(L8 zw~gEE_X%08tYS%5KW(0A;}%@4#jjp9m>Xwr=RTdHI^Vm<)sL*<$6}v94=3+RSIizi z8c+R{O*R>_E1uU`NE%PO#Z|FYrjZ4FqQ)ri$yc#*x&g^M8!>ex;wf`%z&JfVTAe#? zQMW*LWjEiBGxO)nZmDZ_fW-{AoBbKl7k}PxTGxjvSQsu{)`^27on-amy@itVS}&0k zFd!nqR)##&@DaYI#n{KB4OK}_A=nhV~#{yI$D)m)Uw_#wYT|Kn?=b-pdl-oAfvs!K4aQt@m&j;87qHBW>_v;7xU!1(Z>=wxjC)0VQ-F zqRy81bAL?2C5_0@=!f3B1(l8%AUOhW2U+n50S4yh>8b-C>XkVcJj#7mQ&~}9HAcG` z+UGWIy6AR1uizlF&+MPyBl+*Geg)FkBfv#RHFEyG8VC*a;hKQ6Xf7H2ddxv1+ZY;^ zS0MC$*XBcpWNa;C<-Bw;-t$P@}3(d_qY=fuF`?K)67EppkZeE{9iZ+y3AY zkX)5bFLaowR_W8gCU{(JxDKSkpT{atk`NpH1&P>!x6U8dPUCmRzU6vXV9*-_h%uP` zK*W9<$^;(hc9oXb0Te%iGKtD@2PcjHI)@2?hmx6o87?f*{aOX2S<=<`*XL*{fx1U>vPJe+*_J5-{R1kq&`KM z#*xA+-RwF&Nd&^uuYs0#00O|{L$=GE{-NT2OvDx%4+s;JS`t%D_%}qkhsA5@Q_fM; zo(+1>e!-3ZQijsU6WZDn2%ISk;gG$v;%vd|ZXbbv1 z8Cj5J3((80pAY$p))`vbQa|o(?m0cB`0Ti=|Sy%t!paHlp*SoP|B7|4K+tq|rXbv)17 zcjaL0jNDanSS&2tM++ad<#xHA;(c#Yr5K#*rmyWK-urLY%~GD!yEjRUv@t=f8t}ki zQycIArr$MO`pudbCz?D2IvZbj2qx{i$vkrAWXDPI#`I?yl~L{LuA3z?vh>2hB$1Kj zMs4adLM=ssgus+}-*1k2eW8I!_}*IZf*@BW9yFUBtRCy^s(0yB*RrguA#+QFPImyu z{uxJwm|u{q`lS>(xrVEHiD>PPZf8!Wy?c24GVW*3yy13F>m+6ySyZJ0Ap_aXfQ?25 z*0c9iR;<5rXxs@rW1QlvJid&$DUCwh+sP@5ZFiH(E7Zc2s44I$rZm!uU>~w!taW%~ zk*{z|U=LmxSF4nK>#piI)TTEe80(%qkg>CjchGnKuE9P{O`$a6Da{8miQ&D0tcMi4 z-+GQ7P0vU+<5-_KFi&8MQ=z6RcAQ4feB2D+ER9$Djuk?L#BL}fUfD+2kz!KI@T23lZoXi|LrI0rVY-wgR5~_sDB!@)UQ!w9oq1^@$(L6U==yuiqg3i@ znUp_C29oqCHD#VUBYNdN{L(eWh6)u$#toLeuQy?F(bf?;r=s2tG**8&C`AOv_38gImS5ZHchgvf``gA`v zIA#JvR^JK2Wc^GKxphihGP8V_6hF|=aytiW z8?%7l8j{a*%CfQ-{OHh=etcZu;U=qs97H17aN_)2npbE{|Z{;wdz&C zGo_=tJlqN7X|_^_x$*Q8(nDWt`1tEL?y-!e855Mm1=}dIQng%_$EE0t#FlI~%(a{+ z3?z*lW9;bUFMERvk}lec!TXu$?2PizoGCn2*<{6FN8vb6vzOW{|mfs>oJ9d;ffRo2|)oVfM~9#tmyL9ai5n-)nr&UfBDv)K#pGH=hi= zz*8KlQkr}QdT8mUlFVpvcas%jhx6zMcgcy>0HQ`zTse=9mwk9cG)ugbTlcWW`AOGj zGk5$4WG53B4Z0I4A0~sE7GH**&{$Zqinx&>-&8WQ-0Z&kOWK{HeL@FFe(Pi7ec;ZI z`kwsDN|T3fb;Xm>?_{Xm%fO}1N#bhB z3Q85ve!}Ttb8tAhNXF&cr$arJDcvtRUWxT*F_DadpLOUxppC$Hk#pPqxOautNtK1` zAidq1vw?_7acIWr8hlSu z*)A2a=B|b3u=i1aU1GkcT_$TXNdfyDAN_P(AoSPRoh58`Lv-I8tpEI~ji-CrToCq} zKowtx>?x1Z7bm1}rBDmeDqRrU(YjyoD;&omkL3Hksb;qZpD86kO#*?DMQ?t)G@kNU zxa=ImKP&e+rMrfoa!Q*Gh-#~}s%Z@<2Flq!39t|+IL20S2AEYz*hTu~cxrKacfC9r z<)dO3;=95b1c<>|VZ&Zui@9jtc&wGt@dKp2br(D#o9@B1C?k~|V3msQg_ym5wBaY& zr$)@rIAZ*1^3IvQnA7Yp$kT^PI~M9(^b%FLm9XKdE^C4hT361rH-Tr9r&*NtVssF; zWMRpybTlK;jtf*2#Db+Nf~@e31* z;Mc0P+HOLSG(6Q>RpGe_S<@ik-&cEc&h`M^ckBSl3OQ?V4%y?%RuKx!AthU{ch2mr zP3}+ge^!%xIuWa9E-A=mE0=s|JVq$x%vu5GH5*+U_ue024e|ELU3XHml`WXhpBg|L zpEJ%0>MXhC#`dz#gD0>(4*U96kB%72!Wbkh9S^-KUsR^Au$z`d^WF= zq64!Oi^cC&IN6;0!YQsVgpA6v<>t@z?EE&EJcaJ-xxd;U+B1^G4+!fk*%=!ThzdrK zq&d?s5YO}%06H@cNYMW!5s#|=tc1$FZHw_r`~Gh$3Fq&!tlXH+--ivam0Uj5=96+H zH`0$ui?>13jm3sKv4g(NC~M$H2eVdwT$*fke9?vO7o@vOn&4cp=jouItYox%{RNy+ z1~&CtujK6Ld8P{?ue5_yjXhJW^GYZAC2^%tk8bNNww6P}7$E&tN92T>LH%v48Kss6 z2R8(F4prQ)6A`rs{|V%5OLP-63H*>^c0XyC@w>FXbFKSXIPdn4y`5~%)3h(q`kv4! z;Vp}g6YejwjdEk|(A5objr_Dz;ZEMgOMzh(zxwWGMLjCWLNjf<#z?l!)z9{MuXsbqHiwQdqu zv#f9bMcodAg2o!$=tAQdva78*cLb$m^uapYkYAu;BakxAV^&a2n>q0{x1 z#`loiS5AGcicRXD3PZDPMpJfK_l<*tY}CAqZ(!Y-i`_@VqdWF%TsUhd=fCpa!n_aH zwdT)!QC!x%oA>O=h0cr2H`2RJg4cq@UEaZ)L~;;P6;hpgk6$BWuFQ?)?k`iFkJjQl zbJvl*)a3E-a!s$n#Z{7ZDpo&~6x;re{7?5Q4qfs>R^B0(NQJK9k_D|@xUHW%e{J9E zmvMYC^7FWRx>6ONc39PtyxKGEpkN-UMME2dT&h<7skamsQa%F&hc$i7pDq!~D~K8R zsVVsOK_?(tszh}ya%Bj0$!c9%+veXpWA-JU@#@~g_sAGY-Nx?>5VMVhYxp)uO-s8j zezz<}fd0z^33gVq84911%-COQe7eHSl^T)0Q*$#~FjY}2jqYu>zN>LOVR)r>{I>m6NHEo@f8^;}aJmkh z1h-Fw2ao}!wgbvRwZ}g`l95n6%Ymw5RdZq8o-(f|y*_4%=QDO@kshfMzj>JGFdWQD zqn>LYBlQKlb+e_mq?B#Tm1TD8-q&8$wUs*&aHE~M?aAgpJEYuq*eBxcbQK4*q(Ctw z)Ws2B)q-0Nj?n2Ky0uGEvcreb{=?SApPVkH@bEVM%Immq((4_ZS>H}9Pr5dd8;d== zYyJ4EH$`<B*A9mVzB@D)X(76m+?kBNKkJ+p6k9_q2x5O=44DXI5Rj zOE#~9Rq^~CEh~dnk$+b9J47^PwYqSgO0-^d?=T;3>vw}O%xb(kwAv^)U-V(*WBX9Y z_bgL+;tVPA@&*b7o_NCYcgHniuJnqWg%VB;B-HNJCAeauwsSSd`Fv( z$)pR27sMw|Gsmp-jGT!&6wB6nUdOU1bf?UtPh{hb3>d@(pRQeA?xRxrihTaJ5c?QE94_?#wB}f<_}CLJ+s?kdqjl zxSxPq>HUXs8FTX=4cI2sJ=|e~NVxX;dF0`@_u{@O0jXi|$<}qv6I$XtqShCT5sF6y zQ_UbMB5GyMG+tmSgp!}2v-Ot7Q{(&`MmYaAjNTieP^;PfJnJA9Bp@xSXhIYKl8~E3 zHOV>cjNJ>d1>=sCElfb;NhzLhz6u6a4^l-zx5)^KasO_JGTVI_ID=#sI|sLRA$~my z?4{a>-V1?a5q)J)sD{(pXEs%UpVZR85sFG=wRuWRJU$tA_y!_%do9)uD5PVeEs7?l zqQPij9{qUW6$>3?|_X!< zq!~AJoRy4tw1P+N`vY$%2w=vx06>sZ1lqGQ5#U-Rg5c-n%IXMu8dw>Qg%IHj>}Lr; zN_L>&se!}g0I&)Sp^9O?@$G;p?RtnCiyOaH!N3RbUlQ^_8RK8_1vPr~Pjvo% zWKMPO`!hX&pwNybu5#~s?HMnEyu{1EsAN_yc46a4A$l4YDZ)N)f7ngBQLtFtNPCbN zuP^fy=e&I^GpEiG9#qOGgdZmN)xKKWmDH?5baZk6_W?Mv4hkd!w23N0>O7z*A)f8M zGk~!pm^|R;asWsYb7EasX6nQI+~X5U4sLzpsKG3jL(KRp$ij2lqtAKUfm?ECo`4Vn zEJ4~ZH0=*$K<5zGiw{Zjw&I|}^K?pXPt7O`2N7ZWpR3FZu!I~}zEah`cjdf<%8{)! zb`E8#m~$8eR4{?eR#L3i#cVWujGodn2*VNUw@a_rN@X5J+l`~M7W{izT(-%Ek% zjS2RnaeX)6ivu#m(vNNEeWiv1XHhiv6CkP(+r#f)!bMoJLH%>GaHVLPx*9_rh`#gl zAuw7V0kV0()o`JT?%rXz2UO$bKeHTWcr^uHyK0qoF=*35KJ0aXEecbkA48e2Bp^aP zK!qS5rzZ#~V%vdZ^)o>^;-w1xy+x?+_JEF~T6NSIR8QjLbgcou^LiSM3dAynTB+K{ z25e#-fl=fTEVFp2@&Xu6yowODQ~|Ek7v#y%uXY_#Oe^Hk^BK=VJT;uJoW?T(aSk2{ z5s@fz+2>H~t%f7g`<3F$Pj z(@F$Q zoBwa&zn-t-YxASshF@bIIrA=mRcfYcM}YlIH-x2KGmx+>ed9Q;%Co z=x#T0_JJfF;g9LJd=F$E-$8VGf4qtKj}LXNo%)#l)RijjmX*uhjuPKb#dkbkEPTMD z6ekyoQV349Z)El7(Qg<8`}NbNB1m9@lwpP=9962cnbzqqh0}X!6dvFrfGvQ8)8N;6 zd|NAOr_{iBPI7trSQd=*_D?$>ZelP{v{-fPH&04KqwgMIlFKR8PDo?3S$TucyHk!r;dFbrtpa`@H@ewzgq1NUBx0J_|nL8`N_Ejg(_QfQeDZ6E2U$*97rN8oi zR+if77tG7kaf@rgYw6tCzNLnE6O|QqhrWYJ0=jBPJb{1bLS37tMyu%AHov{>Fjps` zIxOKQIXd2{6W8&iMtkxj5v!l)P`a2a8+D)6pI+9FQD0|CmTs#ag8zO?YPb)3RcE?x z*5TK~edY)Zd_}>JhNSKJJ*~j~;`qeZhnzogd|Is{d6ii;0do{<8;otKVoMupMyfS@ z+Epy~3EE`-&YGAEc-dtb%su9u49}?g6~@4Obzp7H%G2c<=zWB|(Bexuo{GSNPN1AQ z-9PYMb}0wFhO>=WJ+pW&Fa4~^g>!XFEB33i{Vt$&G4B4i>PX&nzw>(w%EIHCPDvO7 zX}^^TrhG?Mcu%8SEp6^)fH6_j^Mx9Li~?AWjdf8{5};$tA{q0P3Sp`hmfW9Yk>tMH zRvYJMk$^4HT{E=%<3X@UP>afeP2hNpGv|CQE9h5l&x#fTwrz1nc>vKa{*gk1PR6EH zWKqiYjUu-5`yAI0ZdwOPZBoEfd}Q8vuo4L84(ME4YRILQ*z6BnsZt!UXh^K-JZq(A zke@Z8;q__q7ccsF9)*JFkkJx)Lww(XMEkXJwdZZrDK$T14)@8VyWdwXWf&M;QO7*= zG4@$AA2GUVMzTqAXV@yj53A^({t75_6dgC52>=eNW0c7g)V;&BotpMMjXSxzZ62)f zHfE{3>3hi3vC9S3_WcQ#oTialJ{?P5#To>(=;Wl0-cJ8OWXe~kj!b^2u?bft&eyK^ z)LgZTIp$czFfuaf;~Q*0bfYT8PQO5iYho!Saxx;CjVr%uK3~d_mxBGAr!?UHtz>AS zq;t_%OlJDr0^$jPXc-IH3%?;^ns;Hw;Xw;8!K~SxFWC61d)-*B7Cg{!H&G>{T-rTq zIhZSmOF5Mjhw=gaT{*vL0l>V7Ey?q8p+NA*Tn`{hY0R%z^Z1(@0}^(7Qg0iz%YX1M z@{N-7incP!3VMUxB0h*^r%Y<>_bR=flQuYcwSdyU_@!bGJ|rEhzwNy0#uM2}_iU4K z>0JI*`z1*0d(N8yE4%Krw3lspzEwvYdDBaf2MRZC&1xaa&waAUHJm7%vcyJZ-J-FZ zmxCn7lPV*#4oZHIo7TYgKCWkMv~4nWCZq2X_IVjM5rxyZa=5cTDg=+=`M{%RiuOE1 zFAbi%pPcsGi8{T0kQ#4eLNHOX$%kAnL8~(CU|NWE>#Id{tJd-Mrg2BnERjyB^x}zge!;t>jw6%IthdCiI!oI}x&aQ#kTc4KRo?2cu^#(IC;Unx zM8~ma+;>YCZ)Akb$i$GkT4vX5`0=LK%E%r^av=G-OX8P+j#Ga6zV+b zEk1j|wWqP$3FQw?x=8qy;p3NG{0R0XC$j+^=IP952h5olb$z-dgWoJ?RhD3{gLSAy zg>_a?(#v4+`M{Stn?Lm_hUR;=&u99i+>S`7VhYQ(ZuVz9jjQs7~2(~)d1 z5?V%d+Tj|H@KB;XX1T?x7a@JWbl{P)mCLw4GeNKXfmG}}&D~^M@8!9iAr%vJamo4R z8?{efJDTpCW8SwDfCZ%J)xdlfn}FE7av;0oMlY+!G|Nxh-Ta97 zemYAUVGxHb_v`7{1e_40r&VB=bEiZ!!MA`b!gFjpC@%1QkQ6jQ#|WvWr0Q>J+m&$QRW7#;YuV#J4 zgMEHG`}Z@tPrMP?wC^8aDZe~r0O4+K-P!H}gkO&s-9=@;@ATM@Qh*f+p*37g4c}AJ zl=O^HV_oc)h~JDAAkHj&fW7Q*`gW+lBW^B&2Iw}|z3I4LuQ&r*0j52g!DGY0ahakw zNVoWRd)P_Ynz1${(9J?3(6}O8a+K&Cvtl@FT#6)>C%_be<~9K~1gwIX0L}(-thV`n zIaf%UMiKdw1GX`@wzO#4+sJzL2)xJ*#j*5Oe6r<7z8pyANtg@cNXE8yrfWb@eX-zCn!H%?v9g(<*p$N%5w2>^Bh?dW7MweOR*+F+mi=k?bT*XyHl|? z-36MPd=em;>ul)lQe$`E!8FPv)obuh^KfrinRab6?_xpUYP}me2e!V1b!z??HWRXg zB;e{>A(=5G*->H+2zx-KI(uuW7x#xK{{zKS`#;XKrJKsnGo3|JQx5?5n@=nQdwa|n zd`Fm^pG?C7A%lPzb#&!t%aEX|NR^915RHLUA`4t z{EXN6+i6?et_mvsgHF{^2SD2VBs{l>to}!?;X!VXCfDHSmwUjR6@zWbxO^8Dw`vv2 zR2=!`x?4$0s%gI;hw&|NjEUlsap^S?@GQ~g4za1bz%((kXi3QYz@A>79}8_cQ@<8wXE+Ta*ktk2Ot0D zj*8s=`T6LzPN<+hk8xb-##6e%-A~f~4rQSOZZ6g^(TAS$=o66A#uj1A&GU!o?X(da zjsLP_@>7%hPX+?uNA3p3094QA?;QB0FPLu^9Wi-e*HVZWgMin}ji{aM^DWP_wz{^_ zTtPav(BK0wH<=7~w+2Ychz~_D3*c`5))FQYeijzZzlIV?MukomMeHcub^A3SV#glr zr@2o2EU!Sw`#b5;Mrb|Q45jf*2EX1Ci&6ga<1hp6a<359loPOB#$ zARA0gS4^D@G3^65r)EM=Ma0x-%G3-z*{(R;y@~iVLUyzhvQx-9p?D7HPYZ%qfC@$- zG^VH&qCElxd@(`kF6Hzb1xOwY&)D{76yg;Foj^?EHT_c9B>KrT80l4;I0Ni*^zwNL z)=g?!Y~FrAzBso0?g5y35)iO#O!E)S0scA3gdq)2b`_Z2AeOp<5U>!BBslS8^85X{ zijcg)Vesp-YE_jW&;%@-@cs+nE=HddRkLtLw*cIT2>syf-fDFARxmxv0_3(SJp%HU zXMJz9pmsQ}M?hd9(?nszbVc>C=F3}(q2vUhFa?e`aYy&%az%ZQElvjGq6LR9kM>$$ zUcWUsexGxRvbSAM$zP`w*e1grBFZrFcZnS3-r!oH)boYIWI_c^!MH-k0(h zHjI)SwgCYIP)FW$QEBpMysdvHhC&4cDFk@C0jJAE83S?#b}+DE!WK?wBorXbnpz%I z4p467kE=u$s8IIqtl|z!N3%$d9(1h}?*K&a_j~Uy_vZYO#gd(Ewm9*9j1$;GP^V^K zJD%p8{0WA9QblG#GymV}=Q+O4d{LO)fWqY=!i)L>$+>T$AzU}7fm2p}t5sd8seM!9 z?)7ja-^cIQKvglgpJwbYoADDq8i*mNT_S1BjMx_ry{ssFRG){quWn#+&6x&QMgeM^b{hX zfNcdmvkQYSK@~c+$RNE;x0;@V_~1cQI_uviIcA6_6{32m`kB{dBS88MZo;Xc4ziYS z4m9|3M-krJJK#7hXUjl*-PzHR(_t`?U#0-HP)#*6_8ula@a&`Z&HX5p1+2@*GP!dJLu6RA*YA81q_sZE1i2q^+!k)3T7v5B4$vq@=5#a$Zn(CS5=G7PI0te2*7AB|`<#&VOk0^fouAQ#E=jZF8)$AXM*b=xKjhC$s2`8HCA-ckP zn;-rPsFV}|-5JCyuUdl2E@Jh7@FOeiM!ENSggS+w4O#6&>G_O6nv4ctoe$wst_}b* zUD%+@N$I`<>yGAwh|ZFL__rjdo>1<{_bOtOLTR?a@OP?SCx=}T8=8Ia#?&k+$^&{N z{=rYssC{rWA<-uUN(iID7Uq$>gc4wY?!Y0#gye|UpNl_@)m4X(Zm3d{B>7n0Qj~wN zZD_Zoz$g5_3boc{?WuT9vAV?B@C5AWbFlbxe*&Ej!o&$)X~w-PbV(Y39@OjVW}3?X zchf+tJO~D89cwi17H1UM1ERBI9U`0M1j2U0&t z<BRDP^JDLR;|KI@RaBa4+#|IEf9`CKd3U5C1P10iD5+LtV>9dQwcbT zt{RCdSdeQOiTZ{q(hTTtLomdB7u&mcpYN>0aMG+9C6YssUy#38Daad=86_JxdkK+I z$dIAZ`)Y9ZdZ`I^ZlV*M0M{oBP^?M;N(|5B3?;`hZ6kQ}Lri!H9M{eR*_w&H!fbxD z=@fk-pVG@d$~^$|aoAZGn;L0TMTu0f33}30}bujQn zK3yF?1N{-!{V^=c`cuy&$$CJd-;&!Z05;he`pvj|wsH4{_cL+bi1LhjZ5o!l9Hwd& z)$cCmg|Pj=n*SguE}-iC=j;WqwroIw7oJy6p(!osLa--0?z3r|r$E9O9Pj$bA&CU~ z9QGg{B^5xaOmbN~Vuo`l!;3qfsr0=DO77e{hpH}Ez&ano3_@mG~D3_9osOSkMBA`dP7(BU@9gPFbGAi z5>Tz(&}T%Yz_IvB!Z8{Vj`tuIcqjBgM{eq**p7h2C+d|W&z(;0W=Fzox_e}A`lv&Q z6IT&bs*bob_%i=y8n?g>#c$g9nvtA$wGTCJw-sdtfuFaKUjY)lX5EE2c2Kh8++!T` z2vn;OIc&6P`KG3stC5}mZQUS4Gi^z(&>F=I5Z`m9aU8fe1(lP=@0wZ_bcDfQG`Bu& z4gUVVWNs8JX|Oh%9+VX>`aF*)zzr)b{$45Y6 zgl>z9V)fsil}Yz;29ar-Jbd-PJ2HH8VC{PCZKW8$B1J-uc_aXXliX5c4AT$M(iZ|8 z6d(`9aL<7=ddv%k>BL)L?`0tr46RS#<*w61!CP-5)baL%wRe_VARmf|M@c5o)d8Mk z5CO5BWwLRUatHSW$=U>7uhn1HW4ZI`{fG?tG%ATtSB>x~(46kSGL?MaOs+zh3Q|2w zd2cEY5&v;oRKu{_u2EG0;agiL=VB5*(GWMfk2bKJ0IRv>6zr#6&q;p|h^6bckA4vL z$rPSf(?S;7tkeuR1xA&7H@#yi>fbLRySXt4&K2{Z^OfM)cbEaaa4eWQ_k829MHB+? z#x7S=r>QH{=ByjR=(Rhubh<7+Vki;VRZ*r0GP(L8rDp3oDSUDa3Bi&-dd*3A4FEg% zT)s_P3dW`#5W;7XDrusycv6aJ@#q(t5c%<`ya#8$+5bp9M)v}lr9kWs7fpS%wZ3Q* ztwIWsGQ0{P?nJ&VFGV8!WR1l4Y$AdtWj%pVeq-3HISioal@XL&AzaoTn7UD@LynL} zA*^c%Yc|NFI++LKm4buLg06$`7-%9iSv->JA6;lgg2dYKfA zDCn_ei<|!(BB1zuW8!fRYN>?cKFXB%eeX41aT`si>Mf`ou+Z#(8=~T5vRtDBb>w~F z0HN7vEL&dFlS-}mZ}M-0;u@m+hjsa;7?$YokMgc`R`noGj6t_6H{Gj0OjAfAd7UeK zxagWK90r3NwkXU$5|G4=9;bx?zZu-ICcd2z+lKUc%bM1G8+wP!6k|adxVJgl2*6B;4ymW^=U z+t1VM4}fu;mY{ylSH#}H0cj)k;sz*MK-;nI_nhDLOo?ZIsiwe=gQ$Z@7TwhX3F0lt zJC5_3g5ahAG1nH5P@y}h3h$^m(R*yfLr`~L>`t8Sh%6)#4xmK1{QBe`xt!g5;Kd@w z8q;3X6#}41&8J7|Wk`nk0D~u*r+ydi{TmU(rJQPKWeI?b3vU=+!baXJ*};tl1wvDd z^T zuk&*j^&5>UHc}_Z^H8HXaNGm7#~xkU_(GI@5C13+<7A^#(F77`RRg2!iR9r!QM=-< z_F$_0YV>2}Giho5U?G@kJ^!#*Z2ruhEsZAYCoF6+FNKW8RnGPMzNOLHMlL5Dyb0J;uD!1pSb{m~+il4Y6p*v$m;qGiw9vp|@CL^qQwGP%Ba;cJ$OPbQ6( zf9vD)M81N&yzxQS_HMJJ9|HO;B9XKRQEQz%VWWp6&q%BU>#6_dw^z@eOau9{+N7^< zwXP5R4&(}<>PuODJN}*~U% zXF?a7_iL{(2P}NN3gK;qJDx z--`p3Q3Nb5ph7CUm=&DPz%se}y@twpi@HEA%HJUu(0yE8tB-}fHUC~ogt`6PLxct- zt$TBTwgt)3#$F7!1ae_FSDneK_i7q~-Q{B=Xwzo;B5uSfg#OusAl7a@*Rk!D%8B-c zVz9;H{+vkjs(>l%c7_?10tLUPuxFlyMkFOO3a+4?Qu4C7enA80aD5>qPY2(ncC;Ou z!GpQ%gEun@ctMzF|01#24*xeXmAUd3f9+fHJAoo2&fss zV1Am+MvNeI9Q{q}!5E-~NR?j{eQG}!a%Dws5A4j|GfQ+nYcXK|uv z@@=v)cx(cSxUP`1F+%b`91{+@ra*HU^47sh;b@0Fw&5y7WTmhL7wx!#*!AG*?Lh~1_amLvW!NjhIQ)4;eI+j8 z)B(h>6`|7*wKI`CZMMtEh2(M>uL?t-Sax?PoStRg{bUMP^fT25-qz_lTTVq{q; zpEEDVP2NPx=%hX`ucAGu&yexc6o{=w$TtI8lCi9<`U&_WFO~xrfMbFPF9kQ2l-8)k zfL6vSgFHdR0%?5=6xeg$17;_W5vHen8-(-ULBgWu1!mlavjYR+*$GI=v90Rs-ETmx z1?(a?on8XfA!-BIzK9%#t#3{Hp{k7uGju}eC%6A6nb^Wqb-?+_%2E|NdR5517yP7S zz-V5?a^Q1KIjACY$f*S#91LZUo+^>kl;fVP067d#c1Q^ zDiIE7HN{Lb_%;I2{hmpHBp?B_q!aLg-}%7237ka~97emr1_s%Jt{UT(hsJbsVbzhwl?S;5pw^Jp|_2^y|~^e|`r@I6{L(aA(A5r_*y! z%8o5?yZ<5J(FycSh^xs4BDA5)@vFf4Qx4m5 z&k687#FMuOQn6Zaxk-IjPJMj^^#JL+yYU#X=^}i)VXo4WevKIN3y+~to#qXfn|f(f zh8DY;tuFm?fP>HP6QasQ3K}qounp0sBeJ?^Xz)5G&7iyjwBpe~sj~b%U$-!= zgZeO`5L5n%?;jvn7zGsQHxuCEd8U6cobl<*aV zna@!NgNKPaII&TxG$XI(@g4M-gi8YD6$Q5kwzD_7{x>aXfvHla+BNz6lD{l86)l(D*&W)w1$MhtOq`Qz)0BuB=RIHGb*%jKVVZ<2{ldeY9J!LFhi=h;l&t7c`y zsMy7P61>Xw9shR}m2>+#c$_8r=B|>$@N15e$KX+QLp``3!1ZRjzi)9f^R55qtCYaU z`opZ0y5cPtg3akZt69l(@ua7YW;4YKrQ|yll60oL))EVP5C897USXaWpi(ZnE?rbD zkm5CXrcwt%d`Hb|Ivgraly3H=#waWCb3m}xe5XbK#l89g4u_NR>>^NGb+=v3;ppKI z@~9yc|H#GIu>am}kp?xWMopX8+7H5|LzUOu+M~|he&%6U?RB&TqOE1jd4*6eiAn_& zwo9Clc$Ha9MzJ;^>@dId*Z8X({=0>&`c_5xFnOQVycuKJ(t7phe@09_q2_<~oRqrS z(;{5*`WjMq+mK}=Zyt0Vn7R0vbSINin>eXy|91}GGkUKi?iSqBl)tp75wr%GwB&_D zI}Wz~VyR6&!Yd^zXJJk<`pR_ZNqge0L(|4Pl6L0N2=s^Kje4JsJCoKM1kyPU|5Y-D?ADK%}dv|8mPGTxIzikA|OUA{nh z&zo^AahOXbaK6)%ZI&PPHNLT2a+UEUbYX;+V$xZn2WFEFNSOYEPrdGV%6QF#B;2Pz zsIszngVgGbznWMHufl4be~T=igp_7EiL1C@9wQ-Qvy0d7>=HtRv8j8SK^M?r{rhv9jU2?`mtPmFX>swXKX#!JXxVbmL4lB z(~(&#LeJ-2l=o5Y#J=IRF3(vmw2II)IRn3@3XX-yS{`Mx9wF0 ze1m62!}Z5&mSU5##VX*a|8cm5Nsdjq?|@sJlOR+hFS?LyIrZxuUKzS2j9`j-!^t0O zr!*`n=gzN;t5O&GpdJV9!I6`I_NCaO`wl$rWML2mg`ry;9^@#L09T8l~3F#|CES@ z_7C{GwSli^(^kS9PdNpnBd8yWpq>0*e>-U^zc!}|eRMrKu1-kX1SNucd<*t3mw6&!sSOJmX#sfDgD4&`SYX10S`ufqWE zNfe$6-(O1@X)yUQb?3#3FlrR&Zg2q7*2(zAOw)M{N6EIO=LRv(XfHo5=}k!qIt%UD zCZ$95QL|}Mx0?@>*rxEPSf;;j6*~G9PR8lk&4l)$AHRxyYziNkKVk$ z6s|(S_1CF}!WjG&e#Thmzy6e=+`D9<3SU(1x>n&yp5W!fpI||`gUa#vYD{zG{g%llUyP-{wSvCylPoAKu)>gnvSK*0r;bq2A)%} zUKW*%ky*0gxj`FP>vHeqF($mTG z?_Vusyw|Huw2@V2X8+ccXzZ#KOi3=D@MtJBN&AsMNGDd@>ppLp+M|&0(jqOScAm=Ya9!io^n{%7#<5m^=3gpU0+&*rxlK`)vUVG5{A;)T6GuWv_P z_-g}EwvTn5Q-o2~b-WG#k3yW$HjYDO+gLud#Ij>U@sW%>kHB4lwe79DZB$Ie>Mkgu zm_je}4ZcNq$_eKA{Iw+=iRF5e0@WCbxy0oCFnB9Z+g`X6^8$=-$HC>J@l&o-FDwZUL)Z&rq*r)hDgV#kUEJ*1|JboeG{d7Z z%Dt|k$J>IoQ~b~TkK+)$= zuTjc%o_pX8(ZpjU*eIpoPYHjGGFGgS3Tr(|tcFFJST(icTzL8jC>;b_EdadmICi}q~4>)NOWLi3JqHlJd>4)1To#xYxyOY=#ZZ4 zY#Z7+*qN6eCB826q3ziY;*GrSlBKrfy4oHlVP_cEsFpx?+qP+Htund)@l+-gM}gj4 zVeqDVy?^cWDiV!ef40)5e9x=Moz@dErP$h1yi<%MvC5&wNVpJ9;ehu@b5Z}j7bb5d z*W%r}10%@ZT-dRYse2hRPhrv36E#cU#gxdnPpA?s8`hq!4B7T5(aBA(3k#7WpiPZy zwCHM4+0e@8*K-7X{cLd3z5V#!Qm!3Wnh(QrrK|K-CNBOS2O5z}(O;&x2iB$qE$*p>*aA;8n zyk450pC^>*`Ug3EZiS249?Dx_~ItN8Y!Fac;2 zUQkC?x1{?!ez19W|9wk9L)qGXTA+bjy|&hn*>q`JqjEa5g^D2u!WNX+BY~&>i4x!u zHfUkAJ?F}1N}HCKlg?eoWT~Ie`8v*fo?}6tK=WO%e#t7yVP1=gVBI0)qAEiw#@HOd zvj5M~{AMdThB}L$O7Or9?OY2JMcl4JFZrliR0f<%P?uDHO_(p0pd+hJr}`pzUloz;C# z2JhrWnWiQia{Qmjijiv+P5yq;wE`Z%O+pY`i_2ZCd;(5jjJwW$|2G6A{nd@$Zm>T^xS~Z-b4Q2DRX)oda^DwFN`9$D; zXh16F*Jkk8_-;$oFY3#J3{T649%Mg>5Np~0&EAq*CX^eQ!QWqs-^k>DC(;{f9xXxtJB^?~E{j-4{hh>- zxgmA~m#9D4Jo24V>)%QHFamS#7^)`V`a%fP)EO55M;0`=-xejMs79Xcru0wZfkLB( zZj+BWhjo$Eo(M_o8|Wn;foa!!UFI#>DhXO}cdAAAP}Y|3l73zl0C*uOW<1uD1ue`i zK>EVOi@_WI(q6wR^p6GW;4fvECZDNeV74uj0QN#nY5;d<#z_|{MPlAXPzPx}juUB} zU=vj$r=#^37607Rqn6`!uBt*S%J46xaex1@IbMdKygJ1Va0qmSZtR@Crdm~FBr%}p z`YFv~;~%m4=!l@bD^uLHz5ADTZ5=SE-9SCU zZOdCu>rB1U-w-(#?Y5?ae5n$)AwYI+0h3nL5QW8i^mjNS@Huar40Mm?<4zq$nw?)Y zA=@Jlc%2gOp2S8Q&6u8PoL7+4uO29TqgqEkpYAw@RZGR)qBaod`#jG8SVoTYqJ%hf zNnzClaOWHgxts~!z>gb$M^;);1LfR~Ocm+EmDQHQsVu&NH5NHf&5;Rck3ObLR5TI^ z=6XYy6gnQMK7xK4l&k1!POX04fz&|*#-ol1^N=&-LF9+@0(TuQMc?-DTsuID(2CUG z5xb(y~(zkBRkrZU1dhf7Sk6$ zF`$yJU<1b^kT2C zPJvGAN$oMt!JEvH{EkkBfODR#47Va{(bSXd5kCr3iEiJqfK;xidC0F4DsX|n&4@Q;VXsz*~=w1bAoSw+<+yLy1w~`mJ zwQ3ET+sC;6iHiOv16K?m-`ge}C95IdIY^JlR{SM>XvIr7Fn_B*RAK zHkAXSuVdb95jmQ2VV=m6qT%nP>UXAS#M>by!Q}CeM1Hy*e&ehZvd{Pnm+53R#SUqr zzfF+=^fqTOP0|cbl2tD~Go7r{k{tC;Hjx|+%!Bf|z{{lKm0|p=AnZ%rRu%kd>R7xG z7MgSiz&g5)tj3;c>c=q;RJNu>QjnTaoa6OoxtbM*{^{^4_nS=a z1T)eFx)5DL34^|4Y43{UvA*MsZTnNCGy`(TAyeyxH2*qQgmY?Kamfsl(9PTMayA!@+u*jZKPP( z_*{eM&(`l#(2kjJ^XAQ;Bz?yHg^ia?uj?2}419k(HR^W^O$~nQbF1s^an^7dS99B|*SJ#M2I3V@r)(S`8Lvl zqg$BnH**kT!JMo9Hsp6Z9LH@_8qPx$ zyb0Q8N|DOd`>?4vQWfB!$j^lj<8}EVWeMa+A1GleNVM#8oipFK?1gyQ1ai2~1Jgr4 zT^%Xao`Y8<3Ibxt7QhXLpL>hatAoNJzdusd>cL)oq&|8IfmvW-AwP|r3n$w0Bi$RG zV`>1p;ul$axjaQ=8-a}*`N>iAys~g=8~ABH)Tks3l${$!*w^rL&!!ABH96IKo0MSg z^Vl@*vsW1 z*=>+MGhr?$5vn!NY;XDw((YQWRp|g##YEk+Qoc;x99s81o}W8No@`E#u z#nwwBvd2mW7LA zgpB%erL)RNR2}|u3vz*ZsfAyy9sgf@SNhe|na1nbR$Izav|53LI<+c>fFe)`ORP|B z2Zd5(k*EPOD3FA($R5C{fz%45Docwj3KlRVh6@;?K+*>FDyRV>Ngx^;14Ik~LLh`C zNpH@aGk?H*nJ@Evx$immzUSQE`#!&SdCs$h)raKs5Tx4r#rM#8{hhZ+E&i`lpgfNo zf(kYES%$^tm%nbA%Q}ipp{_v;eMRMZJyd5)GR#W%AKAFSh1SfKRS9@~wcgXlTh=Yy z&!FwnEWg`8Tew*+u%Qk5|Be545I#C6Y&xDkmn-gm3Dw&ZIxXca4jsJ)ipI})LGA!o zH>@0?!E1ew+C3_@uL}O!_03(nasxEl38-i$>{jrv#dOA&s%Cpws^1i3To(elw;RU> z%7#-^&IsROf5b6*!_1P`31+e&r8(wi-A~-Fy2`Tm2wVnn zY}m%nfLe($}ED`gP(h%Z-H#$NG8VH8ICuEfZOf&0^x09{Q_B&`OthW31_s6VhX!6~+N`2Z_MK)7)kca? zt_9!|)Hb`$o+xkoFWE?cRf(RTCi3nmD`#S9C+`9z*t><}aclNau8gFYy3xuHM$?)I zehr2b-dN5Yn`JB*yWh#+kvWzPniRD97ip>opyW3dfwIEn@FP+t&#t6@MPciL+4T|) zoYlGEasf7fPRcaCe-efqJ7F%RcKT68EvUwh#b#K@;=@HI-}qa(gZfa z0!9oCh_Z~cj4#b{!cTy9V!JL-ljs*+AF4P#d038{st~%X-iZbuLUqvFaB+OFAJMGt zcus|FdFlLkw{`P9&AcI$@rX=ARo49kI1n_$^*(`~~}91$)>$y2TB`{7P=l%r2mw@ zMzcjjmzMO}{4vrqAu3R1RrLv`8MX)G;yaroRCC4@6cB7F;T77^DlDqHz`IM^FTv_l z)=FU3mymnpnyMc42lXL18i`OVPe%gN0C8_)#v89Gr|LO$gp56P+!`AM5WC#uMoRoZ z-L?6QPlt`+qerp&ml4Qw3b|*|zY##rNE>r%-^EJg?MJdtQomBY$llAU@mP4+v_iv( zMi)jsS5@xS$!qq~?bo;YS2m4$QU}6Mhj3WHWXZFRcGNb&AZ|CJ7RtKIu(IoUt9y2E z70ouq-fR1uu*iuQs`Zor{pw>?%Bbo|8Eb+VQlb-}{a=%)mh#lc(k_YWGq&HDb%nM| zN}+9slfsrfzH3UrJeX2x4$Iqfq;@_ow!t(c%T1oXD?+5}s!;BtscFS2^)sntqb>ru z2M|*_+nHttydO>Si-G;orbu}4i?uS6NKsaVQTtr0#G#s#n*v}z>{}4shP0N^@p0z< zpAt?o#buYqV{hMwR}7(!4W$);&Z5{aV>h{wKWdx?6v_~q8gophxogl=38Zzuq+oZE zy7Qx5NcDZ{5@N_qhKuJb^z0b7A>VOd9uus?J5@WvO+Cbs#d)tFFF!U}23QS1gws8Q zcmK$nZBQ`W*t7J>z{xlk(B@!Xnn-VuX`NrNLXkl6-F{_;^LqR0IBMe~R8qmcwu4*4 zwq2lf=I@*9$k0RT92Vaj-K-AF?x8dGh;}~3xYX1|y7*@1)CMCX-Cv2WN4k`Y<--RS zXe?rgOoiBrxV{|4joRVkX~cV&Ik`8&v*r%?Q?F55*O-~$2Y~x?w0+Y#(&)~fLIQvC za-E=!FrvKmAtrdCEZwU&$=fi(X`;IOv03JUb@`zP4jjpov_*i2g!v-iF`lvpD~{TD zM)i@;XANnwdjcmJ0m>|A`eq*s_N&|yi6UYCb_uZyAZ{M0ZeN1r|JVVo zqYs2b`N*}I_Xw&x`WlgES&k&lq#AH?mRR>p7wJA*^(2qcGc7-0Q@S=6j!=-QBq)O- zX)Q+DvNVQoC72A#2)=rdgFT|MaKzHfI}(jRxkLluJERSt^MEGkW3_cbfNa8puSFq5 z8-`;n$p**FcOLYQ{>chbec(fgXW$zDs2mxW6eQj^NdR^0@X%fiErY?&*HjJJz{gX1 zJt;HU)CDtDrNQ>=xJvQ8t;emGN7+uEf^&jM&RiVJr*QL%lmRjpsu#P!`eZOrxULB6 zoZC&lvknfL00m4zq7^q725sONpR;oI7^F>LlQca}Nc1hwI>lE$=zmy;t4Ata?LQot zfNGJR(mP!5Q9!533uhryOIpjtEtw9Rj-S~?`Z>Y$z9Gli&7sbGlwO4FH#S$6iSsu? zslw+;I|6mSR_De{^G_|Hmp86K-ddY|4CKL(C-B7%x2@F=f~Oq=$He;&4QhQ(=^UYN zdLcVZV9Ki3YH3ld@%LZNSA!PFF%Eh_`eFY+ZCpz?q1}4uHum%^iurfG{W>`C&f%CJ F{sKEck~9DS From 759fa2944538ae93bb99db6b6cd957701eb27a1f Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Wed, 5 Dec 2018 19:35:06 +0800 Subject: [PATCH 33/35] fix broken link --- README.md | 2 +- docs/GetStarted.md | 2 +- docs/Overview.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 25113f2407..fdf589fb53 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ You can use these commands to get more information about the experiment * [Quick start](docs/GetStarted.md) ## **How to** -* [Install NNI](docs/InstallNNI_Ubuntu.md) +* [Install NNI](docs/Installation.md) * [Use command line tool nnictl](docs/NNICTLDOC.md) * [Use NNIBoard](docs/WebUI.md) * [How to define search space](docs/SearchSpaceSpec.md) diff --git a/docs/GetStarted.md b/docs/GetStarted.md index 01b128269e..548be1846e 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -89,7 +89,7 @@ The experiment has been running now, NNI provides WebUI for you to view experime ## Read more * [Tuners supported in the latest NNI release](./HowToChooseTuner.md) * [Overview](Overview.md) -* [Installation](InstallNNI_Ubuntu.md) +* [Installation](Installation.md) * [Use command line tool nnictl](NNICTLDOC.md) * [Use NNIBoard](WebUI.md) * [Define search space](SearchSpaceSpec.md) diff --git a/docs/Overview.md b/docs/Overview.md index b6d0772d20..0b8bf2df80 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -39,7 +39,7 @@ NNI provides a set of examples in the package to get you familiar with the above ## Learn More * [Get started](GetStarted.md) -* [Install NNI](InstallNNI_Ubuntu.md) +* [Install NNI](Installation.md) * [Use command line tool nnictl](NNICTLDOC.md) * [Use NNIBoard](WebUI.md) * [Use annotation](howto_1_WriteTrial.md#nni-python-annotation) From b1c835637bb4281ed31018a13dfc2dd8e3e82e27 Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Fri, 7 Dec 2018 18:15:12 +0800 Subject: [PATCH 34/35] correct typo --- README.md | 2 +- docs/RELEASE.md | 4 ++-- ...ccessors.md => tutorial_3_tryTunersAndAssessors.md} | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) rename docs/{tutorial_3_tryTunersAndAccessors.md => tutorial_3_tryTunersAndAssessors.md} (87%) diff --git a/README.md b/README.md index d8847efce2..780b638366 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ You can use these commands to get more information about the experiment * [Run an experiment on multiple machines?](docs/tutorial_2_RemoteMachineMode.md) * [Run an experiment on OpenPAI?](docs/PAIMode.md) * [Run an experiment on Kubeflow?](docs/KubeflowMode.md) -* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAccessors.md) +* [Try different tuners and assessors](docs/tutorial_3_tryTunersAndAssessors.md) * [Implement a customized tuner](docs/howto_2_CustomizedTuner.md) * [Implement a customized assessor](examples/assessors/README.md) * [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](examples/trials/ga_squad/README.md) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 54fc240f83..390b18b10e 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -86,10 +86,10 @@ Initial release of Neural Network Intelligence (NNI). * Installation and Deployment * Support pip install and source codes install * Support training services on local mode(including Multi-GPU mode) as well as multi-machines mode - * Tuners, Accessors and Trial + * Tuners, Assessors and Trial * Support AutoML algorithms including: hyperopt_tpe, hyperopt_annealing, hyperopt_random, and evolution_tuner * Support assessor(early stop) algorithms including: medianstop algorithm - * Provide Python API for user defined tuners and accessors + * Provide Python API for user defined tuners and assessors * Provide Python API for user to wrap trial code as NNI deployable codes * Experiments * Provide a command line toolkit 'nnictl' for experiments management diff --git a/docs/tutorial_3_tryTunersAndAccessors.md b/docs/tutorial_3_tryTunersAndAssessors.md similarity index 87% rename from docs/tutorial_3_tryTunersAndAccessors.md rename to docs/tutorial_3_tryTunersAndAssessors.md index 05547b3da6..7d8f1339a3 100644 --- a/docs/tutorial_3_tryTunersAndAccessors.md +++ b/docs/tutorial_3_tryTunersAndAssessors.md @@ -1,6 +1,6 @@ -# Tutorial - Try different Tuners and Accessors +# Tutorial - Try different Tuners and Assessors -NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Accessors**. +NNI provides an easy to adopt approach to set up parameter tuning algorithms as well as early stop policies, we call them **Tuners** and **Assessors**. **Tuner** specifies the algorithm you use to generate hyperparameter sets for each trial. In NNI, we support two approaches to set the tuner. 1. Directly use tuner provided by nni sdk @@ -18,17 +18,17 @@ NNI provides an easy to adopt approach to set up parameter tuning algorithms as **Assessor** specifies the algorithm you use to apply early stop policy. In NNI, there are two approaches to set theassessor. -1. Directly use accessor provided by nni sdk +1. Directly use assessor provided by nni sdk required fields: builtinAssessorName and classArgs. -2. Customize your own tuner file +2. Customize your own assessor file required fields: codeDirectory, classFileName, className and classArgs. ### **Learn More about assessor** * For detailed defintion and usage aobut the required field, please refer to [Config an experiment](ExperimentConfig.md) -* Find more about the detailed instruction about [enable accessor](EnableAssessor.md) +* Find more about the detailed instruction about [enable assessor](EnableAssessor.md) * [How to implement your own assessor](../examples/assessors/README.md) ## **Learn More** From b9da492f068fa6c850edb5ab2ca1164faf8f81ee Mon Sep 17 00:00:00 2001 From: Scarlett Li Date: Thu, 3 Jan 2019 17:52:11 +0800 Subject: [PATCH 35/35] Adding related projects to Readme --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 4d57b720a0..e114a572b3 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,13 @@ The tool dispatches and runs trial jobs generated by tuning algorithms to search * 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. +## Related Projects +Targeting at openness and advancing state-of-art technology, [Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) had also released few other open source projects. +* [OpenPAI](https://github.com/Microsoft/pai) : an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale. +* [FrameworkController](https://github.com/Microsoft/frameworkcontroller) : an open source general-purpose Kubernetes Pod Controller that orchestrate all kinds of applications on Kubernetes by a single controller. +* [MMdnn](https://github.com/Microsoft/MMdnn) : A comprehensive, cross-framework solution to convert, visualize and diagnose deep neural network models. The "MM" in MMdnn stands for model management and "dnn" is an acronym for deep neural network. +We encourage researchers and students leverage these projects to accelerate the AI development and research. + ## **Install & Verify** **Install through pip**