From 9f8fb6583df50b25c1401509ad2116edeaaaeb46 Mon Sep 17 00:00:00 2001 From: Xiaotian Gao Date: Thu, 7 Nov 2019 17:21:38 +0800 Subject: [PATCH 1/5] Add Docs for Tuning Systems with NNI --- README.md | 1 + README_zh_CN.md | 1 + docs/en_US/Tutorial/TuningSystems.md | 8 ++++++++ docs/zh_CN/Tutorial/TuningSystems.md | 8 ++++++++ 4 files changed, 18 insertions(+) create mode 100644 docs/en_US/Tutorial/TuningSystems.md create mode 100644 docs/zh_CN/Tutorial/TuningSystems.md diff --git a/README.md b/README.md index c3777bd416..0d623b3227 100644 --- a/README.md +++ b/README.md @@ -327,6 +327,7 @@ Maybe you want to read: * [Implement TrainingService in NNI](docs/en_US/TrainingService/HowToImplementTrainingService.md) * [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](docs/en_US/TrialExample/SquadEvolutionExamples.md) * [Advanced Neural Architecture Search](docs/en_US/AdvancedFeature/AdvancedNas.md) +* [Automatically tune systems with NNI](docs/en_US/Tutorial/TuningSystems.md) ## **Contribute** diff --git a/README_zh_CN.md b/README_zh_CN.md index 9af25db8ea..31ad2f5f09 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -314,6 +314,7 @@ You can use these commands to get more information about the experiment * [实现 NNI 训练平台](docs/zh_CN/TrainingService/HowToImplementTrainingService.md) * [使用进化算法为阅读理解任务找到好模型](docs/zh_CN/TrialExample/SquadEvolutionExamples.md) * [高级神经网络架构搜索](docs/zh_CN/AdvancedFeature/AdvancedNas.md) +* [为系统自动调参](docs/zh_CN/Tutorial/TuningSystems.md) ## **贡献** diff --git a/docs/en_US/Tutorial/TuningSystems.md b/docs/en_US/Tutorial/TuningSystems.md new file mode 100644 index 0000000000..c9e25083f0 --- /dev/null +++ b/docs/en_US/Tutorial/TuningSystems.md @@ -0,0 +1,8 @@ +# Automatically tune systems with NNI + +As computer systems and networking get increasingly complicated, optimizing them manually with explicit rules and heuristics becomes harder than ever before, sometimes impossible. At Microsoft Research Asia, our AutoSys project applies learning techniques provided by NNI to large-scale system performance tuning. Based on AutoSys, we have built a tool to help many crucial system scenarios within Microsoft. These scenarios include multimedia search for Bing (e.g., tail latency reduced by up to ~40%, and capacity increased by up to ~30%), job scheduling for Bing Ads (e.g., tail latency reduced by up to ~13%), and so on. + +Below are two examples of tuning systems with NNI. Anyone can easily tune their own systems by following them. + +* [Tuning RocksDB with NNI](../TrialExample/RocksdbExamples.md) +* [Tuning parameters of SPTAG (Space Partition Tree And Graph) with NNI](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) \ No newline at end of file diff --git a/docs/zh_CN/Tutorial/TuningSystems.md b/docs/zh_CN/Tutorial/TuningSystems.md new file mode 100644 index 0000000000..ea99fff741 --- /dev/null +++ b/docs/zh_CN/Tutorial/TuningSystems.md @@ -0,0 +1,8 @@ +# 使用 NNI 自动为系统调参 + +随着计算机系统和网络变得日益复杂,通过显式的规则和启发式的方法对它们进行手工优化变得越来越难,甚至是不可能的。在微软亚洲研究院,我们的 AutoSys 项目通过应用 NNI 提供的机器学习技术根据系统性能来自动调整系统的运行参数。AutoSys 项目已经成功应用在了微软内部很多重要的系统场景当中。这些场景包括必应的多媒体搜索 (尾延迟减少约 40%,容量提高约30%),必应广告的任务调度(尾延迟减少约 13%),等。 + +下面是两个使用 NNI 自动调整系统运行参数的例子。通过参考这些例子,人们可以方便地使用 NNI 来为自己的系统自动调优。 + +* [使用 NNI 调优 RocksDB](../TrialExample/RocksdbExamples.md) +* [使用 NNI 调优 SPTAG (Space Partition Tree And Graph)](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) \ No newline at end of file From e8d9dd3827398deba370bf6e46d0e13e6a871cbc Mon Sep 17 00:00:00 2001 From: Xiaotian Gao Date: Thu, 7 Nov 2019 18:03:20 +0800 Subject: [PATCH 2/5] Updates based on comments --- README.md | 1 - README_zh_CN.md | 3 +-- docs/en_US/Tutorial/TuningSystems.md | 10 ++++++---- docs/zh_CN/Tutorial/TuningSystems.md | 8 -------- 4 files changed, 7 insertions(+), 15 deletions(-) delete mode 100644 docs/zh_CN/Tutorial/TuningSystems.md diff --git a/README.md b/README.md index 0d623b3227..c3777bd416 100644 --- a/README.md +++ b/README.md @@ -327,7 +327,6 @@ Maybe you want to read: * [Implement TrainingService in NNI](docs/en_US/TrainingService/HowToImplementTrainingService.md) * [Use Genetic Algorithm to find good model architectures for Reading Comprehension task](docs/en_US/TrialExample/SquadEvolutionExamples.md) * [Advanced Neural Architecture Search](docs/en_US/AdvancedFeature/AdvancedNas.md) -* [Automatically tune systems with NNI](docs/en_US/Tutorial/TuningSystems.md) ## **Contribute** diff --git a/README_zh_CN.md b/README_zh_CN.md index 31ad2f5f09..a0cafb5a72 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -314,7 +314,6 @@ You can use these commands to get more information about the experiment * [实现 NNI 训练平台](docs/zh_CN/TrainingService/HowToImplementTrainingService.md) * [使用进化算法为阅读理解任务找到好模型](docs/zh_CN/TrialExample/SquadEvolutionExamples.md) * [高级神经网络架构搜索](docs/zh_CN/AdvancedFeature/AdvancedNas.md) -* [为系统自动调参](docs/zh_CN/Tutorial/TuningSystems.md) ## **贡献** @@ -360,4 +359,4 @@ You can use these commands to get more information about the experiment ## **许可协议** -代码库遵循 [MIT 许可协议](LICENSE) \ No newline at end of file +代码库遵循 [MIT 许可协议](LICENSE) diff --git a/docs/en_US/Tutorial/TuningSystems.md b/docs/en_US/Tutorial/TuningSystems.md index c9e25083f0..b65f8d36aa 100644 --- a/docs/en_US/Tutorial/TuningSystems.md +++ b/docs/en_US/Tutorial/TuningSystems.md @@ -1,8 +1,10 @@ # Automatically tune systems with NNI -As computer systems and networking get increasingly complicated, optimizing them manually with explicit rules and heuristics becomes harder than ever before, sometimes impossible. At Microsoft Research Asia, our AutoSys project applies learning techniques provided by NNI to large-scale system performance tuning. Based on AutoSys, we have built a tool to help many crucial system scenarios within Microsoft. These scenarios include multimedia search for Bing (e.g., tail latency reduced by up to ~40%, and capacity increased by up to ~30%), job scheduling for Bing Ads (e.g., tail latency reduced by up to ~13%), and so on. - -Below are two examples of tuning systems with NNI. Anyone can easily tune their own systems by following them. +As computer systems and networking get increasingly complicated, optimizing them manually with explicit rules and heuristics becomes harder than ever before, sometimes impossible. Below are two examples of tuning systems with NNI. Anyone can easily tune their own systems by following them. * [Tuning RocksDB with NNI](../TrialExample/RocksdbExamples.md) -* [Tuning parameters of SPTAG (Space Partition Tree And Graph) with NNI](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) \ No newline at end of file +* [Tuning parameters of SPTAG (Space Partition Tree And Graph) with NNI](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) + +Please see [this paper](https://dl.acm.org/citation.cfm?id=3352031) for more details: + +Mike Liang, Chieh-Jan, et al. "The Case for Learning-and-System Co-design." ACM SIGOPS Operating Systems Review 53.1 (2019): 68-74. \ No newline at end of file diff --git a/docs/zh_CN/Tutorial/TuningSystems.md b/docs/zh_CN/Tutorial/TuningSystems.md deleted file mode 100644 index ea99fff741..0000000000 --- a/docs/zh_CN/Tutorial/TuningSystems.md +++ /dev/null @@ -1,8 +0,0 @@ -# 使用 NNI 自动为系统调参 - -随着计算机系统和网络变得日益复杂,通过显式的规则和启发式的方法对它们进行手工优化变得越来越难,甚至是不可能的。在微软亚洲研究院,我们的 AutoSys 项目通过应用 NNI 提供的机器学习技术根据系统性能来自动调整系统的运行参数。AutoSys 项目已经成功应用在了微软内部很多重要的系统场景当中。这些场景包括必应的多媒体搜索 (尾延迟减少约 40%,容量提高约30%),必应广告的任务调度(尾延迟减少约 13%),等。 - -下面是两个使用 NNI 自动调整系统运行参数的例子。通过参考这些例子,人们可以方便地使用 NNI 来为自己的系统自动调优。 - -* [使用 NNI 调优 RocksDB](../TrialExample/RocksdbExamples.md) -* [使用 NNI 调优 SPTAG (Space Partition Tree And Graph)](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) \ No newline at end of file From b4731c3a052988a868bf97eec00bbdec22622edb Mon Sep 17 00:00:00 2001 From: Xiaotian Gao Date: Thu, 7 Nov 2019 19:08:58 +0800 Subject: [PATCH 3/5] updates --- src/nni_manager/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nni_manager/package.json b/src/nni_manager/package.json index 0840697432..4018df4c20 100644 --- a/src/nni_manager/package.json +++ b/src/nni_manager/package.json @@ -18,7 +18,7 @@ "js-base64": "^2.4.9", "kubernetes-client": "^6.5.0", "rx": "^4.1.0", - "sqlite3": "^4.0.2", + "sqlite3": "4.0.2", "ssh2": "^0.6.1", "stream-buffers": "^3.0.2", "tail-stream": "^0.3.4", @@ -38,7 +38,7 @@ "@types/node": "10.12.18", "@types/request": "^2.47.1", "@types/rx": "^4.1.1", - "@types/sqlite3": "^3.1.3", + "@types/sqlite3": "3.1.3", "@types/ssh2": "^0.5.35", "@types/stream-buffers": "^3.0.2", "@types/tmp": "^0.0.33", From 65718f3e9585b6de3eab034a9c3f88fcd50d77de Mon Sep 17 00:00:00 2001 From: Xiaotian Gao Date: Thu, 7 Nov 2019 19:14:27 +0800 Subject: [PATCH 4/5] updates --- docs/en_US/{Tutorial => CommunitySharings}/TuningSystems.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/en_US/{Tutorial => CommunitySharings}/TuningSystems.md (100%) diff --git a/docs/en_US/Tutorial/TuningSystems.md b/docs/en_US/CommunitySharings/TuningSystems.md similarity index 100% rename from docs/en_US/Tutorial/TuningSystems.md rename to docs/en_US/CommunitySharings/TuningSystems.md From 3d4cee1d572c9dfa81dd8a35a6311065c77caccb Mon Sep 17 00:00:00 2001 From: Xiaotian Gao Date: Thu, 7 Nov 2019 19:32:10 +0800 Subject: [PATCH 5/5] updates --- docs/en_US/CommunitySharings/TuningSystems.md | 4 ++-- src/nni_manager/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en_US/CommunitySharings/TuningSystems.md b/docs/en_US/CommunitySharings/TuningSystems.md index b65f8d36aa..30c44c7a8a 100644 --- a/docs/en_US/CommunitySharings/TuningSystems.md +++ b/docs/en_US/CommunitySharings/TuningSystems.md @@ -3,8 +3,8 @@ As computer systems and networking get increasingly complicated, optimizing them manually with explicit rules and heuristics becomes harder than ever before, sometimes impossible. Below are two examples of tuning systems with NNI. Anyone can easily tune their own systems by following them. * [Tuning RocksDB with NNI](../TrialExample/RocksdbExamples.md) -* [Tuning parameters of SPTAG (Space Partition Tree And Graph) with NNI](https://github.com/microsoft/SPTAG/blob/master/docs/Parameters.md) +* [Tuning parameters of SPTAG (Space Partition Tree And Graph) with NNI](SptagAutoTune.md) Please see [this paper](https://dl.acm.org/citation.cfm?id=3352031) for more details: -Mike Liang, Chieh-Jan, et al. "The Case for Learning-and-System Co-design." ACM SIGOPS Operating Systems Review 53.1 (2019): 68-74. \ No newline at end of file +Mike Liang, Chieh-Jan, et al. "The Case for Learning-and-System Co-design." ACM SIGOPS Operating Systems Review 53.1 (2019): 68-74. diff --git a/src/nni_manager/package.json b/src/nni_manager/package.json index 4018df4c20..0840697432 100644 --- a/src/nni_manager/package.json +++ b/src/nni_manager/package.json @@ -18,7 +18,7 @@ "js-base64": "^2.4.9", "kubernetes-client": "^6.5.0", "rx": "^4.1.0", - "sqlite3": "4.0.2", + "sqlite3": "^4.0.2", "ssh2": "^0.6.1", "stream-buffers": "^3.0.2", "tail-stream": "^0.3.4", @@ -38,7 +38,7 @@ "@types/node": "10.12.18", "@types/request": "^2.47.1", "@types/rx": "^4.1.1", - "@types/sqlite3": "3.1.3", + "@types/sqlite3": "^3.1.3", "@types/ssh2": "^0.5.35", "@types/stream-buffers": "^3.0.2", "@types/tmp": "^0.0.33",