简介
PAI目前已经上线了支持多机、多卡、多PS Server的TensorFlow服务,目前只支持华北2 Region。华北2 Region因为支持多机多卡功能,适用于大规模数据的训练,相关服务需要收费,有需要的相关机构可以联系我们。
原理说明
- Parameter Server节点:用来存储TensorFlow计算过程中的参数。配置多个PS节点,计算参数将会被自动切片并存储在不同的PS节点中,从而减小Worker和PS节点通信过程中的带宽限制的影响。
- Worker节点:“多机多卡”中的“机”,GPU卡的载体。
- Task节点:“多机多卡”中的“卡”,在PAI中指的是GPU卡,在TensorFlow训练过程中,通过数据切片将数据分布在不同的Task节点进行模型参数的训练。
使用说明
多机、多卡、多PS功能会以服务化的方式提供,用户无需关心底层计算资源的调度和运维,只需要通过PAI前端的简单配置即可快速搭建起整个分布式计算网络。下面介绍下具体的使用方式:
1.前端配置
- 将mnist_cluster.tar.gz文件下载并上传到OSS(本文下部提供下载地址),配置深度学习的OSS读取权限,拖拽任意版本TensorFlow组件按照下图连接,设置对应的代码数据源(Python代码文件设置mnist_cluster.tar.gz路径,Python主文件填入mnist_cluster.py):
- 点击“执行调优”进行参数配置:
- 通过以上配置可以快速建立起如下图所示的多机多卡多PS计算网络结构,其中PS为Parameter Server服务,WORKER为计算节点机器,TASK表示具体执行计算的GPU卡:
2.代码端设置
传统的TensorFlow多机多卡作业需要在代码端输入每一个计算节点的对应端口信息,如下图所示:
当计算节点数量增多时,这种端口信息的配置会非常复杂。PAI优化了计算节点配置信息的功能,只需要以下两行代码即可自动在代码端获取计算节点信息。
ps_hosts = FLAGS.ps_hosts.split(",")#框架层提供ps_hosts的端口
worker_hosts = FLAGS.worker_hosts.split(",")#框架层提供worker_hosts的端口
3.运行日志查看
- 右键TensorFlow,产看日志,可以看到资源的分配情况。分配两个PS,两个WORKER。
- 点击蓝色链接,可以在logview中查看对应每个worker的运行状态: