From fc5dce8639f80c930c5ca3484f3ee72356e83096 Mon Sep 17 00:00:00 2001 From: QuanluZhang Date: Sun, 7 Oct 2018 10:38:57 +0800 Subject: [PATCH 01/28] Exp stop refactor (#161) * Update RemoteMachineMode.md (#63) * Remove unused classes for SQuAD QA example. * Remove more unused functions for SQuAD QA example. * Fix default dataset config. * Add Makefile README (#64) * update document (#92) * Edit readme.md * updated a word * Update GetStarted.md * Update GetStarted.md * refact readme, getstarted and write your trial md. * Update README.md * Update WriteYourTrial.md * Update WriteYourTrial.md * Update WriteYourTrial.md * Update WriteYourTrial.md * Fix nnictl bugs and add new feature (#75) * fix nnictl bug * fix nnictl create bug * add experiment status logic * add more information for nnictl * fix Evolution Tuner bug * refactor code * fix code in updater.py * fix nnictl --help * fix classArgs bug * update check response.status_code logic * remove Buffer warning (#100) * update readme in ga_squad * update readme * fix typo * Update README.md * Update README.md * Update README.md * Add support for debugging mode * fix setup.py (#115) * Add DAG model configuration format for SQuAD example. * Explain config format for SQuAD QA model. * Add more detailed introduction about the evolution algorithm. * Fix install.sh add add trial log path (#109) * fix nnictl bug * fix nnictl create bug * add experiment status logic * add more information for nnictl * fix Evolution Tuner bug * refactor code * fix code in updater.py * fix nnictl --help * fix classArgs bug * update check response.status_code logic * show trial log path * update document * fix install.sh * set default vallue for maxTrialNum and maxExecDuration * fix nnictl * Dev smac (#116) * support package install (#91) * fix nnictl bug * support package install * update * update package install logic * Fix package install issue (#95) * fix nnictl bug * fix pakcage install * support SMAC as a tuner on nni (#81) * update doc * update doc * update doc * update hyperopt installation * update doc * update doc * update description in setup.py * update setup.py * modify encoding * encoding * add encoding * remove pymc3 * update doc * update builtin tuner spec * support smac in sdk, fix logging issue * support smac tuner * add optimize_mode * update config in nnictl * add __init__.py * update smac * update import path * update setup.py: remove entry_point * update rest server validation * fix bug in nnictl launcher * support classArgs: optimize_mode * quick fix bug * test travis * add dependency * add dependency * add dependency * add dependency * create smac python package * fix trivial points * optimize import of tuners, modify nnictl accordingly * fix bug: incorrect algorithm_name * trivial refactor * for debug * support virtual * update doc of SMAC * update smac requirements * update requirements * change debug mode * update doc * update doc * refactor based on comments * fix comments * modify example config path to relative path and increase maxTrialNum (#94) * modify example config path to relative path and increase maxTrialNum * add document * support conda (#90) (#110) * support install from venv and travis CI * support install from venv and travis CI * support install from venv and travis CI * support conda * support conda * modify example config path to relative path and increase maxTrialNum * undo messy commit * undo messy commit * Support pip install as root (#77) * Typo on #58 (#122) * PAI Training Service implementation (#128) * PAI Training service implementation **1. Implement PAITrainingService **2. Add trial-keeper python module, and modify setup.py to install the module **3. Add PAItrainingService rest server to collect metrics from PAI container. * fix datastore for multiple final result (#129) * Update NNI v0.2 release notes (#132) Update NNI v0.2 release notes * Update setup.py Makefile and documents (#130) * update makefile and setup.py * update makefile and setup.py * update document * update document * Update Makefile no travis * update doc * update doc * fix convert from ss to pcs (#133) * Fix bugs about webui (#131) * Fix webui bugs * Fix tslint * webui logpath and document (#135) * Add webui document and logpath as a href * fix tslint * fix comments by Chengmin * Pai training service bug fix and enhancement (#136) * Add NNI installation scripts * Update pai script, update NNI_out_dir * Update NNI dir in nni sdk local.py * Create .nni folder in nni sdk local.py * Add check before creating .nni folder * Fix typo for PAI_INSTALL_NNI_SHELL_FORMAT * Improve annotation (#138) * Improve annotation * Minor bugfix * Selectively install through pip (#139) Selectively install through pip * update setup.py * fix paiTrainingService bugs (#137) * fix nnictl bug * add hdfs host validation * fix bugs * fix dockerfile * fix install.sh * update install.sh * fix dockerfile * Set timeout for HDFSUtility exists function * remove unused TODO * fix sdk * add optional for outputDir and dataDir * refactor dockerfile.base * Remove unused import in hdfsclientUtility * Add documentation for NNI PAI mode experiment (#141) * Add documentation for NNI PAI mode * Fix typo based on PR comments * Exit with subprocess return code of trial keeper * Remove additional exit code * Fix typo based on PR comments * update doc for smac tuner (#140) * Revert "Selectively install through pip (#139)" due to potential pip install issue (#142) * Revert "Selectively install through pip (#139)" This reverts commit 1d174836d3146a0363e9c9c88094bf9cff865faa. * Add exit code of subprocess for trial_keeper * Update README, add link to PAImode doc * Merge branch V0.2 to Master (#143) * webui logpath and document (#135) * Add webui document and logpath as a href * fix tslint * fix comments by Chengmin * Pai training service bug fix and enhancement (#136) * Add NNI installation scripts * Update pai script, update NNI_out_dir * Update NNI dir in nni sdk local.py * Create .nni folder in nni sdk local.py * Add check before creating .nni folder * Fix typo for PAI_INSTALL_NNI_SHELL_FORMAT * Improve annotation (#138) * Improve annotation * Minor bugfix * Selectively install through pip (#139) Selectively install through pip * update setup.py * fix paiTrainingService bugs (#137) * fix nnictl bug * add hdfs host validation * fix bugs * fix dockerfile * fix install.sh * update install.sh * fix dockerfile * Set timeout for HDFSUtility exists function * remove unused TODO * fix sdk * add optional for outputDir and dataDir * refactor dockerfile.base * Remove unused import in hdfsclientUtility * Add documentation for NNI PAI mode experiment (#141) * Add documentation for NNI PAI mode * Fix typo based on PR comments * Exit with subprocess return code of trial keeper * Remove additional exit code * Fix typo based on PR comments * update doc for smac tuner (#140) * Revert "Selectively install through pip (#139)" due to potential pip install issue (#142) * Revert "Selectively install through pip (#139)" This reverts commit 1d174836d3146a0363e9c9c88094bf9cff865faa. * Add exit code of subprocess for trial_keeper * Update README, add link to PAImode doc * fix bug (#147) * Refactor nnictl and add config_pai.yml (#144) * fix nnictl bug * add hdfs host validation * fix bugs * fix dockerfile * fix install.sh * update install.sh * fix dockerfile * Set timeout for HDFSUtility exists function * remove unused TODO * fix sdk * add optional for outputDir and dataDir * refactor dockerfile.base * Remove unused import in hdfsclientUtility * add config_pai.yml * refactor nnictl create logic and add colorful print * fix nnictl stop logic * add annotation for config_pai.yml * add document for start experiment * fix config.yml * fix document * Fix trial keeper wrongly exit issue (#152) * Fix trial keeper bug, use actual exitcode to exit rather than 1 * Fix bug of table sort (#145) * Update doc for PAIMode and v0.2 release notes (#153) * Update v0.2 documentation regards to release note and PAI training service * Update document to describe NNI docker image * fix antd (#159) * refactor experiment stopping logic * support change concurrency * remove trialJobs.ts * trivial changes * fix bugs * fix bug * support updating maxTrialNum --- .travis.yml | 6 +- Makefile | 74 +- README.Makefile.md | 91 ++ README.md | 34 +- deployment/Dockerfile | 4 +- deployment/Dockerfile.build.base | 67 +- docs/3_steps.jpg | Bin 0 -> 163024 bytes docs/GetStarted.md | 13 +- docs/HowToContribute.md | 53 + docs/NNICTLDOC.md | 15 + docs/PAIMode.md | 80 + docs/RELEASE.md | 15 + docs/RemoteMachineMode.md | 13 +- docs/SearchSpaceSpec.md | 2 + docs/StartExperiment.md | 33 + docs/ToContribute.md | 3 - docs/WebUI.md | 54 + docs/WriteYourTrial.md | 98 +- docs/img/accuracy.jpg | Bin 0 -> 33184 bytes docs/img/control.jpg | Bin 0 -> 47572 bytes docs/img/experiment_process.jpg | Bin 0 -> 302899 bytes docs/img/intermediate.jpg | Bin 0 -> 47405 bytes docs/img/openRow.jpg | Bin 0 -> 89473 bytes docs/img/overview.jpg | Bin 0 -> 86698 bytes docs/img/searchspace.jpg | Bin 0 -> 136706 bytes docs/img/trialStatus.jpg | Bin 0 -> 72724 bytes docs/nni_pai_joblist.jpg | Bin 0 -> 85854 bytes docs/nni_trial_hdfs_output.jpg | Bin 0 -> 74687 bytes docs/nni_webui_joblist.jpg | Bin 0 -> 133522 bytes examples/trials/auto-gbdt/config.yml | 11 +- examples/trials/auto-gbdt/config_pai.yml | 36 + examples/trials/ga_squad/README.md | 254 ++++ examples/trials/ga_squad/attention.py | 221 +-- examples/trials/ga_squad/config.yml | 8 +- examples/trials/ga_squad/config_pai.yml | 34 + examples/trials/ga_squad/ga_squad.png | Bin 0 -> 30340 bytes examples/trials/ga_squad/readme.md | 33 - examples/trials/ga_squad/trial.py | 2 +- examples/trials/mnist-annotation/config.yml | 11 +- .../trials/mnist-annotation/config_pai.yml | 35 + .../trials/mnist-batch-tune-keras/config.yml | 9 +- .../mnist-batch-tune-keras/config_pai.yml | 36 + examples/trials/mnist-keras/config.yml | 13 +- examples/trials/mnist-keras/config_pai.yml | 36 + examples/trials/mnist-smartparam/config.yml | 11 +- .../trials/mnist-smartparam/config_pai.yml | 35 + examples/trials/mnist/config.yml | 13 +- examples/trials/mnist/config_assessor.yml | 5 +- examples/trials/mnist/config_pai.yml | 36 + examples/trials/pytorch_cifar10/config.yml | 11 +- .../trials/pytorch_cifar10/config_pai.yml | 36 + install.sh | 6 +- setup.py | 43 +- src/nni_manager/common/log.ts | 4 +- src/nni_manager/common/manager.ts | 4 +- src/nni_manager/common/utils.ts | 22 +- src/nni_manager/core/nniDataStore.ts | 9 +- src/nni_manager/core/nnimanager.ts | 252 ++-- src/nni_manager/core/trialJobs.ts | 131 -- src/nni_manager/main.ts | 7 +- src/nni_manager/package.json | 4 +- .../rest_server/restValidationSchemas.ts | 18 +- .../training_service/common/jobMetrics.ts | 37 + .../common/trialConfigMetadataKey.ts | 3 +- .../training_service/pai/hdfsClientUtility.ts | 203 +++ .../training_service/pai/paiConfig.ts | 123 ++ .../training_service/pai/paiData.ts | 70 + .../pai/paiJobInfoCollector.ts | 136 ++ .../training_service/pai/paiJobRestServer.ts | 80 +- .../pai/paiTrainingService.ts | 432 ++++++ .../training_service/pai/paiTrialConfig.ts | 39 + .../remote_machine/metricsCollector.ts | 3 +- .../remote_machine/remoteMachineData.ts | 19 +- .../remoteMachineTrainingService.ts | 8 +- .../test/hdfsClientUtility.test.ts | 143 ++ .../test/paiTrainingService.test.ts | 95 ++ src/nni_manager/yarn.lock | 423 +++++- src/sdk/pynni/nni/README.md | 36 +- src/sdk/pynni/nni/__main__.py | 68 +- src/sdk/pynni/nni/common.py | 22 +- src/sdk/pynni/nni/constants.py | 51 + src/sdk/pynni/nni/platform/__init__.py | 2 +- src/sdk/pynni/nni/platform/local.py | 16 +- src/sdk/pynni/nni/smac_tuner/README.md | 1 + src/sdk/pynni/nni/smac_tuner/__init__.py | 0 .../nni/smac_tuner/convert_ss_to_scenario.py | 122 ++ src/sdk/pynni/nni/smac_tuner/requirements.txt | 2 + src/sdk/pynni/nni/smac_tuner/smac_tuner.py | 190 +++ src/sdk/pynni/nni/smartparam.py | 2 +- src/sdk/pynni/setup.py | 9 +- src/sdk/pynni/tests/test_smartparam.py | 4 +- src/webui/README.md | 37 +- src/webui/src/components/Para.tsx | 41 +- src/webui/src/components/Sessionpro.tsx | 165 +-- src/webui/src/components/SlideBar.tsx | 9 +- src/webui/src/components/TrialStatus.tsx | 86 +- src/webui/src/const.ts | 2 +- src/webui/src/style/logPath.css | 14 + src/webui/src/style/sessionpro.css | 19 +- src/webui/src/style/slideBar.css | 1 + src/webui/src/style/trialStatus.css | 17 - src/webui/yarn.lock | 1304 +++++++++++++++++ test/naive/nnictl | 0 test/naive/nnimanager | 0 tools/nni_annotation/__init__.py | 15 +- tools/nni_annotation/code_generator.py | 14 +- .../nni_annotation/search_space_generator.py | 2 +- tools/nni_annotation/test_annotation.py | 9 +- .../testcase/annotated/non_annotation/bar.py | 5 + .../testcase/annotated/non_annotation/foo.py | 1 + .../nni_annotation/testcase/searchspace.json | 6 +- .../testcase/usercode/non_annotation/bar.py | 5 + .../testcase/usercode/non_annotation/foo.py | 1 + tools/nnicmd/common_utils.py | 8 +- tools/nnicmd/config_schema.py | 95 +- tools/nnicmd/constants.py | 37 +- tools/nnicmd/launcher.py | 150 +- tools/nnicmd/launcher_utils.py | 56 +- tools/nnicmd/nnictl.py | 29 +- tools/nnicmd/nnictl_utils.py | 70 +- tools/nnicmd/package_management.py | 42 + tools/nnicmd/rest_utils.py | 12 +- tools/nnicmd/updater.py | 17 +- tools/nnicmd/webui_utils.py | 8 +- tools/setup.py | 9 +- tools/trial_tool/__init__.py | 0 tools/trial_tool/constants.py | 37 + tools/trial_tool/hdfsClientUtility.py | 64 + tools/trial_tool/metrics_reader.py | 127 ++ tools/trial_tool/rest_utils.py | 57 + .../trial_tool/test/test_hdfsClientUtility.py | 101 ++ tools/trial_tool/trial_keeper.py | 99 ++ tools/trial_tool/url_utils.py | 25 + 133 files changed, 6022 insertions(+), 1154 deletions(-) create mode 100644 README.Makefile.md create mode 100644 docs/3_steps.jpg create mode 100644 docs/HowToContribute.md create mode 100644 docs/PAIMode.md create mode 100644 docs/StartExperiment.md delete mode 100644 docs/ToContribute.md create mode 100644 docs/WebUI.md create mode 100644 docs/img/accuracy.jpg create mode 100644 docs/img/control.jpg create mode 100644 docs/img/experiment_process.jpg create mode 100644 docs/img/intermediate.jpg create mode 100644 docs/img/openRow.jpg create mode 100644 docs/img/overview.jpg create mode 100644 docs/img/searchspace.jpg create mode 100644 docs/img/trialStatus.jpg create mode 100644 docs/nni_pai_joblist.jpg create mode 100644 docs/nni_trial_hdfs_output.jpg create mode 100644 docs/nni_webui_joblist.jpg create mode 100644 examples/trials/auto-gbdt/config_pai.yml create mode 100644 examples/trials/ga_squad/README.md create mode 100644 examples/trials/ga_squad/config_pai.yml create mode 100644 examples/trials/ga_squad/ga_squad.png delete mode 100644 examples/trials/ga_squad/readme.md create mode 100644 examples/trials/mnist-annotation/config_pai.yml create mode 100644 examples/trials/mnist-batch-tune-keras/config_pai.yml create mode 100644 examples/trials/mnist-keras/config_pai.yml create mode 100644 examples/trials/mnist-smartparam/config_pai.yml create mode 100644 examples/trials/mnist/config_pai.yml create mode 100644 examples/trials/pytorch_cifar10/config_pai.yml delete mode 100644 src/nni_manager/core/trialJobs.ts create mode 100644 src/nni_manager/training_service/common/jobMetrics.ts create mode 100644 src/nni_manager/training_service/pai/hdfsClientUtility.ts create mode 100644 src/nni_manager/training_service/pai/paiConfig.ts create mode 100644 src/nni_manager/training_service/pai/paiData.ts create mode 100644 src/nni_manager/training_service/pai/paiJobInfoCollector.ts create mode 100644 src/nni_manager/training_service/pai/paiTrainingService.ts create mode 100644 src/nni_manager/training_service/pai/paiTrialConfig.ts create mode 100644 src/nni_manager/training_service/test/hdfsClientUtility.test.ts create mode 100644 src/nni_manager/training_service/test/paiTrainingService.test.ts create mode 100644 src/sdk/pynni/nni/constants.py create mode 100644 src/sdk/pynni/nni/smac_tuner/README.md create mode 100644 src/sdk/pynni/nni/smac_tuner/__init__.py create mode 100644 src/sdk/pynni/nni/smac_tuner/convert_ss_to_scenario.py create mode 100644 src/sdk/pynni/nni/smac_tuner/requirements.txt create mode 100644 src/sdk/pynni/nni/smac_tuner/smac_tuner.py create mode 100644 src/webui/src/style/logPath.css mode change 100644 => 100755 test/naive/nnictl mode change 100644 => 100755 test/naive/nnimanager create mode 100644 tools/nni_annotation/testcase/annotated/non_annotation/bar.py create mode 100644 tools/nni_annotation/testcase/annotated/non_annotation/foo.py create mode 100644 tools/nni_annotation/testcase/usercode/non_annotation/bar.py create mode 100644 tools/nni_annotation/testcase/usercode/non_annotation/foo.py create mode 100644 tools/nnicmd/package_management.py create mode 100644 tools/trial_tool/__init__.py create mode 100644 tools/trial_tool/constants.py create mode 100644 tools/trial_tool/hdfsClientUtility.py create mode 100644 tools/trial_tool/metrics_reader.py create mode 100644 tools/trial_tool/rest_utils.py create mode 100644 tools/trial_tool/test/test_hdfsClientUtility.py create mode 100644 tools/trial_tool/trial_keeper.py create mode 100644 tools/trial_tool/url_utils.py diff --git a/.travis.yml b/.travis.yml index 7cc4d8c0ba..a9f4a1d734 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,9 +4,9 @@ language: python python: - "3.6" before_install: - - wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz - - tar xf node-v10.9.0-linux-x64.tar.xz - - sudo mv node-v10.9.0-linux-x64 /usr/local/node + - wget https://nodejs.org/dist/v10.10.0/node-v10.10.0-linux-x64.tar.xz + - tar xf node-v10.10.0-linux-x64.tar.xz + - sudo mv node-v10.10.0-linux-x64 /usr/local/node - export PATH=/usr/local/node/bin:$PATH - sudo sh -c 'PATH=/usr/local/node/bin:$PATH yarn global add serve' install: diff --git a/Makefile b/Makefile index 6e8513e06c..38bdd2c6d4 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,14 @@ # Setting variables SHELL := /bin/bash +PIP_INSTALL := python3 -m pip install +PIP_UNINSTALL := python3 -m pip uninstall + +## Colorful output +_INFO := $(shell echo -e '\e[1;36m') +_WARNING := $(shell echo -e '\e[1;33m') +_END := $(shell echo -e '\e[0m') + ## Install directories ifeq ($(shell id -u), 0) # is root @@ -20,7 +28,7 @@ else # is normal user endif ## Dependency information -NODE_VERSION ?= v10.9.0 +NODE_VERSION ?= v10.10.0 NODE_TARBALL ?= node-$(NODE_VERSION)-linux-x64.tar.xz NODE_PATH ?= $(INSTALL_PREFIX)/nni/node @@ -35,41 +43,37 @@ SERVE_PATH ?= $(INSTALL_PREFIX)/nni/serve ## Check if dependencies have been installed globally ifeq (, $(shell command -v node 2>/dev/null)) - $(info Node.js not found) + $(info $(_INFO) Node.js not found $(_END)) _MISS_DEPS := 1 # node not found else _VER := $(shell node --version) _NEWER := $(shell echo -e "$(NODE_VERSION)\n$(_VER)" | sort -Vr | head -n 1) ifneq ($(_VER), $(_NEWER)) - $(info Node.js version not match) + $(info $(_INFO) Node.js version not match $(_END)) _MISS_DEPS := 1 # node outdated endif endif ifeq (, $(shell command -v yarnpkg 2>/dev/null)) - $(info Yarn not found) + $(info $(_INFO) Yarn not found $(_END)) _MISS_DEPS := 1 # yarn not found endif ifeq (, $(shell command -v serve 2>/dev/null)) - $(info Serve not found) + $(info $(_INFO) Serve not found $(_END)) _MISS_DEPS := 1 # serve not found endif ifdef _MISS_DEPS - $(info Missing dependencies, use local toolchain) + $(info $(_INFO) Missing dependencies, use local toolchain $(_END)) NODE := $(NODE_PATH)/bin/node YARN := PATH=$${PATH}:$(NODE_PATH)/bin $(YARN_PATH)/bin/yarn SERVE := $(SERVE_PATH)/serve else - $(info All dependencies found, use global toolchain) + $(info $(_INFO) All dependencies found, use global toolchain $(_END)) NODE := node YARN := yarnpkg SERVE := serve endif -## Colorful output -_INFO := $(shell echo -e '\e[1;36m') -_WARNING := $(shell echo -e '\e[1;33m') -_END := $(shell echo -e '\e[0m') # Setting variables end @@ -90,7 +94,6 @@ build: #$(_INFO) Building nnictl $(_END) cd tools && python3 setup.py build - # Standard installation target # Must be invoked after building .PHONY: install @@ -109,17 +112,15 @@ remote-machine-install: cd src/sdk/pynni && python3 setup.py install $(PIP_MODE) -# All-in-one target +# All-in-one target for non-expert users # Installs NNI as well as its dependencies, and update bashrc to set PATH .PHONY: easy-install easy-install: check-perm easy-install: install-dependencies easy-install: build -easy-install: install-python-modules -easy-install: install-node-modules -easy-install: install-scripts -easy-install: install-examples -easy-install: update-bashrc +easy-install: install +easy-install: update-bash-config + easy-install: #$(_INFO) Complete! #(_END) @@ -132,6 +133,7 @@ pip-install: build pip-install: install-node-modules pip-install: install-scripts pip-install: install-examples +pip-install: update-bash-config # Target for NNI developers @@ -146,8 +148,8 @@ dev-install: .PHONY: uninstall uninstall: - -pip3 uninstall -y nni - -pip3 uninstall -y nnictl + -$(PIP_UNINSTALL) -y nni + -$(PIP_UNINSTALL) -y nnictl -rm -rf $(INSTALL_PREFIX)/nni -rm -f $(BIN_PATH)/nnimanager -rm -f $(BIN_PATH)/nnictl @@ -206,7 +208,6 @@ install-python-modules: #$(_INFO) Installing nnictl $(_END) cd tools && python3 setup.py install $(PIP_MODE) - .PHONY: install-node-modules install-node-modules: mkdir -p $(INSTALL_PREFIX)/nni @@ -222,11 +223,11 @@ install-node-modules: .PHONY: install-dev-modules install-dev-modules: #$(_INFO) Installing Python SDK $(_END) - cd src/sdk/pynni && pip3 install $(PIP_MODE) -e . + cd src/sdk/pynni && $(PIP_INSTALL) $(PIP_MODE) -e . #$(_INFO) Installing nnictl $(_END) - cd tools && pip3 install $(PIP_MODE) -e . - + cd tools && $(PIP_INSTALL) $(PIP_MODE) -e . + mkdir -p $(INSTALL_PREFIX)/nni #$(_INFO) Installing NNI Manager $(_END) @@ -254,9 +255,6 @@ install-scripts: chmod +x $(BIN_PATH)/nnictl install -Dm644 tools/bash-completion $(BASH_COMP_SCRIPT) -ifndef _ROOT - echo '[[ -f $(BASH_COMP_SCRIPT) ]] && source $(BASH_COMP_SCRIPT)' >> ~/.bash_completion -endif .PHONY: install-examples @@ -265,16 +263,20 @@ install-examples: [ $(EXAMPLES_PATH) = ${PWD}/examples ] || cp -rT examples $(EXAMPLES_PATH) -.PHONY: update-bashrc -ifeq (, $(shell echo $$PATH | tr ':' '\n' | grep -x '$(BIN_PATH)')) # $(BIN_PATH) not in PATH - ifdef _ROOT - $(error $(BIN_PATH) not in PATH as root, which should never happen) - endif -update-bashrc: +.PHONY: update-bash-config +ifndef _ROOT +update-bash-config: + #$(_INFO) Updating bash configurations $(_END) + ifeq (, $(shell echo $$PATH | tr ':' '\n' | grep -x '$(BIN_PATH)')) # $(BIN_PATH) not in PATH #$(_WARNING) NOTE: adding $(BIN_PATH) to PATH in bashrc $(_END) echo 'export PATH="$$PATH:$(BIN_PATH)"' >> ~/.bashrc -else # $(BIN_PATH) already in PATH -update-bashrc: ; + endif + ifeq (, $(shell (source ~/.bash_completion ; command -v _nnictl) 2>/dev/null)) # completion not installed + #$(_WARNING) NOTE: adding $(BASH_COMP_SCRIPT) to ~/.bash_completion $(_END) + echo '[[ -f $(BASH_COMP_SCRIPT) ]] && source $(BASH_COMP_SCRIPT)' >> ~/.bash_completion + endif +else +update-bash-config: ; endif @@ -297,7 +299,7 @@ ifdef _ROOT $(error You should not develop NNI as root) endif ifdef _MISS_DEPS - $(error Please install Node.js, Yarn, and Serve to develop NNI) +# $(error Please install Node.js, Yarn, and Serve to develop NNI) endif #$(_INFO) Pass! $(_END) diff --git a/README.Makefile.md b/README.Makefile.md new file mode 100644 index 0000000000..3a815af9d9 --- /dev/null +++ b/README.Makefile.md @@ -0,0 +1,91 @@ +# Makefile and Installation Setup + +NNI uses GNU make for building and installing. + +The `Makefile` offers standard targets `build`, `install`, and `uninstall`, as well as alternative installation targets for different setup: + +* `easy-install`: target for non-expert users, which handles everything automatically; +* `pip-install`: target in favor of `setup.py`; +* `dev-install`: target for NNI contributors, which installs NNI as symlinks instead of copying files; +* `remote-machine-install`: target that only installs core Python library for remote machine workers. + +The targets will be detailed later. + +## Dependencies + +NNI requires at least Node.js, Yarn, and setuptools to build, while PIP and TypeScript are also recommended. + +NNI requires Node.js, serve, and all dependency libraries to run. +Required Node.js libraries (including TypeScript) can be installed by Yarn, and required Python libraries can be installed by setuptools or PIP. + +For NNI *users*, `make install-dependencies` can be used to install Node.js, Yarn, and serve. +This will install Node.js and serve to NNI's installation directory, and install Yarn to `/tmp/nni-yarn`. +This target requires wget to work. + +For NNI *developers*, it is recommended to install Node.js, Yarn, and serve manually. +See their official sites for installation guide. + +## Building NNI + +Simply run `make` when dependencies are ready. + +## Installation + +### Directory Hierarchy + +The main parts of NNI project consist of two Node.js modules (`nni_manager`, `webui`) and two Python packages (`nni`, `nnictl`). + +By default the Node.js modules are installed to `/usr/share/nni` for all users or installed to `~/.local/nni` for current user. + +The Python packages are installed with setuptools and therefore the location depends on Python configuration. +When install as non-priviledged user and virtualenv is not detected, `--user` flag will be used. + +In addition, `nnictl` offers a bash completion scripts, which will be installed to `/usr/share/bash-completion/completions` or `~/.bash_completion.d`. + +In some configuration, NNI will also install Node.js and the serve module to `/usr/share/nni`. + +All directories mentioned above are configurable. See next section for details. + +### Configuration + +The `Makefile` uses environment variables to override default settings. + +Available variables are listed below: + +| Name | Description | Default for normal user | Default for root | +|--------------------|---------------------------------------------------------|-----------------------------------|-------------------------------------------------| +| `BIN_PATH` | Path for executables | `~/.local/bin` | `/usr/bin` | +| `INSTALL_PREFIX` | Path for Node.js modules (a suffix `nni` will be added) | `~/.local` | `/usr/share` | +| `EXAMPLES_PATH` | Path for NNI examples | `~/nni/examples` | `$INSTALL_PREFIX/nni/examples` | +| `BASH_COMP_SCRIPT` | Path of bash completion script | `~/.bash_completion.d/nnictl` | `/usr/share/bash-completion/completions/nnictl` | +| `PIP_MODE` | Arguments for `python3 setup.py install` | `--user` if `VIRTUAL_ENV` not set | (empty) | +| `NODE_PATH` | Path to install Node.js runtime | `$INSTALL_PREFIX/nni/node` | `$INSTALL_PREFIX/nni/node` | +| `SERVE_PATH` | Path to install serve package | `$INSTALL_PREFIX/nni/serve` | `$INSTALL_PREFIX/nni/serve` | +| `YARN_PATH` | Path to install Yarn | `/tmp/nni-yarn` | `/tmp/nni-yarn` | +| `NODE` | Node.js command | see source file | see source file | +| `SERVE` | serve command | see source file | see source file | +| `YARN` | Yarn command | see source file | see source file | + +Note that these variables will influence installation destination as well as generated `nnictl` and `nnimanager` scripts. +If the path to copy files is different from where they will run (e.g. when creating a distro package), please generate `nnictl` and `nnimanager` manually. + +### Targets + +The workflow of each installation targets is listed below: + +| Target | Workflow | +|--------------------------|----------------------------------------------------------------------| +| `install` | Install Python packages, Node.js modules, NNI scripts, and examples | +| `easy-install` | Install dependencies, build, install NNI, and edit `~/.bashrc` | +| `pip-install` | Install dependencies, build, install NNI excluding Python packages | +| `dev-install` | Install Python and Node.js modules as symlinks, then install scripts | +| `remote-machine-install` | Install `nni` Python package | + +## TODO + +* `clean` target +* `test` target +* `lint` target +* Exclude tuners and their dependencies from `remote-machine-install` +* Test cases for each target +* Review variables diff --git a/README.md b/README.md index 51678149a1..d99f2c8217 100644 --- a/README.md +++ b/README.md @@ -26,35 +26,45 @@ The tool dispatches and runs trial jobs that generated by tuning algorithms to s * As a researcher and data scientist, you want to implement your own AutoML algorithms and compare with other algorithms * As a ML platform owner, you want to support AutoML in your platform -# Getting Started with NNI +# Get Started with NNI ## **Installation** -Install through python pip. (the current version only supports linux, nni on ubuntu 16.04 or newer has been well tested) -* requirements: python >= 3.5, git, wget +pip Installation Prerequisites +* linux (ubuntu 16.04 or newer version has been well tested) +* python >= 3.5 +* git, wget + ``` -pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.1 +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. -## **Quick start: run an experiment at local** -Requirements: -* NNI installed on your local machine -* tensorflow installed +**NOTE**: The following example is an experiment built on TensorFlow, make sure you have **TensorFlow installed** before running the following command. -Run the following command to create an experiment for [mnist] +Try it out: ```bash - nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml + nnictl create --config ~/nni/examples/trials/mnist/config.yml ``` -This command will start an experiment and a WebUI. The WebUI endpoint will be shown in the output of this command (for example, `http://localhost:8080`). Open this URL in your browser. You can analyze your experiment through WebUI, or browse trials' tensorboard. + +In the command output, find out the **Web UI 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 Web UI, please refer to [How to write a trial run on NNI (MNIST as an example)?](docs/WriteYourTrial.md) ## **Please refer to [Get Started Tutorial](docs/GetStarted.md) for more detailed information.** ## More tutorials -* [How to write a trial running on NNI (Mnist as an example)?](docs/WriteYourTrial.md) + * [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) diff --git a/deployment/Dockerfile b/deployment/Dockerfile index 9527b87225..d0ddf99587 100644 --- a/deployment/Dockerfile +++ b/deployment/Dockerfile @@ -10,4 +10,6 @@ RUN pip3 --no-cache-dir install tensorflow-gpu==1.10.0 # #Keras 2.1.6 # -RUN pip3 --no-cache-dir install Keras==2.1.6 \ No newline at end of file +RUN pip3 --no-cache-dir install Keras==2.1.6 + +WORKDIR /root \ No newline at end of file diff --git a/deployment/Dockerfile.build.base b/deployment/Dockerfile.build.base index 8fd7bf69aa..56315a3b5f 100644 --- a/deployment/Dockerfile.build.base +++ b/deployment/Dockerfile.build.base @@ -22,27 +22,62 @@ FROM nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 LABEL maintainer='Microsoft NNI Team' -RUN apt-get update && apt-get install -y --no-install-recommends \ - sudo apt-utils git curl vim unzip openssh-client wget \ - build-essential cmake \ - libopenblas-dev +ENV HADOOP_VERSION=2.7.2 +LABEL HADOOP_VERSION=2.7.2 -# -# Python 3.5 -# -RUN apt-get install -y --no-install-recommends python3.5 python3.5-dev python3-pip python3-tk && \ - pip3 install --no-cache-dir --upgrade pip setuptools && \ - echo "alias python='python3'" >> /root/.bash_aliases && \ - echo "alias pip='pip3'" >> /root/.bash_aliases +RUN DEBIAN_FRONTEND=noninteractive && \ + apt-get -y update && \ + apt-get -y install sudo \ + apt-utils \ + git \ + curl \ + vim \ + unzip \ + wget \ + build-essential \ + cmake \ + libopenblas-dev \ + automake \ + openjdk-8-jdk \ + openssh-client \ + openssh-server \ + lsof \ + python3.5 \ + python3-dev \ + python3-pip \ + python3-tk \ + libcupti-dev && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* # numpy 1.14.3 scipy 1.1.0 RUN pip3 --no-cache-dir install \ numpy==1.14.3 scipy==1.1.0 # -#Install node 10.9.0, yarn 1.9.4, NNI v0.1 +#Install hadoop +# +RUN wget -qO- http://archive.apache.org/dist/hadoop/common/hadoop-${HADOOP_VERSION}/hadoop-${HADOOP_VERSION}.tar.gz | \ + tar xz -C /usr/local && \ + mv /usr/local/hadoop-${HADOOP_VERSION} /usr/local/hadoop + +# +#Install NNI # -RUN git clone -b v0.1 https://github.com/Microsoft/nni.git -RUN cd nni && sh install.sh -RUN echo 'PATH=~/.local/node/bin:~/.local/yarn/bin:~/.local/bin:$PATH' >> ~/.bashrc -RUN cd .. && rm -rf nni +RUN pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.2 + +ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ + HADOOP_INSTALL=/usr/local/hadoop \ + NVIDIA_VISIBLE_DEVICES=all + +ENV HADOOP_PREFIX=${HADOOP_INSTALL} \ + HADOOP_BIN_DIR=${HADOOP_INSTALL}/bin \ + HADOOP_SBIN_DIR=${HADOOP_INSTALL}/sbin \ + HADOOP_HDFS_HOME=${HADOOP_INSTALL} \ + HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/native \ + HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib/native" + +ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/root/.local/bin:/usr/bin:/sbin:/bin:${HADOOP_BIN_DIR}:${HADOOP_SBIN_DIR} \ + LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/local/cuda/targets/x86_64-linux/lib/stubs:${JAVA_HOME}/jre/lib/amd64/server + +WORKDIR /root diff --git a/docs/3_steps.jpg b/docs/3_steps.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5e18540ea8832dfa662e18322d26bb339c17e12 GIT binary patch literal 163024 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

xn|8M^Wu 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 B6uAHZ literal 0 HcmV?d00001 diff --git a/docs/GetStarted.md b/docs/GetStarted.md index 5239c1aa5e..42366eb1e8 100644 --- a/docs/GetStarted.md +++ b/docs/GetStarted.md @@ -1,28 +1,29 @@ -**Getting Started with NNI** +**Get Started with NNI** === ## **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. + python pip should also be correctly installed. You could use "python3 -m pip -V" to check in Linux. - * Note: For now, we don't support virtual environment. + * 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 + python3 -m pip install -v --user git+https://github.com/Microsoft/nni.git@v0.2 source ~/.bashrc * __Install NNI through source code__ - git clone -b v0.1 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 - ## **Quick start: run a customized experiment** An experiment is to run multiple trial jobs, each trial job tries a configuration which includes a specific neural architecture (or model) and hyper-parameter values. To run an experiment through NNI, you should: diff --git a/docs/HowToContribute.md b/docs/HowToContribute.md new file mode 100644 index 0000000000..87a570e182 --- /dev/null +++ b/docs/HowToContribute.md @@ -0,0 +1,53 @@ +**How to contribute** +=== +## Best practice for debug NNI source code + +For debugging NNI source code, your development environment should be under Ubuntu 16.04 (or above) system with python 3 and pip 3 installed, then follow the below steps. + +**1. Clone the source code** + +Run the command +``` +git clone https://github.com/Microsoft/nni.git +``` +to clone the source code + +**2. Prepare the debug environment and install dependencies** + +Change directory to the source code folder, then run the command +``` +make install-dependencies +``` +to install the dependent tools for the environment + +**3. Build source code** + +Run the command +``` +make build +``` +to build the source code + +**4. Install NNI to development environment** + +Run the command +``` +make dev-install +``` +to install the distribution content to development environment, and create cli scripts + +**5. Check if the environment is ready** + +Now, you can try to start an experiment to check if your environment is ready +For example, run the command +``` +nnictl create --config ~/nni/examples/trials/mnist/config.yml +``` +And open web ui 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 + +--- +At last, wish you have a wonderful day. \ No newline at end of file diff --git a/docs/NNICTLDOC.md b/docs/NNICTLDOC.md index 62e3dffe34..dadb3e5fb1 100644 --- a/docs/NNICTLDOC.md +++ b/docs/NNICTLDOC.md @@ -234,4 +234,19 @@ nnictl log | --head, -h| False| |show head lines of stderr| | --tail, -t| False| |show tail lines of stderr| | --path, -p| False| |show the path of stderr file| + +* __nnictl log trial__ + * Description + + Show trial log path. + + * Usage + + nnictl log trial [options] + + Options: + + | Name, shorthand | Required|Default | Description | + | ------ | ------ | ------ |------ | + | --id, -I| False| |the id of trial| \ No newline at end of file diff --git a/docs/PAIMode.md b/docs/PAIMode.md new file mode 100644 index 0000000000..05da292afa --- /dev/null +++ b/docs/PAIMode.md @@ -0,0 +1,80 @@ +**Run an Experiment on OpenPAI** +=== +NNI supports running an experiment on [OpenPAI](https://github.com/Microsoft/pai) (aka pai), called pai mode. Before starting to use NNI pai mode, you should have an account to access an [OpenPAI](https://github.com/Microsoft/pai) cluster. See [here](https://github.com/Microsoft/pai#how-to-deploy) if you don't have any OpenPAI account and want to deploy an OpenPAI cluster. In pai mode, your trial program will run in pai's container created by Docker. + +## Setup environment +Install NNI, follow the install guide [here](GetStarted.md). + +## Run an experiment +Use `examples/trials/mnist-annotation` as an example. The nni config yaml file's content is like: +``` +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: pai +# choice: true, false +useAnnotation: true +tuner: + builtinTunerName: TPE + classArgs: + optimize_mode: maximize +trial: + command: python3 mnist.py + codeDir: ~/nni/examples/trials/mnist-annotation + gpuNum: 0 + cpuNum: 1 + memoryMB: 8196 + image: openpai/pai.example.tensorflow + dataDir: hdfs://10.1.1.1:9000/nni + outputDir: hdfs://10.1.1.1:9000/nni +# Configuration to access OpenPAI Cluster +paiConfig: + userName: your_pai_nni_user + passWord: your_pai_password + host: 10.1.1.1 +``` +Note: You should set `trainingServicePlatform: pai` in nni config yaml file if you want to start experiment in pai mode. + +Compared with LocalMode and [RemoteMachineMode](RemoteMachineMode.md), trial configuration in pai mode have five additional keys: +* cpuNum + * Required key. Should be positive number based on your trial program's CPU requirement +* memoryMB + * Required key. Should be positive number based on your trial program's memory requirement +* image + * Required key. In pai mode, your trial program will be scheduled by OpenPAI to run in [Docker container](https://www.docker.com/). This key is used to specify the Docker image used to create the container in which your traill will run. + * We already build a docker image [nnimsra/nni](https://hub.docker.com/r/msranni/nni/) on [Docker Hub](https://hub.docker.com/). It contains NNI python packages, Node modules and javascript artifact files required to start experiment, and all of NNI dependencies. The docker file used to build this image can be found at [here](../deployment/Dockerfile.build.base). You can either use this image directly in your config file, or build your own image based on it. +* dataDir + * Optional key. It specifies the HDFS data direcotry for trial to download data. The format should be something like hdfs://{your HDFS host}:9000/{your data directory} +* outputDir + * Optional key. It specifies the HDFS output direcotry for trial. Once the trial is completed (either succeed or fail), trial's stdout, stderr will be copied to this directory by NNI sdk automatically. The format should be something like hdfs://{your HDFS host}:9000/{your output directory} + +Once complete to fill nni experiment config file and save (for example, save as exp_pai.yaml), then run the following command +``` +nnictl create --config exp_pai.yaml +``` +to start the experiment in pai mode. NNI will create OpanPAI job for each trial, and the job name format is something like `nni_exp_{experiment_id}_trial_{trial_id}`. +You can see the pai jobs created by NNI in your OpenPAI cluster's web portal, like: +![](./nni_pai_joblist.jpg) + +Notice: In pai mode, NNIManager will start a rest server and listen on `51189` port, to receive metrics from trial job running in PAI container. So you should `enable 51189` TCP port in your firewall rule to allow incoming traffic. + +Once a trial job is completed, you can goto NNI WebUI's overview page (like http://localhost:8080/oview) to check trial's information. + +Expand a trial information in trial list view, click the logPath link like: +![](./nni_webui_joblist.jpg) + +And you will be redirected to HDFS web portal to browse the output files of that trial in HDFS: +![](./nni_trial_hdfs_output.jpg) + +You can see there're three fils in output folder: stderr, stdout, and trial.log + +If you also want to save trial's other output into HDFS, like model files, you can use environment variable `NNI_OUTPUT_DIR` in your trial code to save your own output files, and NNI SDK will copy all the files in `NNI_OUTPUT_DIR` from trial's container to HDFS. + +Any problems when using NNI in pai mode, plesae create issues on [NNI github repo](https://github.com/Microsoft/nni), or send mail to nni@microsoft.com + diff --git a/docs/RELEASE.md b/docs/RELEASE.md index 745566a96c..61b4c78c72 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,3 +1,18 @@ +# Release 0.2.0 - 9/29/2018 +## Major Features + * Support [OpenPAI](https://github.com/Microsoft/pai) (aka pai) Training Service (See [here](./PAIMode.md) for instructions about how to submit NNI job in pai mode) + * Support training services on pai mode. NNI trials will be scheduled to run on OpenPAI cluster + * NNI trial's output (including logs and model file) will be copied to OpenPAI HDFS for further debugging and checking + * Support [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) tuner (See [here](../src/sdk/pynni/nni/README.md) for instructions about how to use SMAC tuner) + * [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO to handle categorical parameters. The SMAC supported by NNI is a wrapper on [SMAC3](https://github.com/automl/SMAC3) + * Support NNI installation on [conda](https://conda.io/docs/index.html) and python virtual environment + * Others + * Update ga squad example and related documentation + * WebUI UX small enhancement and bug fix + +## Known Issues +[Known Issues in release 0.2.0](https://github.com/Microsoft/nni/labels/nni020knownissues). + # Release 0.1.0 - 9/10/2018 (initial release) Initial release of Neural Network Intelligence (NNI). diff --git a/docs/RemoteMachineMode.md b/docs/RemoteMachineMode.md index 1cf847151a..94f393324d 100644 --- a/docs/RemoteMachineMode.md +++ b/docs/RemoteMachineMode.md @@ -1,9 +1,10 @@ **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 | +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 | @@ -14,7 +15,7 @@ For remote machines that are used only to run trials but not the nnictl, you can * __Install python SDK through pip__ - pip3 install --user git+https://github.com/Microsoft/NeuralNetworkIntelligence.git#subdirectory=src/sdk/pynni + python3 -m pip install --user git+https://github.com/Microsoft/NeuralNetworkIntelligence.git#subdirectory=src/sdk/pynni * __Install python SDK through source code__ @@ -61,4 +62,4 @@ Simply filling the `machineList` section. This yaml file is named `exp_remote.ya ``` 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. \ No newline at end of file +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. diff --git a/docs/SearchSpaceSpec.md b/docs/SearchSpaceSpec.md index c26d79b376..ad59e36f16 100644 --- a/docs/SearchSpaceSpec.md +++ b/docs/SearchSpaceSpec.md @@ -66,3 +66,5 @@ The candidate type and value for variable is here: * Which means the variable value is a value like round(exp(normal(mu, sigma)) / q) * q * Suitable for a discrete variable with respect to which the objective is smooth and gets smoother with the size of the variable, which is bounded from one side.
+ +Note that SMAC only supports a subset of the types above, including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. In the current version, SMAC does not support cascaded search space (i.e., conditional variable in SMAC). \ No newline at end of file diff --git a/docs/StartExperiment.md b/docs/StartExperiment.md new file mode 100644 index 0000000000..30f736ff15 --- /dev/null +++ b/docs/StartExperiment.md @@ -0,0 +1,33 @@ +How to start an experiment +=== +## 1.Introduce +There are few steps to start an new experiment of nni, here are the process. + +## 2.Details +### 2.1 Check environment +The first step to start an experiment is to check whether the environment is ready, nnictl will check if there is an old experiment running or the port of restfurl server is occupied. +NNICTL will also validate the content of config yaml file, to ensure the experiment config is in correct format. + +### 2.2 Start restful server +After check environment, nnictl will start an restful server process to manage nni experiment, the devault port is 51188. + +### 2.3 Check restful server +Before next steps, nnictl will check whether restful server is successfully started, or the starting process will stop and show error message. + +### 2.4 Set experiment config +NNICTL need to set experiment config before start an experiment, experiment config includes the config values in config yaml file. + +### 2.5 Check experiment cofig +NNICTL will ensure the request to set config is successfully executed. + +### 2.6 Start Web UI +NNICTL will start a Web UI process to show Web UI information,the default port of Web UI is 8080. + +### 2.7 Check Web UI +If Web UI is not successfully started, nnictl will give a warning information, and will continue to start experiment. + +### 2.8 Start Experiment +This is the most import step of starting an nni experiment, nnictl will call restful server process to setup an experiment. + +### 2.9 Check experiment +After start experiment, nnictl will check whether the experiment is correctly created, and show more information of this experiment to users. \ No newline at end of file diff --git a/docs/ToContribute.md b/docs/ToContribute.md deleted file mode 100644 index b19602ed7e..0000000000 --- a/docs/ToContribute.md +++ /dev/null @@ -1,3 +0,0 @@ -## How to contribute - -TBD \ No newline at end of file diff --git a/docs/WebUI.md b/docs/WebUI.md new file mode 100644 index 0000000000..2e77158df8 --- /dev/null +++ b/docs/WebUI.md @@ -0,0 +1,54 @@ +# WebUI + +## View summary page + +Click the tab "Overview". + +* See the experiment parameters. +* See search_space json. +* See good performance trial. + +![](./img/overview.jpg) + +## View job accuracy + +Click the tab "Optimization Progress" to see the point graph of all trials. Hover every point to see its specific accuracy. + +![](./img/accuracy.jpg) + +## View hyper parameter + +Click the tab "Hyper Parameter" to see the parallel graph. + +* You can select the percentage to see top trials. +* Choose two axis to swap its positions + +![](./img/searchspace.jpg) + +## View trial status + +Click the tab "Trial Status" to see the status of the all trials. Specifically: + +* Trial duration: trial's duration in the bar graph. +* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file. + +![](./img/openRow.jpg) + +* Kill: you can kill a job that status is running. +* Tensor: you can see a job in the tensorflow graph, it will link to the Tensorboard page. + +![](./img/trialStatus.jpg) + +* Intermediate Result Graph. + +![](./img/intermediate.jpg) + +## Control + +Click the tab "Control" to add a new trial or update the search_space file and some experiment parameters. + +![](./img/control.jpg) + +## Feedback + +[Known Issues](https://github.com/Microsoft/nni/issues). \ No newline at end of file diff --git a/docs/WriteYourTrial.md b/docs/WriteYourTrial.md index 82dfe3b1d1..18388aa9fd 100644 --- a/docs/WriteYourTrial.md +++ b/docs/WriteYourTrial.md @@ -1,9 +1,14 @@ -**Write a Trial which can Run on NNI** +**Write a Trial Run on NNI** === -There would be only a few changes on your existing trial(model) code to make the code runnable on NNI. We provide two approaches for you to modify your code: `Python annotation` and `NNI APIs for trial` -## NNI APIs -We also support NNI APIs for trial code. By using this approach, you should first prepare a search space file. An example is shown below: +A **Trial** in NNI is an individual attempt at applying a set of parameters on a model. + +To define a NNI trial, you need to firstly define the set of parameters and then update the model. NNI provide two approaches for you to define a trial: `NNI API` and `NNI Python annotation`. + +## NNI API +>Step 1 - Prepare a SearchSpace parameters file. + +An example is shown below: ``` { "dropout_rate":{"_type":"uniform","_value":[0.1,0.5]}, @@ -12,32 +17,71 @@ We also support NNI APIs for trial code. By using this approach, you should firs "learning_rate":{"_type":"uniform","_value":[0.0001, 0.1]} } ``` -You can refer to [here](SearchSpaceSpec.md) for the tutorial of search space. +Refer to [SearchSpaceSpec.md](SearchSpaceSpec.md) to learn more about search space. -Then, include `import nni` in your trial code to use NNI APIs. Using the line: -``` -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} -``` +>Step 2 - Update model codes +~~~~ +2.1 Declare NNI API + Include `import nni` in your trial code to use NNI APIs. + +2.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} + +2.3 Report NNI results + Use the API: -On the other hand, you can use the API: `nni.report_intermediate_result(accuracy)` to send `accuracy` to assessor. And use `nni.report_final_result(accuracy)` to send `accuracy` to tuner. Here `accuracy` could be any python data type, but **NOTE that if you use built-in tuner/assessor, `accuracy` should be a numerical variable(e.g. float, int)**. + `nni.report_intermediate_result(accuracy)` + + to send `accuracy` to assessor. + + Use the API: -The assessor will decide which trial should early stop based on the history performance of trial(intermediate result of one trial). -The tuner will generate next parameters/architecture based on the explore history(final result of all trials). + `nni.report_final_result(accuracy)` + + to send `accuracy` to tuner. +~~~~ + +**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 3 - Enable NNI API + +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): -In the yaml configure file, you need two lines to enable NNI APIs: ``` useAnnotation: false searchSpacePath: /path/to/your/search_space.json ``` -You can refer to [here](../examples/trials/README.md) for more information about how to write trial code using NNI APIs. +You can refer to [here](ExperimentConfig.md) for more information about how to set up experiment configurations. + +(../examples/trials/README.md) for more information about how to write trial code using NNI APIs. + +## NNI Python Annotation +An alternative to write a trial is to use NNI's syntax for python. Simple as any annotation, NNI annotation is working like comments in your codes. You don't have to make structure or any other big changes to your existing codes. With a few lines of NNI annotation, you will be able to: +* annotate the variables you want to tune +* specify in which range you want to tune the variables +* annotate which variable you want to report as intermediate result to `assessor` +* annotate which variable you want to report as the final result (e.g. model accuracy) to `tuner`. + +Again, take MNIST as an example, it only requires 2 steps to write a trial with NNI Annotation. + +>Step 1 - Update codes with annotations + +Please refer the following tensorflow code snippet for NNI Annotation, the highlighted 4 lines are annotations that help you to: (1) tune batch\_size and (2) dropout\_rate, (3) report test\_acc every 100 steps, and (4) at last report test\_acc as final result. + +>What noteworthy is: as these new added codes are annotations, it does not actually change your previous codes logic, you can still run your code as usual in environments without NNI installed. -## NNI Annotation -We designed a new syntax for users to annotate the variables they want to tune and in what range they want to tune the variables. Also, they can annotate which variable they want to report as intermediate result to `assessor`, and which variable to report as the final result (e.g. model accuracy) to `tuner`. A really appealing feature of our NNI annotation is that it exists as comments in your code, which means you can run your code as before without NNI. Let's look at an example, below is a piece of tensorflow code: ```diff with tf.Session() as sess: sess.run(tf.global_variables_initializer()) @@ -64,14 +108,16 @@ with tf.Session() as sess: + """@nni.report_final_result(test_acc)""" ``` -Let's say you want to tune batch\_size and dropout\_rate, and report test\_acc every 100 steps, at last report test\_acc as final result. With our NNI annotation, your code would look like below: +>NOTE +>>`@nni.variable` will take effect on its following line +>> +>>`@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. -Simply adding four lines would make your code runnable on NNI. You can still run your code independently. `@nni.variable` works on its next line assignment, and `@nni.report_intermediate_result`/`@nni.report_final_result` would send the data to assessor/tuner at that line. Please refer to [here](../tools/annotation/README.md) for more annotation syntax and more powerful usage. In the yaml configure file, you need one line to enable NNI annotation: +>Step 2 - Enable NNI Annotation +In the yaml configure file, you need to set *useAnnotation* to true to enable NNI annotation: ``` useAnnotation: true ``` - -For users to correctly leverage NNI annotation, we briefly introduce how NNI annotation works here: NNI precompiles users' trial code to find all the annotations each of which is one line with `"""@nni` at the head of the line. Then NNI replaces each annotation with a corresponding NNI API at the location where the annotation is. - -**Note that: in your trial code, you can use either one of NNI APIs and NNI annotation, but not both of them simultaneously.** \ No newline at end of file diff --git a/docs/img/accuracy.jpg b/docs/img/accuracy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d71586d243ed88b79478a7c5401dbc1157bf7a2b GIT binary patch literal 33184 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 literal 0 HcmV?d00001 diff --git a/docs/img/control.jpg b/docs/img/control.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66fe5b85a4ee2fff4c49a125c31f1a4141bbbd3b GIT binary patch literal 47572 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 WROmb=R0rVIb-4 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 literal 0 HcmV?d00001 diff --git a/docs/img/experiment_process.jpg b/docs/img/experiment_process.jpg new file mode 100644 index 0000000000000000000000000000000000000000..141e41cad940c2299b4841af539a7fe8168b1576 GIT binary patch literal 302899 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

UqdWXvw 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 H(b)e1A^y)! literal 0 HcmV?d00001 diff --git a/docs/img/intermediate.jpg b/docs/img/intermediate.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ae56fc63c636c5a2bc0e3fd7a7b7b97974353dbe GIT binary patch literal 47405 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 VdS88YPR1QLcG&Fu?1LAA|3CIoSVRB- literal 0 HcmV?d00001 diff --git a/docs/img/openRow.jpg b/docs/img/openRow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86ff6f64411541b7c2c16e183d1688033ecfcab2 GIT binary patch literal 89473 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ⅅ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 Y4EFFw+**g41^(=|IwVuj*R0Po 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%0A}~7%qi9z0&hM!FD-! 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�bb50o}Vbig3%8 zz_QX)4G6|9URe?cqw78t;brL<%xp!46s%?3fTJL%fqGLo{K`z(Z$x;rFFKI0X_7jA zaTuPvIZD44t@!R0%sOY!NJcZGP1Iq;xnm79w{!CKyThBlzu@hsS3d$`2tFQH6?fh7 z*q7sT))_ir03?djb~61PP8{93M(!#Aa)*_N4OPC#oJu>NL*8egNq(vZ)fm^!0OmJ8+3=WLC}eR#OTDt;H=5qPZC<1s z2YG92i~`~NxGlH3sN~q>Cf~pVAPVkdJ{n4%dyP-EnF-i{@==Lbv(NEqd0QLv8gW^= zJ@H78bcYJfHjnRX&0yi+jt1@NDG@nYlLW6aWeQ730hfiz)17SkL^UF6Q*HBcQl!HUzH-f(@NDk_#{R3_$;zBGPL zD&*PjI(OKSsf+&wcY@O6;p?EqTOkv|G&85Zmb@Ud`I2){M6$WS`RK|QMaV>-PT&Z0 zCzY*$y+hsUp*MAQ2p=f(zbS>fBjkS$W4^zIuR3;i1L3fsoB*+Cd+d#{d}f`r*hqFE z} z%WDQJK_C@h3^`w(=~W5CY;2~y9ZM_Jn1`~ST}H%|Cp$+^1>8=j(c3MV9z{(?TBXzO zMU$8lCjfvAN{7120`BzOog*Li0L}-|^cNf2o3ffZMUwRSMDWFwo_88UB|dk~exG?^ zsS?s&LgJFfI33L+vE)GOR@;~HDf5bLib0Sg3bj6-Rw2D1YpfFKClhDqAm^h{WKonF zO7NCBP*F)|WnVc&V<-a($Y7aoIBag2u!fWZ7spYb6w3D|zH%wZT9mGYi@2v(qw0XLOit!1dcaQbwVFKkqd7 znv)9e=4e;gZ_1+4w4PI1%H7@BN$4g5dpchFOXmh4K_AGre8O5NJhW}JVPc0lM%Kq^ zhzsPhAf_8APqQYKPxns_iP8?Eh#jO@=6F^YqD8wd7#m}ssP?>_>H<2?O){~(CA$e{ zHX*We8iuKy+03D7Rwx~lV%<$>2?SfdGiyRYgydC>4LaTU6R%wOXDwUVMcSl8-QKpZ z#f8|cP9w;;kLp^%n(oOaqyUyJT~CNfnied%?_$+^x)v-@Mv}YU{H(t0mtpy4tT(6` z`~8*zD|^Es&l_uZA!FQdO}JZ?`h~+2ABLg{&QdeZ8Dm0K5u=pF`u*?Y;ZM&$P|f#2 z05Xcb?eQvJi3AjJ(LYZ7#(L#hJa1&LGzKUZZ6l|51!u#aHYNvcH#&^EqVBZ1=XooY z6%LCL?A~g7Mgw*{@cKP2c7*GB53(o!J-4$`1h8e#-i=G9Cy{RCl01Quv@)J7?Ba@) zfuP%$&tDQ^)LECGG%G6zUv`c!AiH-A2GN^a>n`Wn7&{C@xs<}k)x7{CdgHH+nB++mBzI|6SP++ zh6z;_@%d@n^)MbaAxwa;l8|Jlf<9BJ2it&>2amxXCQGA(F|SH#AvRAaK?ws8cHpJY z{c0Cp>!xx8cEg%(#NFrFUeiCk);EJI)6_WO3Ja{Ro$#{1WL+jLYEEB&NK|&yjC^m0 zm#uRzeCw3TJ7zxp0$i*wb4+p2#*(^^Q)2tttCK8g+2^g|(ND>!2$K=Xg)0zet%C z@O#5vqG{bZC+wPCJ5ss}1E)!L4p2oH-S07J^2KoehY+R)pov41C}!DAk3vA5ZzLhl z^iNiXLz82U*&xpbT2O#~1-+@2oEz&J^>^${0G4b39;cT2Wk)A-v zq>=Zj#&P&^nmW!97%9+Yb%>{1qUczlcUokXWoQvsBXLi~-^?qoXIvex1I z&SX0=;cFSp=!u!?M6_tEl+3~M5(?D0x^aNE04%=m*?Tm}w8DPl#?QV{?(IJKz|MCd zl#Ecz)Lp@?8O-yL$&~AsT5U|0$PwIH&^+%QZb!;F<}?{rArtd4jCrNqD+v8~YK8A0dD3Nu~m|3m4UIeo{$CUgge5h-|)d|Old|%R0ZPd!g?g6W1RuhY0ts+Ml z5mCpS3w5q;1|1+fzDkVh&;Wn�P#q*;7THVBK=i7PH}&->tm6G%W^TG_dbT2E?#p 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 EKQ7n5H~;_u literal 0 HcmV?d00001 diff --git a/docs/img/trialStatus.jpg b/docs/img/trialStatus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d77cb76556a090669e8ab9267227c135c04d4bf GIT binary patch literal 72724 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 J(#-AJ{{SDGqmlps literal 0 HcmV?d00001 diff --git a/docs/nni_pai_joblist.jpg b/docs/nni_pai_joblist.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa7564cb2a7c99f700a01c74d9e7e01ded023d28 GIT binary patch literal 85854 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 P(ERvc8w8pk|CszQc)~%| literal 0 HcmV?d00001 diff --git a/docs/nni_trial_hdfs_output.jpg b/docs/nni_trial_hdfs_output.jpg new file mode 100644 index 0000000000000000000000000000000000000000..decbf3bde276af98e279e3cdd4764228a2474c38 GIT binary patch literal 74687 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�|Co`FTj{nm8_|JP59>xZP(qilCRGHp~%27&v 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 literal 0 HcmV?d00001 diff --git a/docs/nni_webui_joblist.jpg b/docs/nni_webui_joblist.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7789d7f8d415084265ce396ca47560a7a75b986f GIT binary patch literal 133522 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 literal 0 HcmV?d00001 diff --git a/examples/trials/auto-gbdt/config.yml b/examples/trials/auto-gbdt/config.yml index 205b6f3a76..e6f3b963ac 100644 --- a/examples/trials/auto-gbdt/config.yml +++ b/examples/trials/auto-gbdt/config.yml @@ -3,18 +3,19 @@ experimentName: example_auto-gbdt trialConcurrency: 1 maxExecDuration: 10h maxTrialNum: 10 -#choice: local, remote +#choice: local, remote, pai trainingServicePlatform: local -searchSpacePath: ~/nni/examples/trials/auto-gbdt/search_space.json +searchSpacePath: search_space.json #choice: true, false useAnnotation: false tuner: - #choice: TPE, Random, Anneal, Evolution + #choice: TPE, Random, Anneal, Evolution, + #SMAC (SMAC should be installed through nnictl) builtinTunerName: TPE classArgs: #choice: maximize, minimize optimize_mode: minimize trial: command: python3 main.py - codeDir: ~/nni/examples/trials/auto-gbdt/ - gpuNum: 0 \ No newline at end of file + codeDir: . + gpuNum: 0 diff --git a/examples/trials/auto-gbdt/config_pai.yml b/examples/trials/auto-gbdt/config_pai.yml new file mode 100644 index 0000000000..26577cf83a --- /dev/null +++ b/examples/trials/auto-gbdt/config_pai.yml @@ -0,0 +1,36 @@ +authorName: default +experimentName: example_auto-gbdt +trialConcurrency: 1 +maxExecDuration: 10h +maxTrialNum: 10 +#choice: local, remote, pai +trainingServicePlatform: pai +searchSpacePath: search_space.json +#choice: true, false +useAnnotation: false +tuner: + #choice: TPE, Random, Anneal, Evolution, + #SMAC (SMAC should be installed through nnictl) + builtinTunerName: TPE + classArgs: + #choice: maximize, minimize + optimize_mode: minimize +trial: + command: python3 main.py + codeDir: . + gpuNum: 0 + cpuNum: 1 + memoryMB: 8196 + #The docker image to run nni job on pai + image: openpai/pai.example.tensorflow + #The hdfs directory to store data on pai, format 'hdfs://host:port/directory' + hdfsDataDir: hdfs://10.10.10.10:9000/username/nni + #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory' + hdfsOutputDir: hdfs://10.10.10.10:9000/username/nni +paiConfig: + #The username to login pai + userName: username + #The password to login pai + passWord: password + #The host of restful server of pai + host: 10.10.10.10 \ No newline at end of file diff --git a/examples/trials/ga_squad/README.md b/examples/trials/ga_squad/README.md new file mode 100644 index 0000000000..ab8ba853f7 --- /dev/null +++ b/examples/trials/ga_squad/README.md @@ -0,0 +1,254 @@ +# Automatic Model Architecture Search for Reading Comprehension +This example shows us how to use Genetic Algorithm to find good model architectures for Reading Comprehension task. + +## Search Space +Since attention and recurrent neural network (RNN) module have been proven effective in Reading Comprehension. +We conclude the search space as follow: + +1. IDENTITY (Effectively means keep training). +2. INSERT-RNN-LAYER (Inserts a LSTM. Comparing the performance of GRU and LSTM in our experiment, we decided to use LSTM here.) +3. REMOVE-RNN-LAYER +4. INSERT-ATTENTION-LAYER(Inserts a attention layer.) +5. REMOVE-ATTENTION-LAYER +6. ADD-SKIP (Identity between random layers). +7. REMOVE-SKIP (Removes random skip). + +![ga-squad-logo](./ga_squad.png) + +## New version +Also we have another version which time cost is less and performance is better. We will release soon. + +# How to run this example? + +## Download data + +### Use downloading script to download data + +Execute the following command to download needed files +using the downloading script: + +``` +chmod +x ./download.sh +./download.sh +``` + +### Download manually + +1. download "dev-v1.1.json" and "train-v1.1.json" in https://rajpurkar.github.io/SQuAD-explorer/ + +``` +wget https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json +wget https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json +``` + +2. download "glove.840B.300d.txt" in https://nlp.stanford.edu/projects/glove/ + +``` +wget http://nlp.stanford.edu/data/glove.840B.300d.zip +unzip glove.840B.300d.zip +``` + +## Update configuration +Modify `nni/examples/trials/ga_squad/config.yaml`, here is the default configuration: + +``` +authorName: default +experimentName: example_ga_squad +trialConcurrency: 1 +maxExecDuration: 1h +maxTrialNum: 1 +#choice: local, remote +trainingServicePlatform: local +#choice: true, false +useAnnotation: false +tuner: + codeDir: ~/nni/examples/tuners/ga_customer_tuner + classFileName: customer_tuner.py + className: CustomerTuner + classArgs: + optimize_mode: maximize +trial: + command: python3 trial.py + codeDir: ~/nni/examples/trials/ga_squad + gpuNum: 0 +``` + +In the "trial" part, if you want to use GPU to perform the architecture search, change `gpuNum` from `0` to `1`. You need to increase the `maxTrialNum` and `maxExecDuration`, according to how long you want to wait for the search result. + +`trialConcurrency` is the number of trials running concurrently, which is the number of GPUs you want to use, if you are setting `gpuNum` to 1. + +## submit this job + +``` +nnictl create --config ~/nni/examples/trials/ga_squad/config.yaml +``` + +# Techinal details about the trial + +## How does it works +The evolution-algorithm based architecture for question answering has two different parts just like any other examples: the trial and the tuner. + +### The trial + +The trial has a lot of different files, functions and classes. Here we will only give most of those files a brief introduction: + +* `attention.py` contains an implementaion for attention mechanism in Tensorflow. +* `data.py` contains functions for data preprocessing. +* `evaluate.py` contains the evaluation script. +* `graph.py` contains the definition of the computation graph. +* `rnn.py` contains an implementaion for GRU in Tensorflow. +* `train_model.py` is a wrapper for the whole question answering model. + +Among those files, `trial.py` and `graph_to_tf.py` is special. + +`graph_to_tf.py` has a function named as `graph_to_network`, here is its skelton code: + +``` +def graph_to_network(input1, + input2, + input1_lengths, + input2_lengths, + graph, + dropout_rate, + is_training, + num_heads=1, + rnn_units=256): + topology = graph.is_topology() + layers = dict() + layers_sequence_lengths = dict() + num_units = input1.get_shape().as_list()[-1] + layers[0] = input1*tf.sqrt(tf.cast(num_units, tf.float32)) + \ + positional_encoding(input1, scale=False, zero_pad=False) + layers[1] = input2*tf.sqrt(tf.cast(num_units, tf.float32)) + layers[0] = dropout(layers[0], dropout_rate, is_training) + layers[1] = dropout(layers[1], dropout_rate, is_training) + layers_sequence_lengths[0] = input1_lengths + layers_sequence_lengths[1] = input2_lengths + for _, topo_i in enumerate(topology): + if topo_i == '|': + continue + if graph.layers[topo_i].graph_type == LayerType.input.value: + # ...... + elif graph.layers[topo_i].graph_type == LayerType.attention.value: + # ...... + # More layers to handle +``` + +As we can see, this function is actually a compiler, that converts the internal model DAG configuration (which will be introduced in the `Model configuration format` section) `graph`, to a Tensorflow computation graph. + +``` +topology = graph.is_topology() +``` + +performs topological sorting on the internal graph representation, and the code inside the loop: + +``` +for _, topo_i in enumerate(topology): +``` + +performs actually conversion that maps each layer to a part in Tensorflow computation graph. + +### The tuner + +The tuner is much more simple than the trial. They actually share the same `graph.py`. Besides, the tuner has a `customer_tuner.py`, the most important class in which is `CustomerTuner`: + +``` +class CustomerTuner(Tuner): + # ...... + + def generate_parameters(self, parameter_id): + """Returns a set of trial graph config, as a serializable object. + parameter_id : int + """ + if len(self.population) <= 0: + logger.debug("the len of poplution lower than zero.") + raise Exception('The population is empty') + pos = -1 + for i in range(len(self.population)): + if self.population[i].result == None: + pos = i + break + if pos != -1: + indiv = copy.deepcopy(self.population[pos]) + self.population.pop(pos) + temp = json.loads(graph_dumps(indiv.config)) + else: + random.shuffle(self.population) + if self.population[0].result > self.population[1].result: + self.population[0] = self.population[1] + indiv = copy.deepcopy(self.population[0]) + self.population.pop(1) + indiv.mutation() + graph = indiv.config + temp = json.loads(graph_dumps(graph)) + + # ...... +``` + +As we can see, the overloaded method `generate_parameters` implements a pretty naive mutation algorithm. The code lines: + +``` + if self.population[0].result > self.population[1].result: + self.population[0] = self.population[1] + indiv = copy.deepcopy(self.population[0]) +``` + +controls the mutation process. It will always take two random individuals in the population, only keeping and mutating the one with better result. + +## Model configuration format + +Here is an example of the model configuration, which is passed from the tuner to the trial in the architecture search procedure. + +``` +{ + "max_layer_num": 50, + "layers": [ + { + "input_size": 0, + "type": 3, + "output_size": 1, + "input": [], + "size": "x", + "output": [4, 5], + "is_delete": false + }, + { + "input_size": 0, + "type": 3, + "output_size": 1, + "input": [], + "size": "y", + "output": [4, 5], + "is_delete": false + }, + { + "input_size": 1, + "type": 4, + "output_size": 0, + "input": [6], + "size": "x", + "output": [], + "is_delete": false + }, + { + "input_size": 1, + "type": 4, + "output_size": 0, + "input": [5], + "size": "y", + "output": [], + "is_delete": false + }, + {"Comment": "More layers will be here for actual graphs."} + ] +} +``` + +Every model configuration will has a "layers" section, which is a JSON list of layer definitions. The definition of each layer is also a JSON object, where: + + * `type` is the type of the layer. 0, 1, 2, 3, 4 corresponde to attention, self-attention, RNN, input and output layer respectively. + * `size` is the length of the output. "x", "y" corresponde to document length / question length, respectively. + * `input_size` is the number of inputs the layer has. + * `input` is the indices of layers taken as input of this layer. + * `output` is the indices of layers use this layer's output as their input. + * `is_delete` means whether the layer is still available. \ No newline at end of file diff --git a/examples/trials/ga_squad/attention.py b/examples/trials/ga_squad/attention.py index 381873b4f9..7a7e02d74a 100644 --- a/examples/trials/ga_squad/attention.py +++ b/examples/trials/ga_squad/attention.py @@ -31,37 +31,6 @@ def _get_variable(variable_dict, name, shape, initializer=None, dtype=tf.float32 name=name, shape=shape, initializer=initializer, dtype=dtype) return variable_dict[name] - -def batch_linear_layer(matrix_a, matrix_b): - ''' - shape of matrix_a is [*, batch, dima] - shape of matrix_b is [batch, dima, dimb] - result is [*, batch, dimb] - for each batch, do matrix_a linear op to last dim - ''' - matrix_a = tf.expand_dims(matrix_a, -1) - while len(list(matrix_b.shape)) < len(list(matrix_a.shape)): - matrix_b = tf.expand_dims(matrix_b, 0) - return tf.reduce_sum(matrix_a * matrix_b, -2) - - -def split_last_dim(x, factor): - shape = tf.shape(x) - last_dim = int(x.shape[-1]) - assert last_dim % factor == 0, \ - "last dim isn't divisible by factor {%d} {%d}" % (last_dim, factor) - new_shape = tf.concat( - [shape[:-1], tf.constant([factor, last_dim // factor])], axis=0) - return tf.reshape(x, new_shape) - - -def merge_last2_dim(x): - shape = tf.shape(x) - last_dim = int(x.shape[-1]) * int(x.shape[-2]) - new_shape = tf.concat([shape[:-2], tf.constant([last_dim])], axis=0) - return tf.reshape(x, new_shape) - - class DotAttention: ''' DotAttention @@ -197,192 +166,4 @@ def get_att(self, s, prob): ''' buf = s * tf.expand_dims(prob, axis=-1) att = tf.reduce_sum(buf, axis=-3) - return att - - -class MultiHeadAttention: - ''' - MultiHeadAttention. - ''' - def __init__(self, name, hidden_dim, head, add=True, dot=True, divide=True): - self._name = '/'.join([name, 'dot_att']) - self._head = head - self._head_dim = hidden_dim // head - self._hidden_dim = self._head_dim * head - self._add = add - self._dot = dot - assert add or dot, "you must at least choose one between add and dot" - self._div = 1.0 - if divide: - self._div = math.sqrt(self._head_dim) - self._var = {} - - @property - def hidden_dim(self): - return self._head_dim * self._head - - @property - def name(self): - return self._name - - @property - def var(self): - return self._var - - def _get_var(self, name, shape, initializer=None): - with tf.variable_scope(self.name): - return _get_variable(self.var, name, shape, initializer) - - def _define_params(self, tgt_dim): - self._get_var('tgt_project', [tgt_dim, self._hidden_dim]) - self._get_var('tgt_bias', [1, self._hidden_dim]) - self._get_var('v', [self._head, self._head_dim, 1]) - - def get_pre_compute(self, src): - s_shape = src.get_shape().as_list() - src_dim = s_shape[-1] - src_project = self._get_var('src_project', [src_dim, self._hidden_dim]) - src_bias = self._get_var('src_bias', [1, self._hidden_dim]) - src = split_last_dim(tf.tensordot(src, src_project, - [[2], [0]]) + src_bias, self._head) - return src - - def get_prob(self, src, tgt, mask, pre_compute): - ''' - :param s: [src_sequence_length, batch_size, src_dim] - :param h: [batch_size, tgt_dim] or [tgt_sequence_length, batch_size, tgt_dim] - :param mask: [src_sequence_length, batch_size]\ - or [tgt_sequence_length, src_sequence_length, batch_sizse] - :param pre_compute: [src_sequence_length, batch_size, hidden_dim] - :return: [src_sequence_length, batch_size]\ - or [tgt_sequence_length, src_sequence_length, batch_size] - ''' - s_shape = src.get_shape().as_list() - h_shape = tgt.get_shape().as_list() - src_dim = s_shape[-1] - tgt_dim = h_shape[-1] - print('src tgt dim: ', src_dim, tgt_dim) - assert src_dim is not None, 'src dimension must be defined' - assert tgt_dim is not None, 'tgt dimension must be defined' - - self._define_params(tgt_dim) - - if len(h_shape) == 2: - tgt = tf.expand_dims(tgt, 0) - - tgt_project = self._var['tgt_project'] - tgt_bias = self._var['tgt_bias'] - - if pre_compute is None: - pre_compute = self.get_pre_compute(src) - - src = pre_compute - tgt = split_last_dim(tf.tensordot(tgt, tgt_project, - [[2], [0]]) + tgt_bias, self._head) - - add_attention = 0 - dot_attention = 0 - if self._add: - buf = tf.tanh(tf.expand_dims(src, 0) + tf.expand_dims(tgt, 1)) - v = self.var['v'] - add_attention = tf.squeeze(batch_linear_layer(buf, v), -1) - if self._dot: - dot_attention = tf.reduce_sum(tf.expand_dims( - src, 0) * tf.expand_dims(tgt, 1), -1) - dot_attention /= self._div - - attention = add_attention + dot_attention - mask = tf.expand_dims(mask, -1) - logits = attention + (mask - 1) * 10000.0 - prob = tf.nn.softmax(logits, 1) - if len(h_shape) == 2: - prob = tf.squeeze(prob, axis=[0]) - return prob - - def map_target(self, tgt): - tgt_project = self._var['tgt_project'] - tgt_bias = self._var['tgt_bias'] - tgt = tf.tensordot(tgt, tgt_project, [[1], [0]]) + tgt_bias - return tgt - - def get_att(self, src, prob): - ''' - :param s: [src_sequence_length, batch_size, head, head_dim] - :param prob: [src_sequence_length, batch_size, head]\ - or [tgt_sequence_length, src_sequence_length, batch_size, head] - :return: [batch_size, src_dim] or [tgt_sequence_length, batch_size, src_dim] - ''' - buf = merge_last2_dim(tf.reduce_sum( - src * tf.expand_dims(prob, axis=-1), axis=-4)) - return buf - - -class DotAttentionWrapper(RNNCell): - ''' - A wrapper for DotAttention or MultiHeadAttention. - ''' - - def __init__(self, cell, attention, - src, mask, is_gated, - reuse=None, dropout=None, - keep_input=True, map_target=False): - super().__init__(self, _reuse=reuse) - assert isinstance(attention, (DotAttention, MultiHeadAttention)), \ - 'type of attention is not supported' - assert isinstance(cell, RNNCell), 'type of cell must be RNNCell' - self._attention = attention - self._src = src - self._mask = mask - self._pre_computed = None - self._is_gated = is_gated - self._cell = cell - self._dropout = dropout - self._keep_input = keep_input - self._map_target = map_target - - @property - def state_size(self): - return self._cell.state_size - - @property - def output_size(self): - return self._cell.output_size - - def call(self, inputs, state): - if self._pre_computed is None: - self._pre_computed = self._attention.get_pre_compute(self._src) - att_prob = self._attention.get_prob( - src=self._src, - tgt=tf.concat([inputs, state], axis=1), - mask=self._mask, - pre_compute=self._pre_computed) - if isinstance(self._attention, DotAttention): - att = self._attention.get_att(self._src, att_prob) - else: - att = self._attention.get_att(self._pre_computed, att_prob) - x_list = [att] - if self._keep_input: - x_list.append(inputs) - if inputs.shape[1] == att.shape[1]: - x_list.append(inputs - att) - x_list.append(inputs * att) - if self._map_target and isinstance(self._attention, MultiHeadAttention): - tgt = self._attention.map_target( - tf.concat([inputs, state], axis=1)) - x_list += [tgt, att-tgt, att*tgt] - - x = tf.concat(x_list, axis=1) - dim = x.get_shape().as_list()[1] - assert dim is not None, 'dim must be defined' - if self._is_gated: - g = tf.get_variable('att_gate', - shape=[dim, dim], - dtype=tf.float32, - initializer=None) - bias_g = tf.get_variable( - 'bias_gate', shape=[1, dim], dtype=tf.float32) - gate = tf.sigmoid(tf.matmul(x, g) + bias_g) - x = x * gate - if self._dropout is not None: - x = self._dropout(x) - return self._cell.call(x, state) + return att \ No newline at end of file diff --git a/examples/trials/ga_squad/config.yml b/examples/trials/ga_squad/config.yml index a094a71f79..c6fec5bcbc 100644 --- a/examples/trials/ga_squad/config.yml +++ b/examples/trials/ga_squad/config.yml @@ -2,18 +2,18 @@ authorName: default experimentName: example_ga_squad trialConcurrency: 1 maxExecDuration: 1h -maxTrialNum: 1 -#choice: local, remote +maxTrialNum: 10 +#choice: local, remote, pai trainingServicePlatform: local #choice: true, false useAnnotation: false tuner: - codeDir: ~/nni/examples/tuners/ga_customer_tuner + codeDir: ../tuners/ga_customer_tuner classFileName: customer_tuner.py className: CustomerTuner classArgs: optimize_mode: maximize trial: command: python3 trial.py - codeDir: ~/nni/examples/trials/ga_squad + codeDir: . gpuNum: 0 \ No newline at end of file diff --git a/examples/trials/ga_squad/config_pai.yml b/examples/trials/ga_squad/config_pai.yml new file mode 100644 index 0000000000..56c2d33069 --- /dev/null +++ b/examples/trials/ga_squad/config_pai.yml @@ -0,0 +1,34 @@ +authorName: default +experimentName: example_ga_squad +trialConcurrency: 1 +maxExecDuration: 1h +maxTrialNum: 10 +#choice: local, remote, pai +trainingServicePlatform: pai +#choice: true, false +useAnnotation: false +tuner: + codeDir: ../tuners/ga_customer_tuner + classFileName: customer_tuner.py + className: CustomerTuner + classArgs: + optimize_mode: maximize +trial: + command: python3 trial.py + codeDir: . + gpuNum: 0 + cpuNum: 1 + memoryMB: 8196 + #The docker image to run nni job on pai + image: openpai/pai.example.tensorflow + #The hdfs directory to store data on pai, format 'hdfs://host:port/directory' + hdfsDataDir: hdfs://10.10.10.10:9000/username/nni + #The hdfs directory to store output data generated by nni, format 'hdfs://host:port/directory' + hdfsOutputDir: hdfs://10.10.10.10:9000/username/nni +paiConfig: + #The username to login pai + userName: username + #The password to login pai + passWord: password + #The host of restful server of pai + host: 10.10.10.10 \ No newline at end of file diff --git a/examples/trials/ga_squad/ga_squad.png b/examples/trials/ga_squad/ga_squad.png new file mode 100644 index 0000000000000000000000000000000000000000..4c82cd4654b935778bb74da6e4d051fae67eaf38 GIT binary patch literal 30340 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 ' + bashrc_path, shell=True) - if process.wait() != 0: - print('Error: Write Environment Variables Failed') - exit(-1) - def run(self): - install.run(self) - self.makeInstall() - self.writeEnvironmentVariables('node') - self.writeEnvironmentVariables('yarn') + super().run() + subprocess.run(['make', 'pip-install'], check=True) setup( name = 'NNI', - version = '0.1.0', + version = '0.2.0', author = 'Microsoft NNI Team', author_email = 'nni@microsoft.com', description = 'Neural Network Intelligence project', @@ -69,8 +47,10 @@ def run(self): package_dir = { 'nni_annotation': 'tools/nni_annotation', 'nni': 'src/sdk/pynni/nni', - 'nnicmd': 'tools/nnicmd' + 'nnicmd': 'tools/nnicmd', + 'trial_tool':'tools/trial_tool' }, + package_data = {'nni': ['**/requirements.txt']}, python_requires = '>=3.5', install_requires = [ 'astor', @@ -81,16 +61,11 @@ def run(self): 'pyyaml', 'requests', 'scipy', - 'schema' - ], - dependency_links = [ - 'git+https://github.com/hyperopt/hyperopt.git' + 'schema', + 'pyhdfs' ], cmdclass={ 'install': CustomInstallCommand - }, - entry_points={ - 'console_scripts': ['nnictl = nnicmd.nnictl:parse_args'] } ) diff --git a/src/nni_manager/common/log.ts b/src/nni_manager/common/log.ts index da1c4e5c0b..0b3945746b 100644 --- a/src/nni_manager/common/log.ts +++ b/src/nni_manager/common/log.ts @@ -40,7 +40,7 @@ class BufferSerialEmitter { private writable: Writable; constructor(writable: Writable) { - this.buffer = new Buffer(0); + this.buffer = Buffer.alloc(0); this.emitting = false; this.writable = writable; } @@ -61,7 +61,7 @@ class BufferSerialEmitter { this.emit(); } }); - this.buffer = new Buffer(0); + this.buffer = Buffer.alloc(0); } } diff --git a/src/nni_manager/common/manager.ts b/src/nni_manager/common/manager.ts index 10fb9a4227..fd6b2561e3 100644 --- a/src/nni_manager/common/manager.ts +++ b/src/nni_manager/common/manager.ts @@ -22,7 +22,7 @@ import { MetricDataRecord, MetricType, TrialJobInfo } from './datastore'; import { TrialJobStatus } from './trainingService'; -type ProfileUpdateType = 'TRIAL_CONCURRENCY' | 'MAX_EXEC_DURATION' | 'SEARCH_SPACE'; +type ProfileUpdateType = 'TRIAL_CONCURRENCY' | 'MAX_EXEC_DURATION' | 'SEARCH_SPACE' | 'MAX_TRIAL_NUM'; interface ExperimentParams { authorName: string; @@ -70,7 +70,7 @@ interface TrialJobStatistics { } interface NNIManagerStatus { - status: 'INITIALIZED' | 'EXPERIMENT_RUNNING' | 'ERROR' | 'STOPPING' | 'STOPPED'; + status: 'INITIALIZED' | 'EXPERIMENT_RUNNING' | 'ERROR' | 'STOPPING' | 'STOPPED' | 'SUSPENDED'; errors: string[]; } diff --git a/src/nni_manager/common/utils.ts b/src/nni_manager/common/utils.ts index ba0650ef28..e83e40e919 100644 --- a/src/nni_manager/common/utils.ts +++ b/src/nni_manager/common/utils.ts @@ -161,10 +161,6 @@ function parseArg(names: string[]): string { function getMsgDispatcherCommand(tuner: any, assessor: any): string { let command: string = `python3 -m nni --tuner_class_name ${tuner.className}`; - if (process.env.VIRTUAL_ENV) { - command = path.join(process.env.VIRTUAL_ENV, 'bin/') +command; - } - if (tuner.classArgs !== undefined) { command += ` --tuner_args ${JSON.stringify(JSON.stringify(tuner.classArgs))}`; } @@ -229,5 +225,19 @@ function cleanupUnitTest(): void { Container.restore(ExperimentStartupInfo); } -export { getMsgDispatcherCommand, getLogDir, getExperimentRootDir, getDefaultDatabaseDir, mkDirP, delay, prepareUnitTest, - parseArg, cleanupUnitTest, uniqueString, randomSelect }; +/** + * Get IPv4 address of current machine + */ +function getIPV4Address(): string { + let ipv4Address : string = ''; + + for(const item of os.networkInterfaces().eth0) { + if(item.family === 'IPv4') { + ipv4Address = item.address; + } + } + return ipv4Address; +} + +export { getMsgDispatcherCommand, getLogDir, getExperimentRootDir, getDefaultDatabaseDir, getIPV4Address, + mkDirP, delay, prepareUnitTest, parseArg, cleanupUnitTest, uniqueString, randomSelect }; diff --git a/src/nni_manager/core/nniDataStore.ts b/src/nni_manager/core/nniDataStore.ts index 47c2f01dc3..790a5680c0 100644 --- a/src/nni_manager/core/nniDataStore.ts +++ b/src/nni_manager/core/nniDataStore.ts @@ -160,12 +160,11 @@ class NNIDataStore implements DataStore { private async getFinalMetricData(trialJobId: string): Promise { const metrics: MetricDataRecord[] = await this.getMetricData(trialJobId, 'FINAL'); - assert(metrics.length <= 1); - if (metrics.length === 1) { - return metrics[0]; - } else { - return undefined; + if (metrics.length > 1) { + this.log.error(`Found multiple final results for trial job: ${trialJobId}`); } + + return metrics[0]; } private getJobStatusByLatestEvent(event: TrialJobEvent): TrialJobStatus { diff --git a/src/nni_manager/core/nnimanager.ts b/src/nni_manager/core/nnimanager.ts index 48d9fa3c83..7061efd29f 100644 --- a/src/nni_manager/core/nnimanager.ts +++ b/src/nni_manager/core/nnimanager.ts @@ -40,7 +40,6 @@ import { REQUEST_TRIAL_JOBS, TERMINATE, TRIAL_END, UPDATE_SEARCH_SPACE } from './commands'; import { createDispatcherInterface, IpcInterface } from './ipcInterface'; -import { TrialJobMaintainerEvent, TrialJobs } from './trialJobs'; /** * NNIManager @@ -48,23 +47,28 @@ import { TrialJobMaintainerEvent, TrialJobs } from './trialJobs'; class NNIManager implements Manager { private trainingService: TrainingService; private dispatcher: IpcInterface | undefined; - private trialJobsMaintainer: TrialJobs | undefined; private currSubmittedTrialNum: number; // need to be recovered - private trialConcurrencyReduction: number; + private trialConcurrencyChange: number; // >0: increase, <0: decrease private customizedTrials: string[]; // need to be recovered private log: Logger; private dataStore: DataStore; private experimentProfile: ExperimentProfile; private dispatcherPid: number; private status: NNIManagerStatus; + private waitingTrials: string[]; + private trialJobs: Map; + private suspendDuration: number; constructor() { this.currSubmittedTrialNum = 0; - this.trialConcurrencyReduction = 0; + this.trialConcurrencyChange = 0; this.customizedTrials = []; this.trainingService = component.get(TrainingService); assert(this.trainingService); this.dispatcherPid = 0; + this.waitingTrials = []; + this.trialJobs = new Map(); + this.suspendDuration = 0; this.log = getLogger(); this.dataStore = component.get(DataStore); @@ -86,6 +90,9 @@ class NNIManager implements Manager { case 'SEARCH_SPACE': this.updateSearchSpace(experimentProfile.params.searchSpace); break; + case 'MAX_TRIAL_NUM': + this.updateMaxTrialNum(experimentProfile.params.maxTrialNum); + break; default: throw new Error('Error: unrecognized updateType'); } @@ -195,13 +202,8 @@ class NNIManager implements Manager { public stopExperiment(): Promise { this.status.status = 'STOPPING'; - if (this.trialJobsMaintainer !== undefined) { - this.trialJobsMaintainer.setStopLoop(); - return Promise.resolve(); - } else { - return Promise.reject(new Error('Error: undefined trialJobsMaintainer')); - } + return Promise.resolve(); } public async getMetricData(trialJobId: string, metricType: MetricType): Promise { @@ -236,14 +238,16 @@ class NNIManager implements Manager { newCwd = cwd; } // TO DO: add CUDA_VISIBLE_DEVICES + let nniEnv = { + NNI_MODE: mode, + NNI_CHECKPOINT_DIRECTORY: dataDirectory, + NNI_LOG_DIRECTORY: getLogDir() + }; + let newEnv = Object.assign({}, process.env, nniEnv); const tunerProc: ChildProcess = spawn(command, [], { stdio, cwd: newCwd, - env: { - NNI_MODE: mode, - NNI_CHECKPOINT_DIRECTORY: dataDirectory, - NNI_LOG_DIRECTORY: getLogDir() - }, + env: newEnv, shell: true }); this.dispatcherPid = tunerProc.pid; @@ -253,28 +257,14 @@ class NNIManager implements Manager { } private updateTrialConcurrency(trialConcurrency: number): void { - // TO DO: this method can only be called after startExperiment/resumeExperiment - if (trialConcurrency > this.experimentProfile.params.trialConcurrency) { - if (this.dispatcher === undefined) { - throw new Error('Error: tuner has to be initialized'); - } - this.dispatcher.sendCommand( - REQUEST_TRIAL_JOBS, - String(trialConcurrency - this.experimentProfile.params.trialConcurrency) - ); - } else { - // we assume trialConcurrency >= 0, which is checked by restserver - this.trialConcurrencyReduction += (this.experimentProfile.params.trialConcurrency - trialConcurrency); - } + // we assume trialConcurrency >= 0, which is checked by restserver + this.trialConcurrencyChange += (trialConcurrency - this.experimentProfile.params.trialConcurrency); this.experimentProfile.params.trialConcurrency = trialConcurrency; return; } private updateMaxExecDuration(duration: number): void { - if (this.trialJobsMaintainer !== undefined) { - this.trialJobsMaintainer.updateMaxExecDuration(duration); - } this.experimentProfile.params.maxExecDuration = duration; return; @@ -290,6 +280,12 @@ class NNIManager implements Manager { return; } + private updateMaxTrialNum(maxTrialNum: number): void { + this.experimentProfile.params.maxTrialNum = maxTrialNum; + + return; + } + private async experimentDoneCleanUp(): Promise { if (this.dispatcher === undefined) { throw new Error('Error: tuner has not been setup'); @@ -332,11 +328,117 @@ class NNIManager implements Manager { const execDuration: number = this.experimentProfile.execDuration; for (; ;) { await delay(1000 * 60 * 10); // 10 minutes - this.experimentProfile.execDuration = execDuration + (Date.now() - startTime) / 1000; + this.experimentProfile.execDuration = execDuration + (Date.now() - startTime) / 1000 - this.suspendDuration; await this.storeExperimentProfile(); } } + private async requestTrialJobsStatus(): Promise { + const deferred: Deferred = new Deferred(); + let finishedTrialJobNum: number = 0; + for (const trialJobId of Array.from(this.trialJobs.keys())) { + const trialJobDetail: TrialJobDetail = await this.trainingService.getTrialJob(trialJobId); + const oldTrialJobDetail: TrialJobDetail | undefined = this.trialJobs.get(trialJobId); + assert(oldTrialJobDetail); + if (oldTrialJobDetail !== undefined && oldTrialJobDetail.status !== trialJobDetail.status) { + this.trialJobs.set(trialJobId, Object.assign({}, trialJobDetail)); + await this.dataStore.storeTrialJobEvent(trialJobDetail.status, trialJobDetail.id, undefined, trialJobDetail.url); + } + switch (trialJobDetail.status) { + case 'SUCCEEDED': + case 'USER_CANCELED': + this.trialJobs.delete(trialJobId); + finishedTrialJobNum++; + break; + case 'FAILED': + case 'SYS_CANCELED': + // In the current version, we do not retry + // TO DO: push this job to queue for retry + this.trialJobs.delete(trialJobId); + finishedTrialJobNum++; + break; + case 'WAITING': + case 'RUNNING': + case 'UNKNOWN': + // Do nothing + break; + default: + // TO DO: add warning in log + } + } + deferred.resolve(finishedTrialJobNum); + + return deferred.promise; + } + + private async manageTrials(): Promise { + if (this.dispatcher === undefined) { + throw new Error('Error: tuner has not been setup'); + } + const startTime: number = Date.now(); + let suspendStartTime: number = 0; + for (; ;) { + if (this.status.status === 'STOPPING') { + break; + } + const finishedTrialJobNum: number = await this.requestTrialJobsStatus(); + const requestTrialNum: number = this.trialConcurrencyChange + finishedTrialJobNum; + if (requestTrialNum >= 0) { + this.trialConcurrencyChange = 0; + } else { + this.trialConcurrencyChange = requestTrialNum; + } + for (let i: number = 0; i < requestTrialNum; i++) { + // ask tuner for more trials + if (this.customizedTrials.length > 0) { + const hyperParams: string | undefined = this.customizedTrials.shift(); + this.dispatcher.sendCommand(ADD_CUSTOMIZED_TRIAL_JOB, hyperParams); + } else { + this.dispatcher.sendCommand(REQUEST_TRIAL_JOBS, '1'); + } + } + // check maxtrialnum and maxduration here + if ((Date.now() - startTime) / 1000 + this.experimentProfile.execDuration - this.suspendDuration + > this.experimentProfile.params.maxExecDuration || + this.currSubmittedTrialNum >= this.experimentProfile.params.maxTrialNum) { + assert(this.status.status === 'EXPERIMENT_RUNNING' || this.status.status === 'SUSPENDED'); + if (this.status.status === 'EXPERIMENT_RUNNING') { + suspendStartTime = Date.now(); + } + this.status.status = 'SUSPENDED'; + } else { + if (this.status.status === 'SUSPENDED') { + assert(suspendStartTime !== 0); + this.suspendDuration += (Date.now() - suspendStartTime) / 1000; + } + this.status.status = 'EXPERIMENT_RUNNING'; + for (let i: number = this.trialJobs.size; i < this.experimentProfile.params.trialConcurrency; i++) { + if (this.waitingTrials.length === 0 || + this.currSubmittedTrialNum >= this.experimentProfile.params.maxTrialNum) { + break; + } + const hyperParams: string | undefined = this.waitingTrials.shift(); + if (hyperParams === undefined) { + throw new Error(`Error: invalid hyper-parameters for job submission: ${hyperParams}`); + } + this.currSubmittedTrialNum++; + const trialJobAppForm: TrialJobApplicationForm = { + jobType: 'TRIAL', + hyperParameters: hyperParams + }; + const trialJobDetail: TrialJobDetail = await this.trainingService.submitTrialJob(trialJobAppForm); + this.trialJobs.set(trialJobDetail.id, Object.assign({}, trialJobDetail)); + assert(trialJobDetail.status === 'WAITING'); + await this.dataStore.storeTrialJobEvent(trialJobDetail.status, trialJobDetail.id, hyperParams, trialJobDetail.url); + } + } + await delay(1000 * 5); // 5 seconds + } + this.log.info('Experiment done, cleaning up...'); + await this.experimentDoneCleanUp(); + this.log.info('Experiment done.'); + } + private storeExperimentProfile(): Promise { this.experimentProfile.revision += 1; @@ -344,12 +446,7 @@ class NNIManager implements Manager { } private async run(): Promise { - this.trialJobsMaintainer = new TrialJobs( - this.trainingService, - this.experimentProfile.execDuration, - this.experimentProfile.params.maxExecDuration); - - assert(this.dispatcher !== undefined && this.trialJobsMaintainer !== undefined); + assert(this.dispatcher !== undefined); this.addEventListeners(); @@ -358,12 +455,12 @@ class NNIManager implements Manager { await Promise.all([ this.periodicallyUpdateExecDuration(), this.trainingService.run(), - this.trialJobsMaintainer.run()]); + this.manageTrials()]); } - private addEventListeners(): void { + private addEventListeners(): void { // TO DO: cannot run this method more than once in one NNIManager instance - if (this.dispatcher === undefined || this.trialJobsMaintainer === undefined) { + if (this.dispatcher === undefined) { throw new Error('Error: tuner or job maintainer have not been setup'); } this.trainingService.addTrialJobMetricListener((metric: TrialJobMetric) => { @@ -372,12 +469,6 @@ class NNIManager implements Manager { }); }); - this.trialJobsMaintainer.on(async (event: TrialJobMaintainerEvent, trialJobDetail: TrialJobDetail) => { - this.onTrialJobEvent(event, trialJobDetail).catch((err: Error) => { - this.criticalError(err); - }); - }); - this.dispatcher.onCommand((commandType: string, content: string) => { this.onTunerCommand(commandType, content).catch((err: Error) => { this.criticalError(err); @@ -392,9 +483,6 @@ class NNIManager implements Manager { // TO DO: we should send INITIALIZE command to tuner if user's tuner needs to run init method in tuner this.log.debug(`Send tuner command: update search space: ${this.experimentProfile.params.searchSpace}`); this.dispatcher.sendCommand(UPDATE_SEARCH_SPACE, this.experimentProfile.params.searchSpace); - if (this.trialConcurrencyReduction !== 0) { - throw new Error('Error: cannot modify trialConcurrency before startExperiment'); - } this.log.debug(`Send tuner command: ${this.experimentProfile.params.trialConcurrency}`); this.dispatcher.sendCommand(REQUEST_TRIAL_JOBS, String(this.experimentProfile.params.trialConcurrency)); } @@ -407,73 +495,15 @@ class NNIManager implements Manager { this.dispatcher.sendCommand(REPORT_METRIC_DATA, metric.data); } - private async onTrialJobEvent(event: TrialJobMaintainerEvent, trialJobDetail: TrialJobDetail): Promise { - if (trialJobDetail !== undefined) { - this.log.debug(`Job event: ${event}, id: ${trialJobDetail.id}`); - } else { - this.log.debug(`Job event: ${event}`); - } - if (this.dispatcher === undefined) { - throw new Error('Error: tuner has not been setup'); - } - switch (event) { - case 'SUCCEEDED': - case 'FAILED': - case 'USER_CANCELED': - case 'SYS_CANCELED': - if (this.trialConcurrencyReduction > 0) { - this.trialConcurrencyReduction--; - } else { - if (this.currSubmittedTrialNum < this.experimentProfile.params.maxTrialNum) { - if (this.customizedTrials.length > 0) { - const hyperParams: string | undefined = this.customizedTrials.shift(); - this.dispatcher.sendCommand(ADD_CUSTOMIZED_TRIAL_JOB, hyperParams); - } else { - this.dispatcher.sendCommand(REQUEST_TRIAL_JOBS, '1'); - } - } - } - this.dispatcher.sendCommand(TRIAL_END, JSON.stringify({trial_job_id: trialJobDetail.id, event: event})); - await this.dataStore.storeTrialJobEvent(event, trialJobDetail.id, undefined, trialJobDetail.url); - break; - case 'RUNNING': - await this.dataStore.storeTrialJobEvent(event, trialJobDetail.id, undefined, trialJobDetail.url); - break; - case 'EXPERIMENT_DONE': - this.log.info('Experiment done, cleaning up...'); - await this.experimentDoneCleanUp(); - this.log.info('Experiment done.'); - break; - default: - throw new Error('Error: unrecognized event from trialJobsMaintainer'); - } - } - private async onTunerCommand(commandType: string, content: string): Promise { this.log.info(`Command from tuner: ${commandType}, ${content}`); - if (this.trialJobsMaintainer === undefined) { - throw new Error('Error: trialJobsMaintainer not initialized'); - } switch (commandType) { case NEW_TRIAL_JOB: - if (this.currSubmittedTrialNum < this.experimentProfile.params.maxTrialNum) { - this.currSubmittedTrialNum++; - const trialJobAppForm: TrialJobApplicationForm = { - jobType: 'TRIAL', - hyperParameters: content - }; - const trialJobDetail: TrialJobDetail = await this.trainingService.submitTrialJob(trialJobAppForm); - this.trialJobsMaintainer.setTrialJob(trialJobDetail.id, Object.assign({}, trialJobDetail)); - // TO DO: to uncomment - assert(trialJobDetail.status === 'WAITING'); - await this.dataStore.storeTrialJobEvent(trialJobDetail.status, trialJobDetail.id, content, trialJobDetail.url); - if (this.currSubmittedTrialNum === this.experimentProfile.params.maxTrialNum) { - this.trialJobsMaintainer.setNoMoreTrials(); - } - } + this.waitingTrials.push(content); break; case NO_MORE_TRIAL_JOBS: - this.trialJobsMaintainer.setNoMoreTrials(); + //this.trialJobsMaintainer.setNoMoreTrials(); + // ignore this event for now break; case KILL_TRIAL_JOB: await this.trainingService.cancelTrialJob(JSON.parse(content)); diff --git a/src/nni_manager/core/trialJobs.ts b/src/nni_manager/core/trialJobs.ts deleted file mode 100644 index 0d36855563..0000000000 --- a/src/nni_manager/core/trialJobs.ts +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation - * All rights reserved. - * - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated - * documentation files (the "Software"), to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and - * to permit persons to whom the Software is furnished to do so, subject to the following conditions: - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING - * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -'use strict'; - -import * as assert from 'assert'; -import { EventEmitter } from 'events'; -import { TrainingService, TrialJobDetail, TrialJobStatus } from '../common/trainingService'; -import { delay } from '../common/utils'; - -type TrialJobMaintainerEvent = TrialJobStatus | 'EXPERIMENT_DONE'; - -/** - * TrialJobs - */ -class TrialJobs { - private eventEmitter: EventEmitter; - private trialJobs: Map; - private noMoreTrials: boolean; - private stopLoop: boolean; - private trainingService: TrainingService; - private pastExecDuration: number; // second - private maxExecDuration: number; // second - - constructor( - trainingService: TrainingService, - pastExecDuration: number, // second - maxExecDuration: number // second - ) { - this.eventEmitter = new EventEmitter(); - this.trialJobs = new Map(); - this.noMoreTrials = false; - this.stopLoop = false; - this.trainingService = trainingService; - this.pastExecDuration = pastExecDuration; - this.maxExecDuration = maxExecDuration; - } - - public setTrialJob(key: string, value: TrialJobDetail): void { - this.trialJobs.set(key, value); - } - - public getTrialJob(key: string): TrialJobDetail | undefined { - return this.trialJobs.get(key); - } - - public setNoMoreTrials(): void { - this.noMoreTrials = true; - } - - public setStopLoop(): void { - this.stopLoop = true; - } - - public updateMaxExecDuration(duration: number): void { - this.maxExecDuration = duration; - } - - public on(listener: (event: TrialJobMaintainerEvent, trialJobDetail: TrialJobDetail) => void): void { - this.eventEmitter.addListener('all', listener); - } - - public async requestTrialJobsStatus(): Promise { - for (const trialJobId of Array.from(this.trialJobs.keys())) { - const trialJobDetail: TrialJobDetail = await this.trainingService.getTrialJob(trialJobId); - switch (trialJobDetail.status) { - case 'SUCCEEDED': - case 'USER_CANCELED': - this.eventEmitter.emit('all', trialJobDetail.status, trialJobDetail); - this.trialJobs.delete(trialJobId); - break; - case 'FAILED': - case 'SYS_CANCELED': - // In the current version, we do not retry - // TO DO: push this job to queue for retry - this.eventEmitter.emit('all', trialJobDetail.status, trialJobDetail); - this.trialJobs.delete(trialJobId); - break; - case 'WAITING': - // Do nothing - break; - case 'RUNNING': - const oldTrialJobDetail: TrialJobDetail | undefined = this.trialJobs.get(trialJobId); - assert(oldTrialJobDetail); - if (oldTrialJobDetail !== undefined && oldTrialJobDetail.status === "WAITING") { - this.trialJobs.set(trialJobId, trialJobDetail); - this.eventEmitter.emit('all', trialJobDetail.status, trialJobDetail); - } - break; - case 'UNKNOWN': - // Do nothing - break; - default: - // TO DO: add warning in log - } - } - - return Promise.resolve(); - } - - public async run(): Promise { - const startTime: number = Date.now(); - while ((Date.now() - startTime) / 1000 + this.pastExecDuration < this.maxExecDuration) { - if (this.stopLoop || - (this.noMoreTrials && this.trialJobs.size === 0)) { - break; - } - await this.requestTrialJobsStatus(); - await delay(5000); - } - this.eventEmitter.emit('all', 'EXPERIMENT_DONE'); - } -} - -export { TrialJobs, TrialJobMaintainerEvent }; diff --git a/src/nni_manager/main.ts b/src/nni_manager/main.ts index 6d9c9fa64b..f3d386eccd 100644 --- a/src/nni_manager/main.ts +++ b/src/nni_manager/main.ts @@ -36,6 +36,7 @@ import { LocalTrainingServiceForGPU } from './training_service/local/localTraini import { RemoteMachineTrainingService } from './training_service/remote_machine/remoteMachineTrainingService'; +import { PAITrainingService } from './training_service/pai/paiTrainingService' function initStartupInfo(startExpMode: string, resumeExperimentId: string) { @@ -49,6 +50,8 @@ async function initContainer(platformMode: string): Promise { Container.bind(TrainingService).to(LocalTrainingServiceForGPU).scope(Scope.Singleton); } else if (platformMode === 'remote') { Container.bind(TrainingService).to(RemoteMachineTrainingService).scope(Scope.Singleton); + } else if (platformMode === 'pai'){ + Container.bind(TrainingService).to(PAITrainingService).scope(Scope.Singleton); } else { throw new Error(`Error: unsupported mode: ${mode}`); } @@ -61,7 +64,7 @@ async function initContainer(platformMode: string): Promise { } function usage(): void { - console.info('usage: node main.js --port --mode --start_mode --experiment_id '); + console.info('usage: node main.js --port --mode --start_mode --experiment_id '); } let port: number = NNIRestServer.DEFAULT_PORT; @@ -71,7 +74,7 @@ if (strPort && strPort.length > 0) { } const mode: string = parseArg(['--mode', '-m']); -if (!['local', 'remote'].includes(mode)) { +if (!['local', 'remote', 'pai'].includes(mode)) { usage(); process.exit(1); } diff --git a/src/nni_manager/package.json b/src/nni_manager/package.json index 46522044fd..04ee4df3c2 100644 --- a/src/nni_manager/package.json +++ b/src/nni_manager/package.json @@ -23,7 +23,8 @@ "tree-kill": "^1.2.0", "ts-deferred": "^1.0.4", "typescript-ioc": "^1.2.4", - "typescript-string-operations": "^1.3.1" + "typescript-string-operations": "^1.3.1", + "webhdfs":"^1.2.0" }, "devDependencies": { "@types/chai": "^4.1.4", @@ -40,6 +41,7 @@ "chai": "^4.1.2", "mocha": "^5.2.0", "request": "^2.87.0", + "rmdir": "^1.2.0", "tmp": "^0.0.33", "ts-node": "^7.0.0", "tslint": "^5.11.0", diff --git a/src/nni_manager/rest_server/restValidationSchemas.ts b/src/nni_manager/rest_server/restValidationSchemas.ts index 218a8c22c4..b981463434 100644 --- a/src/nni_manager/rest_server/restValidationSchemas.ts +++ b/src/nni_manager/rest_server/restValidationSchemas.ts @@ -33,9 +33,19 @@ export namespace ValidationSchemas { passphrase: joi.string() })), trial_config: joi.object({ - gpuNum: joi.number().min(0).required(), + image: joi.string().min(1), codeDir: joi.string().min(1).required(), - command: joi.string().min(1).required() + dataDir: joi.string(), + outputDir: joi.string(), + cpuNum: joi.number().min(1), + memoryMB: joi.number().min(100), + gpuNum: joi.number().min(0).required(), + command: joi.string().min(1).required() + }), + pai_config: joi.object({ + userName: joi.string().min(1).required(), + passWord: joi.string().min(1).required(), + host: joi.string().min(1).required() }) } }; @@ -48,7 +58,7 @@ export namespace ValidationSchemas { searchSpace: joi.string().required(), maxExecDuration: joi.number().min(0).required(), tuner: joi.object({ - builtinTunerName: joi.string().valid('TPE', 'Random', 'Anneal', 'Evolution'), + builtinTunerName: joi.string().valid('TPE', 'Random', 'Anneal', 'Evolution', 'SMAC'), codeDir: joi.string(), classFileName: joi.string(), className: joi.string(), @@ -73,7 +83,7 @@ export namespace ValidationSchemas { }; export const UPDATEEXPERIMENT = { query: { - update_type: joi.string().required().valid('TRIAL_CONCURRENCY', 'MAX_EXEC_DURATION', 'SEARCH_SPACE') + update_type: joi.string().required().valid('TRIAL_CONCURRENCY', 'MAX_EXEC_DURATION', 'SEARCH_SPACE', 'MAX_TRIAL_NUM') }, body: { id: joi.string().required(), diff --git a/src/nni_manager/training_service/common/jobMetrics.ts b/src/nni_manager/training_service/common/jobMetrics.ts new file mode 100644 index 0000000000..a1abe64574 --- /dev/null +++ b/src/nni_manager/training_service/common/jobMetrics.ts @@ -0,0 +1,37 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import { TrialJobStatus } from '../../common/trainingService'; + +// tslint:disable-next-line:max-classes-per-file +export class JobMetrics { + public readonly jobId: string; + public readonly metrics: string[]; + public readonly jobStatus: TrialJobStatus; + public readonly endTimestamp: number; + + constructor(jobId : string, metrics : string[], jobStatus : TrialJobStatus, endTimestamp : number) { + this.jobId = jobId; + this.metrics = metrics; + this.jobStatus = jobStatus; + this.endTimestamp = endTimestamp; + } +} diff --git a/src/nni_manager/training_service/common/trialConfigMetadataKey.ts b/src/nni_manager/training_service/common/trialConfigMetadataKey.ts index e9749e562e..12df449ee1 100644 --- a/src/nni_manager/training_service/common/trialConfigMetadataKey.ts +++ b/src/nni_manager/training_service/common/trialConfigMetadataKey.ts @@ -26,5 +26,6 @@ export enum TrialConfigMetadataKey { MACHINE_LIST = 'machine_list', TRIAL_CONFIG = 'trial_config', EXPERIMENT_ID = 'experimentId', - RANDOM_SCHEDULER = 'random_scheduler' + RANDOM_SCHEDULER = 'random_scheduler', + PAI_CLUSTER_CONFIG = 'pai_config' } diff --git a/src/nni_manager/training_service/pai/hdfsClientUtility.ts b/src/nni_manager/training_service/pai/hdfsClientUtility.ts new file mode 100644 index 0000000000..69fc383e6d --- /dev/null +++ b/src/nni_manager/training_service/pai/hdfsClientUtility.ts @@ -0,0 +1,203 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import * as path from 'path'; +import * as fs from 'fs'; +import { Deferred } from 'ts-deferred'; +import { getLogger } from '../../common/log'; + +/** + * HDFS client utility, including copy file/directory + */ +export namespace HDFSClientUtility { + /** + * Copy a local file to hdfs directory + * + * @param localFilePath local file path(source) + * @param hdfsFilePath hdfs file path(target) + * @param hdfsClient hdfs client + */ + export async function copyFileToHdfs(localFilePath : string, hdfsFilePath : string, hdfsClient : any) : Promise { + const deferred: Deferred = new Deferred(); + fs.exists(localFilePath, (exists : boolean) => { + // Detect if local file exist + if (exists) { + var localFileStream = fs.createReadStream(localFilePath); + var hdfsFileStream = hdfsClient.createWriteStream(hdfsFilePath); + localFileStream.pipe(hdfsFileStream); + hdfsFileStream.on('finish', function onFinish () { + deferred.resolve(); + }); + hdfsFileStream.on('error', (err : any) => { + getLogger().error(`HDFSCientUtility:copyFileToHdfs, copy file failed, err is ${err.message}`); + deferred.reject(err); + }); + } else { + getLogger().error(`HDFSCientUtility:copyFileToHdfs, ${localFilePath} doesn't exist locally`); + deferred.reject('file not exist!'); + } + }); + return deferred.promise; + } + + /** + * Recursively copy local directory to hdfs directory + * + * @param localDirectory local directory + * @param hdfsDirectory HDFS directory + * @param hdfsClient HDFS client + */ + export async function copyDirectoryToHdfs(localDirectory : string, hdfsDirectory : string, hdfsClient : any) : Promise{ + const deferred: Deferred = new Deferred(); + // TODO: fs.readdirSync doesn't support ~($HOME) + const fileNameArray: string[] = fs.readdirSync(localDirectory); + + for(var fileName of fileNameArray){ + const fullFilePath: string = path.join(localDirectory, fileName); + try { + if (fs.lstatSync(fullFilePath).isFile()) { + await copyFileToHdfs(fullFilePath, path.join(hdfsDirectory, fileName), hdfsClient); + } else { + // If filePath is a directory, recuisively copy it to remote directory + await copyDirectoryToHdfs(fullFilePath, path.join(hdfsDirectory, fileName), hdfsClient); + } + } catch(error) { + deferred.reject(error); + } + } + // All files/directories are copied successfully, resolve + deferred.resolve(); + + return deferred.promise; + } + + /** + * Read content from HDFS file + * + * @param hdfsPath HDFS file path + * @param hdfsClient HDFS client + */ + export async function readFileFromHDFS(hdfsPath : string, hdfsClient :any) : Promise { + const deferred: Deferred = new Deferred(); + let buffer : Buffer = Buffer.alloc(0); + + const exist : boolean = await pathExists(hdfsPath, hdfsClient); + if(!exist) { + deferred.reject(`${hdfsPath} doesn't exists`); + } + + const remoteFileStream = hdfsClient.createReadStream(hdfsPath); + remoteFileStream.on('error', (err : any) => { + // Reject with the error + deferred.reject(err); + }); + + remoteFileStream.on('data', (chunk : any) => { + // Concat the data chunk to buffer + buffer = Buffer.concat([buffer, chunk]); + }); + + remoteFileStream.on('finish', function onFinish () { + // Upload is done, resolve + deferred.resolve(buffer); + }); + + return deferred.promise; + } + + /** + * Check if an HDFS path already exists + * + * @param hdfsPath target path need to check in HDFS + * @param hdfsClient HDFS client + */ + export async function pathExists(hdfsPath : string, hdfsClient : any) : Promise { + const deferred : Deferred = new Deferred(); + hdfsClient.exists(hdfsPath, (exist : boolean ) => { + deferred.resolve(exist); + }); + + // Set timeout and reject the promise once reach timeout (5 seconds) + setTimeout(() => deferred.reject(`Check HDFS path ${hdfsPath} exists timeout`), 5000); + + return deferred.promise; + } + + /** + * Mkdir in HDFS, use default permission 755 + * + * @param hdfsPath the path in HDFS. It could be either file or directory + * @param hdfsClient + */ + export function mkdir(hdfsPath : string, hdfsClient : any) : Promise { + const deferred : Deferred = new Deferred(); + + hdfsClient.mkdir(hdfsPath, (err : any)=> { + if(!err) { + deferred.resolve(true); + } else { + deferred.reject(err.message); + } + }); + + return deferred.promise; + } + + /** + * Read directory contents + * + * @param hdfsPath the path in HDFS. It could be either file or directory + * @param hdfsClient + */ + export async function readdir(hdfsPath : string, hdfsClient : any) : Promise { + const deferred : Deferred = new Deferred(); + const exist : boolean = await pathExists(hdfsPath, hdfsClient); + if(!exist) { + deferred.reject(`${hdfsPath} doesn't exists`); + } + + hdfsClient.readdir(hdfsPath, (err : any, files : any[] ) => { + if(err) { + deferred.reject(err); + } + + deferred.resolve(files); + }); + + return deferred.promise; + } + + /** + * Delete HDFS path + * @param hdfsPath the path in HDFS. It could be either file or directory + * @param hdfsClient + * @param recursive Mark if need to delete recursively + */ + export function deletePath(hdfsPath : string, hdfsClient : any, recursive : boolean = true) : Promise { + const deferred : Deferred = new Deferred(); + hdfsClient.unlink(hdfsPath, recursive, (err : any)=> { + if(!err) { + deferred.resolve(true); + } else { + deferred.reject(err.message); + } + }); + return deferred.promise; + } +} diff --git a/src/nni_manager/training_service/pai/paiConfig.ts b/src/nni_manager/training_service/pai/paiConfig.ts new file mode 100644 index 0000000000..aa84021ec4 --- /dev/null +++ b/src/nni_manager/training_service/pai/paiConfig.ts @@ -0,0 +1,123 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import {TrialConfig} from '../common/trialConfig' + +export class PAITaskRole { + // Name for the task role + public readonly name: string; + // Number of tasks for the task role, no less than 1 + public readonly taskNumber: number; + // CPU number for one task in the task role, no less than 1 + public readonly cpuNumber: number; + // Memory for one task in the task role, no less than 100 + public readonly memoryMB: number; + // GPU number for one task in the task role, no less than 0 + public readonly gpuNumber: number; + // Executable command for tasks in the task role, can not be empty + public readonly command: string; + + /** + * Constructor + * @param name Name for the task role + * @param taskNumber Number of tasks for the task role, no less than 1 + * @param cpuNumber CPU number for one task in the task role, no less than 1 + * @param memoryMB Memory for one task in the task role, no less than 100 + * @param gpuNumber GPU number for one task in the task role, no less than 0 + * @param command Executable command for tasks in the task role, can not be empty + */ + constructor(name : string, taskNumber : number, cpuNumber : number, memoryMB : number, gpuNumber : number, command : string) { + this.name = name; + this.taskNumber = taskNumber; + this.cpuNumber = cpuNumber; + this.memoryMB = memoryMB; + this.gpuNumber = gpuNumber; + this.command = command; + } +} + +export class PAIJobConfig{ + // Name for the job, need to be unique + public readonly jobName: string; + // URL pointing to the Docker image for all tasks in the job + public readonly image: string; + // Data directory existing on HDFS + public readonly dataDir: string; + // Output directory on HDFS + public readonly outputDir: string; + // Code directory on HDFS + public readonly codeDir: string; + + // List of taskRole, one task role at least + public taskRoles: PAITaskRole[]; + + /** + * Constructor + * @param jobName Name for the job, need to be unique + * @param image URL pointing to the Docker image for all tasks in the job + * @param dataDir Data directory existing on HDFS + * @param outputDir Output directory on HDFS + * @param taskRoles List of taskRole, one task role at least + */ + constructor(jobName: string, image : string, dataDir : string, outputDir : string, codeDir : string, taskRoles : PAITaskRole[]){ + this.jobName = jobName; + this.image = image; + this.dataDir = dataDir; + this.outputDir = outputDir; + this.codeDir = codeDir; + this.taskRoles = taskRoles; + } +} + +export class PAIClusterConfig { + public readonly userName: string; + public readonly passWord: string; + public readonly host: string; + + /** + * Constructor + * @param userName User name of PAI Cluster + * @param passWord password of PAI Cluster + * @param host Host IP of PAI Cluster + */ + constructor(userName: string, passWord : string, host : string){ + this.userName = userName; + this.passWord = passWord; + this.host = host; + } +} + +export class NNIPAITrialConfig extends TrialConfig{ + public readonly cpuNum: number; + public readonly memoryMB: number; + public readonly image: string; + public readonly dataDir: string; + public outputDir: string; + + constructor(command : string, codeDir : string, gpuNum : number, cpuNum: number, memoryMB: number, image: string, dataDir: string, outputDir: string) { + super(command, codeDir, gpuNum); + this.cpuNum = cpuNum; + this.memoryMB = memoryMB; + this.image = image; + this.dataDir = dataDir; + this.outputDir = outputDir; + } +} \ No newline at end of file diff --git a/src/nni_manager/training_service/pai/paiData.ts b/src/nni_manager/training_service/pai/paiData.ts new file mode 100644 index 0000000000..e18b5904f6 --- /dev/null +++ b/src/nni_manager/training_service/pai/paiData.ts @@ -0,0 +1,70 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import { JobApplicationForm, TrialJobDetail, TrialJobStatus } from 'common/trainingService'; + +export class PAITrialJobDetail implements TrialJobDetail { + public id: string; + public status: TrialJobStatus; + public paiJobName: string; + public submitTime: number; + public startTime?: number; + public endTime?: number; + public tags?: string[]; + public url?: string; + public workingDirectory: string; + public form: JobApplicationForm; + public hdfsLogPath: string; + + constructor(id: string, status: TrialJobStatus, paiJobName : string, + submitTime: number, workingDirectory: string, form: JobApplicationForm, hdfsLogPath: string) { + this.id = id; + this.status = status; + this.paiJobName = paiJobName; + this.submitTime = submitTime; + this.workingDirectory = workingDirectory; + this.form = form; + this.tags = []; + this.hdfsLogPath = hdfsLogPath; + } +} + +export const PAI_INSTALL_NNI_SHELL_FORMAT: string = +`#!/bin/bash +if python3 -c 'import nni' > /dev/null 2>&1; then + # nni module is already installed, skip + return +else + # Install nni + pip3 install -v --user git+https://github.com/Microsoft/nni.git@v0.2 +fi`; + +export const PAI_TRIAL_COMMAND_FORMAT: string = +`export NNI_PLATFORM=pai NNI_SYS_DIR={0} NNI_OUTPUT_DIR={1} NNI_TRIAL_JOB_ID={2} NNI_EXP_ID={3} +&& cd $NNI_SYS_DIR && sh install_nni.sh +&& python3 -m trial_tool.trial_keeper --trial_command '{4}' --nnimanager_ip '{5}' --pai_hdfs_output_dir '{6}' +--pai_hdfs_host '{7}' --pai_user_name {8}`; + +export const PAI_OUTPUT_DIR_FORMAT: string = +`hdfs://{0}:9000/`; + +export const PAI_LOG_PATH_FORMAT: string = +`http://{0}:50070/explorer.html#{1}` diff --git a/src/nni_manager/training_service/pai/paiJobInfoCollector.ts b/src/nni_manager/training_service/pai/paiJobInfoCollector.ts new file mode 100644 index 0000000000..041151c47d --- /dev/null +++ b/src/nni_manager/training_service/pai/paiJobInfoCollector.ts @@ -0,0 +1,136 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import * as request from 'request'; +import { EventEmitter } from 'events'; +import { Deferred } from 'ts-deferred'; +import { getLogger, Logger } from '../../common/log'; +import { NNIError, NNIErrorNames } from '../../common/errors'; +import { PAITrialJobDetail } from './paiData'; +import { PAIClusterConfig } from './paiConfig'; +import { TrialJobStatus } from '../../common/trainingService'; + +/** + * Collector PAI jobs info from PAI cluster, and update pai job status locally + */ +export class PAIJobInfoCollector { + private readonly trialJobsMap : Map; + private readonly log: Logger = getLogger(); + private readonly statusesNeedToCheck : TrialJobStatus[]; + private readonly finalStatuses : TrialJobStatus[]; + + constructor(jobMap: Map) { + this.trialJobsMap = jobMap; + this.statusesNeedToCheck = ['RUNNING', 'UNKNOWN', 'WAITING']; + this.finalStatuses = ['SUCCEEDED', 'FAILED', 'USER_CANCELED', 'SYS_CANCELED']; + } + + public async updateTrialStatusFromPAI(paiToken? : string, paiClusterConfig?: PAIClusterConfig) : Promise { + if (!paiClusterConfig || !paiToken) { + return Promise.resolve(); + } + + const updatePaiTrialJobs : Promise[] = []; + for(let [trialJobId, paiTrialJob] of this.trialJobsMap) { + if (!paiTrialJob) { + throw new NNIError(NNIErrorNames.NOT_FOUND, `trial job id ${trialJobId} not found`); + } + updatePaiTrialJobs.push(this.getSinglePAITrialJobInfo(paiTrialJob, paiToken, paiClusterConfig)) + } + + await Promise.all(updatePaiTrialJobs); + } + + private getSinglePAITrialJobInfo(paiTrialJob : PAITrialJobDetail, paiToken : string, paiClusterConfig: PAIClusterConfig) : Promise { + const deferred : Deferred = new Deferred(); + if (!this.statusesNeedToCheck.includes(paiTrialJob.status)) { + deferred.resolve(); + return deferred.promise; + } + + // Rest call to get PAI job info and update status + // Refer https://github.com/Microsoft/pai/blob/master/docs/rest-server/API.md for more detail about PAI Rest API + const getJobInfoRequest: request.Options = { + uri: `http://${paiClusterConfig.host}:9186/api/v1/jobs/${paiTrialJob.paiJobName}`, + method: 'GET', + json: true, + headers: { + "Content-Type": "application/json", + "Authorization": 'Bearer ' + paiToken + } + }; + //TODO : pass in request timeout param? + request(getJobInfoRequest, (error: Error, response: request.Response, body: any) => { + if (error || response.statusCode >= 500) { + this.log.error(`PAI Training service: get job info for trial ${paiTrialJob.id} from PAI Cluster failed!`); + // Queried PAI job info failed, set job status to UNKNOWN + if(paiTrialJob.status === 'WAITING' || paiTrialJob.status === 'RUNNING') { + paiTrialJob.status = 'UNKNOWN'; + } + } else { + if(response.body.jobStatus && response.body.jobStatus.state) { + switch(response.body.jobStatus.state) { + case 'WAITING': + paiTrialJob.status = 'WAITING'; + break; + case 'RUNNING': + paiTrialJob.status = 'RUNNING'; + if(!paiTrialJob.startTime) { + paiTrialJob.startTime = response.body.jobStatus.appLaunchedTime; + } + if(!paiTrialJob.url) { + paiTrialJob.url = response.body.jobStatus.appTrackingUrl; + } + break; + case 'SUCCEEDED': + paiTrialJob.status = 'SUCCEEDED'; + break; + case 'STOPPED': + paiTrialJob.status = 'USER_CANCELED'; + break; + case 'FAILED': + paiTrialJob.status = 'FAILED'; + break; + default: + paiTrialJob.status = 'UNKNOWN'; + break; + } + // For final job statues, update startTime, endTime and url + if(this.finalStatuses.includes(paiTrialJob.status)) { + if(!paiTrialJob.startTime) { + paiTrialJob.startTime = response.body.jobStatus.appLaunchedTime; + } + if(!paiTrialJob.endTime) { + paiTrialJob.endTime = response.body.jobStatus.completedTime; + } + // Set pai trial job's url to WebHDFS output path + if(paiTrialJob.hdfsLogPath) { + paiTrialJob.url = paiTrialJob.hdfsLogPath; + } + } + } + } + deferred.resolve(); + }); + + return deferred.promise; + } +} \ No newline at end of file diff --git a/src/nni_manager/training_service/pai/paiJobRestServer.ts b/src/nni_manager/training_service/pai/paiJobRestServer.ts index 6375eee1c5..098ea74333 100644 --- a/src/nni_manager/training_service/pai/paiJobRestServer.ts +++ b/src/nni_manager/training_service/pai/paiJobRestServer.ts @@ -17,4 +17,82 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - \ No newline at end of file +'use strict'; + +import { Request, Response, Router } from 'express'; +import * as bodyParser from 'body-parser'; +import * as component from '../../common/component'; +import { getExperimentId } from '../../common/experimentStartupInfo'; +import { Inject } from 'typescript-ioc'; +import { PAITrainingService } from './paiTrainingService'; +import { RestServer } from '../../common/restServer' + +/** + * PAI Training service Rest server, provides rest API to support pai job metrics update + * + */ +@component.Singleton +export class PAIJobRestServer extends RestServer{ + /** NNI main rest service default port */ + private static readonly DEFAULT_PORT: number = 51189; + + private readonly API_ROOT_URL: string = '/api/v1/nni-pai'; + + private readonly expId: string = getExperimentId(); + + @Inject + private readonly paiTrainingService : PAITrainingService; + + /** + * constructor to provide NNIRestServer's own rest property, e.g. port + */ + constructor() { + super(); + this.port = PAIJobRestServer.DEFAULT_PORT; + this.paiTrainingService = component.get(PAITrainingService); + } + + /** + * NNIRestServer's own router registration + */ + protected registerRestHandler(): void { + this.app.use(bodyParser.json()); + this.app.use(this.API_ROOT_URL, this.createRestHandler()); + } + + private createRestHandler() : Router { + const router: Router = Router(); + + // tslint:disable-next-line:typedef + router.use((req: Request, res: Response, next) => { + this.log.info(`${req.method}: ${req.url}: body:\n${JSON.stringify(req.body, undefined, 4)}`); + res.setHeader('Content-Type', 'application/json'); + next(); + }); + + router.post(`/update-metrics/${this.expId}/:trialId`, (req: Request, res: Response) => { + try { + this.log.info(`Get update-metrics request, trial job id is ${req.params.trialId}`); + this.log.info(`update-metrics body is ${JSON.stringify(req.body)}`); + + // Split metrics array into single metric, then emit + // Warning: If not split metrics into single ones, the behavior will be UNKNOWN + for (const singleMetric of req.body.metrics) { + this.paiTrainingService.MetricsEmitter.emit('metric', { + id : req.body.jobId, + data : singleMetric + }); + } + + res.send(); + } + catch(err) { + this.log.error(`json parse metrics error: ${err}`); + res.status(500); + res.send(err.message); + } + }); + + return router; + } +} \ No newline at end of file diff --git a/src/nni_manager/training_service/pai/paiTrainingService.ts b/src/nni_manager/training_service/pai/paiTrainingService.ts new file mode 100644 index 0000000000..f7f8b3c4e7 --- /dev/null +++ b/src/nni_manager/training_service/pai/paiTrainingService.ts @@ -0,0 +1,432 @@ + +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict' + +import * as component from '../../common/component'; +import * as cpp from 'child-process-promise'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as request from 'request'; + +import { Deferred } from 'ts-deferred'; +import { EventEmitter } from 'events'; +import { getExperimentId } from '../../common/experimentStartupInfo'; +import { HDFSClientUtility } from './hdfsClientUtility' +import { MethodNotImplementedError } from '../../common/errors'; +import { getLogger, Logger } from '../../common/log'; +import { TrialConfigMetadataKey } from '../common/trialConfigMetadataKey'; +import { + JobApplicationForm, TrainingService, TrialJobApplicationForm, + TrialJobDetail, TrialJobMetric +} from '../../common/trainingService'; +import { delay, getExperimentRootDir, getIPV4Address, uniqueString } from '../../common/utils'; +import { PAIJobRestServer } from './paiJobRestServer' +import { PAITrialJobDetail, PAI_INSTALL_NNI_SHELL_FORMAT, PAI_TRIAL_COMMAND_FORMAT, PAI_OUTPUT_DIR_FORMAT, PAI_LOG_PATH_FORMAT } from './paiData'; +import { PAIJobInfoCollector } from './paiJobInfoCollector'; +import { String } from 'typescript-string-operations'; +import { NNIPAITrialConfig, PAIClusterConfig, PAIJobConfig, PAITaskRole } from './paiConfig'; + +var WebHDFS = require('webhdfs'); + +/** + * Training Service implementation for OpenPAI (Open Platform for AI) + * Refer https://github.com/Microsoft/pai for more info about OpenPAI + */ +@component.Singleton +class PAITrainingService implements TrainingService { + private readonly log!: Logger; + private readonly metricsEmitter: EventEmitter; + private readonly trialJobsMap: Map; + private readonly expRootDir: string; + private paiTrialConfig: NNIPAITrialConfig | undefined; + private paiClusterConfig?: PAIClusterConfig; + private stopping: boolean = false; + private hdfsClient: any; + private paiToken? : string; + private experimentId! : string; + private readonly paiJobCollector : PAIJobInfoCollector; + private readonly hdfsDirPattern: string; + private hdfsBaseDir: string | undefined; + private hdfsOutputHost: string | undefined; + + constructor() { + this.log = getLogger(); + this.metricsEmitter = new EventEmitter(); + this.trialJobsMap = new Map(); + // Root dir on HDFS + this.expRootDir = path.join('/nni', 'experiments', getExperimentId()); + this.experimentId = getExperimentId(); + this.paiJobCollector = new PAIJobInfoCollector(this.trialJobsMap); + this.hdfsDirPattern = 'hdfs://(?([0-9]{1,3}.){3}[0-9]{1,3})(:[0-9]{2,5})?(?/.*)?'; + } + + public async run(): Promise { + const restServer: PAIJobRestServer = component.get(PAIJobRestServer); + await restServer.start(); + this.log.info(`PAI Training service rest server listening on: ${restServer.endPoint}`); + while (!this.stopping) { + await this.paiJobCollector.updateTrialStatusFromPAI(this.paiToken, this.paiClusterConfig); + await delay(3000); + } + } + + public async listTrialJobs(): Promise { + const jobs: TrialJobDetail[] = []; + + this.trialJobsMap.forEach(async (value: PAITrialJobDetail, key: string) => { + if (value.form.jobType === 'TRIAL') { + jobs.push(await this.getTrialJob(key)); + } + }); + + return Promise.resolve(jobs); + } + + public getTrialJob(trialJobId: string): Promise { + if(!this.paiClusterConfig) { + throw new Error('PAI Cluster config is not initialized'); + } + + const paiTrialJob: PAITrialJobDetail | undefined = this.trialJobsMap.get(trialJobId); + + if (!paiTrialJob) { + return Promise.reject(`trial job ${trialJobId} not found`) + } + + return Promise.resolve(paiTrialJob); + } + + public addTrialJobMetricListener(listener: (metric: TrialJobMetric) => void) { + this.metricsEmitter.on('metric', listener); + } + + public removeTrialJobMetricListener(listener: (metric: TrialJobMetric) => void) { + this.metricsEmitter.off('metric', listener); + } + + public async submitTrialJob(form: JobApplicationForm): Promise { + const deferred : Deferred = new Deferred(); + if(!this.paiClusterConfig) { + throw new Error('PAI Cluster config is not initialized'); + } + if (!this.paiTrialConfig) { + throw new Error('trial config is not initialized'); + } + if (!this.paiToken) { + throw new Error('PAI token is not initialized'); + } + + if(!this.hdfsBaseDir){ + throw new Error('hdfsBaseDir is not initialized'); + } + + if(!this.hdfsOutputHost){ + throw new Error('hdfsOutputHost is not initialized'); + } + + this.log.info(`submitTrialJob: form: ${JSON.stringify(form)}`); + + const trialJobId: string = uniqueString(5); + //TODO: use HDFS working folder instead + const trialWorkingFolder: string = path.join(this.expRootDir, 'trials', trialJobId); + + const trialLocalTempFolder: string = path.join(getExperimentRootDir(), 'trials-local', trialJobId); + //create tmp trial working folder locally. + await cpp.exec(`mkdir -p ${path.dirname(trialLocalTempFolder)}`); + await cpp.exec(`cp -r ${this.paiTrialConfig.codeDir} ${trialLocalTempFolder}`); + + const runScriptContent : string = PAI_INSTALL_NNI_SHELL_FORMAT; + // Write NNI installation file to local tmp files + await fs.promises.writeFile(path.join(trialLocalTempFolder, 'install_nni.sh'), runScriptContent, { encoding: 'utf8' }); + + // Write file content ( parameter.cfg ) to local tmp folders + const trialForm : TrialJobApplicationForm = (form) + if(trialForm) { + await fs.promises.writeFile(path.join(trialLocalTempFolder, 'parameter.cfg'), trialForm.hyperParameters, { encoding: 'utf8' }); + } + + // Step 1. Prepare PAI job configuration + const paiJobName : string = `nni_exp_${this.experimentId}_trial_${trialJobId}`; + const hdfsCodeDir : string = path.join(this.expRootDir, trialJobId); + + const hdfsOutputDir : string = path.join(this.hdfsBaseDir, this.experimentId, trialJobId); + const hdfsLogPath : string = String.Format( + PAI_LOG_PATH_FORMAT, + this.hdfsOutputHost, + hdfsOutputDir); + + const trialJobDetail: PAITrialJobDetail = new PAITrialJobDetail( + trialJobId, + 'WAITING', + paiJobName, + Date.now(), + trialWorkingFolder, + form, + hdfsLogPath); + this.trialJobsMap.set(trialJobId, trialJobDetail); + + const nniPaiTrialCommand : string = String.Format( + PAI_TRIAL_COMMAND_FORMAT, + // PAI will copy job's codeDir into /root directory + `/root/${trialJobId}`, + `/root/${trialJobId}/nnioutput`, + trialJobId, + this.experimentId, + this.paiTrialConfig.command, + getIPV4Address(), + hdfsOutputDir, + this.hdfsOutputHost, + this.paiClusterConfig.userName + ).replace(/\r\n|\n|\r/gm, ''); + + console.log(`nniPAItrial command is ${nniPaiTrialCommand.trim()}`); + const paiTaskRoles : PAITaskRole[] = [new PAITaskRole('nni_trail_' + trialJobId, + // Task role number + 1, + // Task CPU number + this.paiTrialConfig.cpuNum, + // Task memory + this.paiTrialConfig.memoryMB, + // Task GPU number + this.paiTrialConfig.gpuNum, + // Task command + nniPaiTrialCommand)]; + + const paiJobConfig : PAIJobConfig = new PAIJobConfig( + // Job name + paiJobName, + // Docker image + this.paiTrialConfig.image, + // dataDir + this.paiTrialConfig.dataDir, + // outputDir + this.paiTrialConfig.outputDir, + // codeDir + `$PAI_DEFAULT_FS_URI${hdfsCodeDir}`, + // TODO: Add Virutal Cluster + // PAI Task roles + paiTaskRoles); + + // Step 2. Upload code files in codeDir onto HDFS + try { + await HDFSClientUtility.copyDirectoryToHdfs(trialLocalTempFolder, hdfsCodeDir, this.hdfsClient); + } catch (error) { + this.log.error(`PAI Training service: copy ${this.paiTrialConfig.codeDir} to HDFS ${hdfsCodeDir} failed, error is ${error}`); + throw new Error(error.message); + } + + // Step 3. Submit PAI job via Rest call + // Refer https://github.com/Microsoft/pai/blob/master/docs/rest-server/API.md for more detail about PAI Rest API + const submitJobRequest: request.Options = { + uri: `http://${this.paiClusterConfig.host}:9186/api/v1/jobs`, + method: 'POST', + json: true, + body: paiJobConfig, + headers: { + "Content-Type": "application/json", + "Authorization": 'Bearer ' + this.paiToken + } + }; + request(submitJobRequest, (error: Error, response: request.Response, body: any) => { + if (error || response.statusCode >= 400) { + this.log.error(`PAI Training service: Submit trial ${trialJobId} to PAI Cluster failed!`); + trialJobDetail.status = 'FAILED'; + deferred.reject(error ? error.message : 'Submit trial failed, http code: ' + response.statusCode); + } else { + trialJobDetail.submitTime = Date.now(); + deferred.resolve(trialJobDetail); + } + }); + + return deferred.promise; + } + + public updateTrialJob(trialJobId: string, form: JobApplicationForm): Promise { + throw new MethodNotImplementedError(); + } + + public get isMultiPhaseJobSupported(): boolean { + return false; + } + + public cancelTrialJob(trialJobId: string): Promise { + const trialJobDetail : PAITrialJobDetail | undefined = this.trialJobsMap.get(trialJobId); + const deferred : Deferred = new Deferred(); + if(!trialJobDetail) { + this.log.error(`cancelTrialJob: trial job id ${trialJobId} not found`); + return Promise.reject(); + } + + if(!this.paiClusterConfig) { + throw new Error('PAI Cluster config is not initialized'); + } + if (!this.paiToken) { + throw new Error('PAI token is not initialized'); + } + + const stopJobRequest: request.Options = { + uri: `http://${this.paiClusterConfig.host}:9186/api/v1/jobs/${trialJobDetail.paiJobName}/executionType`, + method: 'PUT', + json: true, + body: {'value' : 'STOP'}, + headers: { + "Content-Type": "application/json", + "Authorization": 'Bearer ' + this.paiToken + } + }; + request(stopJobRequest, (error: Error, response: request.Response, body: any) => { + if (error || response.statusCode >= 400) { + this.log.error(`PAI Training service: stop trial ${trialJobId} to PAI Cluster failed!`); + deferred.reject(error ? error.message : 'Stop trial failed, http code: ' + response.statusCode); + } else { + deferred.resolve(); + } + }); + + return deferred.promise; + } + + public async setClusterMetadata(key: string, value: string): Promise { + const deferred : Deferred = new Deferred(); + + switch (key) { + case TrialConfigMetadataKey.PAI_CLUSTER_CONFIG: + //TODO: try catch exception when setting up HDFS client and get PAI token + this.paiClusterConfig = JSON.parse(value); + + this.hdfsClient = WebHDFS.createClient({ + user: this.paiClusterConfig.userName, + port: 50070, + host: this.paiClusterConfig.host + }); + + // Get PAI authentication token + const authentication_req: request.Options = { + uri: `http://${this.paiClusterConfig.host}:9186/api/v1/token`, + method: 'POST', + json: true, + body: { + username: this.paiClusterConfig.userName, + password: this.paiClusterConfig.passWord + } + }; + + request(authentication_req, (error: Error, response: request.Response, body: any) => { + if (error) { + this.log.error(`Get PAI token failed: ${error.message}`); + deferred.reject(new Error(`Get PAI token failed: ${error.message}`)); + } else { + if(response.statusCode !== 200){ + this.log.error(`Get PAI token failed: get PAI Rest return code ${response.statusCode}`); + deferred.reject(new Error(`Get PAI token failed, please check paiConfig username or password`)); + } + this.paiToken = body.token; + + deferred.resolve(); + } + }); + break; + case TrialConfigMetadataKey.TRIAL_CONFIG: + if (!this.paiClusterConfig){ + this.log.error('pai cluster config is not initialized'); + deferred.reject(new Error('pai cluster config is not initialized')); + break; + } + this.paiTrialConfig = JSON.parse(value); + //paiTrialConfig.outputDir could be null if it is not set in nnictl + if(this.paiTrialConfig.outputDir === undefined || this.paiTrialConfig.outputDir === null){ + this.paiTrialConfig.outputDir = String.Format( + PAI_OUTPUT_DIR_FORMAT, + this.paiClusterConfig.host + ).replace(/\r\n|\n|\r/gm, ''); + } + + const hdfsDirContent = this.paiTrialConfig.outputDir.match(this.hdfsDirPattern); + + if(hdfsDirContent === null) { + throw new Error('Trial outputDir format Error'); + } + const groups = hdfsDirContent.groups; + if(groups === undefined) { + throw new Error('Trial outputDir format Error'); + } + + this.hdfsOutputHost = groups['host']; + this.hdfsBaseDir = groups['baseDir']; + if(this.hdfsBaseDir === undefined) { + this.hdfsBaseDir = "/"; + } + + const hdfsClient = WebHDFS.createClient({ + user: this.paiClusterConfig.userName, + port: 50070, + host: this.hdfsOutputHost + }); + + try { + const exist : boolean = await HDFSClientUtility.pathExists("/", hdfsClient); + if(!exist) { + deferred.reject(new Error(`Please check hdfsOutputDir host!`)); + } + } catch(error) { + deferred.reject(new Error(`HDFS encounters problem, error is ${error}. Please check hdfsOutputDir host!`)); + } + + deferred.resolve(); + break; + default: + //Reject for unknown keys + throw new Error(`Uknown key: ${key}`); + } + + return deferred.promise; + } + + public getClusterMetadata(key: string): Promise { + const deferred : Deferred = new Deferred(); + + deferred.resolve(); + return deferred.promise; + } + + public async cleanUp(): Promise { + this.stopping = true; + + const deferred : Deferred = new Deferred(); + const restServer: PAIJobRestServer = component.get(PAIJobRestServer); + try { + await restServer.stop(); + deferred.resolve(); + this.log.info('PAI Training service rest server stopped successfully.'); + } catch (error) { + this.log.error(`PAI Training service rest server stopped failed, error: ${error.message}`); + deferred.reject(error); + } + + return deferred.promise; + } + + public get MetricsEmitter() : EventEmitter { + return this.metricsEmitter; + } +} + +export { PAITrainingService } \ No newline at end of file diff --git a/src/nni_manager/training_service/pai/paiTrialConfig.ts b/src/nni_manager/training_service/pai/paiTrialConfig.ts new file mode 100644 index 0000000000..583db9e725 --- /dev/null +++ b/src/nni_manager/training_service/pai/paiTrialConfig.ts @@ -0,0 +1,39 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import {TrialConfig} from '../common/trialConfig' + +export class PAITrialConfig extends TrialConfig{ + public readonly cpuNum: number; + public readonly memoryMB: number; + public readonly image: string; + public readonly dataDir: string; + public readonly outputDir: string; + + constructor(command : string, codeDir : string, gpuNum : number, cpuNum: number, memoryMB: number, image: string, dataDir: string, outputDir: string) { + super(command, codeDir, gpuNum); + this.cpuNum = cpuNum; + this.memoryMB = memoryMB; + this.image = image; + this.dataDir = dataDir; + this.outputDir = outputDir; + } +} \ No newline at end of file diff --git a/src/nni_manager/training_service/remote_machine/metricsCollector.ts b/src/nni_manager/training_service/remote_machine/metricsCollector.ts index 3e346e7000..eb59a51d99 100644 --- a/src/nni_manager/training_service/remote_machine/metricsCollector.ts +++ b/src/nni_manager/training_service/remote_machine/metricsCollector.ts @@ -25,7 +25,8 @@ import * as path from 'path'; import { Client } from 'ssh2'; import { getLogger, Logger } from '../../common/log'; import { TrialJobStatus, TrialJobDetail } from '../../common/trainingService'; -import { JobMetrics, RemoteCommandResult, RemoteMachineMeta, RemoteMachineTrialJobDetail } from './remoteMachineData'; +import { JobMetrics } from '../common/jobMetrics'; +import { RemoteCommandResult, RemoteMachineMeta, RemoteMachineTrialJobDetail } from './remoteMachineData'; import { SSHClientUtility } from './sshClientUtility'; export class MetricsCollector { diff --git a/src/nni_manager/training_service/remote_machine/remoteMachineData.ts b/src/nni_manager/training_service/remote_machine/remoteMachineData.ts index 1e52458790..0cd3a028dc 100644 --- a/src/nni_manager/training_service/remote_machine/remoteMachineData.ts +++ b/src/nni_manager/training_service/remote_machine/remoteMachineData.ts @@ -65,21 +65,6 @@ export class RemoteCommandResult { } } -// tslint:disable-next-line:max-classes-per-file -export class JobMetrics { - public readonly jobId: string; - public readonly metrics: string[]; - public readonly jobStatus: TrialJobStatus; - public readonly endTimestamp: number; - - constructor(jobId : string, metrics : string[], jobStatus : TrialJobStatus, endTimestamp : number) { - this.jobId = jobId; - this.metrics = metrics; - this.jobStatus = jobStatus; - this.endTimestamp = endTimestamp; - } -} - /** * RemoteMachineTrialJobDetail */ @@ -121,7 +106,7 @@ export enum ScheduleResultType { REQUIRE_EXCEED_TOTAL } -export const REMOTEMACHINERUNSHELLFORMAT: string = +export const REMOTEMACHINE_RUN_SHELL_FORMAT: string = `#!/bin/bash export NNI_PLATFORM=remote NNI_SYS_DIR={0} NNI_TRIAL_JOB_ID={1} NNI_OUTPUT_DIR={0} cd $NNI_SYS_DIR @@ -129,7 +114,7 @@ echo $$ >{2} eval {3}{4} 2>{5} echo $? \`date +%s%3N\` >{6}`; -export const HOSTJOBSHELLFORMAT: string = +export const HOST_JOB_SHELL_FORMAT: string = `#!/bin/bash cd {0} echo $$ >{1} diff --git a/src/nni_manager/training_service/remote_machine/remoteMachineTrainingService.ts b/src/nni_manager/training_service/remote_machine/remoteMachineTrainingService.ts index 772b93ff5d..e1cff16f22 100644 --- a/src/nni_manager/training_service/remote_machine/remoteMachineTrainingService.ts +++ b/src/nni_manager/training_service/remote_machine/remoteMachineTrainingService.ts @@ -43,8 +43,8 @@ import { TrialConfigMetadataKey } from '../common/trialConfigMetadataKey'; import { GPUScheduler } from './gpuScheduler'; import { MetricsCollector } from './metricsCollector'; import { - HOSTJOBSHELLFORMAT, RemoteCommandResult, RemoteMachineMeta, - REMOTEMACHINERUNSHELLFORMAT, RemoteMachineScheduleInfo, RemoteMachineScheduleResult, + HOST_JOB_SHELL_FORMAT, RemoteCommandResult, RemoteMachineMeta, + REMOTEMACHINE_RUN_SHELL_FORMAT, RemoteMachineScheduleInfo, RemoteMachineScheduleResult, RemoteMachineTrialJobDetail, ScheduleResultType } from './remoteMachineData'; import { SSHClientUtility } from './sshClientUtility'; @@ -427,7 +427,7 @@ class RemoteMachineTrainingService implements TrainingService { // RemoteMachineRunShellFormat is the run shell format string, // See definition in remoteMachineData.ts const runScriptContent: string = String.Format( - REMOTEMACHINERUNSHELLFORMAT, + REMOTEMACHINE_RUN_SHELL_FORMAT, trialWorkingFolder, trialJobId, path.join(trialWorkingFolder, '.nni', 'jobpid'), @@ -470,7 +470,7 @@ class RemoteMachineTrainingService implements TrainingService { await cpp.exec(`mkdir -p ${localDir}`); await SSHClientUtility.remoteExeCommand(`mkdir -p ${remoteDir}`, sshClient); const runScriptContent: string = String.Format( - HOSTJOBSHELLFORMAT, remoteDir, path.join(remoteDir, 'jobpid'), form.cmd, path.join(remoteDir, 'code') + HOST_JOB_SHELL_FORMAT, remoteDir, path.join(remoteDir, 'jobpid'), form.cmd, path.join(remoteDir, 'code') ); await fs.promises.writeFile(path.join(localDir, 'run.sh'), runScriptContent, { encoding: 'utf8' }); await SSHClientUtility.copyFileToRemote( diff --git a/src/nni_manager/training_service/test/hdfsClientUtility.test.ts b/src/nni_manager/training_service/test/hdfsClientUtility.test.ts new file mode 100644 index 0000000000..b8cf30e83a --- /dev/null +++ b/src/nni_manager/training_service/test/hdfsClientUtility.test.ts @@ -0,0 +1,143 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; +import * as chai from 'chai'; +import * as chaiAsPromised from 'chai-as-promised'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import * as tmp from 'tmp'; +import { cleanupUnitTest, prepareUnitTest, uniqueString } from '../../common/utils'; +import { HDFSClientUtility } from '../pai/hdfsClientUtility'; + +var WebHDFS = require('webhdfs'); +var rmdir = require('rmdir'); + +describe('WebHDFS', function () { + /* + To enable web HDFS client unit test, HDFS information needs to be configured in: + Default/.vscode/hdfsInfo.json, whose content looks like: + { + "user": "user1", + "port": 50070, + "host": "10.0.0.0" + } + */ + let skip: boolean = false; + let testHDFSInfo: any; + let hdfsClient: any; + try { + testHDFSInfo = JSON.parse(fs.readFileSync('../../.vscode/hdfsInfo.json', 'utf8')); + console.log(testHDFSInfo); + hdfsClient = WebHDFS.createClient({ + user: testHDFSInfo.user, + port: testHDFSInfo.port, + host: testHDFSInfo.host + }); + } catch (err) { + console.log('Please configure rminfo.json to enable remote machine unit test.'); + skip = true; + } + + before(() => { + chai.should(); + chai.use(chaiAsPromised); + tmp.setGracefulCleanup(); + prepareUnitTest(); + }); + + after(() => { + cleanupUnitTest(); + }); + + it('Test HDFS utility path functions', async () => { + if (skip) { + return; + } + const testPath : string = '/nni_unittest_' + uniqueString(6); + let exists : boolean = await HDFSClientUtility.pathExists(testPath, hdfsClient); + // The new random named path is expected to not exist + chai.expect(exists).to.be.equals(false); + + const mkdirResult : boolean = await HDFSClientUtility.mkdir(testPath, hdfsClient); + // Mkdir is expected to be successful + chai.expect(mkdirResult).to.be.equals(true); + + exists = await HDFSClientUtility.pathExists(testPath, hdfsClient); + // The newly created path is expected to exist + chai.expect(exists).to.be.equals(true); + + const deleteResult : boolean = await HDFSClientUtility.deletePath(testPath, hdfsClient); + // Delete path is expected to be successful + chai.expect(deleteResult).to.be.equals(true); + + exists = await HDFSClientUtility.pathExists(testPath, hdfsClient); + // The deleted path is not expected to exist + chai.expect(exists).to.be.equals(false); + }); + + it('Test HDFS utility copyFileToHdfs', async() => { + if (skip) { + return; + } + // Prepare local directory and files + const tmpLocalDirectoryPath : string = path.join(os.tmpdir(), 'nni_unittest_dir_' + uniqueString(6)); + const tmpDataFilePath : string = path.join(tmpLocalDirectoryPath, 'file_' + uniqueString(6)); + const testFileData : string = 'TestContent123'; + fs.mkdirSync(tmpLocalDirectoryPath); + fs.writeFileSync(tmpDataFilePath, testFileData); + + const testHDFSFilePath : string = '/nni_unittest_' + uniqueString(6); + let exists : boolean = await HDFSClientUtility.pathExists(testHDFSFilePath, hdfsClient); + // The new random named path is expected to not exist + chai.expect(exists).to.be.equals(false); + + await HDFSClientUtility.copyFileToHdfs(tmpDataFilePath, testHDFSFilePath, hdfsClient); + exists = await HDFSClientUtility.pathExists(testHDFSFilePath, hdfsClient); + // After copy local file to HDFS, the target file path in HDFS is expected to exist + chai.expect(exists).to.be.equals(true); + + const buffer : Buffer = await HDFSClientUtility.readFileFromHDFS(testHDFSFilePath, hdfsClient); + const actualFileData : string = buffer.toString('utf8'); + // The file content read from HDFS is expected to equal to the content of local file + chai.expect(actualFileData).to.be.equals(testFileData); + + const testHDFSDirPath : string = path.join('/nni_unittest_' + uniqueString(6) + '_dir'); + + await HDFSClientUtility.copyDirectoryToHdfs(tmpLocalDirectoryPath, testHDFSDirPath, hdfsClient); + + const files : any[] = await HDFSClientUtility.readdir(testHDFSDirPath, hdfsClient); + + // Expected file count under HDFS target directory is 1 + chai.expect(files.length).to.be.equals(1); + + // Expected file name under HDFS target directory is equal to local file name + chai.expect(files[0].pathSuffix).to.be.equals(path.parse(tmpDataFilePath).base); + + // Cleanup + rmdir(tmpLocalDirectoryPath); + + let deleteRestult : boolean = await HDFSClientUtility.deletePath(testHDFSFilePath, hdfsClient); + chai.expect(deleteRestult).to.be.equals(true); + + deleteRestult = await HDFSClientUtility.deletePath(testHDFSDirPath, hdfsClient); + chai.expect(deleteRestult).to.be.equals(true); + }); +}); \ No newline at end of file diff --git a/src/nni_manager/training_service/test/paiTrainingService.test.ts b/src/nni_manager/training_service/test/paiTrainingService.test.ts new file mode 100644 index 0000000000..4294e4ddc1 --- /dev/null +++ b/src/nni_manager/training_service/test/paiTrainingService.test.ts @@ -0,0 +1,95 @@ +/** + * Copyright (c) Microsoft Corporation + * All rights reserved. + * + * MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and + * to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +'use strict'; + +import * as chai from 'chai'; +import * as chaiAsPromised from 'chai-as-promised'; +import * as fs from 'fs'; +import * as tmp from 'tmp'; +import * as component from '../../common/component'; +import { cleanupUnitTest, prepareUnitTest } from '../../common/utils'; +import { TrialConfigMetadataKey } from '../common/trialConfigMetadataKey'; +import { PAITrainingService } from '../pai/paiTrainingService'; + +// TODO: copy mockedTrail.py to local folder +const localCodeDir: string = tmp.dirSync().name +const mockedTrialPath: string = './training_service/test/mockedTrial.py' +fs.copyFileSync(mockedTrialPath, localCodeDir + '/mockedTrial.py') + +describe('Unit Test for PAITrainingService', () => { + let skip: boolean = false; + let testPaiClusterInfo: any; + let paiCluster: any; + let paiTrialConfig : any; + try { + testPaiClusterInfo = JSON.parse(fs.readFileSync('../../.vscode/paiCluster.json', 'utf8')); + paiCluster = `{\"userName\":\"${testPaiClusterInfo.userName}\",\"passWord\":\"${testPaiClusterInfo.passWord}\",\"host\":\"${testPaiClusterInfo.host}\"}`; + paiTrialConfig = `{\"command\":\"echo hello && ls\",\"codeDir\":\"/home/desy/nni/examples/trials/mnist",\"gpuNum\":\"1\", +\"cpuNum\":\"1\",\"memoryMB\":\"8196\",\"image\":\"openpai/pai.example.tensorflow\",\"dataDir\":\"\",\"outputDir\":\"\"}`; + } catch (err) { + console.log('Please configure rminfo.json to enable remote machine unit test.'); + skip = true; + } + + let paiTrainingService: PAITrainingService; + + console.log(tmp.dirSync().name); + + before(() => { + chai.should(); + chai.use(chaiAsPromised); + prepareUnitTest(); + }); + + after(() => { + cleanupUnitTest(); + }); + + beforeEach(() => { + if (skip) { + return; + } + paiTrainingService = component.get(PAITrainingService); + paiTrainingService.run(); + }); + + afterEach(() => { + if (skip) { + return; + } + paiTrainingService.cleanUp(); + }); + + it('Get PAI token', async () => { + if (skip) { + return; + } + console.log(`paiCluster is ${paiCluster}`) + await paiTrainingService.setClusterMetadata(TrialConfigMetadataKey.PAI_CLUSTER_CONFIG, paiCluster); + await paiTrainingService.setClusterMetadata(TrialConfigMetadataKey.TRIAL_CONFIG, paiTrialConfig); + try { + const trialDetail = await paiTrainingService.submitTrialJob({jobType : 'TRIAL'}); + chai.expect(trialDetail.status).to.be.equals('WAITING'); + } catch(error) { + console.log('Submit job failed:' + error); + chai.assert(error) + } + }); +}); \ No newline at end of file diff --git a/src/nni_manager/yarn.lock b/src/nni_manager/yarn.lock index 8611053414..b568f7d179 100644 --- a/src/nni_manager/yarn.lock +++ b/src/nni_manager/yarn.lock @@ -5,6 +5,7 @@ "@types/body-parser@*": version "1.17.0" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" + integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== dependencies: "@types/connect" "*" "@types/node" "*" @@ -12,30 +13,36 @@ "@types/caseless@*": version "0.12.1" resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a" + integrity sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A== "@types/chai-as-promised@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz#010b04cde78eacfb6e72bfddb3e58fe23c2e78b9" + integrity sha512-MFiW54UOSt+f2bRw8J7LgQeIvE/9b4oGvwU7XW30S9QGAiHGnU/fmiOprsyMkdmH2rl8xSPc0/yrQw8juXU6bQ== dependencies: "@types/chai" "*" "@types/chai@*", "@types/chai@^4.1.4": version "4.1.4" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.4.tgz#5ca073b330d90b4066d6ce18f60d57f2084ce8ca" + integrity sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g== "@types/connect@*": version "3.4.32" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== dependencies: "@types/node" "*" "@types/events@*": version "1.2.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + integrity sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA== "@types/express-serve-static-core@*": version "4.16.0" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" + integrity sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w== dependencies: "@types/events" "*" "@types/node" "*" @@ -44,6 +51,7 @@ "@types/express@^4.16.0": version "4.16.0" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" + integrity sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "*" @@ -52,32 +60,39 @@ "@types/form-data@*": version "2.2.1" resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e" + integrity sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ== dependencies: "@types/node" "*" "@types/mime@*": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA== "@types/mocha@^5.2.5": version "5.2.5" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073" + integrity sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww== "@types/node@*": version "10.5.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.2.tgz#f19f05314d5421fe37e74153254201a7bf00a707" + integrity sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q== "@types/node@^10.5.5": version "10.5.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.5.tgz#8e84d24e896cd77b0d4f73df274027e3149ec2ba" + integrity sha512-6Qnb1gXbp3g1JX9QVJj3A6ORzc9XCyhokxUKaoonHgNXcQhmk8adhotxfkeK8El9TnFeUuH72yI6jQ5nDJKS6w== "@types/range-parser@*": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" + integrity sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw== "@types/request@^2.47.1": version "2.47.1" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.47.1.tgz#25410d3afbdac04c91a94ad9efc9824100735824" + integrity sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g== dependencies: "@types/caseless" "*" "@types/form-data" "*" @@ -87,70 +102,82 @@ "@types/rx-core-binding@*": version "4.0.4" resolved "https://registry.yarnpkg.com/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz#d969d32f15a62b89e2862c17b3ee78fe329818d3" + integrity sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ== dependencies: "@types/rx-core" "*" "@types/rx-core@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-core/-/rx-core-4.0.3.tgz#0b3354b1238cedbe2b74f6326f139dbc7a591d60" + integrity sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA= "@types/rx-lite-aggregates@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz#6efb2b7f3d5f07183a1cb2bd4b1371d7073384c2" + integrity sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg== dependencies: "@types/rx-lite" "*" "@types/rx-lite-async@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz#27fbf0caeff029f41e2d2aae638b05e91ceb600c" + integrity sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw== dependencies: "@types/rx-lite" "*" "@types/rx-lite-backpressure@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz#05abb19bdf87cc740196c355e5d0b37bb50b5d56" + integrity sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA== dependencies: "@types/rx-lite" "*" "@types/rx-lite-coincidence@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz#80bd69acc4054a15cdc1638e2dc8843498cd85c0" + integrity sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ== dependencies: "@types/rx-lite" "*" "@types/rx-lite-experimental@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz#c532f5cbdf3f2c15da16ded8930d1b2984023cbd" + integrity sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0= dependencies: "@types/rx-lite" "*" "@types/rx-lite-joinpatterns@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz#f70fe370518a8432f29158cc92ffb56b4e4afc3e" + integrity sha1-9w/jcFGKhDLykVjMkv+1a05K/D4= dependencies: "@types/rx-lite" "*" "@types/rx-lite-testing@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz#21b19d11f4dfd6ffef5a9d1648e9c8879bfe21e9" + integrity sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek= dependencies: "@types/rx-lite-virtualtime" "*" "@types/rx-lite-time@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz#0eda65474570237598f3448b845d2696f2dbb1c4" + integrity sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw== dependencies: "@types/rx-lite" "*" "@types/rx-lite-virtualtime@*": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz#4b30cacd0fe2e53af29f04f7438584c7d3959537" + integrity sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg== dependencies: "@types/rx-lite" "*" "@types/rx-lite@*": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/rx-lite/-/rx-lite-4.0.5.tgz#b3581525dff69423798daa9a0d33c1e66a5e8c4c" + integrity sha512-KZk5XTR1dm/kNgBx8iVpjno6fRYtAUQWBOmj+O8j724+nk097sz4fOoHJNpCkOJUtHUurZlJC7QvSFCZHbkC+w== dependencies: "@types/rx-core" "*" "@types/rx-core-binding" "*" @@ -158,6 +185,7 @@ "@types/rx@^4.1.1": version "4.1.1" resolved "https://registry.yarnpkg.com/@types/rx/-/rx-4.1.1.tgz#598fc94a56baed975f194574e0f572fd8e627a48" + integrity sha1-WY/JSla67ZdfGUV04PVy/Y5iekg= dependencies: "@types/rx-core" "*" "@types/rx-core-binding" "*" @@ -175,6 +203,7 @@ "@types/serve-static@*": version "1.13.2" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" + integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== dependencies: "@types/express-serve-static-core" "*" "@types/mime" "*" @@ -182,6 +211,7 @@ "@types/sqlite3@^3.1.3": version "3.1.3" resolved "https://registry.yarnpkg.com/@types/sqlite3/-/sqlite3-3.1.3.tgz#580d547203b8ad6e11aa6a6769c8ca5d7e197d13" + integrity sha512-BgGToABnI/8/HnZtZz2Qac6DieU2Dm/j3rtbMmUlDVo4T/uLu8cuVfU/n2UkHowiiwXb6/7h/CmSqBIVKgcTMA== dependencies: "@types/events" "*" "@types/node" "*" @@ -189,12 +219,14 @@ "@types/ssh2-streams@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/ssh2-streams/-/ssh2-streams-0.1.2.tgz#7aa18b8c2450f17699e9ea18a76efc838188d58d" + integrity sha1-eqGLjCRQ8XaZ6eoYp278g4GI1Y0= dependencies: "@types/node" "*" "@types/ssh2@^0.5.35": version "0.5.35" resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-0.5.35.tgz#d6e60d59b7fc22db10abf4730aa7448babde7e3b" + integrity sha1-1uYNWbf8ItsQq/RzCqdEi6vefjs= dependencies: "@types/node" "*" "@types/ssh2-streams" "*" @@ -202,31 +234,37 @@ "@types/stream-buffers@^3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/stream-buffers/-/stream-buffers-3.0.2.tgz#b73bfcceae39ecb259750b44ef38a36cfc20e370" + integrity sha1-tzv8zq457LJZdQtE7zijbPwg43A= dependencies: "@types/node" "*" "@types/tmp@^0.0.33": version "0.0.33" resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.33.tgz#1073c4bc824754ae3d10cfab88ab0237ba964e4d" + integrity sha1-EHPEvIJHVK49EM+riKsCN7qWTk0= "@types/tough-cookie@*": version "2.3.3" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.3.tgz#7f226d67d654ec9070e755f46daebf014628e9d9" + integrity sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ== abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= dependencies: mime-types "~2.1.18" negotiator "0.6.1" -ajv@^5.1.0: +ajv@^5.1.0, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -236,28 +274,34 @@ ajv@^5.1.0: ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -265,54 +309,71 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asn1@~0.2.0, asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assertion-error@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + integrity sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w== + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -321,16 +382,19 @@ babel-code-frame@^6.22.0: balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" body-parser@1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= dependencies: bytes "3.0.0" content-type "~1.0.4" @@ -346,12 +410,14 @@ body-parser@1.18.2: boom@2.6.x: version "2.6.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.6.1.tgz#4dc8ef9b6dfad9c43bbbfbe71fa4c21419f22753" + integrity sha1-Tcjvm2362cQ7u/vnH6TCFBnyJ1M= dependencies: hoek "2.x.x" brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -359,36 +425,49 @@ brace-expansion@^1.1.7: browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-stream-reader@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-stream-reader/-/buffer-stream-reader-0.1.1.tgz#ca8bf93631deedd8b8f8c3bb44991cc30951e259" + integrity sha1-yov5NjHe7di4+MO7RJkcwwlR4lk= builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= callsites@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/callsites/-/callsites-1.0.1.tgz#c14c24188ce8e1d6a030b4c3c942e6ba895b6a1a" + integrity sha1-wUwkGIzo4dagMLTDyULmuolbaho= caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chai-as-promised@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + integrity sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== dependencies: check-error "^1.0.2" chai@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= dependencies: assertion-error "^1.0.1" check-error "^1.0.1" @@ -400,6 +479,7 @@ chai@^4.1.2: chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -410,6 +490,7 @@ chalk@^1.1.3: chalk@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -418,10 +499,12 @@ chalk@^2.3.0: check-error@^1.0.1, check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= child-process-promise@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" + integrity sha1-RzChHvYQ+tRQuPIjx50x172tgHQ= dependencies: cross-spawn "^4.0.2" node-version "^1.0.0" @@ -430,70 +513,93 @@ child-process-promise@^2.2.1: chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE= co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= color-convert@^1.9.0: version "1.9.2" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + integrity sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg== dependencies: color-name "1.1.1" color-name@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + integrity sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok= combined-stream@1.0.6, combined-stream@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + integrity sha1-cj599ugBrFYTETp+RFqbactjKBg= + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== dependencies: delayed-stream "~1.0.0" commander@2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== commander@^2.12.1: version "2.16.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" + integrity sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cross-spawn@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= dependencies: lru-cache "^4.0.1" which "^1.2.9" @@ -501,96 +607,117 @@ cross-spawn@^4.0.2: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" debug@2.6.9, debug@^2.1.2: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" deep-eql@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= depd@~1.1.1, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= diff@3.5.0, diff@^3.1.0, diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= dependencies: jsbn "~0.1.0" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= express-joi-validator@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/express-joi-validator/-/express-joi-validator-2.0.0.tgz#24e26e6a8327f69985ed72588f00e295dc3e3234" + integrity sha1-JOJuaoMn9pmF7XJYjwDildw+MjQ= dependencies: boom "2.6.x" extend "2.0.x" @@ -599,6 +726,7 @@ express-joi-validator@^2.0.0: express@^4.16.3: version "4.16.3" resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM= dependencies: accepts "~1.3.5" array-flatten "1.1.1" @@ -634,30 +762,37 @@ express@^4.16.3: extend@2.0.x: version "2.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== -extend@~3.0.1: +extend@^3.0.0, extend@~3.0.1, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= finalhandler@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== dependencies: debug "2.6.9" encodeurl "~1.0.2" @@ -670,10 +805,12 @@ finalhandler@1.1.1: forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@~2.3.1: +form-data@~2.3.1, form-data@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk= dependencies: asynckit "^0.4.0" combined-stream "1.0.6" @@ -682,24 +819,29 @@ form-data@~2.3.1: forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== dependencies: minipass "^2.2.1" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -713,16 +855,19 @@ gauge@~2.7.3: get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" glob-parent@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -730,6 +875,7 @@ glob-parent@^3.0.0: glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -741,6 +887,7 @@ glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: globby@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -751,43 +898,60 @@ globby@^6.0.0: growl@1.10.5: version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= dependencies: ajv "^5.1.0" har-schema "^2.0.0" +har-validator@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA== + dependencies: + ajv "^5.3.0" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= dependencies: depd "1.1.1" inherits "2.0.3" @@ -797,6 +961,7 @@ http-errors@1.6.2: http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" inherits "2.0.3" @@ -806,6 +971,7 @@ http-errors@~1.6.2: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -814,22 +980,26 @@ http-signature@~1.2.0: iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== iconv-lite@^0.4.4: version "0.4.23" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== dependencies: safer-buffer ">= 2.1.2 < 3" ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -837,58 +1007,76 @@ inflight@^1.0.4: inherits@2, inherits@2.0.3, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== ipaddr.js@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + integrity sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs= is-extglob@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is@~0.2.6: + version "0.2.7" + resolved "http://registry.npmjs.org/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" + integrity sha1-OzSixI81mXLzUEKEkZOucmS2NWI= isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isemail@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" + integrity sha1-vgPfjMPineTSxd9lASY/H6RZXpo= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= joi@6.x.x: version "6.10.1" resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" + integrity sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY= dependencies: hoek "2.x.x" isemail "1.x.x" @@ -898,10 +1086,12 @@ joi@6.x.x: js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.7.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -909,22 +1099,27 @@ js-yaml@^3.7.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" @@ -934,6 +1129,7 @@ jsprim@^1.2.2: lru-cache@^4.0.1: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -941,50 +1137,73 @@ lru-cache@^4.0.1: make-error@^1.1.1: version "1.3.4" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" + integrity sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= mime-db@~1.35.0: version "1.35.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + integrity sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg== + +mime-db@~1.36.0: + version "1.36.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" + integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18: version "2.1.19" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + integrity sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw== dependencies: mime-db "~1.35.0" +mime-types@~2.1.19: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A== + dependencies: + mime-db "~1.36.0" + mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minipass@^2.2.1, minipass@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + integrity sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" @@ -992,18 +1211,21 @@ minipass@^2.2.1, minipass@^2.3.3: minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA== dependencies: minipass "^2.2.1" mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" mocha@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== dependencies: browser-stdout "1.3.1" commander "2.15.1" @@ -1020,18 +1242,22 @@ mocha@^5.2.0: moment@2.x.x: version "2.22.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= nan@~2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== needle@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" + integrity sha512-t/ZswCM9JTWjAdXS9VpvqhI2Ct2sL2MdY4fUXqGJaGBk13ge99ObqRksRTbBE56K+wxUXwwfZYOuZHifFW9q+Q== dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -1040,16 +1266,19 @@ needle@^2.2.1: negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= node-nvidia-smi@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-nvidia-smi/-/node-nvidia-smi-1.0.0.tgz#6aa57574540b2bed91c9a80218516ffa686e5ac7" + integrity sha1-aqV1dFQLK+2RyagCGFFv+mhuWsc= dependencies: xml2js "^0.4.17" node-pre-gyp@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -1065,10 +1294,27 @@ node-pre-gyp@^0.10.3: node-version@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" + integrity sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== + +node.extend@1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.0.8.tgz#bab04379f7383f4587990c9df07b6a7f65db772b" + integrity sha1-urBDefc4P0WHmQyd8Htqf2Xbdys= + dependencies: + is "~0.2.6" + object-keys "~0.4.0" + +node.flow@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/node.flow/-/node.flow-1.2.3.tgz#e1c44a82aeca8d78b458a77fb3dc642f2eba2649" + integrity sha1-4cRKgq7KjXi0WKd/s9xkLy66Jkk= + dependencies: + node.extend "1.0.8" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -1076,10 +1322,12 @@ nopt@^4.0.1: npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + integrity sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow== npm-packlist@^1.1.6: version "1.1.11" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -1087,6 +1335,7 @@ npm-packlist@^1.1.6: npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -1096,38 +1345,56 @@ npmlog@^4.0.2: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" @@ -1135,62 +1402,76 @@ osenv@^0.1.4: parent-module@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-0.1.0.tgz#b5292863a1e8c476ecf857e7d75c98920b24b8a6" + integrity sha1-tSkoY6HoxHbs+Ffn11yYkgskuKY= dependencies: callsites "^1.0.0" parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + integrity sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME= path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= pathval@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== promise-polyfill@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" + integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= proxy-addr@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + integrity sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ== dependencies: forwarded "~0.1.2" ipaddr.js "1.6.0" @@ -1198,26 +1479,37 @@ proxy-addr@~2.0.3: pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24: + version "1.1.29" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" + integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== -qs@~6.5.1: +qs@~6.5.1, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= raw-body@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= dependencies: bytes "3.0.0" http-errors "1.6.2" @@ -1227,6 +1519,7 @@ raw-body@2.3.2: rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -1236,6 +1529,7 @@ rc@^1.2.7: readable-stream@^2.0.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -1248,10 +1542,38 @@ readable-stream@^2.0.6: reflect-metadata@^0.1.10: version "0.1.12" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" + integrity sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A== + +request@^2.74.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" request@^2.87.0: version "2.87.0" resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -1277,6 +1599,7 @@ request@^2.87.0: require-glob@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/require-glob/-/require-glob-3.2.0.tgz#90bfe2c8efb4b9f972eb9a3f5e580832e04f64d3" + integrity sha1-kL/iyO+0ufly65o/XlgIMuBPZNM= dependencies: glob-parent "^3.0.0" globby "^6.0.0" @@ -1285,42 +1608,58 @@ require-glob@^3.2.0: resolve@^1.3.2: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== dependencies: path-parse "^1.0.5" rimraf@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== dependencies: glob "^7.0.5" +rmdir@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/rmdir/-/rmdir-1.2.0.tgz#4fe0357cb06168c258e73e968093dc4e8a0f3253" + integrity sha1-T+A1fLBhaMJY5z6WgJPcTooPMlM= + dependencies: + node.flow "1.2.3" + rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@>=0.6.0, sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== semver@^5.1.0, semver@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== dependencies: debug "2.6.9" depd "~1.1.2" @@ -1339,6 +1678,7 @@ send@0.16.2: serve-static@1.13.2: version "1.13.2" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" @@ -1348,22 +1688,27 @@ serve-static@1.13.2: set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= source-map-support@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" + integrity sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -1371,14 +1716,17 @@ source-map-support@^0.5.6: source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sqlite3@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.0.2.tgz#1bbeb68b03ead5d499e42a3a1b140064791c5a64" + integrity sha512-51ferIRwYOhzUEtogqOa/y9supADlAht98bF/gbIi6WkzRJX6Yioldxbzj1MV4yV+LgdKD/kkHwFTeFXOG4htA== dependencies: nan "~2.10.0" node-pre-gyp "^0.10.3" @@ -1387,6 +1735,7 @@ sqlite3@^4.0.2: ssh2-streams@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.2.1.tgz#9c9c9964be60e9644575af328677f64b1e5cbd79" + integrity sha512-3zCOsmunh1JWgPshfhKmBCL3lUtHPoh+a/cyQ49Ft0Q0aF7xgN06b76L+oKtFi0fgO57FLjFztb1GlJcEZ4a3Q== dependencies: asn1 "~0.2.0" semver "^5.1.0" @@ -1395,12 +1744,14 @@ ssh2-streams@~0.2.0: ssh2@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.6.1.tgz#5dde1a7394bb978b1f9c2f014affee2f5493bd40" + integrity sha512-fNvocq+xetsaAZtBG/9Vhh0GDjw1jQeW7Uq/DPh4fVrJd0XxSfXAqBjOGVk4o2jyWHvyC6HiaPFpfHlR12coDw== dependencies: ssh2-streams "~0.2.0" sshpk@^1.7.0: version "1.14.2" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg= dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -1416,22 +1767,27 @@ sshpk@^1.7.0: "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== stream-buffers@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" + integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== streamsearch@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -1440,6 +1796,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -1447,42 +1804,50 @@ string-width@^1.0.1: string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= supports-color@5.4.0, supports-color@^5.3.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== dependencies: has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= tail-stream@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/tail-stream/-/tail-stream-0.3.4.tgz#bc675a20e92732b1a6a7cc65d6be66f7817fd5c1" + integrity sha1-vGdaIOknMrGmp8xl1r5m94F/1cE= tar@^4: version "4.4.4" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" + integrity sha512-mq9ixIYfNF9SK0IS/h2HKMu8Q2iaCuhDDsZhdEag/FHv8fOaYld4vN7ouMgcSSt5WKZzPs8atclTcJm36OTh4w== dependencies: chownr "^1.0.1" fs-minipass "^1.2.5" @@ -1495,32 +1860,46 @@ tar@^4: tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" topo@1.x.x: version "1.1.0" resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" + integrity sha1-6ddRYV0buH3IZdsYL6HKCl71NtU= dependencies: hoek "2.x.x" tough-cookie@~2.3.3: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== + dependencies: + punycode "^1.4.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== dependencies: + psl "^1.1.24" punycode "^1.4.1" tree-kill@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" + integrity sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg== ts-deferred@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/ts-deferred/-/ts-deferred-1.0.4.tgz#58145ebaeef5b8f2a290b8cec3d060839f9489c7" + integrity sha1-WBReuu71uPKikLjOw9Bgg5+Uicc= ts-node@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.0.tgz#a94a13c75e5e1aa6b82814b84c68deb339ba7bff" + integrity sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q== dependencies: arrify "^1.0.0" buffer-from "^1.1.0" @@ -1534,16 +1913,19 @@ ts-node@^7.0.0: tslib@^1.8.0, tslib@^1.8.1: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tslint-microsoft-contrib@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.1.0.tgz#777c32d51aba16f4565e47aac749a1631176cd9f" + integrity sha512-p7xN6cN6y2REFT/11Xl4OAPdhPLHcsZk2IfA8rFS9wi3hhkY6Shz+yoJ61Z+GJ8L4TsRhIbG/09w3e1sdOHs9g== dependencies: tsutils "^2.12.1" tslint@^5.11.0: version "5.11.0" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" + integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0= dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" @@ -1561,26 +1943,31 @@ tslint@^5.11.0: tsutils@^2.12.1, tsutils@^2.27.2: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-detect@^4.0.0: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-is@~1.6.15, type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== dependencies: media-typer "0.3.0" mime-types "~2.1.18" @@ -1588,6 +1975,7 @@ type-is@~1.6.15, type-is@~1.6.16: typescript-ioc@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/typescript-ioc/-/typescript-ioc-1.2.4.tgz#21290097b163632de58a3abba7553daef8651f49" + integrity sha512-KO+isZO1tmhgKL5RWMU+AZvFGzyk0LnUMBcSLVm2Xo/iZlIyu/HD2o5vdg5kXJTJMs8otbDzOUsPt8/JFr96cw== dependencies: reflect-metadata "^0.1.10" require-glob "^3.2.0" @@ -1595,58 +1983,79 @@ typescript-ioc@^1.2.4: typescript-string-operations@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/typescript-string-operations/-/typescript-string-operations-1.3.1.tgz#461b886cc9ccd4dd16810b1f248b2e6f6580956b" + integrity sha512-DsT4kq8k3WT48EhdI/6DanReYGbX4Wg18z8vSeHH2wMfSFqdjiI40jrVABDH2WZ1RhCt7WoN/iY+LPhxrUHCqw== typescript@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" + integrity sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.1.0: +uuid@^3.1.0, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" +webhdfs@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webhdfs/-/webhdfs-1.2.0.tgz#c41b08ae33944a0220863bfd4b6719b9aaec1d37" + integrity sha512-h8D/NT7ruDMuGCdJNEJHJh8vDTEtZ5hBL+eRzXTq/INTd92LKOhsTCwlQI+8kTt79qPZq5O8ev7j/Y19VeYCHQ== + dependencies: + buffer-stream-reader "^0.1.1" + extend "^3.0.0" + request "^2.74.0" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= xml2js@^0.4.17: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== dependencies: sax ">=0.6.0" xmlbuilder "~9.0.1" @@ -1654,15 +2063,19 @@ xml2js@^0.4.17: xmlbuilder@~9.0.1: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= diff --git a/src/sdk/pynni/nni/README.md b/src/sdk/pynni/nni/README.md index 8c0c41278c..bfb752b7f1 100644 --- a/src/sdk/pynni/nni/README.md +++ b/src/sdk/pynni/nni/README.md @@ -1,20 +1,21 @@ -# How to use Tuner that NNI support? +# How to use Tuner that NNI supports? -For now, NNI could support tuner algorithm as following: +For now, NNI has supported the following tuner algorithms. Note that NNI installation only installs a subset of those algorithms, other algorithms should be installed through `nnictl package install` before you use them. For example, for SMAC the installation command is `nnictl package install --name=SMAC`. - TPE - Random Search - Anneal - Naive Evolution - - ENAS (on going) + - SMAC (to install through `nnictl`) + - ENAS (ongoing) + - Batch (ongoing) - - **1. Tuner algorithm introduction** + ## 1. Tuner algorithm introduction We will introduce some basic knowledge about tuner algorithm here. If you are an expert, you could skip this part and jump to how to use. -*1.1 TPE* +**TPE** The Tree-structured Parzen Estimator (TPE) is a sequential model-based optimization (SMBO) approach. SMBO methods sequentially construct models to approximate the performance of hyperparameters based on historical measurements, and then subsequently choose new hyperparameters to test based on this model. @@ -22,20 +23,31 @@ The TPE approach models P(x|y) and P(y) where x represents hyperparameters and y Comparing with other algorithm, TPE could be achieve better result when the number of trial experiment is small. Also TPE support continuous or discrete hyper-parameters. From a large amount of experiments, we could found that TPE is far better than Random Search. -*1.2 Random Search* +**Random Search** In [Random Search for Hyper-Parameter Optimization][2] show that Random Search might be surprsingly simple and effective. We suggests that we could use Random Search as basline when we have no knowledge about the prior distribution of hyper-parameters. -*1.3 Anneal* +**Anneal** -*1.4 Naive Evolution* +**Naive Evolution** + Naive Evolution comes from [Large-Scale Evolution of Image Classifiers][3]. Naive Evolution requir more experiments to works, but it's very simple and easily to expand new features. There are some tips for user: 1) large initial population could avoid to fall into local optimum 2) use some strategies to keep the deversity of population could be better. +**SMAC** + +[SMAC][4] is based on Sequential Model-Based Optimization (SMBO). It adapts the most prominent previously used model class (Gaussian stochastic process models) and introduces the model class of random forests to SMBO, in order to handle categorical parameters. The SMAC supported by nni is a wrapper on [the SMAC3 github repo][5]. + +Note that SMAC only supports a subset of the types in [search space spec](../../../../docs/SearchSpaceSpec.md), including `choice`, `randint`, `uniform`, `loguniform`, `quniform(q=1)`. + +**Batch** + +Batch allows users to simply provide several configurations (i.e., choices of hyper-parameters) for their trial code. After finishing all the configurations, the experiment is done. + - **2. How to use the tuner algorithm in NNI?** + ## 2. How to use the tuner algorithm in NNI? User only need to do one thing: choose a Tuner```config.yaml```. Here is an example: @@ -61,4 +73,6 @@ There are two filed you need to set: [1]: https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf [2]: http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf - [3]: https://arxiv.org/pdf/1703.01041.pdf \ No newline at end of file + [3]: https://arxiv.org/pdf/1703.01041.pdf + [4]: https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf + [5]: https://github.com/automl/SMAC3 diff --git a/src/sdk/pynni/nni/__main__.py b/src/sdk/pynni/nni/__main__.py index e3a39bac96..206cd1f5c1 100644 --- a/src/sdk/pynni/nni/__main__.py +++ b/src/sdk/pynni/nni/__main__.py @@ -27,28 +27,39 @@ import json import importlib +from .constants import ModuleName, ClassName, ClassArgs from nni.msg_dispatcher import MsgDispatcher -from nni.hyperopt_tuner.hyperopt_tuner import HyperoptTuner -from nni.evolution_tuner.evolution_tuner import EvolutionTuner -from nni.batch_tuner.batch_tuner import BatchTuner -from nni.medianstop_assessor.medianstop_assessor import MedianstopAssessor logger = logging.getLogger('nni.main') logger.debug('START') -BUILT_IN_CLASS_NAMES = ['HyperoptTuner', 'EvolutionTuner', 'BatchTuner', 'MedianstopAssessor'] +def augment_classargs(input_class_args, classname): + if classname in ClassArgs: + for key, value in ClassArgs[classname].items(): + if key not in input_class_args: + input_class_args[key] = value + return input_class_args def create_builtin_class_instance(classname, jsonstr_args): + if classname not in ModuleName or \ + importlib.util.find_spec(ModuleName[classname]) is None: + raise RuntimeError('Tuner module is not found: {}'.format(classname)) + class_module = importlib.import_module(ModuleName[classname]) + class_constructor = getattr(class_module, ClassName[classname]) if jsonstr_args: - class_args = json.loads(jsonstr_args) - instance = eval(classname)(**class_args) + class_args = augment_classargs(json.loads(jsonstr_args), classname) + else: + class_args = augment_classargs({}, classname) + if class_args: + instance = class_constructor(**class_args) else: - instance = eval(classname)() + instance = class_constructor() return instance def create_customized_class_instance(class_dir, class_filename, classname, jsonstr_args): if not os.path.isfile(os.path.join(class_dir, class_filename)): - raise ValueError('Class file not found: {}'.format(os.path.join(class_dir, class_filename))) + raise ValueError('Class file not found: {}'.format( + os.path.join(class_dir, class_filename))) sys.path.append(class_dir) module_name = class_filename.split('.')[0] class_module = importlib.import_module(module_name) @@ -64,12 +75,12 @@ def parse_args(): parser = argparse.ArgumentParser(description='parse command line parameters.') parser.add_argument('--tuner_class_name', type=str, required=True, help='Tuner class name, the class must be a subclass of nni.Tuner') + parser.add_argument('--tuner_class_filename', type=str, required=False, + help='Tuner class file path') parser.add_argument('--tuner_args', type=str, required=False, help='Parameters pass to tuner __init__ constructor') parser.add_argument('--tuner_directory', type=str, required=False, help='Tuner directory') - parser.add_argument('--tuner_class_filename', type=str, required=False, - help='Tuner class file path') parser.add_argument('--assessor_class_name', type=str, required=False, help='Assessor class name, the class must be a subclass of nni.Assessor') @@ -93,23 +104,34 @@ def main(): tuner = None assessor = None - if args.tuner_class_name is None: - raise ValueError('Tuner must be specified') - if args.tuner_class_name in BUILT_IN_CLASS_NAMES: - tuner = create_builtin_class_instance(args.tuner_class_name, args.tuner_args) + if args.tuner_class_name in ModuleName: + tuner = create_builtin_class_instance( + args.tuner_class_name, + args.tuner_args) else: - tuner = create_customized_class_instance(args.tuner_directory, args.tuner_class_filename, args.tuner_class_name, args.tuner_args) - - if args.assessor_class_name: - if args.assessor_class_name in BUILT_IN_CLASS_NAMES: - assessor = create_builtin_class_instance(args.assessor_class_name, args.assessor_args) - else: - assessor = create_customized_class_instance(args.assessor_directory, \ - args.assessor_class_filename, args.assessor_class_name, args.assessor_args) + tuner = create_customized_class_instance( + args.tuner_directory, + args.tuner_class_filename, + args.tuner_class_name, + args.tuner_args) if tuner is None: raise AssertionError('Failed to create Tuner instance') + if args.assessor_class_name: + if args.assessor_class_name in ModuleName: + assessor = create_builtin_class_instance( + args.assessor_class_name, + args.assessor_args) + else: + assessor = create_customized_class_instance( + args.assessor_directory, + args.assessor_class_filename, + args.assessor_class_name, + args.assessor_args) + if assessor is None: + raise AssertionError('Failed to create Assessor instance') + dispatcher = MsgDispatcher(tuner, assessor) try: diff --git a/src/sdk/pynni/nni/common.py b/src/sdk/pynni/nni/common.py index 644f13d15b..79ee214aa2 100644 --- a/src/sdk/pynni/nni/common.py +++ b/src/sdk/pynni/nni/common.py @@ -20,6 +20,7 @@ from collections import namedtuple +from datetime import datetime from io import TextIOBase import logging import os @@ -39,13 +40,16 @@ def _load_env_args(): '''Arguments passed from environment''' -class _LoggerFile(TextIOBase): - def __init__(self, logger): - self.logger = logger +_time_format = '%Y-%m-%d %H:%M:%S' +class _LoggerFileWrapper(TextIOBase): + def __init__(self, logger_file): + self.file = logger_file def write(self, s): - if s != '\n': # ignore line break, since logger will add it - self.logger.info(s) + if s != '\n': + time = datetime.now().strftime(_time_format) + self.file.write('[{}] PRINT '.format(time) + s + '\n') + self.file.flush() return len(s) @@ -58,12 +62,12 @@ def init_logger(logger_file_path): logger_file_path = 'unittest.log' elif env_args.log_dir is not None: logger_file_path = os.path.join(env_args.log_dir, logger_file_path) + logger_file = open(logger_file_path, 'w') fmt = '[%(asctime)s] %(levelname)s (%(name)s) %(message)s' - datefmt = '%Y-%m-%d %H:%M:%S' - formatter = logging.Formatter(fmt, datefmt) + formatter = logging.Formatter(fmt, _time_format) - handler = logging.FileHandler(logger_file_path) + handler = logging.StreamHandler(logger_file) handler.setFormatter(formatter) root_logger = logging.getLogger() @@ -73,4 +77,4 @@ def init_logger(logger_file_path): # these modules are too verbose logging.getLogger('matplotlib').setLevel(logging.INFO) - sys.stdout = _LoggerFile(logging.getLogger('print')) + sys.stdout = _LoggerFileWrapper(logger_file) diff --git a/src/sdk/pynni/nni/constants.py b/src/sdk/pynni/nni/constants.py new file mode 100644 index 0000000000..cf611bebfd --- /dev/null +++ b/src/sdk/pynni/nni/constants.py @@ -0,0 +1,51 @@ +# Copyright (c) Microsoft Corporation +# All rights reserved. +# +# MIT License +# +# Permission is hereby granted, free of charge, +# to any person obtaining a copy of this software and associated +# documentation files (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and +# to permit persons to whom the Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +ModuleName = { + 'TPE': 'nni.hyperopt_tuner.hyperopt_tuner', + 'Random': 'nni.hyperopt_tuner.hyperopt_tuner', + 'Anneal': 'nni.hyperopt_tuner.hyperopt_tuner', + 'Evolution': 'nni.evolution_tuner.evolution_tuner', + 'SMAC': 'nni.smac_tuner.smac_tuner', + + 'Medianstop': 'nni.medianstop_assessor.medianstop_assessor' +} + +ClassName = { + 'TPE': 'HyperoptTuner', + 'Random': 'HyperoptTuner', + 'Anneal': 'HyperoptTuner', + 'Evolution': 'EvolutionTuner', + 'SMAC': 'SMACTuner', + + 'Medianstop': 'MedianstopAssessor' +} + +ClassArgs = { + 'TPE': { + 'algorithm_name': 'tpe' + }, + 'Random': { + 'algorithm_name': 'random_search' + }, + 'Anneal': { + 'algorithm_name': 'anneal' + } +} diff --git a/src/sdk/pynni/nni/platform/__init__.py b/src/sdk/pynni/nni/platform/__init__.py index e0b44e49cb..fed452fc47 100644 --- a/src/sdk/pynni/nni/platform/__init__.py +++ b/src/sdk/pynni/nni/platform/__init__.py @@ -27,7 +27,7 @@ from .standalone import * elif env_args.platform == 'unittest': from .test import * -elif env_args.platform in ('local', 'remote'): +elif env_args.platform in ('local', 'remote', 'pai'): from .local import * else: raise RuntimeError('Unknown platform %s' % env_args.platform) diff --git a/src/sdk/pynni/nni/platform/local.py b/src/sdk/pynni/nni/platform/local.py index 3dda9c4c57..7a9df82971 100644 --- a/src/sdk/pynni/nni/platform/local.py +++ b/src/sdk/pynni/nni/platform/local.py @@ -24,16 +24,20 @@ from ..common import init_logger - -_dir = os.environ['NNI_SYS_DIR'] -_metric_file = open(os.path.join(_dir, '.nni', 'metrics'), 'wb') - -_log_file_path = os.path.join(_dir, 'trial.log') +_sysdir = os.environ['NNI_SYS_DIR'] +if not os.path.exists(os.path.join(_sysdir, '.nni')): + os.makedirs(os.path.join(_sysdir, '.nni')) +_metric_file = open(os.path.join(_sysdir, '.nni', 'metrics'), 'wb') + +_outputdir = os.environ['NNI_OUTPUT_DIR'] +if not os.path.exists(_outputdir): + os.makedirs(_outputdir) +_log_file_path = os.path.join(_outputdir, 'trial.log') init_logger(_log_file_path) def get_parameters(): - params_file = open(os.path.join(_dir, 'parameter.cfg'), 'r') + params_file = open(os.path.join(_sysdir, 'parameter.cfg'), 'r') return json.load(params_file) def send_metric(string): diff --git a/src/sdk/pynni/nni/smac_tuner/README.md b/src/sdk/pynni/nni/smac_tuner/README.md new file mode 100644 index 0000000000..a1a8b37190 --- /dev/null +++ b/src/sdk/pynni/nni/smac_tuner/README.md @@ -0,0 +1 @@ +# Integration doc: SMAC on nni \ No newline at end of file diff --git a/src/sdk/pynni/nni/smac_tuner/__init__.py b/src/sdk/pynni/nni/smac_tuner/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/sdk/pynni/nni/smac_tuner/convert_ss_to_scenario.py b/src/sdk/pynni/nni/smac_tuner/convert_ss_to_scenario.py new file mode 100644 index 0000000000..578f8faf43 --- /dev/null +++ b/src/sdk/pynni/nni/smac_tuner/convert_ss_to_scenario.py @@ -0,0 +1,122 @@ +# Copyright (c) Microsoft Corporation +# All rights reserved. +# +# MIT License +# +# Permission is hereby granted, free of charge, +# to any person obtaining a copy of this software and associated +# documentation files (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and +# to permit persons to whom the Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import os +import json + +def get_json_content(file_path): + '''Load json file content''' + try: + with open(file_path, 'r') as file: + return json.load(file) + except TypeError as err: + print('Error: ', err) + return None + +def generate_pcs(nni_search_space_content): + ''' + # parameter_name categorical {value_1, ..., value_N} [default value] + # parameter_name ordinal {value_1, ..., value_N} [default value] + # parameter_name integer [min_value, max_value] [default value] + # parameter_name integer [min_value, max_value] [default value] log + # parameter_name real [min_value, max_value] [default value] + # parameter_name real [min_value, max_value] [default value] log + # https://automl.github.io/SMAC3/stable/options.html + ''' + search_space = nni_search_space_content + with open('param_config_space.pcs', 'w') as pcs_fd: + if isinstance(search_space, dict): + for key in search_space.keys(): + if isinstance(search_space[key], dict): + try: + if search_space[key]['_type'] == 'choice': + pcs_fd.write('%s categorical {%s} [%s]\n' % ( + key, + json.dumps(search_space[key]['_value'])[1:-1], + json.dumps(search_space[key]['_value'][0]))) + elif search_space[key]['_type'] == 'randint': + # TODO: support lower bound in randint + pcs_fd.write('%s integer [0, %d] [%d]\n' % ( + key, + search_space[key]['_value'][0], + search_space[key]['_value'][0])) + elif search_space[key]['_type'] == 'uniform': + pcs_fd.write('%s real %s [%s]\n' % ( + key, + json.dumps(search_space[key]['_value']), + json.dumps(search_space[key]['_value'][0]))) + elif search_space[key]['_type'] == 'loguniform': + pcs_fd.write('%s real %s [%s] log\n' % ( + key, + json.dumps(search_space[key]['_value']), + json.dumps(search_space[key]['_value'][0]))) + elif search_space[key]['_type'] == 'quniform' \ + and search_space[key]['_value'][2] == 1: + pcs_fd.write('%s integer [%d, %d] [%d]\n' % ( + key, + search_space[key]['_value'][0], + search_space[key]['_value'][1], + search_space[key]['_value'][0])) + else: + raise RuntimeError('unsupported _type %s' % search_space[key]['_type']) + except: + raise RuntimeError('_type or _value error.') + else: + raise RuntimeError('incorrect search space.') + +def generate_scenario(ss_content): + ''' + # deterministic, 1/0 + # output_dir, + # paramfile, + # run_obj, 'quality' + + # the following keys use default value or empty + # algo, not required by tuner, but required by nni's training service for running trials + # abort_on_first_run_crash, because trials reported to nni tuner would always in success state + # always_race_default, + # cost_for_crash, trials reported to nni tuner would always in success state + # cutoff_time, + # execdir, trials are executed by nni's training service + # feature_file, no features specified or feature file is not supported + # initial_incumbent, use default value + # input_psmac_dirs, parallelism is supported by nni + # instance_file, not supported + # intensification_percentage, not supported, trials are controlled by nni's training service and kill be assessor + # maxR, use default, 2000 + # minR, use default, 1 + # overall_obj, timeout is not supported + # shared_model, parallelism is supported by nni + # test_instance_file, instance is not supported + # tuner-timeout, not supported + # runcount_limit, default: inf., use default because this is controlled by nni + # wallclock_limit,default: inf., use default because this is controlled by nni + # please refer to https://automl.github.io/SMAC3/stable/options.html + ''' + with open('scenario.txt', 'w') as sce_fd: + sce_fd.write('deterministic = 0\n') + #sce_fd.write('output_dir = \n') + sce_fd.write('paramfile = param_config_space.pcs\n') + sce_fd.write('run_obj = quality\n') + + generate_pcs(ss_content) + +if __name__ == '__main__': + generate_scenario('search_space.json') diff --git a/src/sdk/pynni/nni/smac_tuner/requirements.txt b/src/sdk/pynni/nni/smac_tuner/requirements.txt new file mode 100644 index 0000000000..a3027fb6fe --- /dev/null +++ b/src/sdk/pynni/nni/smac_tuner/requirements.txt @@ -0,0 +1,2 @@ +git+https://github.com/QuanluZhang/ConfigSpace.git +git+https://github.com/QuanluZhang/SMAC3.git diff --git a/src/sdk/pynni/nni/smac_tuner/smac_tuner.py b/src/sdk/pynni/nni/smac_tuner/smac_tuner.py new file mode 100644 index 0000000000..36c14b330a --- /dev/null +++ b/src/sdk/pynni/nni/smac_tuner/smac_tuner.py @@ -0,0 +1,190 @@ +# Copyright (c) Microsoft Corporation +# All rights reserved. +# +# MIT License +# +# Permission is hereby granted, free of charge, +# to any person obtaining a copy of this software and associated +# documentation files (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and +# to permit persons to whom the Software is furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' +smac_tuner.py +''' + +from nni.tuner import Tuner + +import sys +import logging +import numpy as np +import json_tricks +from enum import Enum, unique +from .convert_ss_to_scenario import generate_scenario + +from smac.utils.io.cmd_reader import CMDReader +from smac.scenario.scenario import Scenario +from smac.facade.smac_facade import SMAC +from smac.facade.roar_facade import ROAR +from smac.facade.epils_facade import EPILS + +@unique +class OptimizeMode(Enum): + ''' + Oprimize Mode class + ''' + Minimize = 'minimize' + Maximize = 'maximize' + +class SMACTuner(Tuner): + def __init__(self, optimize_mode): + ''' + Constructor + ''' + self.logger = logging.getLogger( + self.__module__ + "." + self.__class__.__name__) + self.optimize_mode = OptimizeMode(optimize_mode) + self.total_data = {} + self.optimizer = None + self.smbo_solver = None + self.first_one = True + self.update_ss_done = False + + def _main_cli(self): + ''' + Main function of SMAC for CLI interface + ''' + self.logger.info("SMAC call: %s" % (" ".join(sys.argv))) + + cmd_reader = CMDReader() + args, _ = cmd_reader.read_cmd() + + root_logger = logging.getLogger() + root_logger.setLevel(args.verbose_level) + logger_handler = logging.StreamHandler( + stream=sys.stdout) + if root_logger.level >= logging.INFO: + formatter = logging.Formatter( + "%(levelname)s:\t%(message)s") + else: + formatter = logging.Formatter( + "%(asctime)s:%(levelname)s:%(name)s:%(message)s", + "%Y-%m-%d %H:%M:%S") + logger_handler.setFormatter(formatter) + root_logger.addHandler(logger_handler) + # remove default handler + root_logger.removeHandler(root_logger.handlers[0]) + + # Create defaults + rh = None + initial_configs = None + stats = None + incumbent = None + + # Create scenario-object + scen = Scenario(args.scenario_file, []) + + if args.mode == "SMAC": + optimizer = SMAC( + scenario=scen, + rng=np.random.RandomState(args.seed), + runhistory=rh, + initial_configurations=initial_configs, + stats=stats, + restore_incumbent=incumbent, + run_id=args.seed) + elif args.mode == "ROAR": + optimizer = ROAR( + scenario=scen, + rng=np.random.RandomState(args.seed), + runhistory=rh, + initial_configurations=initial_configs, + run_id=args.seed) + elif args.mode == "EPILS": + optimizer = EPILS( + scenario=scen, + rng=np.random.RandomState(args.seed), + runhistory=rh, + initial_configurations=initial_configs, + run_id=args.seed) + else: + optimizer = None + + return optimizer + + def update_search_space(self, search_space): + ''' + TODO: this is urgly, we put all the initialization work in this method, + because initialization relies on search space, also because update_search_space is called at the beginning. + NOTE: updating search space is not supported. + ''' + if not self.update_ss_done: + generate_scenario(search_space) + self.optimizer = self._main_cli() + self.smbo_solver = self.optimizer.solver + self.update_ss_done = True + else: + self.logger.warning('update search space is not supported.') + + def receive_trial_result(self, parameter_id, parameters, reward): + ''' + receive_trial_result + ''' + if self.optimize_mode is OptimizeMode.Maximize: + reward = -reward + + if parameter_id not in self.total_data: + raise RuntimeError('Received parameter_id not in total_data.') + if self.first_one: + self.smbo_solver.nni_smac_receive_first_run(self.total_data[parameter_id], reward) + self.first_one = False + else: + self.smbo_solver.nni_smac_receive_runs(self.total_data[parameter_id], reward) + + def generate_parameters(self, parameter_id): + ''' + generate one instance of hyperparameters + ''' + if self.first_one: + init_challenger = self.smbo_solver.nni_smac_start() + self.total_data[parameter_id] = init_challenger + json_tricks.dumps(init_challenger.get_dictionary()) + return init_challenger.get_dictionary() + else: + challengers = self.smbo_solver.nni_smac_request_challengers() + for challenger in challengers: + self.total_data[parameter_id] = challenger + json_tricks.dumps(challenger.get_dictionary()) + return challenger.get_dictionary() + + def generate_multiple_parameters(self, parameter_id_list): + ''' + generate mutiple instances of hyperparameters + ''' + if self.first_one: + params = [] + for one_id in parameter_id_list: + init_challenger = self.smbo_solver.nni_smac_start() + self.total_data[one_id] = init_challenger + json_tricks.dumps(init_challenger.get_dictionary()) + params.append(init_challenger.get_dictionary()) + else: + challengers = self.smbo_solver.nni_smac_request_challengers() + cnt = 0 + params = [] + for challenger in challengers: + if cnt >= len(parameter_id_list): + break + self.total_data[parameter_id_list[cnt]] = challenger + json_tricks.dumps(challenger.get_dictionary()) + params.append(challenger.get_dictionary()) + cnt += 1 + return params diff --git a/src/sdk/pynni/nni/smartparam.py b/src/sdk/pynni/nni/smartparam.py index 10eef92487..ca035be575 100644 --- a/src/sdk/pynni/nni/smartparam.py +++ b/src/sdk/pynni/nni/smartparam.py @@ -124,6 +124,6 @@ def _get_param(func, name): del frame # see official doc module = inspect.getmodulename(filename) if name is None: - name = '#{:d}'.format(lineno) + name = '__line{:d}'.format(lineno) key = '{}/{}/{}'.format(module, name, func) return trial.get_parameter(key) diff --git a/src/sdk/pynni/setup.py b/src/sdk/pynni/setup.py index a24758e9db..7962c225b8 100644 --- a/src/sdk/pynni/setup.py +++ b/src/sdk/pynni/setup.py @@ -27,7 +27,7 @@ def read(fname): setuptools.setup( name = 'nni', - version = '0.0.1', + version = '0.2.0', packages = setuptools.find_packages(exclude=['tests']), python_requires = '>=3.5', @@ -35,16 +35,17 @@ def read(fname): 'hyperopt', 'json_tricks', 'numpy', - 'scipy', + 'scipy' ], + package_data = {'nni': ['**/requirements.txt']}, test_suite = 'tests', author = 'Microsoft NNI Team', author_email = 'nni@microsoft.com', description = 'Python SDK for Neural Network Intelligence project', - license = 'MIT', - url = 'https://msrasrg.visualstudio.com/NeuralNetworkIntelligence', + license = 'MIT', + url = 'https://github.com/Microsoft/nni', long_description = read('README.md') ) diff --git a/src/sdk/pynni/tests/test_smartparam.py b/src/sdk/pynni/tests/test_smartparam.py index 4a971c842f..9625603213 100644 --- a/src/sdk/pynni/tests/test_smartparam.py +++ b/src/sdk/pynni/tests/test_smartparam.py @@ -33,9 +33,9 @@ class SmartParamTestCase(TestCase): def setUp(self): params = { 'test_smartparam/choice1/choice': 2, - 'test_smartparam/#{:d}/uniform'.format(lineno1): '5', + 'test_smartparam/__line{:d}/uniform'.format(lineno1): '5', 'test_smartparam/func/function_choice': 1, - 'test_smartparam/#{:d}/function_choice'.format(lineno2): 0 + 'test_smartparam/__line{:d}/function_choice'.format(lineno2): 0 } nni.trial._params = { 'parameter_id': 'test_trial', 'parameters': params } diff --git a/src/webui/README.md b/src/webui/README.md index 3ebf6d1fb4..ee7d0121f8 100644 --- a/src/webui/README.md +++ b/src/webui/README.md @@ -1,48 +1,37 @@ -# webui +# WebUI -NNI is a research platform for metalearning. It provides easy-to-use interface so that you could perform neural architecture search, hyperparameter optimization and optimizer design for your own problems and models. -Web UI allows user to monitor the status of the NNI system using a graphical interface. - -## Deployment - -### To start the webui - -> $ yarn -> $ yarn start - -## Usage - -### View summary page +## View summary page Click the tab "Overview". +* See the experiment parameters. * See good performance trial. * See search_space json. -### View job accuracy +## View job accuracy Click the tab "Optimization Progress" to see the point graph of all trials. Hover every point to see its specific accuracy. -### View hyper parameter +## View hyper parameter Click the tab "Hyper Parameter" to see the parallel graph. -* You can select the percentage to cut down some lines. +* You can select the percentage to see top trials. * Choose two axis to swap its positions -### View trial status +## View trial status Click the tab "Trial Status" to see the status of the all trials. Specifically: -* Running trial: running trial's duration in the bar graph. -* Trial detail: trial's id, trial's duration, start time, end time, status and accuracy. +* Trial duration: trial's duration in the bar graph. +* Trial detail: trial's id, trial's duration, start time, end time, status, accuracy and search space file. * Kill: you can kill a job that status is running. * Tensor: you can see a job in the tensorflow graph, it will link to the Tensorboard page. -### Control +## Control Click the tab "Control" to add a new trial or update the search_space file and some experiment parameters. -### View Tensorboard Graph - -Click the tab "Tensorboard" to see a job in the tensorflow graph. \ No newline at end of file +## Feedback + +[Known Issues](https://github.com/Microsoft/nni/issues). \ No newline at end of file diff --git a/src/webui/src/components/Para.tsx b/src/webui/src/components/Para.tsx index 32d099ad8e..2706db1d60 100644 --- a/src/webui/src/components/Para.tsx +++ b/src/webui/src/components/Para.tsx @@ -10,13 +10,6 @@ require('echarts/lib/component/title'); require('echarts/lib/component/visualMap'); require('../style/para.css'); -const chartMulineStyle = { - width: '100%', - height: 600, - margin: '0 auto', - padding: 15 -}; - interface Dimobj { dim: number; name: string; @@ -227,6 +220,22 @@ class Para extends React.Component<{}, ParaState> { const { visualValue } = this.state; let parallelAxis = dataObj.parallelAxis; let paralleData = dataObj.data; + const maxAccuracy = visualValue.maxAccuracy; + const minAccuracy = visualValue.minAccuracy; + let visualMapObj = {}; + if (maxAccuracy === minAccuracy) { + visualMapObj = { + type: 'continuous', + color: ['#fb7c7c', 'yellow', 'lightblue'] + }; + } else { + visualMapObj = { + type: 'continuous', + min: visualValue.minAccuracy, + max: visualValue.maxAccuracy, + color: ['#fb7c7c', 'yellow', 'lightblue'] + }; + } let optionown = { parallelAxis, tooltip: { @@ -252,13 +261,7 @@ class Para extends React.Component<{}, ParaState> { } } }, - visualMap: { - type: 'continuous', - min: visualValue.minAccuracy, - max: visualValue.maxAccuracy, - // gradient color - color: ['#fb7c7c', 'yellow', 'lightblue'] - }, + visualMap: visualMapObj, highlight: { type: 'highlight' }, @@ -375,6 +378,12 @@ class Para extends React.Component<{}, ParaState> { render() { const { option, paraNodata, dimName } = this.state; + const chartMulineStyle = { + width: '100%', + height: 600, + margin: '0 auto', + padding: 15 + }; return (
    @@ -384,7 +393,7 @@ class Para extends React.Component<{}, ParaState> { top - + + + @@ -475,7 +431,6 @@ class Sessionpro extends React.Component<{}, SessionState> { dataSource={tableData} className="tables" bordered={true} - scroll={{ x: '100%', y: 540 }} />
    diff --git a/src/webui/src/components/SlideBar.tsx b/src/webui/src/components/SlideBar.tsx index 0eb5538d50..2219491971 100644 --- a/src/webui/src/components/SlideBar.tsx +++ b/src/webui/src/components/SlideBar.tsx @@ -11,13 +11,13 @@ class SlideBar extends React.Component<{}, {}> {
    ); diff --git a/src/webui/src/components/TrialStatus.tsx b/src/webui/src/components/TrialStatus.tsx index f6a889ebbe..d0e0980ee2 100644 --- a/src/webui/src/components/TrialStatus.tsx +++ b/src/webui/src/components/TrialStatus.tsx @@ -12,6 +12,7 @@ require('echarts/lib/chart/scatter'); require('echarts/lib/component/tooltip'); require('echarts/lib/component/title'); require('../style/trialStatus.css'); +require('../style/logPath.css'); echarts.registerTheme('my_theme', { color: '#3c8dbc' }); @@ -19,6 +20,7 @@ echarts.registerTheme('my_theme', { interface DescObj { parameters: Object; logPath?: string; + isLink?: boolean; } interface TableObj { @@ -84,22 +86,17 @@ class TrialStatus extends React.Component<{}, TabState> { showIntermediateModal = (id: string) => { axios(`${MANAGER_IP}/metric-data/${id}`, { - method: 'GET', - headers: { - 'Content-Type': 'application/json;charset=utf-8' - } + method: 'GET' }) .then(res => { if (res.status === 200) { const intermediateArr: number[] = []; - const xinter: number[] = []; Object.keys(res.data).map(item => { intermediateArr.push(parseFloat(res.data[item].data)); - xinter.push(res.data[item].sequence); }); if (this._isMounted) { this.setState({ - intermediateOption: this.intermediateGraphOption(intermediateArr, id, xinter) + intermediateOption: this.intermediateGraphOption(intermediateArr, id) }); } } @@ -131,7 +128,7 @@ class TrialStatus extends React.Component<{}, TabState> { }, title: { left: 'center', - text: 'Running Trial', + text: 'Trial Duration', textStyle: { fontSize: 18, color: '#333' @@ -221,6 +218,11 @@ class TrialStatus extends React.Component<{}, TabState> { const trialTable: Array = []; Object.keys(trialJobs).map(item => { // only succeeded trials have finalMetricData + let desc: DescObj = { + parameters: {} + }; + let acc = 0; + let duration = 0; const id = trialJobs[item].id !== undefined ? trialJobs[item].id : ''; @@ -228,25 +230,24 @@ class TrialStatus extends React.Component<{}, TabState> { ? trialJobs[item].status : ''; const startTime = trialJobs[item].startTime !== undefined - ? new Date(trialJobs[item].startTime).toLocaleString() + ? new Date(trialJobs[item].startTime).toLocaleString('en-US') : ''; const endTime = trialJobs[item].endTime !== undefined - ? new Date(trialJobs[item].endTime).toLocaleString() + ? new Date(trialJobs[item].endTime).toLocaleString('en-US') : ''; - let desc: DescObj = { - parameters: {} - }; if (trialJobs[item].hyperParameters !== undefined) { desc.parameters = JSON.parse(trialJobs[item].hyperParameters).parameters; } if (trialJobs[item].logPath !== undefined) { desc.logPath = trialJobs[item].logPath; + const isHyperLink = /^http/gi.test(trialJobs[item].logPath); + if (isHyperLink) { + desc.isLink = true; + } } - let acc = 0; if (trialJobs[item].finalMetricData !== undefined) { acc = parseFloat(trialJobs[item].finalMetricData.data); } - let duration = 0; if (startTime !== '' && endTime !== '') { duration = (trialJobs[item].endTime - trialJobs[item].startTime) / 1000; } else if (startTime !== '' && endTime === '') { @@ -254,7 +255,6 @@ class TrialStatus extends React.Component<{}, TabState> { } else { duration = 0; } - trialTable.push({ key: trialTable.length, id: id, @@ -267,9 +267,9 @@ class TrialStatus extends React.Component<{}, TabState> { }); }); if (this._isMounted) { - this.setState({ + this.setState(() => ({ tableData: trialTable - }); + })); } } }); @@ -292,6 +292,11 @@ class TrialStatus extends React.Component<{}, TabState> { } else { message.error('fail to cancel the job'); } + }) + .catch(error => { + if (error.response.status === 500) { + message.error('500 error, fail to cancel the job'); + } }); } @@ -306,14 +311,27 @@ class TrialStatus extends React.Component<{}, TabState> { browserHistory.push(path); } - intermediateGraphOption = (intermediateArr: number[], id: string, xinter: number[]) => { + intermediateGraphOption = (intermediateArr: number[], id: string) => { + const sequence: number[] = []; + const lengthInter = intermediateArr.length; + for (let i = 1; i <= lengthInter; i++) { + sequence.push(i); + } return { + title: { + text: id, + left: 'center', + textStyle: { + fontSize: 16, + color: '#333', + } + }, tooltip: { trigger: 'item' }, xAxis: { name: 'Trial', - data: xinter + data: sequence }, yAxis: { name: 'Accuracy', @@ -376,7 +394,7 @@ class TrialStatus extends React.Component<{}, TabState> { dataIndex: 'start', key: 'start', width: '15%', - sorter: (a: TableObj, b: TableObj): number => a.start.localeCompare(b.start) + sorter: (a: TableObj, b: TableObj): number => (Date.parse(a.start) - Date.parse(b.start)) }, { title: 'End', dataIndex: 'end', @@ -460,14 +478,35 @@ class TrialStatus extends React.Component<{}, TabState> { ]; const openRow = (record: TableObj) => { + const parametersRow = { + parameters: record.description.parameters + }; + let isLogLink: boolean = false; + const logPathRow = record.description.logPath; + if (record.description.isLink !== undefined) { + isLogLink = true; + } return (
                          true}  // default expandNode
                             getItemString={() => ()}  // remove the {} items
    -                        data={record.description}
    +                        data={parametersRow}
                         />
    +                    {
    +                        isLogLink
    +                            ?
    +                            
    + logPath: + {logPathRow} +
    + : +
    + logPath: + {logPathRow} +
    + }