OpenBayes 配置文件

最后更新于

openbayes.yaml 字段描述与规格

openbayes.yaml 目前分为两部分:

  1. 基本类型的参数,包括 data_binding resource env command 四个
  2. 自动调参的参数,包含在 hyper_tuning 具体的内容在 自动调参 中介绍

基本参数

data_binding

指绑定的数据,支持「容器输出」以及「数据集」,最多同时绑定三个,分为两个部分:datapath 其中 data 指绑定的数据源,如果绑定的数据源为一个「数据集的版本」其形式为:

<userid>/<dataset-name>/<dataset-version>

例如要绑定 openbayes 下名为 mnist 的数据集第一个版本,其 data 字段为

openbayes/mnist/1

如果绑定的数据源为一个「容器的输出」,其形式为:

<userid>/jobs/<job-id>/output

如绑定 openbayes 下的 test-project 容器下的 jfaqJeLMcPM 的输出,其形式为:

openbayes/jobs/jfaqJeLMcPM/output

另一部分为 path 指将数据源具体绑定到容器中的哪个目录,目前支持的目录是固定的四个之一:

  • /input0
  • /input1
  • /input2
  • /output

其中如果绑定到 /input0-2 是只读绑定,绑定过来的数据源无法更改,但是其绑定速度非常快。而如果绑定到 /output 意味着数据需要拷贝到 /output 目录中,虽然有读写权限,但是拷贝的速度非常缓慢,并且由于进行了一次复制,在保存容器时也会产生额外的存储用量。因此需要用户在自己的场景下决定绑定的目录,通常情况下 /input0-2 是比较好的选择。

那么 data_binding 的内容可以是如下:

data_binding:
- data: openbayes/mnist/1
  path: /input0
- data: openbayes/jobs/jfaqJeLMcPM/output
  path: output

resource

指使用什么算力容器,通过命令 bayes gear resource 可以看到支持的算力类型。

env

指使用什么运行时环境,通过命令 bayes gear env 可以查看支持的运行时环境。

command

只有在 bayes gear run task 时有用,是指任务执行时的入口命令。

为执行提供默认的参数

Openbayes 配置文件 (openbayes.yaml) 与命令行工具结合使用,可以大大简化重复的命令的输入。

当使用命令行工具时,可以通过命令参数的形式将所需要的「环境」「资源」「数据集」等信息传递进来,例如:

bayes gear run task \
    --env=tensorflow-1.12 \
    --resource=t4 \
    --data openbayes/mnist/1:/input0 \
    -- python main.py

通过 openbayes.yaml 可以为当前目录下运行任务提供默认的命令,例如我们定义一个内容如下的 openbayes.yaml:

data_binding:
- data: openbayes/mnist/1
  path: /input0
resource: t4
env: tensorflow-1.12
command: "python main.py"

只需在当前目录输入以下命令即可实现同样的任务执行效果:

bayes gear run task

支持命令覆盖具体的参数

同时,也可以通过命令行覆盖相应的参数,例如对于上文中的 openbayes.yaml 通过以下命令可以覆盖入口执行的命令:

bayes gear run task -- sleep 360

那么提交的命令内容将不再是 python main.py 而是 sleep 360