上云无忧 > 文档中心 > 腾讯云容器服务 云原生AI组件 - 运行 PyTorch 训练任务
容器服务 TKE
腾讯云容器服务 云原生AI组件 - 运行 PyTorch 训练任务

文档简介:
本文为您介绍如何运行 PyTorch 训练任务。 前提条件: AI 环境中已安装 PyTorch Operator。 AI 环境中有 GPU 资源。 操作步骤: 以下操作指南参考 PyTorch-Operator 官方提供的分布式训练 案例。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
本文为您介绍如何运行 PyTorch 训练任务。

前提条件

AI 环境中已安装 PyTorch Operator
AI 环境中有 GPU 资源。

操作步骤

以下操作指南参考 PyTorch-Operator 官方提供的分布式训练 案例

准备训练代码

本示例使用 Kubeflow 官方提供的示例代码 mnist.py

制作训练镜像

制作训练镜像的过程较为简单。您只需要基于 PyTorch 1.0 的官方镜像,将代码复制到镜像内,并配置好entrypoint即可。如果您没有配置 entrypoint,也可以在提交 PyTorchJob 时配置启动命令。
注意
训练代码基于 PyTorch 1.0 构建,由于 PyTorch 在不同版本之间可能存在 API 不兼容的问题,因此在其他版本的 PyTorch 环境下,您可能需要自行调整代码。

任务提交

1. 准备一个 PyTorchJob 的 YAML 文件,定义一个 Master Worker 和一个 Worker。
注意:
您需要将上传后的训练镜像地址替换 <训练镜像> 所在占位。
由于在资源配置中设置了 GPU 资源,请在args为训练配置的backend"nccl";在未使用 (Nvidia)GPU 的任务中,请使用其他 backend(例如 gloo)。
		
apiVersion: "kubeflow.org/v1"
kind: "PyTorchJob"
metadata:
name: "pytorch-dist-mnist-nccl"
spec:
pytorchReplicaSpecs:
Master:
replicas: 1
restartPolicy: OnFailure
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
spec:
containers:
- name: pytorch
image: <训练镜像>
args: ["--backend", "nccl"]
resources:
limits:
nvidia.com/gpu: 1
Worker:
replicas: 1
restartPolicy: OnFailure
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
spec:
containers:
- name: pytorch
image: <训练镜像>
args: ["--backend", "nccl"]
resources:
limits:
nvidia.com/gpu: 1
2. 执行以下命令,通过 kubectl 提交 PyTorchJob:
		
kubectl create -f ./pytorch_job_mnist_nccl.yaml
3. 执行以下命令,查看该 PyTorchJob:
		
kubectl get -o yaml pytorchjobs pytorch-dist-mnist-nccl
4. 执行以下命令,查看 PyTorch 任务创建的相关 Pod:
		
kubectl get pods -l pytorch_job_name=pytorch-dist-mnist-nccl
相似文档
  • 概述: 传统分布式深度学习任务(例如 Tensorflow Job)在提交训练任务后,无法再动态调整 Worker 数量。但在某些场景下,需要弹性训练能力,例如,集群中存在一批算力需求波动大的高优任务(例如周期性波动的在线任务),集群的整体平均资源利用率较低,因为波谷期的资源未得到充分利用。这种场景下,可以在集群中运行弹性训练任务,充分利用集群闲置资源。
  • 当您使用腾讯云容器服务 TKE 组建 Kubernetes 集群时,会面对多种配置选项,难以进行选择。本文介绍以下功能选型,进行对比并给出选型建议。您可参考本文,选择更适用于您业务的配置选型。
  • 概述: 容器服务 TKE 包含托管集群及独立部署集群。若使用托管集群,则无需关注容灾,托管集群的 Master 由容器服务 TKE 内部维护。若使用独立集群,则 Master 节点由用户自行管理维护。独立集群如需实现容灾,则首先应根据需求规划容灾方案,在创建集群时进行相应配置即可。本文介绍如何实现 TKE 独立集群 Master 的容灾,您可参考本文进行操作。
  • 操作场景: 当前集群开启内网访问后,容器服务 TKE 默认通过域名访问集群,您需要在访问机上配置 Host 来进行内网域名解析。如未配置对应的域名解析规则(Host),在访问机上访问对应集群(运行 kubectl get nodes)时将会报错 “no such host”,如下图所示:
  • 操作场景: 开源工具 Velero(旧版本名称为 Heptio Ark)可以安全地备份和还原、执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷。在容器服务 TKE 集群或自建 Kubernetes 集群中部署 Velero 可以实现以下功能: 备份集群资源并在丢失的情况下进行还原。 将集群资源迁移到其他集群。 将生产集群资源复制到开发和测试集群。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部