关键概念

OpenBayes 产品的关键概念

Updated , 去 GitHub 贡献本页面

这里介绍在 OpenBayes 中所提到的一些重要的概念。

算力容器 BayesGear

算力容器,在文档中也经常直接称为「容器」,每次开启被称为一次独立的「执行」。「执行」是 OpenBayes 中的最小计算单元,每个「执行」提供了 /output 目录作为执行结果的输出,同时最多支持 /input0 - /input2 的三个目录绑定作为输入。/input0 - /input2 是只读的目录,无法对其中的内容进行修改。

BayesGear 和我们所熟知的 Docker 容器技术还是有很大的区别,其操作使用方式不会和「Docker 容器」存在映射关系,并且在执行过程中,BayesGear 会提供更丰富的数据同步、数据集绑定功能。

BayesGear 的「执行」目前支持两种方式:

  1. Python 脚本
  2. JupyterLab

其中「Python 脚本」方式支持用户将自己的代码上传上来,然后指定所要执行的命令,容器在启动时会按照用户指定的入口命令执行 Python 脚本。适合一次性的、不需要频繁修改的 长任务 执行。

JupyterLab 是一种交互式的代码执行工具,创建 JupyterLab 后我们可以在其上做一些即时的命令执行和尝试性的工作。适合早期模型的调试和构建。

注意 JupyterLab 一旦处于运行状态即开始计费,直到用户主动关闭,即使用户没有在使用其中的计算资源也依然会正常计费。因此,一旦不再使用 JupyterLab 请立即将其关闭。

同一个「容器」下的「执行」被认为在业务上存在着密切的关联,每次「算力容器」的「执行」都会被独立记录下来。

数据集 Datasets

用户可以创建数据集用于保存和复用数据。通常来说数据集的规模都比较庞大,如果每次都连同代码上传非常不方便。因此,这里提供一个单独的区域用于数据集的管理。

绑定数据集

在创建 “算力容器” 时,通过 “绑定数据” 可以将数据集绑定到容器中进行使用,目前 “容器” 支持最多为 3 个数据集的绑定。

如下图所示,在创建容器时可以选定数据集或下文所说的 “容器输出” 绑定到 /input0 /input1 /input2 /output 中任意一个目录中。在容器创建时,对应的数据集或输出就会被下载到对应的目录中。

用户的存储限额

用户的容器输出数据总量同数据集数据总量加在一起就是单个用户当前所使用的存储资源的总量。在用户的个人页面可以看到自己存储资源的用量。默认用户的存储资源限额为 10G。一旦超过用户存储总量用户将不再能创建容器、上传数据。

输出

输出是指在 “容器” 中所指定的最终可以保存下来的目录 /output,也就是说凡是你想要保存下来已备将来使用的内容都应该存储到这个目录中

注意 容器执行时其工作目录为 /output,所以对其他数据集的引用 /input0-2 需要用绝对路径,而上传的代码则可以用相对目录执行。

算力

算力定义了在 OpenBayes 的容器执行所提供的资源多少,目前 OpenBayes 主要提供两种类型的算力:

  1. CPU 算力,包含一定个数的 CPU,通过 CPU 执行机器学习算法
  2. GPU 算力,包含一个甚至多个 GPU,可以利用深度学习框架的 GPU 版本加速深度学习模型的训练和推断

每种算力都提供了内存的上限和存储上限,一旦超过内存或存储的使用上限会导致任务的失败。

镜像

镜像提供了容器执行时所依赖的主要的机器学习算法库的种类。目前 OpenBayes 提供了 Tensorflow PyTorch CPU 和 GPU 环境下不同版本的标准库。后续将会提供更多其他种类的机器学习算法库。

框架 名称 描述
TensorFlow 1.12 tensorflow-1.12 Python 3.6 + TensorFlow 1.12.0 + Keras 2.2.4
TensorFlow 1.11 tensorflow-1.11 Python 3.6 + TensorFlow 1.11.0 + Keras 2.2.4
TensorFlow 1.10 tensorflow-1.10 Python 3.6 + TensorFlow 1.10.0 + Keras 2.2.0
TensorFlow 1.9 tensorflow-1.9 Python 3.6 + TensorFlow 1.9.0 + Keras 2.2.0
PyTorch 1.0 pytorch-1.0.0 Python 3.6 + PyTorch 1.0.0 + fastai 1.0.39