新建TensorFlow任务
所有文档
menu

容器引擎 CCE

新建TensorFlow任务

产品详情自助选购

您可以新建一个TensorFlow类型的任务。

前提条件

  • 您已成功安装CCE AI Job Scheduler和CCE Deep Learning Frameworks Operator组件,否则云原生AI功能将无法使用。
  • 若您是子用户,队列关联的用户中有您才能使用该队列新建任务。
  • 安装组件CCE Deep Learning Frameworks Operator时,系统安装了TensorFlow深度学习框架。

操作步骤

  1. 登录百度智能云官网,并进入管理控制台。
  2. 选择“产品服务 > 云原生 > 容器引擎 CCE”,单击进入容器引擎管理控制台。
  3. 单击左侧导航栏中的集群管理 > 集群列表
  4. 在集群列表页面中,单击目标集群名称进入集群管理页面。
  5. 在集群管理页面单击云原生AI > 任务管理
  6. 在任务管理页面单击新建任务
  7. 在新建任务页面中,完成任务基本信息配置:

截屏2024-05-31 下午5.27.38.png

  • 任务名称:自定义任务名称,支持小写字母、数字、以及-或.且开头与结尾必须是小写字母或者数字,长度 1-65。
  • 命名空间:选择新建任务所在的命名空间。
  • 队列:选择新建任务关联的队列。
  • 任务优先级:选择任务对应的任务优先级。
  • 允许超发:允许超发将使用任务抢占超发功能,需要先安装CCE AI Job Scheduler组件并升级到1.4.0及以上版本。
  • 延迟容忍:系统将优先把任务或工作负载调度到集群碎片资源,以提高集群资源利用率,但可能对业务延迟行能造成影响。
  1. 完成代码基本信息配置:

截屏2024-05-31 下午5.32.15.png

  • 代码配置类型:指定代码配置方式,目前支持“BOS文件”、“本地文件上传”、“git代码仓库“与“暂不配置”。
  • 执行命令:指定代码的执行命令。

    9.完成数据相关信息配置:

截屏2024-05-31 下午5.33.38.png

  • 设置数据源:当前支持数据集、持久卷声明、选择临时路径和选择主机路径。选择数据集时列出所有可用的数据集,选择后会同时选择与数据集同名的持久卷声明;使用持久卷声明时直接选择即可。

    10.点击“下一步”,进入容器相关配置。

    11.完成任务类型相关信息配置:

截屏2024-05-31 下午5.40.36.png

  • 选择框架:选择“ TensorFlow ”
  • 训练方式:指定训练方式为“单机”或“分布式”。
  • 选择角色:训练方式为“单机”时,只能选择“Woker”;训练方式为“分布式”时,可额外选择“PS”、“Chief”、“Evaluator”。

    12.完成容器组相关信息配置,可以根据需要同时进行高级设置。

截屏2024-05-31 下午5.41.49.png

  • 期望Pod数:指定容器组的Pod数目。
  • 重启策略:指定容器组的重启策略,可选择的策略有“失败重启”或“从不重启”。
  • 镜像地址:指定容器的镜像拉取地址,也可以直接点击“选择镜像”,选择需要使用的镜像。
  • 镜像版本:指定镜像的版本,若不指定默认拉取latest版。
  • 容器配额:指定容器的CPU、内存、GPU/NPU资源相关信息。
  • 环境变量:填写变量名和变量值。
  • 生命周期:包含启动命令、启动参数、启动后执行和停止前执行,可根据需要添加。

    13.完成任务高级信息相关配置。

截屏2024-05-31 下午5.43.32.png

  • 私有仓库凭证:若需要使用私有镜像仓库,请在此处添加对应镜像仓库的访问凭证。
  • Tensorboard:若需要任务可视化时,可开启Tensorboard功能,开启后需要指定“服务类型”与“ 训练日志读取路径”。
  • K8S标签:指定任务对应的K8S Label。
  • 注释:指定任务对应的Annotation。
  1. 点击“完成”按钮,完成任务的新建。

Yaml创建任务示例

apiVersion: "kubeflow.org/v1"
kind: "TFJob"
metadata:
  name: "tfjob-dist-mnist-for-e2e-test"
spec:
  tfReplicaSpecs:
    PS:
      replicas: 2
      restartPolicy: Never
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: "false"
            # if your libcuda.so.1 is in custom path, set the correct path with the following annotation
            # kubernetes.io/baidu-cgpu.nvidia-driver-lib: /usr/lib64
        spec:
          schedulerName: volcano
          containers:
            - name: tensorflow
              image: registry.baidubce.com/cce-public/kubeflow/tf-dist-mnist-test:1.0
              resources:
                requests:
                  cpu: 1
                  memory: 1Gi
                limits:
                  baidu.com/v100_32g_cgpu: "1"
                  # for gpu core/memory isolation
                  baidu.com/v100_32g_cgpu_core: 10
                  baidu.com/v100_32g_cgpu_memory: "2"
              # if gpu core isolation is enabled, set the following preStop hook for graceful shutdown.
              # ${'`'}dist_mnist.py${'`'} needs to be replaced with the name of your gpu process.
              lifecycle:
                preStop:
                  exec:
                    command: [
                      "/bin/sh", "-c",
                      "kill -10 `ps -ef | grep dist_mnist.py | grep -v grep | awk '{print $2}'` && sleep 1"
                    ]
    Worker:
      replicas: 4
      restartPolicy: Never
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: "false"
            # if your libcuda.so.1 is in custom path, set the correct path with the following annotation
            # kubernetes.io/baidu-cgpu.nvidia-driver-lib: /usr/lib64
        spec:
          schedulerName: volcano
          containers:
            - name: tensorflow
              image: registry.baidubce.com/cce-public/kubeflow/tf-dist-mnist-test:1.0
              env:
                # for gpu memory over request, set 0 to disable
                - name: CGPU_MEM_ALLOCATOR_TYPE
                  value: “1”
              resources:
                requests:
                  cpu: 1
                  memory: 1Gi
                limits:
                  baidu.com/v100_32g_cgpu: "1"
                  # for gpu core/memory isolation
                  baidu.com/v100_32g_cgpu_core: 20
                  baidu.com/v100_32g_cgpu_memory: "4"
              # if gpu core isolation is enabled, set the following preStop hook for graceful shutdown.
              # ${'`'}dist_mnist.py${'`'} needs to be replaced with the name of your gpu process.
              lifecycle:
                preStop:
                  exec:
                    command: [
                      "/bin/sh", "-c",
                      "kill -10 `ps -ef | grep dist_mnist.py | grep -v grep | awk '{print $2}'` && sleep 1"
                    ]
上一篇
队列管理
下一篇
新建Pytorch任务