experiment_config.rst 18.9 KB
Newer Older
kvartet's avatar
kvartet committed
1
===========================
kvartet's avatar
kvartet committed
2
Experiment 配置
kvartet's avatar
kvartet committed
3
4
===========================

kvartet's avatar
kvartet committed
5
6
7
8
9
创建 Experiment 所需要的配置文件。 本文介绍了配置文件的内容,并提供了一些示例。

.. Note::

    1. 此文档的字段使用 ``camelCase`` 法命名。 对于 Python 库 ``nni.experiment``,需要转换成 ``snake_case`` 形式。
kvartet's avatar
kvartet committed
10

kvartet's avatar
kvartet committed
11
    2. 在此文档中,字段类型被格式化为 `Python 类型提示 <https://docs.python.org/3.10/library/typing.html>`__。 因此,JSON 对象被称为 `dict`,数组被称为 `list`。
kvartet's avatar
kvartet committed
12

kvartet's avatar
kvartet committed
13
    .. _path: 
kvartet's avatar
kvartet committed
14

kvartet's avatar
kvartet committed
15
    3. 一些字段采用文件或目录的路径, 除特别说明,均支持绝对路径和相对路径,``~`` 将扩展到 home 目录。
kvartet's avatar
kvartet committed
16

kvartet's avatar
kvartet committed
17
18
19
       - 在写入 YAML 文件时,相对路径是相对于包含该文件目录的路径。
       - 在 Python 代码中赋值时,相对路径是相对于当前工作目录的路径。
       - 在将 YAML 文件加载到 Python 类,以及将 Python 类保存到 YAML 文件时,所有相对路径都转换为绝对路径。
kvartet's avatar
kvartet committed
20

kvartet's avatar
kvartet committed
21
    4. 将字段设置为 ``None`` 或 ``null`` 时相当于不设置该字段。
kvartet's avatar
kvartet committed
22

kvartet's avatar
kvartet committed
23
24
25
26
.. contents:: Contents
   :local:
   :depth: 3
 
kvartet's avatar
kvartet committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40

示例
========

本机模式
^^^^^^^^^^

.. code-block:: yaml

    experimentName: MNIST
    searchSpaceFile: search_space.json
    trialCommand: python mnist.py
    trialCodeDirectory: .
    trialGpuNumber: 1
kvartet's avatar
kvartet committed
41
    trialConcurrency: 2
kvartet's avatar
kvartet committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    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
kvartet's avatar
kvartet committed
66
    trialConcurrency: 2
kvartet's avatar
kvartet committed
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
    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
kvartet's avatar
kvartet committed
85
    trialConcurrency: 2
kvartet's avatar
kvartet committed
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
    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

参考
=========

kvartet's avatar
kvartet committed
105
106
Experiment(实验)配置参考
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
kvartet's avatar
kvartet committed
107
108
109
110
111
112
113
114
115
116
117
118

experimentName
--------------

Experiment 的助记名称, 这将显示在 WebUI 和 nnictl 中。

类型:``Optional[str]``


searchSpaceFile
---------------

kvartet's avatar
kvartet committed
119
包含搜索空间 JSON 文件的路径(path_)。
kvartet's avatar
kvartet committed
120
121
122

类型:``Optional[str]``

kvartet's avatar
kvartet committed
123
搜索空间格式由 Tuner 决定, 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。
kvartet's avatar
kvartet committed
124
125
126
127
128
129
130
131
132
133
134

与 `searchSpace`_ 互斥。


searchSpace
-----------

搜索空间对象。

类型:``Optional[JSON]``

kvartet's avatar
kvartet committed
135
格式由 Tuner 决定, 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。 内置 Tuner 的通用格式在 `这里 <../Tutorial/SearchSpaceSpec.rst>`__。
kvartet's avatar
kvartet committed
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

注意,``None`` 意味着“没有这样的字段”,所以空的搜索空间应该写成 ``{}``。

与 `searchSpaceFile`_ 互斥。


trialCommand
------------

启动 Trial 的命令。

类型:``str``

该命令将在 Linux 和 macOS 上的 bash 中执行,在 Windows 上的 PowerShell 中执行。

kvartet's avatar
kvartet committed
151
152
注意在 Linux 和 macOS 中使用``python3``,在 Windows 中使用 ``python``。

kvartet's avatar
kvartet committed
153
154
155
156

trialCodeDirectory
------------------

kvartet's avatar
kvartet committed
157
到 Trial 源文件的目录的路径(path_)。
kvartet's avatar
kvartet committed
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

类型:``str``

默认值:``"."``

此目录中的所有文件都将发送到训练机器,除了 ``.nniignore`` 文件。
(详细信息,请参考 `快速入门 <../Tutorial/QuickStart.rst>`__ 的 nniignore 部分。)


trialConcurrency
----------------

指定同时运行的 Trial 数目。

类型:``int``

实际的并发性还取决于硬件资源,可能小于此值。


trialGpuNumber
--------------

每个 Trial 使用的 GPU 数目。

类型:``Optional[int]``

对于各种训练平台,这个字段的含义可能略有不同,
尤其是设置为 ``0`` 或者 ``None`` 时,
kvartet's avatar
kvartet committed
186
指定 `训练平台 <../TrainingService/Overview.rst>`__。
kvartet's avatar
kvartet committed
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219

在本地模式下,将该字段设置为零将阻止 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
------------

kvartet's avatar
kvartet committed
220
当前机器的 IP,用于训练机器访问 NNI 管理器。 本机模式下不可选。 本机模式下不可选。
kvartet's avatar
kvartet committed
221
222
223
224
225

类型:``Optional[str]``

如果未指定,将使用 ``eth0`` 的 IPv4 地址。

kvartet's avatar
kvartet committed
226
除本地模式外,强烈建议手动设置此字段。
kvartet's avatar
kvartet committed
227
228
229
230
231
232
233


useAnnotation
-------------

启动 `annotation <../Tutorial/AnnotationSpec.rst>`__。

kvartet's avatar
kvartet committed
234
类型:``Optional[bool]``
kvartet's avatar
kvartet committed
235
236
237
238
239
240
241
242
243
244
245

默认值:``false``

使用 annotation 时,`searchSpace`_ 和 `searchSpaceFile`_ 不应手动指定。


debug
-----

启动调试模式

kvartet's avatar
kvartet committed
246
类型:``str``
kvartet's avatar
kvartet committed
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261

默认值:``false``

启用后,日志记录将更加详细,并且一些内部验证将被放宽。


logLevel
--------

设置整个系统的日志级别。

类型:``Optional[str]``

候选项:``"trace"``, ``"debug"``, ``"info"``, ``"warning"``, ``"error"``, ``"fatal"``

kvartet's avatar
kvartet committed
262
默认为 "info" 或 "debug",取决于 `debug`_ 选项。 启用调试模式时,LogLevel 设置为 “debug”,否则,LogLevel 设置为 “Info”。
kvartet's avatar
kvartet committed
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287

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。

kvartet's avatar
kvartet committed
288
类型: ``Optional[list[int] | str | int]``
kvartet's avatar
kvartet committed
289
290
291
292
293
294
295
296
297

这将是 Tuner 进程的 ``CUDA_VISIBLE_DEVICES`` 环境变量,

因为 Tuner、Assessor 和 Advisor 在同一个进程中运行,所以此选项将同时影响它们。


tuner
-----

kvartet's avatar
kvartet committed
298
指定 Tuner。 
kvartet's avatar
kvartet committed
299
300
301

类型:Optional `AlgorithmConfig`_

kvartet's avatar
kvartet committed
302
303
内置的 Tuner 可以在 `这里 <../builtin_tuner.rst>`__ 找到,你可以按照 `此教程 <../Tuner/CustomizeTuner.rst>`__ 来定制一个新的 Tuner。

kvartet's avatar
kvartet committed
304
305
306
307

assessor
--------

kvartet's avatar
kvartet committed
308
指定 Assessor。 
kvartet's avatar
kvartet committed
309
310
311

类型:Optional `AlgorithmConfig`_

kvartet's avatar
kvartet committed
312
313
内置的 Assessor 可以在 `这里 <../builtin_assessor.rst>`__ 找到,你可以按照 `此教程 <../Assessor/CustomizeAssessor.rst>`__ 来定制一个新的 Assessor。

kvartet's avatar
kvartet committed
314
315
316
317

advisor
-------

kvartet's avatar
kvartet committed
318
指定 Advisor。 
kvartet's avatar
kvartet committed
319
320
321

类型:Optional `AlgorithmConfig`_

kvartet's avatar
kvartet committed
322
323
NNI 提供了两个内置的 Advisor:`BOHB <../Tuner/BohbAdvisor.rst>`__ 和 `Hyperband <../Tuner/HyperbandAdvisor.rst>`__,你可以按照 `此教程 <../Tuner/CustomizeAdvisor.rst>`__ 来定制一个新的 Advisor。

kvartet's avatar
kvartet committed
324
325
326
327

trainingService
---------------

kvartet's avatar
kvartet committed
328
详情查看 `这里 <../TrainingService/LocalMode.rst>`__。
kvartet's avatar
kvartet committed
329
330
331
332

类型:`TrainingServiceConfig`_


kvartet's avatar
kvartet committed
333
334
335
336
337
338
339
340
sharedStorage
-------------

配置共享存储,详细的用法可以在 `这里 <../Tutorial/HowToUseSharedStorage.rst>`__ 找到。

类型:Optional `SharedStorageConfig`_


kvartet's avatar
kvartet committed
341
342
343
344
345
346
347
AlgorithmConfig
^^^^^^^^^^^^^^^

``AlgorithmConfig`` 描述 tuner / assessor / advisor 算法。

对于自定义算法,有两种方法来描述它们:

kvartet's avatar
kvartet committed
348
  1. `注册算法 <../Tuner/InstallCustomizedTuner.rst>`__ ,像内置算法一样使用。 (首选) (首选)
kvartet's avatar
kvartet committed
349
350
351
352
353
354
355
356
357

  2. 指定代码目录和类名。


name
----

内置或注册算法的名称。

kvartet's avatar
kvartet committed
358
类型:对于内置和注册算法使用 ``None``,其他自定义算法使用 ``str``
kvartet's avatar
kvartet committed
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373


className
---------

未注册的自定义算法的限定类名。

类型:对于内置和注册算法使用 ``None``,其他自定义算法使用 ``str``

示例:``"my_tuner.MyTuner"``


codeDirectory
-------------

kvartet's avatar
kvartet committed
374
到自定义算法类的目录的路径(path_)。
kvartet's avatar
kvartet committed
375

kvartet's avatar
kvartet committed
376
类型:对于内置和注册算法使用 ``str``,其他自定义算法使用 ``None``
kvartet's avatar
kvartet committed
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395


classArgs
---------

传递给算法类构造函数的关键字参数。

类型:``Optional[dict[str, Any]]``

有关支持的值,请参阅算法文档。


TrainingServiceConfig
^^^^^^^^^^^^^^^^^^^^^

以下之一:

- `LocalConfig`_
- `RemoteConfig`_
kvartet's avatar
kvartet committed
396
- :ref:`OpenpaiConfig <openpai-class>`
kvartet's avatar
kvartet committed
397
- `AmlConfig`_
kvartet's avatar
kvartet committed
398
- `HybridConfig`_
kvartet's avatar
kvartet committed
399

kvartet's avatar
kvartet committed
400
对于 `Kubeflow <../TrainingService/KubeflowMode.rst>`_, `FrameworkController <../TrainingService/FrameworkControllerMode.rst>`_, 和 `AdaptDL <../TrainingService/AdaptDLMode.rst>`_ 训练平台,目前 NNI 建议使用 `v1 配置模式 <../Tutorial/ExperimentConfig.rst>`_ 。
kvartet's avatar
kvartet committed
401
402
403


LocalConfig
kvartet's avatar
kvartet committed
404
-----------
kvartet's avatar
kvartet committed
405

kvartet's avatar
kvartet committed
406
详情查看 `这里 <../TrainingService/AMLMode.rst>`__。
kvartet's avatar
kvartet committed
407
408

platform
kvartet's avatar
kvartet committed
409
""""""""
kvartet's avatar
kvartet committed
410
411
412
413
414

字符串常量 ``"local"``。


useActiveGpu
kvartet's avatar
kvartet committed
415
""""""""""""
kvartet's avatar
kvartet committed
416
417
418

指定 NNI 是否应向被其他任务占用的 GPU 提交 Trial。

kvartet's avatar
kvartet committed
419
类型:``Optional[str]``
kvartet's avatar
kvartet committed
420
421
422

必须在 ``trialgpunmber`` 大于零时设置。

kvartet's avatar
kvartet committed
423
424
425
426
427
428
429
430
431
432
以下过程可以使GPU "active" 起来:

  - 非 NNI 的 CUDA 程序
  - 图形化桌面
  - 其他 NNI 实例提交的 Trial,如果您在同一时间运行了多个 NNI Experiment
  - 其他用户的 CUDA 程序,如果你使用共享服务器
  
如果你使用的是图形操作系统,如 Windows 10 或 Ubuntu 桌面,请将此字段设置为 ``True``,否则,图形用户界面将阻止 NNI 启动任何 Trial。

当你创建多个 NNI Experiment 并且将 ``useActiveGpu`` 设置为 ``True`` 时,它们将同时提交多个 Trial 到同一个 GPU。
kvartet's avatar
kvartet committed
433
434
435


maxTrialNumberPerGpu
kvartet's avatar
kvartet committed
436
""""""""""""""""""""
kvartet's avatar
kvartet committed
437
438
439
440
441
442
443
444
445

指定可以共享一个 GPU 的 Trial 数目。

类型:``int``

默认值:``1``


gpuIndices
kvartet's avatar
kvartet committed
446
""""""""""
kvartet's avatar
kvartet committed
447
448
449

设定对 Trial 进程可见的 GPU。

kvartet's avatar
kvartet committed
450
类型: ``Optional[list[int] | str | int]``
kvartet's avatar
kvartet committed
451
452
453
454
455
456
457

如果 `trialGpuNumber`_ 小于此值的长度,那么每个 Trial 只能看到一个子集。

这用作环境变量 ``CUDA_VISIBLE_DEVICES``。


RemoteConfig
kvartet's avatar
kvartet committed
458
------------
kvartet's avatar
kvartet committed
459
460
461
462

详情查看 `这里 <../TrainingService/RemoteMachineMode.rst>`__。

platform
kvartet's avatar
kvartet committed
463
""""""""
kvartet's avatar
kvartet committed
464
465
466
467
468

字符串常量 ``"remote"``。


machineList
kvartet's avatar
kvartet committed
469
"""""""""""
kvartet's avatar
kvartet committed
470
471
472
473
474
475
476

训练机器列表

类型: `RemoteMachineConfig`_ 列表


reuseMode
kvartet's avatar
kvartet committed
477
"""""""""
kvartet's avatar
kvartet committed
478
479
480

启动 `重用模式 <../Tutorial/ExperimentConfig.rst#reuse>`__。

kvartet's avatar
kvartet committed
481
类型:``str``
kvartet's avatar
kvartet committed
482
483
484


RemoteMachineConfig
kvartet's avatar
kvartet committed
485
"""""""""""""""""""
kvartet's avatar
kvartet committed
486
487

host
kvartet's avatar
kvartet committed
488
****
kvartet's avatar
kvartet committed
489
490
491
492
493
494
495

机器的 IP 或主机名(域名)。

类型:``str``


port
kvartet's avatar
kvartet committed
496
****
kvartet's avatar
kvartet committed
497
498
499
500
501
502
503
504
505

SSH 服务端口。

类型:``int``

默认值:``22``


user
kvartet's avatar
kvartet committed
506
****
kvartet's avatar
kvartet committed
507
508
509
510
511
512
513

登录用户名。

类型:``str``


password
kvartet's avatar
kvartet committed
514
********
kvartet's avatar
kvartet committed
515
516
517
518
519
520
521
522
523

登录密码。

类型:``Optional[str]``

如果未指定,则将使用 `sshKeyFile`_。


sshKeyFile
kvartet's avatar
kvartet committed
524
**********
kvartet's avatar
kvartet committed
525

kvartet's avatar
kvartet committed
526
到 sshKeyFile的路径(path_)。
kvartet's avatar
kvartet committed
527
528
529
530
531
532
533

类型:``Optional[str]``

仅在未指定 `password`_ 时使用。


sshPassphrase
kvartet's avatar
kvartet committed
534
*************
kvartet's avatar
kvartet committed
535
536
537
538
539
540
541

SSH 标识文件的密码。

类型:``Optional[str]``


useActiveGpu
kvartet's avatar
kvartet committed
542
************
kvartet's avatar
kvartet committed
543
544
545

指定 NNI 是否应向被其他任务占用的 GPU 提交 Trial。

kvartet's avatar
kvartet committed
546
类型:``str``
kvartet's avatar
kvartet committed
547
548
549

默认值:``false``

kvartet's avatar
kvartet committed
550
551
552
553
554
555
556
557
558
559
560
561
562
必须在 ``trialgpunmber`` 大于零时设置。

以下过程可以使GPU "active" 起来:

  - 非 NNI 的 CUDA 程序
  - 图形化桌面
  - 其他 NNI 实例提交的 Trial,如果您在同一时间运行了多个 NNI Experiment
  - 其他用户的 CUDA 程序,如果你使用共享服务器
  
如果你使用的是图形操作系统,如 Ubuntu 桌面,请将此字段设置为 ``True``,否则,图形用户界面将阻止 NNI 启动任何 Trial。

当你创建多个 NNI Experiment 并且将 ``useActiveGpu`` 设置为 ``True`` 时,它们将同时提交多个 Trial 到同一个 GPU。

kvartet's avatar
kvartet committed
563
564

maxTrialNumberPerGpu
kvartet's avatar
kvartet committed
565
********************
kvartet's avatar
kvartet committed
566
567
568
569
570
571
572
573
574

指定可以共享一个 GPU 的 Trial 数目。

类型:``int``

默认值:``1``


gpuIndices
kvartet's avatar
kvartet committed
575
**********
kvartet's avatar
kvartet committed
576
577
578

设定对 Trial 进程可见的 GPU。

kvartet's avatar
kvartet committed
579
类型: ``Optional[list[int] | str | int]``
kvartet's avatar
kvartet committed
580
581
582
583
584
585

如果 `trialGpuNumber`_ 小于此值的长度,那么每个 Trial 只能看到一个子集。

这用作环境变量 ``CUDA_VISIBLE_DEVICES``。


kvartet's avatar
kvartet committed
586
587
pythonPath
**********
kvartet's avatar
kvartet committed
588

kvartet's avatar
kvartet committed
589
指定 Python 环境。
kvartet's avatar
kvartet committed
590

kvartet's avatar
kvartet committed
591
592
593
594
595
596
597
598
599
600
601
类型:``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``
kvartet's avatar
kvartet committed
602
603
604
605
606
607

如果不同机器的准备步骤不同,这将非常有用。

.. _openpai-class:

OpenpaiConfig
kvartet's avatar
kvartet committed
608
-------------
kvartet's avatar
kvartet committed
609
610
611
612

详情查看 `这里 <../TrainingService/PaiMode.rst>`__。

platform
kvartet's avatar
kvartet committed
613
""""""""
kvartet's avatar
kvartet committed
614
615
616
617
618

字符串常量 ``"openpai"``。


host
kvartet's avatar
kvartet committed
619
""""
kvartet's avatar
kvartet committed
620
621
622
623
624
625
626
627
628
629
630

OpenPAI 平台的主机名。

类型:``str``

可能包括 ``https://`` 或 ``http://`` 前缀。

默认情况下将使用 HTTPS。


username
kvartet's avatar
kvartet committed
631
""""""""
kvartet's avatar
kvartet committed
632
633
634
635
636
637
638

OpenPAI 用户名。

类型:``str``


token
kvartet's avatar
kvartet committed
639
"""""
kvartet's avatar
kvartet committed
640
641
642
643
644
645
646
647

OpenPAI 用户令牌。

类型:``str``

这可以在 OpenPAI 用户设置页面中找到。


kvartet's avatar
kvartet committed
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
trialCpuNumber
""""""""""""""

指定每个 Trial 在 OpenPAI 容器中使用的 CPU 数。

类型:``bool``


trialMemorySize
"""""""""""""""

指定每个 Trial 在 OpenPAI 容器中的内存限制。

类型:``str``

格式:``数字 + tb|gb|mb|kb``

示例:``"8gb"``, ``"8192mb"``


storageConfigName
"""""""""""""""""

设置 OpenPAI 中使用的存储名称。

类型:``str``


kvartet's avatar
kvartet committed
676
dockerImage
kvartet's avatar
kvartet committed
677
"""""""""""
kvartet's avatar
kvartet committed
678
679
680
681
682
683
684
685

运行 Trial 的 Docker 镜像的名称和标签。

类型:``str``

默认:``"msranni/nni:latest"``


kvartet's avatar
kvartet committed
686
687
localStorageMountPoint
""""""""""""""""""""""
kvartet's avatar
kvartet committed
688
689
690
691
692
693
694

当前机器中存储服务(通常是NFS)的挂载点路径。

类型:``str``


containerStorageMountPoint
kvartet's avatar
kvartet committed
695
""""""""""""""""""""""""""
kvartet's avatar
kvartet committed
696
697
698

Docker 容器中存储服务(通常是NFS)的挂载点。

kvartet's avatar
kvartet committed
699
类型:``Optional[str]``
kvartet's avatar
kvartet committed
700
701
702
703
704

这必须是绝对路径。


reuseMode
kvartet's avatar
kvartet committed
705
"""""""""
kvartet's avatar
kvartet committed
706
707
708

启动 `重用模式 <../Tutorial/ExperimentConfig.rst#reuse>`__。

kvartet's avatar
kvartet committed
709
类型:``str``
kvartet's avatar
kvartet committed
710
711
712
713
714

默认值:``false``


openpaiConfig
kvartet's avatar
kvartet committed
715
"""""""""""""
kvartet's avatar
kvartet committed
716
717
718
719
720
721
722

嵌入的 OpenPAI 配置文件。

类型:``Optional[JSON]``


openpaiConfigFile
kvartet's avatar
kvartet committed
723
"""""""""""""""""
kvartet's avatar
kvartet committed
724

kvartet's avatar
kvartet committed
725
到 OpenPAI 配置文件的路径(path_)
kvartet's avatar
kvartet committed
726

kvartet's avatar
kvartet committed
727
类型:``Optional[list[int] | str]``
kvartet's avatar
kvartet committed
728
729
730
731
732

示例在 `这里 <https://github.com/microsoft/pai/blob/master/docs/manual/cluster-user/examples/hello-world-job.yaml>`__。


AmlConfig
kvartet's avatar
kvartet committed
733
---------
kvartet's avatar
kvartet committed
734

kvartet's avatar
kvartet committed
735
详细用法参考 `这里 <../TrainingService/AMLMode.rst>`__。
kvartet's avatar
kvartet committed
736
737
738


platform
kvartet's avatar
kvartet committed
739
""""""""
kvartet's avatar
kvartet committed
740
741
742
743
744

字符串常量 ``"aml"``。


dockerImage
kvartet's avatar
kvartet committed
745
"""""""""""
kvartet's avatar
kvartet committed
746
747
748

运行 Trial 的 Docker 镜像的名称和标签。

kvartet's avatar
kvartet committed
749
类型:``Optional[list[int] | str]``
kvartet's avatar
kvartet committed
750
751
752
753
754

默认:``"msranni/nni:latest"``


subscriptionId
kvartet's avatar
kvartet committed
755
""""""""""""""
kvartet's avatar
kvartet committed
756
757
758
759
760
761
762

Azure 订阅 ID。

类型:``str``


resourceGroup
kvartet's avatar
kvartet committed
763
"""""""""""""
kvartet's avatar
kvartet committed
764
765
766
767
768
769
770

Azure 资源组名称。

类型:``str``


workspaceName
kvartet's avatar
kvartet committed
771
"""""""""""""
kvartet's avatar
kvartet committed
772
773
774
775
776
777
778

Azure 工作区名称。

类型:``str``


computeTarget
kvartet's avatar
kvartet committed
779
"""""""""""""
kvartet's avatar
kvartet committed
780
781
782
783

AML 计算集群名称。

类型:``str``
kvartet's avatar
kvartet committed
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932


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``