bayes 命令行工具(CLI)
OpenBayes 命令行工具快速上手
bayes
命令行工具基本介绍- 用命令行工具上传数据集
- 用命令行工具创建容器,以及容器的执行、继续执行和停止
- 通过命令行打开容器 web 界面
- 通过命令行跟踪容器日志及容器状态
- 在 Jupyter 工作空间中使用命令行工具
OpenBayes 提供了一个命令行工具 bayes
方便在命令行界面直接与 OpenBayes 服务器进行交互。相比直接在 web 界面进行交互,命令行工具在「创建 Python 脚本」「上传数据集」等诸多方面会更加简单和高效。我们针对一些非常适合通过命令行操作的场景对其进行介绍。
bayes
命令行工具基本介绍
bayes
是一个独立的二进制发行包,为 Windows、macOS、Linux 等多个操作系统提供一致的命令行 UI,方便了命令行用户将本地数据、项目与 OpenBayes 的同步。
安装
在 安装 bayes 命令行工具 中详细的介绍了如何在不同平台下安装命令行工具。如果是通过 github 下载的命令行工具,建议将其放到 /usr/local/bin
这种预先被添加到环境变量 PATH
的目录,一方便在任意目录键入 bayes
进行访问。针对 windows 添加环境变量的操作可以参见 这里。
$ bayes version
openbayes 的版本号为 v0.4.0
在命令行中键入 bayes version
后看到如上的信息说明 bayes
工具已经安装成功了,通过命令 bayes login
登录账号。
$ bayes login username
请输入 username 的密码:
username 已成功登入 openbayes
然后我们通过 bayes -h
可以查看具体能做什么操作:
$ bayes -h
OpenBayes 命令行工具
用法:
bayes [子命令]
可用子命令:
data 数据集相关
gear 容器相关
help 各个子命令的帮助信息
login 登录
logout 注销
ssh ssh 相关
status 登录信息
upgrade 升级命令行工具
version 版本信息
可用选项:
--version 查看 bayes 的版本信息
-h, --help 查看 bayes 的帮助
-v, --v 查看详细的错误信息
使用 "bayes [命令] --help" 获取更多有关此命令的信息。
使用哲学
bayes
命令行工具意在补充 web 界面部分操作的不足,提升部分更适合在命令行界面进行的操作的体验;而不是为了让用户完全脱离 web 界面独立使用的。尤其是在数据集的创建、Python 脚本的创建相比于 web 界面的操作流程有非常大的提升。后面我们重点介绍这两个场景。
命令行工具会提供很多命令方便用户从命令行界面切换到 web 界面查看容器或者数据的内容。反过来,未来 web 端也会增加更多的命令行操作提示,方便用户在两个界面间穿梭。
用命令行工具上传数据集
这里我们介绍如何使用 bayes
创建一个数据集,上传一个 tiny imagenet 数据集到 OpenBayes,将一些额外的数据合并到 tiny imagenet 的已有数据集版本中,以及从命令行打开 web 界面。
1. 创建一个新的数据集
$ bayes data create tiny-imagenet -m "稍微说明一下这个 tiny-imagenet 数据集" -o
数据集 tiny-imagenet (tiQXU5Z5DIy) 创建成功
打开网页 https://openbayes.com/console/aisensiy/datasets/tiQXU5Z5DIy 可查看数据集 tiny-imagenet (tiQXU5Z5DIy) 的详细信息
正在跳转到浏览器...
已成功打开浏览器
介绍一下几个可用的参数:
-m
或--message
数据集描述信息,可留空-o
或--open
将会在数据集创建成功后,在浏览器打开相应的 web 界面
同时你也可以在终端的打印信息中看到在数据集的 URL 和 ID。
2. 通过命令行直接上传文件夹
在 web 页面我们需要将数据集打包成 zip 压缩包才能进行上传,而通过命令行工具则没有这个限制,命令行工具会帮我们自动打包压缩包并上传,在上传成功后会自动将压缩包删除。
$ bayes data upload tiQXU5Z5DIy -p ~/Downloads/tiny-imagenet-200 -o
正在读取文件列表,请稍候...
剔除在 .openbayesignore 中忽略的文件及文件夹...
共有文件 120,205 个
正在压缩数据集...
压缩数据集完成
正在向服务器发送上传请求...
服务器已响应
正在初始化上传中...
正在上传压缩包。总共上传大小: 245.9 MiB
124.25 MiB / 245.90 MiB [============================>-----------------------------] 51 % 4.29 MiB/s
正在进行清理工作
数据集 tiny-imagenet (RsUdt11TEwb) 上传成功
打开网页 https://dev.openbayes.com/console/aisensiy/datasets/RsUdt11TEwb 可查看数据集 tiny-imagenet (RsUdt11TEwb) 的详细信息
正在跳转到浏览器...
已成功打开浏览器
命令行上传支持断点续传,如果在上传过程中因为意外请求中断了,再次输入上传命令可以选择从上一次上传继续:
$ bayes data upload tiQXU5Z5DIy -p ~/Downloads/tiny-imagenet-200
openbayes 数据集上传
存在一个尚未完成的上传,是否需要继续? [y/N]: y
正在上传压缩包。总共上传大小: 245.9 MiB
245.90 MiB / 245.90 MiB [=================================] 100 % 8.87 MiB/s
正在进行清理工作
数据集 tiny-imagenet (tiQXU5Z5DIy) 上传成功
打开网页 https://openbayes.com/console/aisensiy/datasets/tiQXU5Z5DIy 可查看数据集 tiny-imagenet (tiQXU5Z5DIy) 的详细信息
介绍一下几个可用的参数:
-p
或--path
数据集文件的本地路径,不填则使用当前目录-o
或--open
将会在数据集上传完成后,在浏览器打开相应的 web 界面
稍等服务器端数据同步可以看到数据集已经上传好了:
如果你已经有一个现成的压缩包需要上传到 openbayes,你可以通过命令
bayes data upload tiQXU5Z5DIy -p abc.zip
直接上传,openbayes 将会在接收到压缩包后进行解压。
如果你只有一个单一文件需要上传到 openbayes,你同样可以通过命令
bayes data upload tiQXU5Z5DIy -p afile.xy
上传到 openbayes。
3. 通过命令行合并数据到数据集的指定版本和路径
通过以下命令,我们可以将一些额外的数据合并到指定据集版本的指定文件夹中
bayes data merge tiQXU5Z5DIy --version 1 -d /merge-dir/ -p ~/Downloads/data-to-be-merged -m both -o
正在读取文件列表,请稍候...
剔除在 .openbayesignore 中忽略的文件及文件夹...
共有文件 102 个
正在压缩数据集...
压缩数据集完成
正在向服务器发送合并请求...
服务器已响应
正在初始化上传中...
正在上传需要合并的压缩包。总共合并大小: 877.44 KiB
877.44 KiB / 877.44 KiB [==========================================================] 100 % 971.38 KiB/s
正在进行清理工作
数据集 tiny-imagenet (RsUdt11TEwb) 合并成功
打开网页 https://dev.openbayes.com/console/aisensiy/datasets/RsUdt11TEwb 可查看数据集 tiny-imagenet (RsUdt11TEwb) 的详细信息
正在跳转到浏览器...
已成功打开浏览器
介绍一下几个可用的参数:
--version
需要合并的数据集版本号,必填-m
或--mode
合并方式,支持skip
(跳过),both
(并存),replace
(替换), 不填则默认使用replace
(替换)-d
或--directory
数据集文件合并的指定路径,不填则默认使用根目录-p
或--path
数据集文件的本地路径,不填则使用当前目录-o
或--open
将会在数据集合并成功后,在浏览器打开相应的 web 界面
稍等服务器端数据同步,就可以看到数据集已经合并到指定版本,点击进入指定文件夹,就可以看到新增的数据。
4. 通过命令行打开数据集 web 界面
通过以下命令我们可以直接从命令行打开 web 界面:
$ bayes data open tiQXU5Z5DIy
正在打开数据集 https://openbayes.com/console/aisensiy/datasets/tiQXU5Z5DIy
正在跳转到浏览器...
或者,在上传或合并命令最后加入 -o 参数,命令行工具将会在上传或合并完成后立即打开相应的 web 界面:
$ bayes data upload tiQXU5Z5DIy -p ~/Downloads/tiny-imagenet-200 -o
正在读取文件列表,请稍候...
剔除在 .openbayesignore 中忽略的文件及文件夹...
共有文件 120,205 个
正在压缩数据集...
压缩数据集完成
正在向服务器发送上传请求...
服务器已响应
正在初始化上传中...
正在上传压缩包。总共上传大小: 245.9 MiB
124.25 MiB / 245.90 MiB [============================>-----------------------------] 51 % 4.29 MiB/s
正在进行清理工作
数据集 tiny-imagenet (RsUdt11TEwb) 上传成功
打开网页 https://dev.openbayes.com/console/aisensiy/datasets/RsUdt11TEwb 可查看数据集 tiny-imagenet (RsUdt11TEwb) 的详细信息
正在跳转到浏览器...
已成功打开浏览器
用命令行工具创建容器,以及容器的执行、继续执行和停止
bayes
命令行下有「工作目录」的概念,它对应着 OpenBayes 容器中的「输出」目录。通过命令行工具创建容器时需要首先把一个本地目录当作「工作目录」并与 OpenBayes 的「容器」建立映射关系,具体操作如下:
- 切换到需要执行的代码所在的目录
cd ~/openbayes-mnist-example
- 初始化一个新的容器
bayes gear init mnist-example
此时当前目录已经和 mnist-example 这个容器创建了映射关系,创建的「执行」都会出现在该容器下面
使用 ` bayes gear ls` 命令,可以查看你的所有容器
bayes gear init
命令可以使用已存在的容器名称或容器 ID 对当前目录进行容器初始化,若使用一个不存在的容器名称进行初始化,会创建一个新的容器。
准备工作完成之后,我们将来介绍一下几种接入方式的使用
1. 通过命令行参数创建「Python 脚本执行」
通过命令 bayes gear run task -h
可以看到大量的样例提示如何创建一个「Python 脚本执行」。
我们这里先创建一个比较简单的版本:
$ bayes gear run task --env=tensorflow-1.15 -- python main.py
正在向服务器发送上传请求...
服务器已响应
正在读取文件列表,请稍候...
共有文件 95 个
正在检查 .openbayesignore 文件...
已剔除 .openbayesignore 忽略列表中的文件及文件夹
正在压缩代码...
压缩代码完成
正在初始化上传中...
正在上传压缩包。总共上传大小: 49.31 MiB
49.31 MiB / 49.31 MiB [=================================] 100 % 4.21 MiB/s
正在移除已完成上传的压缩包
代码上传成功
正在向服务器请求创建容器...
容器创建成功
容器正在启动中...
打开网页 https://openbayes.com/console/aisensiy/containers/d1JKTyFQq1W/isqgy7idosrk 可查看容器 mnist-example 的详细信息
其中 --
之后为执行的具体的命令,如果有 &&
这样的符号,需要用引号进行保护 bayes gear run task -- 'echo 123 && python main.py'
。
可以看到 bayes
将当前目录的文件上传并创建了一个「python 脚本」任务,相比通过 web 界面上传 zip 包的体验是好了很多。
然后,我们尝试通过命令行参数,创建一个复杂一点的版本:
bayes gear run task \
--resource cpu \
--env tensorflow-1.15 \
--data openbayes/eBIQp4yPMtU/1:/input0 \
--data openbayes/sTggKplxyT6/1:/input1 \
--data openbayes/bbNaMvDNqO9/1:/input2 \
--data aisensiy/jobs/3s55ypc33ptl/output:/output \
--message "task message" \
--open \
--follow \
-- sleep 60
介绍一下几个可用的参数:
-e
或--env
选择镜像,可供选择的镜像可以通过命令bayes gear env
查询-r
或--resource
选择算力,可供选择的算力可以通过命令bayes gear resource
查询-d
或--data
绑定数据,可供绑定的数据集可以通过命令bayes gear bindings
查询-m
或--message
执行描述,可留空-o
或--open
将会在容器开始运行后,在浏览器打开相应的 web 界面-f
或--follow
跟踪运行容器的状态
需要注意的是
--data openbayes/eBIQp4yPMtU/1:/input0
中,openbayes
是公有数据集的专用名,如果你想使用你自己的数据集,需要将openbayes
替换为你的用户名,通过bayes gear bindings
命令可以查看最近的可绑定数据,mnist
是数据集的名字,1
是数据集的版本号,/input0
代表绑定数据集到 input0
2. 通过 openbayes.yaml 创建「Python 脚本执行」
另外,在通过 bayes gear init
将当前目录和容器绑定后目录下会出现文件 openbayes.yaml
内部初始化内容如下:
## 有关「 OpenBayes 配置文件」的最新说明,请查阅 https://openbayes.com/docs/cli/config-file/
## data_bindings
# 指绑定的数据,支持「容器输出」以及「数据集」,最多同时绑定三个
#
# 一个完整的 data_bindings 样例如下:
#
# data_bindings:
# - data: openbayes/mnist/1
# path: /input0
# - data: openbayes/jobs/jfaqJeLMcPM/output
# path: output
#
# 亦可将 data_bindings 替换成 bindings, 简写成如下样例:
#
# bindings:
# - openbayes/mnist/1:/input0
# - openbayes/jobs/jfaqJeLMcPM/output:/output
#
data_bindings: []
## resource
# 指使用什么算力容器,通过命令 bayes gear resource 可以看到支持的算力类型
#
resource: tiny-cpu
## env
# 指使用什么运行时环境,通过命令 bayes gear env 可以查看支持的运行时环境
#
env: tensorflow-1.15
## command
# 只有在创建「脚本执行」时需要,指任务执行时的入口命令
#
command: ""
## parameters
# 支持 key / value 形式的参数,该参数会在容器执行时生成 openbayes_params.json 并补充在 command 参数后面
# 样例如下:
#
# parameters:
# input: /input0
# epochs: 5
#
# 在执行时会生成一个内容为 {"input": "/input0", "epochs": 5} 的 openbayes_params.json,
# 并且会在执行命令后面追加 `--input=/input0 --epochs=5`
#
parameters: {}
## 有关「 OpenBayes 自动调参」的最新说明,请查阅 https://openbayes.com/docs/hypertuning/
#
# 一个完整的 hyper_tuning 样例如下:
# hyper_tuning:
# max_job_count: 3
# hyperparameter_metric: precision
# goal: MINIMIZE
# algorithm: Bayesian
# parameter_specs:
# - name: regularization
# type: DOUBLE
# min_value: 0.001
# max_value: 10.0
# scale_type: UNIT_LOG_SCALE
# - name: latent_factors
# type: INTEGER
# min_value: 5
# max_value: 50
# scale_type: UNIT_LINEAR_SCALE
# - name: unobs_weight
# type: DOUBLE
# min_value: 0.001
# max_value: 5.0
# scale_type: UNIT_LOG_SCALE
# - name: feature_wt_factor
# type: DOUBLE
# min_value: 1
# max_value: 200
# scale_type: UNIT_LOG_SCALE
# - name: level
# type: DISCRETE
# discrete_values: [1, 2, 3, 4]
# - name: category
# type: CATEGORICAL
# categorical_values: ["A", "B", "C"]
#
hyper_tuning:
## max_job_count
# 一次自动调参的尝试次数,最多支持 100 次
#
max_job_count: 0
## parallel_count
# 并行的尝试个数受限于用户的单个资源类型的最大并行个数,通常是 1 或者 2
#
parallel_count: 1
## hyperparameter_metric
# 目标变量
# 有关目标变量的上报,请查阅 https://openbayes.com/docs/hypertuning/#2-上报目标变量
hyperparameter_metric: ""
## goal
# 最优解的方向 ( MAXIMIZE 或 MINIMIZE )
#
goal: ""
## algorithm
# 采用的算法,支持的算法如下:
# Grid 对于只有 DISCRETE 以及 CATEGORICAL 类型参数的场景可以通过 GridSearch 遍历所有参数的组合
# Random 针对 INTEGER 以及 DOUBLE 类型,依据其所支持的分布类型,在 min_value 和 max_value 之间随机选择数值,对于 DISCRETE 和 CATEGORICAL 类型,其行为和 Grid 方式类似
# Bayesian 每次生成参数时考虑之前的「参数」-「目标变量」的结果,通过更新后的分布函数提供参数以期望获取更好的结果,其算法可以参考该文章
#
algorithm: ""
## parameter_specs
# 输入参数的规约
# 参数规约的定义请查阅:https://openbayes.com/docs/hypertuning/#参数规约的定义
#
parameter_specs: []
## side_metrics
# 其他参考指标
#
side_metrics: []
其中 hyper_tuning
部分暂不介绍,但可以看到其他参数与 bayes gear run task
中使用的参数是一致的,通过在 openbayes.yaml
配置参数可以避免重复在使用 bayes gear run task
时重复输入参数。例如提供如下参数:
data_bindings:
- data: openbayes/mnist/1
path: /input0
resource: t4
env: tensorflow-1.15
command: "python train.py -i /input0 -o ./model -e 2 -m model.h5 -l ./tf_dir"
需要注意的是
data: openbayes/mnist/1
中,openbayes
是公有数据集的专用名,如果你想使用你自己的数据集,需要将openbayes
替换为你的用户名,mnist
是数据集的名字,1
是数据集的版本号;path: /input0
,是将数据集绑定到 input0 中。
直接输入 bayes gear run task
命令即可执行一个在 tensorflow-1.15
环境下,算力资源为 t4
,绑定数据集 openbayes/mnist/1
到 /input0
,入口命令为 python train.py -i /input0 -o ./model -e 2 -m model.h5 -l ./tf_dir
的任务了。
更多有关配置文件如何编写的内容,见 OpenBayes 配置文件
3. 创建「Jupyter 工作空间」
与「Python 脚本」的创建类似,通过命令行创建 Jupyter 默认会把当前目录下的文件上传到容器的「输出」中。
git clone https://github.com/practicalAI/practicalAI
下载 practicalAI 项目cd practicalAI && bayes gear init practicalAI
初始化容器bayes gear run notebook
创建 Jupyter
$ bayes gear run notebook-o -f
正在向服务器发送上传请求...
服务器已响应
正在读取文件列表,请稍候...
剔除在 .openbayesignore 中忽略的文件及文件夹...
共有文件 99 个
正在压缩代码...
压缩代码完成
正在初始化上传中...
正在上传压缩包。总共上传大小: 9.28 MiB
9.28 MiB / 9.28 MiB [=================================] 100 % 5.14 MiB/s
正在进行清理工作
代码上传成功
正在向服务器请求创建容器...
容器创建成功
打开网页 https://openbayes.com/console/aisensiy/containers/CUEtgUJHidb/ri4nft12g18c 可查看容器 practicalAI 的详细信息
⠴ 准备中
容器运行中
正在跳转到浏览器...
已成功打开浏览器
「Jupyter 工作空间」的创建和与「Python 脚本」的创建类似,可以通过命令行参数创建,也可以通过 openbayes.yaml 文件创建。
4. 容器继续执行
使用
bayes gear status
命令,查看当前容器下的所有执行
使用 bayes gear restart
命令,传入已完成执行的 ID,可以以相同的参数再次运行该次执行。
$ bayes gear restart 52yaekv8nf91 -o -f
容器继续执行...
打开网页 https://openbayes.com/console/aisensiy/jobs/6q848lathbdp 可查看容器 practicalAI 的详细信息
⠹ 准备中
容器运行中
正在跳转到浏览器...
已成功打开浏览器
亦可以通过参数覆盖,修改部分参数,再次运行该次执行。
restart
命令的选项与run
命令的选项一致
$ bayes gear restart 52yaekv8nf91 \
--resource cpu \
--env tensorflow-1.15 \
--data openbayes/eBIQp4yPMtU/1:/input0 \
--data openbayes/sTggKplxyT6/1:/input1 \
--data openbayes/bbNaMvDNqO9/1:/input2 \
--data aisensiy/jobs/3s55ypc33ptl/output:/output \
--message "task message" \
--open \
--follow
容器继续执行...
打开网页 https://openbayes.com/console/aisensiy/jobs/6q848lathbdp 可查看容器 practicalAI 的详细信息
⠹ 准备中
容器运行中
正在跳转到浏览器...
已成功打开浏览器
需要注意的是
--data openbayes/eBIQp4yPMtU/1:/input0
中,openbayes
是公有数据集的专用名,如果你想使用你自己的数据集,需要将openbayes
替换为你的用户名,eBIQp4yPMtU
是数据集 ID,1
是数据集的版本号;:/input0
,是将数据集绑定到 input0 中。
5. 关闭容器执行
使用 bayes gear stop
命令,传入运行中的容器执行 ID,可以关闭容器的该次执行。
$ bayes gear stop 52yaekv8nf91 -o -f
同步数据并关闭容器
打开网页 https://openbayes.com/console/aisensiy/jobs/52yaekv8nf91 可查看容器 practicalAI 的详细信息
正在跳转到浏览器...
已成功打开浏览器
⠦ 正在关闭
容器已关闭
介绍一下几个可用的参数:
-o
或--open
将会在容器开始关闭后,在浏览器打开相应的 web 界面-f
或--follow
会一直跟踪容器的状态,直到容器完全关闭
通过命令行打开容器 web 界面
通过以下命令我们可以直接从命令行打开 web 界面:
$ bayes gear open 6q848lathbdp
正在打开容器 https://dev.openbayes.com/console/aisensiy/jobs/6q848lathbdp
正在跳转到浏览器...
亦可以通过容器的名称打开
$ bayes gear open practicalAI
正在打开容器 https://dev.openbayes.com/console/aisensiy/jobs/6q848lathbdp
正在跳转到浏览器...
或者,在容器执行命令最后加入 -o 参数,命令行工具将会在上传或合并完成后立即打开相应的 web 界面:
$ bayes gear run notebook -o -f
正在向服务器发送上传请求...
服务器已响应
正在读取文件列表,请稍候...
剔除在 .openbayesignore 中忽略的文件及文件夹...
共有文件 102 个
正在压缩代码...
压缩代码完成
正在初始化上传中...
正在上传压缩包。总共上传大小: 877.42 KiB
877.42 KiB / 877.42 KiB [==========================================================] 100 % 969.85 KiB/s
正在进行清理工作
代码上传成功
正在向服务器请求创建容器...
容器创建成功
打开网页 https://openbayes.com/console/aisensiy/jobs/1ekrvwi6uyac 可查看容器 test111 的详细信息
⠴ 准备中
容器运行中
正在跳转到浏览器...
已成功打开浏览器
bayes gear
的run
restart
stop
命令均可在命令的最后加入-o
选项,命令行将会在容器到达目标状态后,在浏览器打开相应的 web 界面
通过命令行跟踪容器日志及容器状态
1. 日志跟踪
通过命令 bayes gear logs
可以查看运行中的容器日志,加入 -f
或 --follow
参数会持续跟踪容器的日志打印
$ bayes gear logs 1ekrvwi6uyac -f
[I 14:41:01.149 LabApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 14:41:01.433 LabApp] All authentication is disabled. Anyone who can connect to this server will be able to run code.
[I 14:41:01.749 LabApp] JupyterLab extension loaded from /usr/local/lib/python3.6/site-packages/jupyterlab
[I 14:41:01.750 LabApp] JupyterLab application directory is /usr/local/share/jupyter/lab
[I 14:41:01.758 LabApp] Serving notebooks from local directory: /openbayes
[I 14:41:01.758 LabApp] Jupyter Notebook 6.1.4 is running at:
[I 14:41:01.758 LabApp] http://aisensiy-1ekrvwi6uyac-main:8888/jobs/aisensiy/jobs/1ekrvwi6uyac/
[I 14:41:01.758 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
...
...
...
2. 状态跟踪
bayes gear
的子命令 run
restart
stop
都支持加入 -f
或 --follow
参数跟踪容器状态。
但只对「Python 脚本」 及「 Jupyter工作空间」任务生效,对「 自动调参」任务无效。
其中, run
restart
命令:
- 对于 「Python 脚本」 任务,会跟踪到整个任务执行完成
- 对于 「Jupyter 工作空间」任务,会跟踪到 JupyterLab 启动完成
- 对于 「 自动调参」任务,
--follow
参数不生效
stop
命令:
- 对于 「Python 脚本」 任务,会跟踪任务直到容器完全关闭
- 对于 「Jupyter 工作空间」任务,会跟踪任务直到容器完全关闭
- 对于 「 自动调参」任务,
--follow
参数不生效
在 Jupyter 工作空间中使用命令行工具
目前命令行工具已经集成到了 Jupyter 工作空间中,在 Jupyter 中打开「Terminal(命令行终端)」后会出现如下的提示:
按照提示输入命令 bayes gear init
后自动完成账号的登录,并初始化 openbayes.yaml
文件(更多配置文件的信息见OpenBayes 配置文件)。