• 在百度云分布式训练CTR
    • 1. 使用前的准备
    • 2. 创建集群
    • 3. 操作集群
    • 4. 设置访问权限
    • 5. 部署任务
    • 6. 查看结果

    在百度云分布式训练CTR

    Fluid支持数据并行的分布式训练,也支持基于Kubernetes的分布式部署。本文以百度云为例,说明如何通过在云服务器上分布式训练Click-Through-Rate(以下简称ctr)任务。

    1. 使用前的准备

    百度云容器引擎的使用流程基本概念可以参考 官网文档 做了解

    2. 创建集群

    具体请参考 帮助文档 说明文档来建立一个集群。

    集群配置需要满足如下要求

    • CPU核数 > 4示例图../../../_images/ctr_node.png创建完成后,即可查看 集群信息 。

    3. 操作集群

    集群的操作可以通过百度云web或者通过kubectl工具进行,推荐用 kubectl工具 。

    从Kubernetes 版本下载页面下载对应的 kubectl 客户端,关于kubectl 的其他信息,可以参见kubernetes官方安装和设置 kubectl文档。../../../_images/ctr_kubectl_download.png

    • 注意:本操作指南给出的操作步骤都是基于linux操作环境的。

    • 解压下载后的文件,为kubectl添加执行权限,并放在PATH下

    1. cd kubernetes/client/bin && chmod +x ./kubectl && sudo mv ./kubectl /usr/local/bin/kubectl
    • 配置kubectl,下载集群凭证。在集群界面下载集群配置文件,放在kubectl的默认配置路径(请检查~/.kube 目录是否存在,若没有请创建)
    1. mv kubectl.conf ~/.kube/config
    • 配置完成后,您即可以使用 kubectl 从本地计算机访问 Kubernetes 集群
    1. kubectl get node

    4. 设置访问权限

    建立分布式任务需要pod间有API互相访问的权限,可以按如下步骤

    1. 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镜像中包含的脚本

    通过执行

    1. kubectl apply -f ps-train

    即可以成功提交任务

    6. 查看结果

    百度云容器引擎CCE提供了web操作台方便查看pod的运行状态。

    本次训练任务将启动2个pserver节点,2个trainer节点,示例图如下../../../_images/ctr_pods.png可以通过检查pserver和trainer的log来检查任务运行状态。Trainer日志示例:../../../_images/ctr_trainer_log.pngpserver日志示例:../../../_images/ctr_pserver_log.png