Unverified Commit 7bc1105f authored by liuzhe-lz's avatar liuzhe-lz Committed by GitHub
Browse files

Tuner doc translation (#4446)

parent c02f4922
.. 1ff18ebada0efec66cd793f1a000f3fe .. 1ff18ebada0efec66cd793f1a000f3fe
内置 Tuner 内置 Tuner
============== ==========
NNI 能用简单快速的方法来配置超参调优算法,称之为 **Tuner** 为了让机器学习和深度学习模型适应不同的任务和问题,我们需要进行超参数调优,而自动化调优依赖于优秀的调优算法。NNI 内置了先进的调优算法,并且提供了易于使用的 API
Tuner 从 Trial 接收指标结果,来评估组超参或网络结构的性能。 然后 Tuner 会将下一组超参或网络结构的配置发送给新的 Trial。 在 NNI 中,调优算法被称为“tuner”。Tuner 向 trial 发送超参数,接收运行结果从而评估组超参的性能,然后将下一组超参发送给新的 trial。
下表简要介绍了 NNI 内置的调优算法。点击 tuner 的名称可以查看其安装需求、推荐使用场景、示例配置文件等详细信息。`这篇文章 <../CommunitySharings/HpoComparison.rst>`__ 对比了各个 tuner 在不同场景下的性能。
.. list-table::
:header-rows: 1
:widths: auto
* - Tuner
- 算法简介
* - `TPE <./TpeTuner.rst>`__
- Tree-structured Parzen Estimator (TPE) 是一种基于序列模型的优化方法 (sequential model-based optimization, SMBO)。SMBO方法根据历史数据来顺序地构造模型,从而预估超参性能,并基于此模型来选择新的超参。`参考论文 <https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf>`__
* - `Random Search (随机搜索) <./RandomTuner.rst>`__
- 随机搜索在超算优化中表现出了令人意外的性能。如果没有对超参分布的先验知识,我们推荐使用随机搜索作为基线方法。`参考论文 <http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf>`__
* - `Anneal (退火) <./AnnealTuner.rst>`__
- 朴素退火算法首先基于先验进行采样,然后逐渐逼近实际性能较好的采样点。该算法是随即搜索的变体,利用了反应曲面的平滑性。该实现中退火率不是自适应的。
* - `Naive Evolution(朴素进化) <./EvolutionTuner.rst>`__
- 朴素进化算法来自于 Large-Scale Evolution of Image Classifiers。它基于搜索空间随机生成一个种群,在每一代中选择较好的结果,并对其下一代进行变异。朴素进化算法需要很多 Trial 才能取得最优效果,但它也非常简单,易于扩展。`参考论文 <https://arxiv.org/pdf/1703.01041.pdf>`__
* - `SMAC <./SmacTuner.rst>`__
- SMAC 是基于序列模型的优化方法 (SMBO)。它利用使用过的最突出的模型(高斯随机过程模型),并将随机森林引入到SMBO中,来处理分类参数。NNI 的 SMAC tuner 封装了 GitHub 上的 `SMAC3 <https://github.com/automl/SMAC3>`__。`参考论文 <https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf>`__
注意:SMAC 算法需要使用 ``pip install nni[SMAC]`` 安装依赖,暂不支持 Windows 操作系统。
* - `Batch(批处理) <./BatchTuner.rst>`__
- 批处理允许用户直接提供若干组配置,为每种配置运行一个 trial。
* - `Grid Search(网格遍历) <./GridsearchTuner.rst>`__
- 网格遍历会穷举搜索空间中的所有超参组合。
* - `Hyperband <./HyperbandAdvisor.rst>`__
- Hyperband 试图用有限的资源探索尽可能多的超参组合。该算法的思路是,首先生成大量超参配置,将每组超参运行较短的一段时间,随后抛弃其中效果较差的一半,让较好的超参继续运行,如此重复多轮。`参考论文 <https://arxiv.org/pdf/1603.06560.pdf>`__
* - `Metis <./MetisTuner.rst>`__
- 大多数调参工具仅仅预测最优配置,而 Metis 的优势在于它有两个输出:(a) 最优配置的当前预测结果, 以及 (b) 下一次 trial 的建议。大多数工具假设训练集没有噪声数据,但 Metis 会知道是否需要对某个超参重新采样。`参考论文 <https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/>`__
* - `BOHB <./BohbAdvisor.rst>`__
- BOHB 是 Hyperband 算法的后续工作。 Hyperband 在生成新的配置时,没有利用已有的 trial 结果,而本算法利用了 trial 结果。BOHB 中,HB 表示 Hyperband,BO 表示贝叶斯优化(Byesian Optimization)。 BOHB 会建立多个 TPE 模型,从而利用已完成的 Trial 生成新的配置。`参考论文 <https://arxiv.org/abs/1807.01774>`__
* - `GP (高斯过程) <./GPTuner.rst>`__
- GP Tuner 是基于序列模型的优化方法 (SMBO),使用高斯过程进行 surrogate。`参考论文 <https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf>`__
* - `PBT <./PBTTuner.rst>`__
- PBT Tuner 是一种简单的异步优化算法,在固定的计算资源下,它能有效的联合优化一组模型及其超参来最优化性能。`参考论文 <https://arxiv.org/abs/1711.09846v1>`__
* - `DNGO <./DngoTuner.rst>`__
- DNGO 是基于序列模型的优化方法 (SMBO),该算法使用神经网络(而不是高斯过程)去建模贝叶斯优化中所需要的函数分布。
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
概述<Tuner/BuiltinTuner> TPE <Tuner/TpeTuner>
Random Search(随机搜索)<Tuner/HyperoptTuner> Random Search(随机搜索) <Tuner/RandomTuner>
Naïve Evolution(朴素进化)<Tuner/EvolutionTuner> Anneal(退火) <Tuner/AnnealTuner>
SMAC<Tuner/SmacTuner> Naïve Evolution(朴素进化) <Tuner/EvolutionTuner>
Metis Tuner<Tuner/MetisTuner> SMAC <Tuner/SmacTuner>
Batch Tuner(批处理)<Tuner/BatchTuner> Metis Tuner <Tuner/MetisTuner>
Grid Search(遍历)<Tuner/GridsearchTuner> Batch Tuner(批处理) <Tuner/BatchTuner>
GP Tuner<Tuner/GPTuner> Grid Search(网格遍历) <Tuner/GridsearchTuner>
Network Morphism<Tuner/NetworkmorphismTuner> GP Tuner <Tuner/GPTuner>
Hyperband<Tuner/HyperbandAdvisor> Network Morphism <Tuner/NetworkmorphismTuner>
BOHB<Tuner/BohbAdvisor> Hyperband <Tuner/HyperbandAdvisor>
BOHB <Tuner/BohbAdvisor>
PBT Tuner <Tuner/PBTTuner> PBT Tuner <Tuner/PBTTuner>
DNGO Tuner <Tuner/DngoTuner> DNGO Tuner <Tuner/DngoTuner>
.. 6ed30d3a87dbc4c1c4650cf56f074045 .. 6ed30d3a87dbc4c1c4650cf56f074045
############################# ##############
自动超参数调优 自动超参数调优
############################# ##############
自动调优是 NNI 提供的关键功能之一,主要应用场景是 自动调优是 NNI 的主要功能之一。它的工作模式是反复运行 trial 代码,每次向其提供不同的超参组合,从而对 trial 的运行结果进行调优。NNI 提供了很多流行的自动调优算法(称为 Tuner)和一些提前终止算法(称为 Assessor)。NNI 支持在多种训练平台上运行 trial,包括本机、远程服务器、Azure Machine Learning、基于 Kubernetes 的集群(如 OpenPAI、Kubeflow)等等。
超参调优。 应用于 Trial 代码的调优。 提供了很多流行的
自动调优算法(称为 Tuner )和一些提前终止算法(称为 Assessor)。
NNI 支持在各种培训平台上运行 Trial,例如,在本地计算机上运行,
在多台服务器上分布式运行,或在 OpenPAI,Kubernetes 等平台上。
NNI 的其它重要功能,例如模型压缩,特征工程,也可以进一步 NNI 具有高扩展性,用户可以根据需求实现自己的 Tuner 算法和训练平台。
通过自动调优来提高,这会在介绍具体功能时提及。
NNI 具有高扩展性,高级用户可以定制自己的 Tuner、 Assessor,以及训练平台
来适应不同的需求。
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
实现 Trial<./TrialExample/Trials> 实现 Trial <./TrialExample/Trials>
Tuners <builtin_tuner> Tuners <builtin_tuner>
Assessors <builtin_assessor> Assessors <builtin_assessor>
训练平台 <training_services> 训练平台 <training_services>
示例 <examples> 示例 <examples>
Web 界面 <Tutorial/WebUI> Web 界面 <Tutorial/WebUI>
如何调试 <Tutorial/HowToDebug> 如何调试 <Tutorial/HowToDebug>
高级 <hpo_advanced> 高级功能 <hpo_advanced>
Tuner 基准测试 <hpo_benchmark> Tuner 基准测试 <hpo_benchmark>
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