自动调参NNI nnictl 支持的命令

nnictl是NNI实验管理的命令行工具,用于创建、恢复、查看、停止实验,以及更新实验配置,管理Trial等。用户可以通过nnictl创建新的实验,指定配置文件和端口,并在实验运行时进行调整,如更新搜索空间、并发数、运行时间和最大Trial数。此外,nnictl还提供查看实验状态、清理平台、显示日志、管理算法和生成搜索空间等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nnictl 介绍

nnictl是一个命令行工具,用来控制 NNI Experiment,如启动、停止、继续 Experiment,启动、停止 NNIBoard 等等。

命令

  • nnictl 支持的命令:
  • nnictl create
  • nnictl resume
  • nnictl view
  • nnictl stop
  • nnictl update
  • nnictl trial
  • nnictl top
  • nnictl experiment
  • nnictl platf orm
  • nnictl confi g
  • nnictl log
  • nnictl webui
  • nnictl algo
  • nnictl ss_gen
  • nnictl --version

管理 Experiment

nnictl create

说明
此命令使用参数中的配置文件,来创建新的实验。
此命令成功完成后,上下文会被设置为此 Experiment。这意味着如果不显式改变上下文(暂不支持),输入的以下命令,都作用于此 Experiment。

  • 用法

nnictl create [OPTIONS]

在这里插入图片描述

  • 示例
  • 在默认端口 8080 上创建一个新的 Experiment
nnictl create --config nni/examples/trials/mnist-pytorch/config.yml
  • 在指定的端口 8088 上创建新的 Experiment
nnictl create --config nni/examples/trials/mnist-pytorch/config.yml --port 8088
  • 在指定的端口 8088 上创建新的 Experiment,并启用调试模式
nnictl create --config nni/examples/trials/mnist-pytorch/config.yml --port 8088 --debug

注意:

调试模式会禁用 Trialkeeper 中的版本校验功能。

nnictl resume
  • 说明

使用此命令恢复已停止的 Experiment。

  • 用法

nnictl resume [OPTIONS]
在这里插入图片描述

  • 示例

在指定的端口 8088 上恢复 Experiment

nnictl resume [experiment_id] --port 8088

nnictl view
  • 说明

使用此命令查看已停止的 Experiment。
用法

nnictl view [OPTIONS]

在这里插入图片描述

  • 示例

在指定的端口 8088 上查看 Experiment

nnictl view [experiment_id] --port 8088

nnictl stop
  • 说明

使用此命令来停止正在运行的单个或多个 Experiment。

  • 用法

nnictl stop [Options]

在这里插入图片描述

  • 详细信息及样例
  • 如果没有指定 id,并且当前有运行的 Experiment,则会停止该 Experiment,否则会输出错误信息。

nnictl stop

  • 如果指定了 id,并且此 id 匹配正在运行的 Experiment,nnictl 会停止相应的Experiment,否则会输出错误信息。

nnictl stop [experiment_id]

  • 如果指定了端口,并且此端口有正在运行的 Experiment,则会停止此 Experiment。

nnictl stop --port 8080

  • 可使用 ‘nnictl stop --all’ 来停止所有的 Experiment。

nnictl stop --all

  • 如果 id 以 * 结尾,nnictl 会停止所有匹配此通配符的 Experiment。
  • 如果 id 不存在,但匹配了某个Experiment 的 id 前缀,nnictl 会停止匹配的Experiment。
  • 如果 id 不存在,但匹配多个 Experiment id 的前缀,nnictl 会输出这些
nnictl update

nnictl update searchspace

  • 说明

可以用此命令来更新 Experiment 的搜索空间。

  • 用法

nnictl update searchspace [OPTIONS]

在这里插入图片描述

  • 示例

使用 ‘examples/trials/mnist-pytorch/search_space.json’ 来更新 Experiment 的搜索空间

nnictl update searchspace [experiment_id] --filename examples/trials/mnist-pytorch/search_space.json

nnictl update concurrency
  • 说明

可以用此命令来更新 Experiment 的并发设置。

  • 用法

nnictl update concurrency [OPTIONS]

在这里插入图片描述

  • 示例

更新 Experiment 的并发数量

nnictl update concurrency [experiment_id] --value [concurrency_number]

nnictl update duration
  • 说明

可以用此命令来更新实验的运行时间。

  • 用法

nnictl update duration [OPTIONS]

在这里插入图片描述

  • 示例

修改 Experiment 的执行时间

nnictl update duration [experiment_id] --value [duration]

nnictl update trialnum
  • 说明

可以用此命令来更新实验的最大尝试数量。

  • 用法

nnictl update trialnum [OPTIONS]

在这里插入图片描述

  • 示例

更新 Experiment 的 Trial 数量

nnictl update trialnum [experiment_id] --value [trial_num]

nnictl trial
  • nnictl trial ls
  • 说明

使用此命令来查看 Trial 的信息。 注意如果head或tail被设置, 则只有完成的 Trial会被展示。

  • 用法

nnictl trial ls
nnictl trial ls --head 10
nnictl trial ls --tail 10

在这里插入图片描述

nnictl trial kill
  • 说明

此命令用于终止 Trial。

  • 用法

nnictl trial kill [OPTIONS]

在这里插入图片描述

  • 示例

结束 Trial 任务

nnictl trial kill [experiment_id] --trial_id [trial_id]

nnictl top
  • 说明

查看正在运行的 Experiment。

  • 用法

nnictl top

在这里插入图片描述

管理 Experiment 信息
  • nnictl experiment show
  • 说明

显示 Experiment 的信息。

  • 用法

nnictl experiment show

在这里插入图片描述

  • nnictl experiment status
  • 说明

显示 Experiment 的状态。

  • 用法

nnictl experiment status

在这里插入图片描述

  • nnictl experiment list
  • 说明

显示正在运行的 Experiment 的信息

  • 用法

nnictl experiment list [OPTIONS]
在这里插入图片描述

  • nnictl experiment delete
  • 说明

删除一个或所有 Experiment,包括日志、结果、环境信息和缓存。 用于删除无用的Experiment 结果,或节省磁盘空间。

  • 用法

nnictl experiment delete [OPTIONS]

在这里插入图片描述

nnictl experiment export
  • 说明

使用此命令,可将 Trial 的 reward 和超参导出为 csv 文件。

  • 用法

nnictl experiment export [OPTIONS]
在这里插入图片描述

  • 示例

将 Experiment 中所有 Trial 数据导出为 JSON 格式

nnictl experiment export [experiment_id] --filename [file_path] --type json --intermediate

nnictl experiment import
  • 说明

可使用此命令将以前的 Trial 超参和结果导入到 Tuner 中。 数据会传入调参算法中(即Tuner 或 Advisor)。

  • 用法

nnictl experiment import [OPTIONS]
在这里插入图片描述

  • 详细说明

NNI 支持导入用户的数据,确保数据格式正确。 样例如下:

[
	{"parameter": {"x": 0.5, "y": 0.9}, "value": 0.03},
	{"parameter": {"x": 0.4, "y": 0.8}, "value": 0.05},
	{"parameter": {"x": 0.3, "y": 0.7}, "value": 0.04}
]

最顶层列表的每个元素都是一个样例。 对于内置的 Tuner 和 Advisor,每个样本至少需要两个主键: parametervalueparameter 必须与 Experiment 的搜索空间相匹配, parameter 中的所有的主键(或超参)都必须与搜索空间中的主键相匹配。 否则, Tuner 或 Advisor 可能会有无法预期的行为。 Value 应当遵循与 nni.report_final_result 的输入值一样的规则,即要么时一个数字,或者是包含 default 主键的 dict。 对于自定义的 Tuner 或 Advisor,根据实现的不同,此文件可以是任意的 JSON 内容(例如, import_data )。
也可以用 nnictl experiment export 命令导出 Experiment 已经运行过的 Trial 超参和结果。

当前,以下 Tuner 和 Advisor 支持导入数据:

builtinTunerName: TPE, Anneal, GridSearch, MetisTuner
builtinAdvisorName: BOHB

如果要将数据导入到 BOHB Advisor,建议像 NNI 一样,增加 “TRIAL_BUDGET” 参数,否则,BOHB 会使用 max_budget 作为 “TRIAL_BUDGET”。 示例如下:

[
	{"parameter": {"x": 0.5, "y": 0.9, "TRIAL_BUDGET": 27}, "value": 0.03}
]
  • 示例

将数据导入运行中的 Experiment

nnictl experiment import [experiment_id] -f experiment_data.json

nnictl experiment save
  • 说明

保存 NNI Experiment 的元数据及代码数据

  • 用法

nnictl experiment save [OPTIONS]

在这里插入图片描述

  • 示例

保存 Experiment

nnictl experiment save [experiment_id] --saveCodeDir

nnictl experiment load
  • 说明

加载 NNI Experiment

  • 用法

nnictl experiment load [OPTIONS]

在这里插入图片描述

  • 示例

加载 Experiment

nnictl experiment load --path [path] --codeDir [codeDir]

管理平台信息

nnictl platform clean
  • 说明

用于清理目标平台上的磁盘空间。 所提供的 YAML 文件包括了目标平台的信息,与NNI 配置文件的格式相同。

  • 注意

如果目标平台正在被别人使用,可能会造成他人的意外错误。

  • 用法

nnictl platform clean [OPTIONS]

在这里插入图片描述

nnictl config show
  • 说明

显示当前上下文信息。

  • 用法

nnictl config show

管理日志

nnictl log stdout
  • 说明

显示 stdout 日志内容。

  • 用法

nnictl log stdout [options]

在这里插入图片描述

  • 示例

显示 stdout 结尾的若干行

nnictl log stdout [experiment_id] --tail [lines_number]

nnictl log stderr
  • 说明

显示 stderr 日志内容。

  • 用法

nnictl log stderr [options]

在这里插入图片描述

nnictl log trial
  • 说明

显示 Trial 日志的路径。

  • 用法

nnictl log trial [options]

在这里插入图片描述

nnictl webui url
  • 说明

显示 Experiment 的 Web 界面链接

  • 用法

nnictl webui url [options]

在这里插入图片描述

管理内置算法

nnictl algo register
  • 说明

将自定义的算法注册为内置的 Tuner、Assessor、Advisor。

  • 用法

nnictl algo register --meta <path_to_meta_file>

<path_to_meta_file>是 yaml 格式元数据文件的路径,具有以下键:

algoType : 算法类型,可为tuner ,assessor ,advisor

builtinName : 在 Experiment 配置文件中使用的内置名称

className: Tuner 类名,包括模块名,例如: demo_tuner.DemoTuner

classArgsValidator : 类的参数验证类 validator 的类名,包括模块名,如: demo_tuner.MyClassArgsValidator

  • 示例

在示例中安装自定义 Tuner

cd nni/examples/tuners/customized_tuner
python3 setup.py develop
nnictl algo register --meta meta_file.yml

nnictl algo show
  • 说明

显示指定注册算法的详细信息

  • 用法

nnictl algo show

  • 示例

nnictl algo show SMAC

nnictl package list
  • 说明

列出已注册的内置算法

  • 用法

nnictl algo list

  • 示例

nnictl algo list

nnictl algo unregister
  • 说明

注销一个已注册的自定义内置算法。 NNI 提供的内置算法不能被注销。 NNI 提供的内置算法不能被注销。

  • 用法

nnictl algo unregister

  • 示例

nnictl algo unregister demotuner

生成搜索空间

nnictl ss_gen
  • 说明

从使用 NNI NAS API 的用户代码生成搜索空间。

  • 用法

nnictl ss_gen [OPTIONS]

在这里插入图片描述

  • 示例

生成搜索空间

nnictl ss_gen --trial_command=“python3 mnist.py” --trial_dir=./ --file=ss.json

NNI 版本校验

nnictl --version
  • 说明

显示当前安装的 NNI 的版本。

  • 用法

nnictl --version

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值