推荐系统实战(三)Parameter Server(下)

海量数据高维稀疏特征的背景下,推荐系统能够实现在线实时训练,追踪用户和物料的最新状态,依靠的是参数服务器Parameter Server

一、传统分布式计算的不足

使用Hadoop/Spark这些大数据工具遇到的困难:

(1)Master节点需要容纳的参数量过大:推荐系统的特征数量非常多,每个特征的embedding维数有16位、32位等,参数量过大。

(2)代价大:在每轮训练中,Master都要将巨大的参数量传播带各个Slave节点,每个Slave节点还需要将相同大小的梯度回传,代价很大。

二、基于PS的分布式训练范式

(一)PS的简单描述

PS是一个分布式的K-V(Key-Value)数据库。

(二)PS的设计特点

1、突破单台机器资源限制,避免单点失效:参数不再集中存储于单一的Master节点,而是由一群PS Server节点共同存储、读写。

2、节省带宽和传输时间:在训练每个batch的时候,只需要传递当前batch所涵盖的非零特征参数。

(三)PS的结构

主要由三类节点构成:Server、Worker、Schedular。

1、Worker:PS中有多个

①拉取Pull:从Server拉取最新的模型参数。

②训练Train:本地训练,计算出梯度。

③推送Push:向Server推送梯度。

2、Server:PS中有多个

每个Server结点实际上就是一个k-v数据库

①存储:每个Server结点存储海量参数中的一部分,又称为shard。

②应对Pull:将worker节点请求的参数最新值发送过去。

③应对push:聚合从各个worker节点发送的梯度,再利用SGD算法更新模型参数。

3、Schedular

负责PS结点的管理,比如新节点的注册、Pull和Push到正确节点。

PS中的三大类节点

三、PS的训练流程

(一)一轮训练的操作节点序列

worker-worker-schedular-server-worker-worker-server

(二)操作流程

1、worker归纳当前batch的本地训练数据涵盖了哪些特征。

2、worker向Server发送Pull请求,拉取当前batch需要的模型参数,比如特征的Embedding等。

3、schedular实现路由机制,将worker的pull请求拆分,分别路由到相应的server节点。这是因为每个server节点都存储一部分模型参数。

4、server接收worker的pull请求,从存储中找到相应特征的最新参数,回复给worker。

5、worker收齐server的最新参数后进行训练,得到梯度。

6、worker向Server发送Push请求,将计算的梯度推送给sever。

7、server接收worker发送来的梯度,进行聚合汇总,通过SGD更新参数,完成一轮训练。

基于PS的训练流程示意

(三)PS训练模式的特点

结合了data parallelism数据并行和model parallelism模型并行两种分布式计算范式。

1、数据并行

海量数据分布存储在各个节点上。

2、模型并行 

多个worker节点相对解耦,适合模型并行。

四、PS并行策略

根据worker节点冲突的频繁程度,分为以下三种并行策略。

(一)批量同步并行BSP:阻塞等待

1、流程

  • worker节点本地数据训练后,计算得到梯度,推送给server节点,然后阻塞等待
  • server节点收集其所有worker节点的梯度后,聚合梯度,SGD更新参数。
  • server向worker节点通知解除阻塞。
  • worker从server拉取最新参数,进行下一轮训练。

2、优缺点

①优点

多worker节点更新不会发生冲突。

②缺点

一轮迭代中,速度快的节点要停下来等待速度慢的节点,形成短板效应。

BSP策略示意

(二)异步并行ASP

1、策略描述

每个worker节点推送梯度给server后就进行下一轮训练,不用等待其他worker。

2、缺点

可能会造成梯度失效,但在实际场景中由于特征稀疏,每个worker节点局部训练数据所包含的非零特征相互重叠得不严重。梯度失效示例如下:worker节点1和worker节点2从server节点1拉取最新参数θ0,worker节点1训练后将计算的梯度推送到server节点1,此时server节点1根据接收到worker节点1的梯度进行更新参数为θ1。worker节点2训练结束后推送梯度给server节点1,server节点1在上个参数θ1的基础上更新参数为θ2。而实际上worker节点2计算得到的梯度是基于参数θ0的。

ASP策略示意

(三)半同步半异步SSP

1、策略

SSP是BSP和ASP的折中策略,SSP允许各个worker节点在一定迭代次数内保持同步,但是当最慢的worker节点和最快的worker节点之间的迭代次数差值超过一定限度,所有worker节点就会停下来进行一次同步。

2、优点

达到了计算速度和收敛精度的平衡。

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值