"external/vscode:/vscode.git/clone" did not exist on "3737bb039aafe4b59510bbc180f6a3d930b417ee"
Unverified Commit 28d3039e authored by chicm-ms's avatar chicm-ms Committed by GitHub
Browse files

Add description and trainingServicePlatform field in experiment profile (#187)

* Pull latest code (#2)

* 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 1d174836.

* 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

* Bug fix for SQuAD example tuner. (#134)

* Update Makefile (#151)

* test

* update setup.py

* update Makefile and install.sh

* rever setup.py

* change color

* update doc

* update doc

* fix auto-completion's extra space

* update Makefile

* update webui

* Update doc image (#163)

* update doc

* trivial

* trivial

* trivial

* trivial

* trivial

* trivial

* update image

* update image size

* Update ga squad (#104)

* update readme in ga_squad

* update readme

* fix typo

* Update README.md

* Update README.md

* Update README.md

* update readme

* sklearn examples (#169)

* fix nnictl bug

* fix install.sh

* add sklearn-regression example

* add sklearn classification

* update sklearn

* update example

* remove additional code

* Update batch tuner (#158)

* update readme in ga_squad

* update readme

* fix typo

* Update README.md

* Update README.md

* Update README.md

* update readme

* update batch tuner

* Quickly fix cascading search space bug in tuner (#156)

* update readme in ga_squad

* update readme

* fix typo

* Update README.md

* Update README.md

* Update README.md

* update readme

* quickly fix cascading searchspace bug in tuner

* Add iterative search space example (#119)

* update readme in ga_squad

* update readme

* fix typo

* Update README.md

* Update README.md

* Update README.md

* update readme

* add iterative search space example

* update

* update readme

* change name

* Add description and trainingServicePlatform field in experiment profile
parent 115028f2
...@@ -27,10 +27,12 @@ type ProfileUpdateType = 'TRIAL_CONCURRENCY' | 'MAX_EXEC_DURATION' | 'SEARCH_SPA ...@@ -27,10 +27,12 @@ type ProfileUpdateType = 'TRIAL_CONCURRENCY' | 'MAX_EXEC_DURATION' | 'SEARCH_SPA
interface ExperimentParams { interface ExperimentParams {
authorName: string; authorName: string;
experimentName: string; experimentName: string;
description?: string;
trialConcurrency: number; trialConcurrency: number;
maxExecDuration: number; //seconds maxExecDuration: number; //seconds
maxTrialNum: number; maxTrialNum: number;
searchSpace: string; searchSpace: string;
trainingServicePlatform: string;
multiPhase?: boolean; multiPhase?: boolean;
tuner: { tuner: {
className: string; className: string;
......
...@@ -528,6 +528,7 @@ class NNIManager implements Manager { ...@@ -528,6 +528,7 @@ class NNIManager implements Manager {
trialConcurrency: 0, trialConcurrency: 0,
maxExecDuration: 0, // unit: second maxExecDuration: 0, // unit: second
maxTrialNum: 0, // maxTrialNum includes all the submitted trial jobs maxTrialNum: 0, // maxTrialNum includes all the submitted trial jobs
trainingServicePlatform: '',
searchSpace: '', searchSpace: '',
tuner: { tuner: {
className: '', className: '',
......
...@@ -58,6 +58,7 @@ describe('Unit test for dataStore', () => { ...@@ -58,6 +58,7 @@ describe('Unit test for dataStore', () => {
trialConcurrency: 2, trialConcurrency: 2,
maxExecDuration: 10, maxExecDuration: 10,
maxTrialNum: 5, maxTrialNum: 5,
trainingServicePlatform: 'local',
searchSpace: `{ searchSpace: `{
"dropout_rate": { "dropout_rate": {
"_type": "uniform", "_type": "uniform",
......
...@@ -54,6 +54,7 @@ describe('Unit test for nnimanager', function () { ...@@ -54,6 +54,7 @@ describe('Unit test for nnimanager', function () {
trialConcurrency: 2, trialConcurrency: 2,
maxExecDuration: 5, maxExecDuration: 5,
maxTrialNum: 2, maxTrialNum: 2,
trainingServicePlatform: 'local',
searchSpace: '{"x":1}', searchSpace: '{"x":1}',
tuner: { tuner: {
className: 'EvolutionTuner', className: 'EvolutionTuner',
......
...@@ -36,6 +36,7 @@ const expParams1: ExperimentParams = { ...@@ -36,6 +36,7 @@ const expParams1: ExperimentParams = {
trialConcurrency: 3, trialConcurrency: 3,
maxExecDuration: 100, maxExecDuration: 100,
maxTrialNum: 5, maxTrialNum: 5,
trainingServicePlatform: 'local',
searchSpace: 'SS', searchSpace: 'SS',
tuner: { tuner: {
className: 'testTuner', className: 'testTuner',
...@@ -50,6 +51,7 @@ const expParams2: ExperimentParams = { ...@@ -50,6 +51,7 @@ const expParams2: ExperimentParams = {
trialConcurrency: 5, trialConcurrency: 5,
maxExecDuration: 1000, maxExecDuration: 1000,
maxTrialNum: 5, maxTrialNum: 5,
trainingServicePlatform: 'local',
searchSpace: '', searchSpace: '',
tuner: { tuner: {
className: 'testTuner', className: 'testTuner',
......
...@@ -52,9 +52,11 @@ export namespace ValidationSchemas { ...@@ -52,9 +52,11 @@ export namespace ValidationSchemas {
export const STARTEXPERIMENT = { export const STARTEXPERIMENT = {
body: { body: {
experimentName: joi.string().required(), experimentName: joi.string().required(),
description: joi.string(),
authorName: joi.string(), authorName: joi.string(),
maxTrialNum: joi.number().min(0).required(), maxTrialNum: joi.number().min(0).required(),
trialConcurrency: joi.number().min(0).required(), trialConcurrency: joi.number().min(0).required(),
trainingServicePlatform: joi.string(),
searchSpace: joi.string().required(), searchSpace: joi.string().required(),
maxExecDuration: joi.number().min(0).required(), maxExecDuration: joi.number().min(0).required(),
multiPhase: joi.boolean(), multiPhase: joi.boolean(),
......
...@@ -135,6 +135,7 @@ export class MockedNNIManager extends Manager { ...@@ -135,6 +135,7 @@ export class MockedNNIManager extends Manager {
trialConcurrency: 2, trialConcurrency: 2,
maxExecDuration: 30, maxExecDuration: 30,
maxTrialNum: 3, maxTrialNum: 3,
trainingServicePlatform: 'local',
searchSpace: '{lr: 0.01}', searchSpace: '{lr: 0.01}',
tuner: { tuner: {
className: 'testTuner', className: 'testTuner',
......
...@@ -24,6 +24,7 @@ from schema import Schema, And, Use, Optional, Regex, Or ...@@ -24,6 +24,7 @@ from schema import Schema, And, Use, Optional, Regex, Or
common_schema = { common_schema = {
'authorName': str, 'authorName': str,
'experimentName': str, 'experimentName': str,
Optional('description'): str,
'trialConcurrency': And(int, lambda n: 1 <=n <= 999999), 'trialConcurrency': And(int, lambda n: 1 <=n <= 999999),
Optional('maxExecDuration'): Regex(r'^[1-9][0-9]*[s|m|h|d]$'), Optional('maxExecDuration'): Regex(r'^[1-9][0-9]*[s|m|h|d]$'),
Optional('maxTrialNum'): And(int, lambda x: 1 <= x <= 99999), Optional('maxTrialNum'): And(int, lambda x: 1 <= x <= 99999),
......
...@@ -130,6 +130,10 @@ def set_experiment(experiment_config, mode, port): ...@@ -130,6 +130,10 @@ def set_experiment(experiment_config, mode, port):
request_data['maxExecDuration'] = experiment_config['maxExecDuration'] request_data['maxExecDuration'] = experiment_config['maxExecDuration']
request_data['maxTrialNum'] = experiment_config['maxTrialNum'] request_data['maxTrialNum'] = experiment_config['maxTrialNum']
request_data['searchSpace'] = experiment_config.get('searchSpace') request_data['searchSpace'] = experiment_config.get('searchSpace')
request_data['trainingServicePlatform'] = experiment_config.get('trainingServicePlatform')
if experiment_config.get('description'):
request_data['description'] = experiment_config['description']
if experiment_config.get('multiPhase'): if experiment_config.get('multiPhase'):
request_data['multiPhase'] = experiment_config.get('multiPhase') request_data['multiPhase'] = experiment_config.get('multiPhase')
request_data['tuner'] = experiment_config['tuner'] request_data['tuner'] = experiment_config['tuner']
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment