"src/targets/gpu/vscode:/vscode.git/clone" did not exist on "ce649bb53baa8f58e3588a8cbd604b8af9366bdf"
Unverified Commit 91d9a797 authored by Yuge Zhang's avatar Yuge Zhang Committed by GitHub
Browse files

Adopt symbolic links in Chinese documentation (#4345)


Co-authored-by: default avatarjiahangxu <jiahangxu@microsoft.com>
parent 0e0ee86d
.. d19a00598b8eca71c825d80c0a7106f2
######################
示例
######################
......@@ -8,4 +10,5 @@
MNIST<./TrialExample/MnistExamples>
Cifar10<./TrialExample/Cifar10Examples>
Scikit-learn<./TrialExample/SklearnExamples>
GBDT<./TrialExample/GbdtExample>
\ No newline at end of file
GBDT<./TrialExample/GbdtExample>
Pix2pix<./TrialExample/Pix2pixExample>
\ No newline at end of file
.. 0958703dcd6f8078a1ad1bcaef9c7199
###################
特征工程
###################
......
.. 43bb394b1e25458a948c134058ec68ac
高级功能
=================
......
Tuner 基准测试
====================
我们提供了一个基准测试工具来比较 NNI 提供的 Tuner(和用户自定义的 Tuner)在不同任务上的性能。 该工具的实现基于 automlbenchmark 存储库(https://github.com/openml/automlbenchmark),该存储库提供针对由多个 *tasks* 组成的不同 *benchmarks* 运行不同 *frameworks* 的服务。 该工具位于 ``examples/trials/benchmarking/automlbenchmark``。 本文件简要介绍了该工具及其使用方法。
术语
^^^^^^^^^^^
* **task**\ : 一个任务可以被认为是(数据集,评估器)。 它给出了一个包含(训练、验证、测试)的数据集,评估器根据收到的预测结果评估一个给定的指标(例如,回归的 mse,分类的f1)。
* **benchmark**\ : 基准测试是一组任务,以及其他外部约束,例如时间和资源。
* **framework**\ : 给定一个任务,一个框架构思出对所提出的回归或分类问题的答案并产生预测。 请注意,automlbenchmark 框架对框架的假设空间没有任何限制。 在我们在这个文件夹中的实现中,每个框架都是一个元组(tuner,architecture),其中架构提供了假设空间(和 Tuner 的搜索空间),tuner 决定了超参数优化的策略。
* **tuner**\ : hpo 文件夹中定义的 Tuner 或 Advisor,或用户提供的自定义 Tuner。
* **architecture**\ : 架构是解决任务的特定方法,以及一组要优化的超参数(即搜索空间)。 在我们的实现中,该架构多次调用 Tuner 以获得可能的超参数配置,并为任务生成最终预测。在我们的实现中,该架构多次调用 Tuner 以获得可能的超参数配置,并为任务生成最终预测。 查看 ``./nni/extensions/NNI/architectures`` 获取示例。
注意:目前,唯一支持的架构是随机森林。 架构实现和搜索空间定义可以在 ``./nni/extensions/NNI/architectures/run_random_forest.py`` 中找到。 基准测试 “nnivalid” 和 “nnismall” 中的任务适合用随机森林解决。
设置
^^^^^
由于 automlbenchmark 和 python 3.8 之间存在一些不兼容,建议使用 python 3.7 运行此文件夹中包含的实验。 首先,运行以下 shell 脚本来克隆 automlbenchmark 存储库。 注意:建议在单独的虚拟环境中执行以下步骤,因为安装代码可能会安装多个包。
.. code-block:: bash
./setup.sh
在现有 Tuner 上运行预定义的基准测试
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
./runbenchmark_nni.sh [tuner-names]
该脚本运行基准 “nnivalid”,它由一个回归任务、一个二元分类任务和一个多类分类任务组成。 脚本完成后,您可以在文件夹 results_[time]/reports/ 中找到结果摘要。 要在其他预定义基准上运行,请更改 ``runbenchmark_nni.sh`` 中的 ``benchmark`` 变量。 一些基准在 ``/examples/trials/benchmarking/automlbenchmark/nni/benchmarks``\ 中定义,其他基准测试在 ``/examples/trials/benchmarking/automlbenchmark/automlbenchmark/resources/benchmarks/`` 中定义。 大型基准的一个例子是 "nnismall",它包括8个回归任务、8个二元分类任务和8个多类分类任务。
默认情况下,该脚本在NNI的所有嵌入式 Tuner 上运行该基准测试。 如果在 [tuner-names] 中提供了一个 Tuner 的列表,它只运行列表中的 Tuner。 目前,支持以下 Tuner:"TPE", "Random", "Anneal", "Evolution", "SMAC", "GPTuner", "MetisTuner", "DNGOTuner", "Hyperband", "BOHB"。 也可以评估定制 Tuner。 可参考下一章节。
默认情况下,该脚本针对指定的基准逐一运行指定的 Tuner。 为了在后台同时运行所有的实验,在 ``runbenchmark_nni.sh`` 中设置 "serialize" 标志为 false。
注意:SMAC Tuner 、DNGO Tuner 和 BOHB Advisor 必须在运行任何实验之前手动安装。 关于安装SMAC和BOHB的更多细节,请参考 `本页面 <https://nni.readthedocs.io/zh/stable/Tuner/BuiltinTuner.html?highlight=nni>`_ 。
在自定义 Tuner 上运行预定义的基准测试
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
要运行自定义的基准,在 ``./nni/benchmarks`` 文件夹中添加 benchmark_name.yaml 文件,并在 ``runbenchmark_nni.sh`` 中改变 ``benchmark`` 变量。 参见 ``./automlbenchmark/resources/benchmarks/``,了解一些定义自定义基准的例子。
在自定义 Tuner 上运行基准测试
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
要使用自定义 Tuner,首先要确保 Tuner 继承自 ``nni.tuner.Tuner`` 并正确实现所需的API。 关于实现自定义调谐器的更多信息,请参考 `这里 <https://nni.readthedocs.io/zh/stable/Tuner/CustomizeTuner.html>`_ 。 接下来,执行以下步骤:
#. 用 ``nnictl algo register`` 命令安装自定义 Tuner。 详情请查看 `本文档 <https://nni.readthedocs.io/zh/stable/Tutorial/Nnictl.html>`_ 。
#. 在 ``./nni/frameworks.yaml``\ 中,添加一个扩展基础框架 NNI 的新框架。 确保参数 ``tuner_type`` 对应于在步骤 1 中安装 Tuner 的 “builtinName”。
#. 运行命令
.. code-block:: bash
./runbenchmark_nni.sh new-tuner-builtinName
基准测试示例
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
例如,我们在以下8个 Tuner 上运行 “nnismall” 基准: "TPE", "Random", "Anneal", "Evolution", "SMAC", "GPTuner", "MetisTuner", "DNGOTuner". 由于一些任务包含相当数量的训练数据,在一个 Tuner 上使用单个 CPU 核心运行整个基准测试大约需要2天。 关于任务的详细描述,请查看 ``/examples/trials/benchmarking/automlbenchmark/nni/benchmarks/nnismall_description.txt`` 。 对于二类和多类分类任务,使用了 "AUC "和 "logloss" 指标进行评估,而对于回归,则使用了 "r2" 和 "rmse" 指标。
脚本完成后,每个 Tuner 的最终得分被总结在文件中 ``results[time]/reports/performances.txt``。 由于该文件很大,我们只显示以下屏幕截图并总结其他重要统计数据。
.. image:: ../img/hpo_benchmark/performances.png
:target: ../img/hpo_benchmark/performances.png
:alt:
此外,在对结果进行解析时,根据最终的性能对 Tuner 进行排名。 ``results[time]/reports/rankings.txt`` 显示了在每个指标(logloss, rmse, auc)下,Tuner 的平均排名。 在这里,我们介绍了前三个表中的数据。 此外,对于每个 Tuner,我们总结了对每种类型度量的性能(相同数据的另一视图)。 我们在第四个表格中介绍了这一统计数据。
指标 rmse 的平均排名:
.. list-table::
:header-rows: 1
* - Tuner 名字
- 平均排名
* - Anneal
- 3.75
* - Random
- 4.00
* - Evolution
- 4.44
* - DNGOTuner
- 4.44
* - SMAC
- 4.56
* - TPE
- 4.94
* - GPTuner
- 4.94
* - MetisTuner
- 4.94
指标 auc 的平均排名:
.. list-table::
:header-rows: 1
* - Tuner 名字
- 平均排名
* - SMAC
- 3.67
* - GPTuner
- 4.00
* - Evolution
- 4.22
* - Anneal
- 4.39
* - MetisTuner
- 4.39
* - TPE
- 4.67
* - Random
- 5.33
* - DNGOTuner
- 5.33
指标 logloss 的平均排名:
.. list-table::
:header-rows: 1
* - Tuner 名字
- 平均排名
* - Random
- 3.36
* - DNGOTuner
- 3.50
* - SMAC
- 3.93
* - GPTuner
- 4.64
* - TPE
- 4.71
* - Anneal
- 4.93
* - Evolution
- 5.00
* - MetisTuner
- 5.93
Tuner 的平均排名:
.. list-table::
:header-rows: 1
* - Tuner 名字
- rmse
- auc
- logloss
* - TPE
- 4.94
- 4.67
- 4.71
* - Random
- 4.00
- 5.33
- 3.36
* - Anneal
- 3.75
- 4.39
- 4.93
* - Evolution
- 4.44
- 4.22
- 5.00
* - GPTuner
- 4.94
- 4.00
- 4.64
* - MetisTuner
- 4.94
- 4.39
- 5.93
* - SMAC
- 4.56
- 3.67
- 3.93
* - DNGOTuner
- 4.44
- 5.33
- 3.50
除了这些报告,我们的脚本还为每个任务的每个文件夹生成两个图表。 第一个图表显示了每个 Tuner 在第 x 个 Trial 之前的最佳分数,第二图表显示了 Trial x 中每个 Tuner 的分数。 这两张图可以提供一些关于 Tuner 如何 "收敛" 的信息。 我们发现,对于 "nnismall",随机森林模型上的 Tuner,其搜索空间定义在 ``/examples/trials/benchmarking/automlbenchmark/nni/extensions/NNI/architectures/run_random_forest.py`` ,一般在40到60次试验后收敛到最终解决方案。 由于图表太多,无法包含在一份报告中(共96张图表),我们在此只介绍10张图表。
.. image:: ../img/hpo_benchmark/car_fold1_1.jpg
:target: ../img/hpo_benchmark/car_fold1_1.jpg
:alt:
.. image:: ../img/hpo_benchmark/car_fold1_2.jpg
:target: ../img/hpo_benchmark/car_fold1_2.jpg
:alt:
例如,前面两个图是为任务 "汽车" 的文件夹1生成的。 在第一张图中,我们可以观察到,大多数 Tuner 在40次 Trial 中找到了一个相对较好的解决方案。 在这个实验中,在所有的 Tuner 中,DNGOTuner 最快收敛到最佳解决方案(在10次 Trial 内)。 它的分数在整个实验中提高了三次。 在第二张图中,我们观察到大多数 Tuner 的分数在整个实验期间都在0.8和1之间波动。 然而,似乎 Anneal 调谐器(绿线)更不稳定(有更多的波动),而 GPTune r有一个更稳定的模式。 无论如何,虽然这种模式可以在某种程度上被解释为 Tuner 对探索开采权衡的位置,但它不能用于综合评估 Tuner 的效率。
.. image:: ../img/hpo_benchmark/christine_fold0_1.jpg
:target: ../img/hpo_benchmark/christine_fold0_1.jpg
:alt:
.. image:: ../img/hpo_benchmark/christine_fold0_2.jpg
:target: ../img/hpo_benchmark/christine_fold0_2.jpg
:alt:
.. image:: ../img/hpo_benchmark/cnae-9_fold0_1.jpg
:target: ../img/hpo_benchmark/cnae-9_fold0_1.jpg
:alt:
.. image:: ../img/hpo_benchmark/cnae-9_fold0_2.jpg
:target: ../img/hpo_benchmark/cnae-9_fold0_2.jpg
:alt:
.. image:: ../img/hpo_benchmark/credit-g_fold1_1.jpg
:target: ../img/hpo_benchmark/credit-g_fold1_1.jpg
:alt:
.. image:: ../img/hpo_benchmark/credit-g_fold1_2.jpg
:target: ../img/hpo_benchmark/credit-g_fold1_2.jpg
:alt:
.. image:: ../img/hpo_benchmark/titanic_2_fold1_1.jpg
:target: ../img/hpo_benchmark/titanic_2_fold1_1.jpg
:alt:
.. image:: ../img/hpo_benchmark/titanic_2_fold1_2.jpg
:target: ../img/hpo_benchmark/titanic_2_fold1_2.jpg
:alt:
../en_US/hpo_benchmark.rst
\ No newline at end of file
../en_US/hpo_benchmark_stats.rst
\ No newline at end of file
.. 6ed30d3a87dbc4c1c4650cf56f074045
#############################
自动(超参数)调优
#############################
......
.. c62173d7147a43a13bf2cdf945b82d07
############
安装
############
......
.. da97b4cdd507bd8fad43d640f3d2bfef
#################
模型压缩
#################
......@@ -25,6 +27,7 @@ NNI 中也内置了一些主流的模型压缩算法。
概述 <Compression/Overview>
快速入门 <Compression/QuickStart>
教程 <Compression/Tutorial>
剪枝 <Compression/pruning>
剪枝(V2版本) <Compression/v2_pruning>
量化 <Compression/quantization>
......
.. 0b36fb7844fd9cc88c4e74ad2c6b9ece
##########################
神经网络架构搜索
##########################
......@@ -29,5 +31,6 @@ Retiarii 的探索性训练允许用户以高度灵活的方式表达 *神经网
构建模型空间 <NAS/construct_space>
Multi-trial NAS <NAS/multi_trial_nas>
One-Shot NAS <NAS/one_shot_nas>
硬件相关 NAS <NAS/HardwareAwareNAS>
NAS 基准测试 <NAS/Benchmarks>
NAS API 参考 <NAS/ApiReference>
.. 5f17887878bae5d51cf177a1c995c003
参考
==================
......
===========================
Experiment 配置
===========================
创建 Experiment 所需要的配置文件。 本文介绍了配置文件的内容,并提供了一些示例。
.. Note::
1. 此文档的字段使用 ``camelCase`` 法命名。 对于 Python 库 ``nni.experiment``,需要转换成 ``snake_case`` 形式。
2. 在此文档中,字段类型被格式化为 `Python 类型提示 <https://docs.python.org/3.10/library/typing.html>`__。 因此,JSON 对象被称为 `dict`,数组被称为 `list`。
.. _path:
3. 一些字段采用文件或目录的路径, 除特别说明,均支持绝对路径和相对路径,``~`` 将扩展到 home 目录。
- 在写入 YAML 文件时,相对路径是相对于包含该文件目录的路径。
- 在 Python 代码中赋值时,相对路径是相对于当前工作目录的路径。
- 在将 YAML 文件加载到 Python 类,以及将 Python 类保存到 YAML 文件时,所有相对路径都转换为绝对路径。
4. 将字段设置为 ``None`` 或 ``null`` 时相当于不设置该字段。
.. contents:: Contents
:local:
:depth: 3
示例
========
本机模式
^^^^^^^^^^
.. code-block:: yaml
experimentName: MNIST
searchSpaceFile: search_space.json
trialCommand: python mnist.py
trialCodeDirectory: .
trialGpuNumber: 1
trialConcurrency: 2
maxExperimentDuration: 24h
maxTrialNumber: 100
tuner:
name: TPE
classArgs:
optimize_mode: maximize
trainingService:
platform: local
useActiveGpu: True
本机模式(内联搜索空间)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: yaml
searchSpace:
batch_size:
_type: choice
_value: [16, 32, 64]
learning_rate:
_type: loguniform
_value: [0.0001, 0.1]
trialCommand: python mnist.py
trialGpuNumber: 1
trialConcurrency: 2
tuner:
name: TPE
classArgs:
optimize_mode: maximize
trainingService:
platform: local
useActiveGpu: True
远程模式
^^^^^^^^^^^
.. code-block:: yaml
experimentName: MNIST
searchSpaceFile: search_space.json
trialCommand: python mnist.py
trialCodeDirectory: .
trialGpuNumber: 1
trialConcurrency: 2
maxExperimentDuration: 24h
maxTrialNumber: 100
tuner:
name: TPE
classArgs:
optimize_mode: maximize
trainingService:
platform: remote
machineList:
- host: 11.22.33.44
user: alice
password: xxxxx
- host: my.domain.com
user: bob
sshKeyFile: ~/.ssh/id_rsa
参考
=========
Experiment(实验)配置参考
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
experimentName
--------------
Experiment 的助记名称, 这将显示在 WebUI 和 nnictl 中。
类型:``Optional[str]``
searchSpaceFile
---------------
包含搜索空间 JSON 文件的路径(path_)。
类型:``Optional[str]``
搜索空间格式由 Tuner 决定, 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。
与 `searchSpace`_ 互斥。
searchSpace
-----------
搜索空间对象。
类型:``Optional[JSON]``
格式由 Tuner 决定, 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。
注意,``None`` 意味着“没有这样的字段”,所以空的搜索空间应该写成 ``{}``。
与 `searchSpaceFile`_ 互斥。
trialCommand
------------
启动 Trial 的命令。
类型:``str``
该命令将在 Linux 和 macOS 上的 bash 中执行,在 Windows 上的 PowerShell 中执行。
注意在 Linux 和 macOS 中使用``python3``,在 Windows 中使用 ``python``。
trialCodeDirectory
------------------
到 Trial 源文件的目录的路径(path_)。
类型:``str``
默认值:``"."``
此目录中的所有文件都将发送到训练机器,除了 ``.nniignore`` 文件。
(详细信息,请参考 `快速入门 <../Tutorial/QuickStart.rst>`__ 的 nniignore 部分。)
trialConcurrency
----------------
指定同时运行的 Trial 数目。
类型:``int``
实际的并发性还取决于硬件资源,可能小于此值。
trialGpuNumber
--------------
每个 Trial 使用的 GPU 数目。
类型:``Optional[int]``
对于各种训练平台,这个字段的含义可能略有不同,
尤其是设置为 ``0`` 或者 ``None`` 时,
指定 `训练平台 <../TrainingService/Overview.rst>`__。
在本地模式下,将该字段设置为零将阻止 Trial 获取 GPU(通过置空 ``CUDA_VISIBLE_DEVICES`` )。
当设置为 ``None`` 时,Trial 将被创建和调度,就像它们不使用 GPU 一样,
但是它们仍然可以根据需要使用所有 GPU 资源。
maxExperimentDuration
---------------------
如果指定,将限制此 Experiment 的持续时间。
类型:``Optional[str]``
格式:``数字 + s|m|h|d``
示例:``"10m"``, ``"0.5h"``
当时间耗尽时,Experiment 将停止创建 Trial,但仍然服务于 web UI。
maxTrialNumber
--------------
如果指定,将限制创建的 Trial 数目。
类型:``Optional[int]``
当预算耗尽时,Experiment 将停止创建 Trial,但仍然服务于 web UI。
nniManagerIp
------------
当前机器的 IP,用于训练机器访问 NNI 管理器。 本机模式下不可选。 本机模式下不可选。
类型:``Optional[str]``
如果未指定,将使用 ``eth0`` 的 IPv4 地址。
除本地模式外,强烈建议手动设置此字段。
useAnnotation
-------------
启动 `annotation <../Tutorial/AnnotationSpec.rst>`__。
类型:``Optional[bool]``
默认值:``false``
使用 annotation 时,`searchSpace`_ 和 `searchSpaceFile`_ 不应手动指定。
debug
-----
启动调试模式
类型:``str``
默认值:``false``
启用后,日志记录将更加详细,并且一些内部验证将被放宽。
logLevel
--------
设置整个系统的日志级别。
类型:``Optional[str]``
候选项:``"trace"``, ``"debug"``, ``"info"``, ``"warning"``, ``"error"``, ``"fatal"``
默认为 "info" 或 "debug",取决于 `debug`_ 选项。 启用调试模式时,LogLevel 设置为 “debug”,否则,LogLevel 设置为 “Info”。
NNI 的大多数模块都会受到此值的影响,包括 NNI 管理器、Tuner、训练平台等。
Trial 是一个例外,它的日志记录级别由 Trial 代码直接管理。
对于 Python 模块,"trace" 充当日志级别0,"fatal" 表示 ``logging.CRITICAL``。
experimentWorkingDirectory
--------------------------
指定目录 `directory <path>`_ 来存放日志、检查点、元数据和其他运行时的内容。
类型:``Optional[str]``
默认:``~/nni-experiments``
NNI 将创建一个以 Experiment ID 命名的子目录,所以在多个 Experiment 中使用同一个目录不会有冲突。
tunerGpuIndices
---------------
设定对 Tuner、Assessor 和 Advisor 可见的 GPU。
类型: ``Optional[list[int] | str | int]``
这将是 Tuner 进程的 ``CUDA_VISIBLE_DEVICES`` 环境变量,
因为 Tuner、Assessor 和 Advisor 在同一个进程中运行,所以此选项将同时影响它们。
tuner
-----
指定 Tuner。
类型:Optional `AlgorithmConfig`_
内置的 Tuner 可以在 `这里 <../builtin_tuner.rst>`__ 找到,你可以按照 `此教程 <../Tuner/CustomizeTuner.rst>`__ 来定制一个新的 Tuner。
assessor
--------
指定 Assessor。
类型:Optional `AlgorithmConfig`_
内置的 Assessor 可以在 `这里 <../builtin_assessor.rst>`__ 找到,你可以按照 `此教程 <../Assessor/CustomizeAssessor.rst>`__ 来定制一个新的 Assessor。
advisor
-------
指定 Advisor。
类型:Optional `AlgorithmConfig`_
NNI 提供了两个内置的 Advisor:`BOHB <../Tuner/BohbAdvisor.rst>`__ 和 `Hyperband <../Tuner/HyperbandAdvisor.rst>`__,你可以按照 `此教程 <../Tuner/CustomizeAdvisor.rst>`__ 来定制一个新的 Advisor。
trainingService
---------------
详情查看 `这里 <../TrainingService/LocalMode.rst>`__。
类型:`TrainingServiceConfig`_
sharedStorage
-------------
配置共享存储,详细的用法可以在 `这里 <../Tutorial/HowToUseSharedStorage.rst>`__ 找到。
类型:Optional `SharedStorageConfig`_
AlgorithmConfig
^^^^^^^^^^^^^^^
``AlgorithmConfig`` 描述 tuner / assessor / advisor 算法。
对于自定义算法,有两种方法来描述它们:
1. `注册算法 <../Tuner/InstallCustomizedTuner.rst>`__ ,像内置算法一样使用。 (首选) (首选)
2. 指定代码目录和类名。
name
----
内置或注册算法的名称。
类型:对于内置和注册算法使用 ``None``,其他自定义算法使用 ``str``
className
---------
未注册的自定义算法的限定类名。
类型:对于内置和注册算法使用 ``None``,其他自定义算法使用 ``str``
示例:``"my_tuner.MyTuner"``
codeDirectory
-------------
到自定义算法类的目录的路径(path_)。
类型:对于内置和注册算法使用 ``str``,其他自定义算法使用 ``None``
classArgs
---------
传递给算法类构造函数的关键字参数。
类型:``Optional[dict[str, Any]]``
有关支持的值,请参阅算法文档。
TrainingServiceConfig
^^^^^^^^^^^^^^^^^^^^^
以下之一:
- `LocalConfig`_
- `RemoteConfig`_
- :ref:`OpenpaiConfig <openpai-class>`
- `AmlConfig`_
- `HybridConfig`_
对于 `Kubeflow <../TrainingService/KubeflowMode.rst>`_, `FrameworkController <../TrainingService/FrameworkControllerMode.rst>`_, 和 `AdaptDL <../TrainingService/AdaptDLMode.rst>`_ 训练平台,目前 NNI 建议使用 `v1 配置模式 <../Tutorial/ExperimentConfig.rst>`_ 。
LocalConfig
-----------
详情查看 `这里 <../TrainingService/AMLMode.rst>`__。
platform
""""""""
字符串常量 ``"local"``。
useActiveGpu
""""""""""""
指定 NNI 是否应向被其他任务占用的 GPU 提交 Trial。
类型:``Optional[str]``
必须在 ``trialgpunmber`` 大于零时设置。
以下过程可以使GPU "active" 起来:
- 非 NNI 的 CUDA 程序
- 图形化桌面
- 其他 NNI 实例提交的 Trial,如果您在同一时间运行了多个 NNI Experiment
- 其他用户的 CUDA 程序,如果你使用共享服务器
如果你使用的是图形操作系统,如 Windows 10 或 Ubuntu 桌面,请将此字段设置为 ``True``,否则,图形用户界面将阻止 NNI 启动任何 Trial。
当你创建多个 NNI Experiment 并且将 ``useActiveGpu`` 设置为 ``True`` 时,它们将同时提交多个 Trial 到同一个 GPU。
maxTrialNumberPerGpu
""""""""""""""""""""
指定可以共享一个 GPU 的 Trial 数目。
类型:``int``
默认值:``1``
gpuIndices
""""""""""
设定对 Trial 进程可见的 GPU。
类型: ``Optional[list[int] | str | int]``
如果 `trialGpuNumber`_ 小于此值的长度,那么每个 Trial 只能看到一个子集。
这用作环境变量 ``CUDA_VISIBLE_DEVICES``。
RemoteConfig
------------
详情查看 `这里 <../TrainingService/RemoteMachineMode.rst>`__。
platform
""""""""
字符串常量 ``"remote"``。
machineList
"""""""""""
训练机器列表
类型: `RemoteMachineConfig`_ 列表
reuseMode
"""""""""
启动 `重用模式 <../Tutorial/ExperimentConfig.rst#reuse>`__。
类型:``str``
RemoteMachineConfig
"""""""""""""""""""
host
****
机器的 IP 或主机名(域名)。
类型:``str``
port
****
SSH 服务端口。
类型:``int``
默认值:``22``
user
****
登录用户名。
类型:``str``
password
********
登录密码。
类型:``Optional[str]``
如果未指定,则将使用 `sshKeyFile`_。
sshKeyFile
**********
到 sshKeyFile的路径(path_)。
类型:``Optional[str]``
仅在未指定 `password`_ 时使用。
sshPassphrase
*************
SSH 标识文件的密码。
类型:``Optional[str]``
useActiveGpu
************
指定 NNI 是否应向被其他任务占用的 GPU 提交 Trial。
类型:``str``
默认值:``false``
必须在 ``trialgpunmber`` 大于零时设置。
以下过程可以使GPU "active" 起来:
- 非 NNI 的 CUDA 程序
- 图形化桌面
- 其他 NNI 实例提交的 Trial,如果您在同一时间运行了多个 NNI Experiment
- 其他用户的 CUDA 程序,如果你使用共享服务器
如果你使用的是图形操作系统,如 Ubuntu 桌面,请将此字段设置为 ``True``,否则,图形用户界面将阻止 NNI 启动任何 Trial。
当你创建多个 NNI Experiment 并且将 ``useActiveGpu`` 设置为 ``True`` 时,它们将同时提交多个 Trial 到同一个 GPU。
maxTrialNumberPerGpu
********************
指定可以共享一个 GPU 的 Trial 数目。
类型:``int``
默认值:``1``
gpuIndices
**********
设定对 Trial 进程可见的 GPU。
类型: ``Optional[list[int] | str | int]``
如果 `trialGpuNumber`_ 小于此值的长度,那么每个 Trial 只能看到一个子集。
这用作环境变量 ``CUDA_VISIBLE_DEVICES``。
pythonPath
**********
指定 Python 环境。
类型:``Optional[list[int] | str]``
这个路径将被插入到 PATH 的前面。 以下之一:
- (linux) pythonPath: ``/opt/python3.7/bin``
- (windows) pythonPath: ``C:/Python37``
如果你是在 Anaconda 上工作,那就有所不同。 在Windows上,你还必须添加 ``.../script`` 和 ``.../Library/bin``,并用 ``;`` 分隔。 示例如下:
- (linux anaconda) pythonPath: ``/home/yourname/anaconda3/envs/myenv/bin/``
- (windows anaconda) pythonPath: ``C:/Users/yourname/.conda/envs/myenv;C:/Users/yourname/.conda/envs/myenv/Scripts;C:/Users/yourname/.conda/envs/myenv/Library/bin``
如果不同机器的准备步骤不同,这将非常有用。
.. _openpai-class:
OpenpaiConfig
-------------
详情查看 `这里 <../TrainingService/PaiMode.rst>`__。
platform
""""""""
字符串常量 ``"openpai"``。
host
""""
OpenPAI 平台的主机名。
类型:``str``
可能包括 ``https://`` 或 ``http://`` 前缀。
默认情况下将使用 HTTPS。
username
""""""""
OpenPAI 用户名。
类型:``str``
token
"""""
OpenPAI 用户令牌。
类型:``str``
这可以在 OpenPAI 用户设置页面中找到。
trialCpuNumber
""""""""""""""
指定每个 Trial 在 OpenPAI 容器中使用的 CPU 数。
类型:``bool``
trialMemorySize
"""""""""""""""
指定每个 Trial 在 OpenPAI 容器中的内存限制。
类型:``str``
格式:``数字 + tb|gb|mb|kb``
示例:``"8gb"``, ``"8192mb"``
storageConfigName
"""""""""""""""""
设置 OpenPAI 中使用的存储名称。
类型:``str``
dockerImage
"""""""""""
运行 Trial 的 Docker 镜像的名称和标签。
类型:``str``
默认:``"msranni/nni:latest"``
localStorageMountPoint
""""""""""""""""""""""
当前机器中存储服务(通常是NFS)的挂载点路径。
类型:``str``
containerStorageMountPoint
""""""""""""""""""""""""""
Docker 容器中存储服务(通常是NFS)的挂载点。
类型:``Optional[str]``
这必须是绝对路径。
reuseMode
"""""""""
启动 `重用模式 <../Tutorial/ExperimentConfig.rst#reuse>`__。
类型:``str``
默认值:``false``
openpaiConfig
"""""""""""""
嵌入的 OpenPAI 配置文件。
类型:``Optional[JSON]``
openpaiConfigFile
"""""""""""""""""
到 OpenPAI 配置文件的路径(path_)
类型:``Optional[list[int] | str]``
示例在 `这里 <https://github.com/microsoft/pai/blob/master/docs/manual/cluster-user/examples/hello-world-job.yaml>`__。
AmlConfig
---------
详细用法参考 `这里 <../TrainingService/AMLMode.rst>`__。
platform
""""""""
字符串常量 ``"aml"``。
dockerImage
"""""""""""
运行 Trial 的 Docker 镜像的名称和标签。
类型:``Optional[list[int] | str]``
默认:``"msranni/nni:latest"``
subscriptionId
""""""""""""""
Azure 订阅 ID。
类型:``str``
resourceGroup
"""""""""""""
Azure 资源组名称。
类型:``str``
workspaceName
"""""""""""""
Azure 工作区名称。
类型:``str``
computeTarget
"""""""""""""
AML 计算集群名称。
类型:``str``
HybridConfig
------------
目前仅支持 `LocalConfig`_, `RemoteConfig`_, :ref:`OpenpaiConfig <openpai-class>` 和 `AmlConfig`_ 配置。 详细用法参考 `这里 <../TrainingService/HybridMode.rst>`__。
类型:`TrainingServiceConfig`_ 列表
SharedStorageConfig
^^^^^^^^^^^^^^^^^^^
详细用法参考 `这里 <../Tutorial/HowToUseSharedStorage.rst>`__。
nfsConfig
---------
storageType
"""""""""""
字符串常量 ``"NFS"``
localMountPoint
"""""""""""""""
已经或将要在本地挂载存储的路径。
类型:``str``
如果路径不存在,则会自动创建。 推荐使用绝对路径,即 ``/tmp/nni-shared-storage``
remoteMountPoint
""""""""""""""""
远程挂载存储的路径。
类型:``str``
如果路径不存在,则会自动创建。 推荐使用相对路径。 即, ``./nni-shared-storage``
localMounted
""""""""""""
指定挂载共享存储的对象和状态。
类型:``str``
候选项:``"usermount"``, ``"nnimount"``, ``"nomount"``
``usermount`` 表示已经在 localMountPoint 上挂载了此存储。 ``nnimount`` 表示 NNI 将尝试在 localMountPoint 上挂载此存储。 ``nomount`` 表示存储不会挂载在本地机器上,将在未来支持部分存储。
nfsServer
"""""""""
NFS 服务器主机
类型:``str``
exportedDirectory
"""""""""""""""""
NFS 服务器导出目录,详情参考 `这里 <https://www.ibm.com/docs/en/aix/7.2?topic=system-nfs-exporting-mounting>`_ 。
类型:``str``
azureBlobConfig
---------------
storageType
"""""""""""
字符串常量 ``"AzureBlob"``
localMountPoint
"""""""""""""""
已经或将要在本地挂载存储的路径。
类型:``str``
如果路径不存在,则会自动创建。 推荐使用绝对路径,即 ``/tmp/nni-shared-storage``
remoteMountPoint
""""""""""""""""
远程挂载存储的路径。
类型:``str``
如果路径不存在,它将被自动创建。 建议使用相对路径。 即, ``./nni-shared-storage``
注意:使用 AzureBlob 时,此目录必须是空的。
localMounted
""""""""""""
指定挂载共享存储的对象和状态。
类型:``str``
候选值:``"usermount"``, ``"nnimount"``, ``"nomount"``
``usermount`` 表示已经在 localMountPoint 上挂载了此存储。 ``nnimount`` 表示 NNI 将尝试在 localMountPoint 上挂载此存储。 ``nomount`` 表示存储不会挂载在本地机器上,将在未来支持部分存储。
storageAccountName
""""""""""""""""""
Azure 存储账户名称。
类型:``str``
storageAccountKey
"""""""""""""""""
Azure 存储账户密钥。
类型:``Optional[str]``
如果未设置 storageAccountKey,则首先需要在 Azure CLI 中使用 ``az login`` 并设置 `resourceGroupName`_ 。
resourceGroupName
"""""""""""""""""
AzureBlob 容器所属的资源组。
类型:``Optional[str]``
如果 ``storageAccountKey`` 没有设置则必必需。
containerName
"""""""""""""
AzureBlob 容器名。
类型:``str``
../../en_US/reference/experiment_config.rst
\ No newline at end of file
.. 60cb924d0ec522b7709acf4f8cff3f16
####################
Python API 参考
####################
......@@ -8,4 +10,5 @@ Python API 参考
自动调优 <autotune_ref>
NAS <NAS/ApiReference>
模型压缩 <Compression/CompressionReference>
\ No newline at end of file
模型压缩 <Compression/CompressionReference>
Python API <Tutorial/HowToLaunchFromPython>
\ No newline at end of file
.. 4e054d96c7d211dc514c99d673415d8e
NNI 支持的训练平台介绍
=====================================
......@@ -11,4 +13,5 @@ NNI 支持的训练平台介绍
FrameworkController<./TrainingService/FrameworkControllerMode>
DLTS<./TrainingService/DLTSMode>
AML<./TrainingService/AMLMode>
PAI-DLC<./TrainingService/DLCMode>
混合模式 <./TrainingService/HybridMode>
......@@ -36,6 +36,10 @@ stages:
python -m pip install -r dependencies/recommended.txt
python -m pip install -r dependencies/required_extra.txt
displayName: Install requirements
- script: |
cd docs
python tools/chineselink.py check
displayName: Translation up-to-date
- script: |
cd docs/en_US
sphinx-build -M html . _build -W --keep-going -T
......
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