命令行工具 bayes 基本介绍
HyperAI 提供了一个命令行工具 bayes 方便在命令行界面直接与 HyperAI 服务之间进行交互。相比直接在 web 界面进行交互,命令行工具在「创建 Python 脚本」「上传数据集」等诸多方面会更加简单和高效。
安装
HyperAI CLI 现在使用 Python 编写,您可以通过 Python 的包管理器 pip 来安装。在 安装 bayes 命令行工具 中详细介绍了安装步骤。
安装完成后,您可以通过以下命令验证安装:
$ pip show openbayes-cli这将显示 CLI 工具的版本、安装位置、依赖等详细信息。然后使用以下命令验证 CLI 工具是否可以正常工作:
$ bayes status如果安装成功,该命令将显示您的连接状态和基本系统信息。
在命令行中看到如上的信息说明 bayes 工具已经安装成功了,接下来可以通过命令 bayes login 登录账号:
$ bayes login username
请输入 username 的密码:
username 已成功登入 openbayes然后我们通过 bayes -h 可以查看具体能做什么操作:
$ bayes -h
 Usage: bayes [OPTIONS] COMMAND [ARGS]...
 HyperAI 命令行工具
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion            Install completion for the current shell.                                                                                                                                                           │
│ --show-completion               Show completion for the current shell, to copy it or customize the installation.                                                                                                                    │
│ --help                -h        Show this message and exit.                                                                                                                                                                         │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ data     数据集相关操作                                                                                                                                                                                                             │
│ gear     容器相关操作                                                                                                                                                                                                               │
│ hpc      高性能计算相关操作                                                                                                                                                                                                         │
│ login    登录                                                                                                                                                                                                                       │
│ logout   注销                                                                                                                                                                                                                       │
│ org      组织相关操作                                                                                                                                                                                                               │
│ ssh      SSH 相关操作                                                                                                                                                                                                               │
│ status   登录信息                                                                                                                                                                                                                   │
│ switch   切换服务端环境                                                                                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯使用 "bayes [命令] --help" 获取更多有关此命令的信息。
获取子命令的帮助信息
您可以通过添加 --help 或 -h 参数来获取任何子命令的详细帮助信息。例如,查看数据集相关操作的帮助信息:
$  bayes data -h
 Usage: bayes data [OPTIONS] COMMAND [ARGS]...
 数据集相关操作
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Show this message and exit.                                                                                                                                                                                       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ create        创建一个新的数据集                                                                                                                                                                                                    │
│ ls            显示用户的数据集                                                                                                                                                                                                      │
│ new-version   创建一个新的空的数据集版本                                                                                                                                                                                            │
│ open          在浏览器打开数据集页面                                                                                                                                                                                                │
│ upload        上传本地数据到数据集                                                                                                                                                                                                  │
│ versions      显示用户的数据集的版本列表                                                                                                                                                                                            │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯同样地,您可以查看容器相关操作的帮助信息:
$ bayes gear -h
 Usage: bayes gear [OPTIONS] COMMAND [ARGS]...
 容器相关操作
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Show this message and exit.                                                                                                                                                                                       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ bindings   查看运行容器可绑定的数据                                                                                                                                                                                                 │
│ download   下载容器输出                                                                                                                                                                                                             │
│ env        查看运行容器可选的环境                                                                                                                                                                                                   │
│ init       初始化容器                                                                                                                                                                                                               │
│ logs       查看容器日志                                                                                                                                                                                                             │
│ ls         查看所有容器                                                                                                                                                                                                             │
│ open       在浏览器打开容器页面                                                                                                                                                                                                     │
│ resource   查看运行容器可选的资源                                                                                                                                                                                                   │
│ restart    继续执行容器                                                                                                                                                                                                             │
│ run        运行容器                                                                                                                                                                                                                 │
│ status     查看容器下的所有任务                                                                                                                                                                                                     │
│ stop       停止容器                                                                                                                                                                                                                 │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯快速开始
登录
$ bayes login username
请输入 username 的密码:
username 已成功登入 HyperAI
若需使用 SSH,请重新调用 bayes ssh init 命令按照提示,执行命令 bayes ssh init 增加 ssh 配置,方便通过 ssh 访问容器。更多信息见 通过 SSH 连接运行中的 Jupyter 执行。
初始化容器
新建一个目录,并在该目录初始化一个新的容器:
$ mkdir new-bayes-test
$ cd new-bayes-test
$ bayes gear init new-bayes-test
容器初始化成功罗列当前目录:
$ ls -a
.                ..               .openbayesgear   .openbayesignore openbayes.yaml可以看到生成了三个文件:
- .openbayesgear保存了当前容器的元信息,请勿删除。
- .openbayesignore与- .gitignore类似,用于在上传数据或者上传代码的时候忽略目录中不希望上传的内容,详细的文档可以参见 gitignore。
- openbayes.yamlopenbayes 命令行的配置文档,详情见 HyperAI 配置文件。
创建一个 Python 脚本任务
创建一个简单的 main.py 文件:
$ cat <<EOF > main.py
import time
for i in range(100):
  time.sleep(1)
  print(i)
print('done')
EOF执行命令:
$ bayes gear run task -f -- python main.py
当前正在个人账号 admin 上进行操作...
command 信息为: python main.py
正在上传源代码...
正在准备上传源代码...
正在获取上传授权...
开始扫描文件,请稍候...
共发现 5 个文件,总计 10.3 kB,开始上传...
上传进度: 100% (5/5): 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10.3k/10.3k [00:05<00:00, 2.04kB/s]
✅ 源代码上传成功! 已上传 5 个文件
正在向服务器请求创建容器...
容器创建成功
打开网页 https://app.hyper.ai/console/admin/jobs/ia0j6m6fzp1l 可查看容器的详细信息
容器运行中其中容器日志如下:
bayes cmd exists.
/usr/local/bin/bayes
已成功切换到 bayes
若需使用 SSH,请重新调用 bayes ssh init 命令
 已成功登入 HyperAI
若需使用 SSH,请重新调用 bayes ssh init 命令
已成功切换到个人账号 admin
curl: (5) Could not resolve proxy: alchemist-experience
proxy alchemist-experience:7890 not working, ignoring
0
1
2
...
95
96
97
98
99
done更多信息见 用 bayes 管理容器。
升级
您可以通过以下命令升级到最新版本:
$ pip install --upgrade openbayes-cli如果您希望直接从官方 PyPI 源升级,避免使用本地缓存和第三方镜像,可以使用以下命令:
# 不使用缓存
$ pip install --upgrade openbayes-cli --no-cache-dir
# 使用官方 PyPI 源
$ pip install --upgrade openbayes-cli --index-url https://pypi.org/simple使用哲学
bayes 命令行工具意在补充 web 界面部分操作的不足,提升部分更适合在命令行界面进行的操作的体验;而不是为了让用户完全脱离 web 界面独立使用的。尤其是在数据集的创建、Python 脚本的创建相比于 web 界面的操作流程有非常大的提升。后面我们重点介绍这两个场景。
命令行工具会提供很多命令方便用户从命令行界面切换到 web 界面查看容器或者数据的内容。反过来,未来 web 端也会增加更多的命令行操作提示,方便用户在两个界面间穿梭。
在 Jupyter 工作空间中使用命令行工具
目前命令行工具已经集成到了 Jupyter 工作空间中,在 Jupyter 中打开「Terminal(命令行终端)」后会出现如下的提示:
按照提示输入命令 bayes gear init 后自动完成账号的登录,并初始化 openbayes.yaml 文件(更多配置文件的信息见HyperAI 配置文件)。