在百度云分布式训练CTR¶
Fluid支持数据并行的分布式训练,也支持基于Kubernetes的分布式部署。本文以百度云为例,说明如何通过在云服务器上分布式训练Click-Through-Rate(以下简称ctr)任务。
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日志示例: