2.3. 管理自定义培训镜像


要运行分布式培训工作,您可以使用 OpenShift AI 提供的一个基本培训镜像,也可以创建自己的自定义培训镜像。您可以选择将自定义培训镜像推送到集成的 OpenShift 镜像 registry 中,以使您的镜像可供其他用户使用。

2.3.1. 关于基本培训镜像

用于分布式工作负载的基本培训镜像通过运行分布式培训工作所需的工具和库优化。您可以使用提供的基础镜像,也可以创建特定于您的需要的自定义镜像。

有关红帽支持培训镜像和软件包的详情,请参考 Red Hat OpenShift AI: 支持的配置

下表列出了默认情况下随 Red Hat OpenShift AI 安装的培训镜像。这些镜像是 AMD64 镜像,可能不适用于其他架构。

Expand
表 2.1. 默认培训基础镜像
镜像类型描述

Ray CUDA

如果您使用计算密集型模型,而您想要使用 NVIDIA GPU 支持加速培训作业,您可以使用 Ray Compute Unified Device Architecture (CUDA)基础镜像来获得对 NVIDIA CUDA 工具包的访问。使用这个工具包,您可以使用为 NVIDIA GPU 优化的库和工具来加快您的工作。

Ray ROCm

如果您使用计算密集型模型,而您想要使用 AMD GPU 支持加速培训作业,您可以使用 Ray ROCm 基础镜像来获得对 AMD ROCm 软件堆栈的访问。使用这个软件堆栈,您可以使用为 AMD GPU 优化的库和工具来加快您的工作。

KFTO CUDA

如果您使用计算密集型模型,而您想要使用 NVIDIA GPU 支持加快培训作业,您可以使用 Kubeflow training Operator CUDA 基础镜像来访问 NVIDIA CUDA 工具包。使用这个工具包,您可以使用为 NVIDIA GPU 优化的库和工具来加快您的工作。

KFTO ROCm

如果您使用计算密集型模型,而您想要使用 AMD GPU 支持加快培训作业,您可以使用 Kubeflow training Operator ROCm 基础镜像来获得对 AMD ROCm 软件堆栈的访问。使用这个软件堆栈,您可以使用为 AMD GPU 优化的库和工具来加快您的工作。

如果这些镜像中提供的预安装软件包不足以满足您的用例,则您可以选择:

  • 在启动默认镜像后安装其他库。如果您要在运行培训工作时在临时命令中添加库,则此选项很好。但是,管理已安装库的依赖项可能具有挑战性。
  • 创建包含额外库或软件包的自定义镜像。如需更多信息,请参阅 创建自定义培训镜像

2.3.2. 创建自定义培训镜像

您可以通过向基础培训镜像添加软件包来创建自定义培训镜像。

先决条件

  • 您可以访问已选择用作自定义镜像基础的培训镜像。

    根据 镜像类型(如 Ray 或 Kubeflow training Operator)、加速器框架 (如用于 NVIDIA GPU 的 CUDA)或 AMD GPU 的 ROCm 选择镜像,以及 Python 版本 (如 3.9 或 3.11)。

    下表显示了一些基本培训镜像示例:

    Expand
    表 2.2. 基本培训镜像示例
    镜像类型加速器框架Python 版本基本培训镜像示例预安装的软件包

    ray

    CUDA

    3.9

    ray:2.35.0-py39-cu121

    Ray 2.35.0, Python 3.9, CUDA 12.1

    ray

    CUDA

    3.11

    ray:2.47.1-py311-cu121

    Ray 2.47.1, Python 3.11, CUDA 12.1

    ray

    ROCm

    3.9

    ray:2.35.0-py39-rocm62

    Ray 2.35.0, Python 3.9, ROCm 6.2

    ray

    ROCm

    3.11

    ray:2.47.1-py311-rocm62

    Ray 2.47.1, Python 3.11, ROCm 6.2

    KFTO

    CUDA

    3.11

    training:py311-cuda124-torch251

    Python 3.11, CUDA 12.4, PyTorch 2.5.1

    KFTO

    ROCm

    3.11

    training:py311-rocm62-torch251

    Python 3.11, ROCm 6.2, PyTorch 2.5.1

    如需 OpenShift AI 基础镜像及其预安装软件包的完整列表,请参阅 支持的配置

  • 您已在本地环境中安装了 Podman,您可以访问容器 registry。

    有关 Podman 和容器注册表的更多信息,请参阅 构建、运行和管理容器

流程

  1. 在终端窗口中,为您的工作创建一个目录,并更改到该目录。
  2. IMG 环境变量设置为自定义镜像的名称。在本节中的示例命令中,my_training_image 是自定义镜像的名称。

    export IMG=my_training_image
    Copy to Clipboard Toggle word wrap
  3. 使用以下内容创建名为 Dockerfile 的文件:

    1. 使用 FROM 指令指定合适的基本培训镜像的位置。

      在以下命令中,将 _<base- training-image>_ 替换为您选择的基本培训镜像的名称:

      FROM quay.io/modh/<base-training-image>
      Copy to Clipboard Toggle word wrap

      示例:

      FROM quay.io/modh/ray:2.47.1-py311-cu121
      Copy to Clipboard Toggle word wrap
      FROM quay.io/modh/training:py311-rocm62-torch251
      Copy to Clipboard Toggle word wrap
    2. 使用 RUN 指令安装其他软件包。您还可以通过使用数字符号(#)为每个注释行添加注释到 Dockerfile。

      以下示例演示了如何安装 Python PyTorch 软件包的特定版本:

      # Install PyTorch
      RUN python3 -m pip install torch==2.5.1
      Copy to Clipboard Toggle word wrap
  4. 构建 镜像文件。将 -t 选项与 podman build 命令一起使用,以创建指定自定义镜像名称和版本的镜像标签,以便更轻松地引用和管理镜像:

    podman build -t <custom-image-name>:_<version>_ -f Dockerfile
    Copy to Clipboard Toggle word wrap

    Example:

    podman build -t ${IMG}:0.0.1 -f Dockerfile
    Copy to Clipboard Toggle word wrap

    构建输出表示构建过程完成。

  5. 显示镜像列表:

    podman images
    Copy to Clipboard Toggle word wrap

    如果成功创建了新镜像,则会将其包含在镜像列表中。

  6. 将镜像推送到容器 registry 中:

    podman push ${IMG}:0.0.1
    Copy to Clipboard Toggle word wrap
  7. 可选:使新镜像可供其他用户使用,如 将镜像推送到集成的 OpenShift 镜像 registry 中所述。

要使镜像可供 OpenShift 集群中的其他用户使用,您可以将镜像推送到 集成的 OpenShift 镜像 registry 中,即内置的容器镜像 registry。

如需有关集成的 OpenShift 镜像 registry 的更多信息,请参阅 集成 OpenShift 镜像 registry

先决条件

流程

  1. 在一个终端窗口中,登录到 OpenShift CLI,如下例所示:

    $ oc login <openshift_cluster_url> -u <admin_username> -p <password>
    Copy to Clipboard Toggle word wrap
  2. IMG 环境变量设置为镜像的名称。在本节中的示例命令中,my_training_image 是镜像的名称。

    export IMG=my_training_image
    Copy to Clipboard Toggle word wrap
  3. 登录到集成的镜像 registry:

    podman login -u $(oc whoami) -p $(oc whoami -t) $(oc registry info)
    Copy to Clipboard Toggle word wrap
  4. 为集成镜像 registry 标记镜像:

    podman tag ${IMG} $(oc registry info)/$(oc project -q)/${IMG}
    Copy to Clipboard Toggle word wrap
  5. 将镜像推送到集成的镜像 registry:

    podman push $(oc registry info)/$(oc project -q)/${IMG}
    Copy to Clipboard Toggle word wrap
  6. 检索您想要的标签的镜像存储库位置:

    oc get is ${IMG} -o jsonpath='{.status.tags[?(@.tag=="<TAG>")].items[0].dockerImageReference}'
    Copy to Clipboard Toggle word wrap

    现在,任何用户都可以在 Ray 集群或培训工作的 image 参数中指定这个检索到的镜像位置值来使用您的镜像。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部