在百度云分布式训练CTR
Fluid支持数据并行的分布式训练,也支持基于Kubernetes的分布式部署。本文以百度云为例,说明如何通过在云服务器上分布式训练Click-Through-Rate(以下简称ctr)任务。
1. 使用前的准备
百度云容器引擎的使用流程基本概念可以参考 官网文档 做了解
2. 创建集群
具体请参考 帮助文档 说明文档来建立一个集群。
集群配置需要满足如下要求
- CPU核数 > 4示例图创建完成后,即可查看 集群信息 。
3. 操作集群
集群的操作可以通过百度云web或者通过kubectl工具进行,推荐用 kubectl工具 。
从Kubernetes 版本下载页面下载对应的 kubectl 客户端,关于kubectl 的其他信息,可以参见kubernetes官方安装和设置 kubectl文档。
注意:本操作指南给出的操作步骤都是基于linux操作环境的。
解压下载后的文件,为kubectl添加执行权限,并放在PATH下
- cd kubernetes/client/bin && chmod +x ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl
- 配置kubectl,下载集群凭证。在集群界面下载集群配置文件,放在kubectl的默认配置路径(请检查~/.kube 目录是否存在,若没有请创建)
- mv kubectl.conf ~/.kube/config
- 配置完成后,您即可以使用 kubectl 从本地计算机访问 Kubernetes 集群
- kubectl get node
4. 设置访问权限
建立分布式任务需要pod间有API互相访问的权限,可以按如下步骤
- sudo kubectl create rolebinding default-view --clusterrole=view --serviceaccount=default:default --namespace=default
- 注意: –namespace 指定的default 为创建集群时候的名称
5. 部署任务
任务的所有脚本文件可以访问 这里 获取。
ctr:ctr任务对应的python脚本
ps-train:k8s任务对应的yaml文件
- pserver.yaml: 部署psever任务
- trainer.yaml: 部署trainer任务
Dockerfile:pod文件的docker镜像生成文件
Script:pod文件docker镜像中包含的脚本
通过执行
- kubectl apply -f ps-train
即可以成功提交任务
6. 查看结果
百度云容器引擎CCE提供了web操作台方便查看pod的运行状态。
本次训练任务将启动2个pserver节点,2个trainer节点,示例图如下可以通过检查pserver和trainer的log来检查任务运行状态。Trainer日志示例:pserver日志示例: