tf模型固化方式,tf训练入门教程

首页 > 经验 > 作者:YD1662023-11-05 04:31:54

每个节点上通信数据量的上限不会随分布式规模变大而变大。

在 PaiSoar 中,我们基于 Tensorflow 原生的通信原语 Rendezvous 实现 Ring AllReduce 算法,并提供简化用户构建分布式 TF 模型训练的

ReplicatedVarsOptimizer 接口(用户文档),核心功能如下:

  1. 简单的用户接口:只需开启 PAISoar 之后将原有的 Optimizer 包装为 ReplicatedVarsOptimizer,即可将单机模型改成分布式模型,不需要修改太多的代码;
  2. 支持多种通信协议:支持 gRPC、RDMA 等多种通信协议;
  3. 优化的通信策略:根据计算图的信息,平衡计算通信重叠度和通信效率,合并计算时间相近的梯度一起传输。

3. 安全部绿网模型

3.1 模型介绍

绿网模型开始于2013年,在安全部成立初期就已经存在,用于电商场景中的色情内容的识别。绿网模型最初基于 BOW(Bag of Word)类型的图像分类模型,这是在深度学习(Deep Learning)出现之前学术界以及工业界普遍使用的建模方式,在图像检索以及分类上都得到了广范的使用。

tf模型固化方式,tf训练入门教程(9)

绿网模型分为互联网场景与电商场景两个模型。本文中主要集中介绍互联网场景的模型。互联网场景是绝大多数网站/ App 的需求,特点是只检出有明确证据判断为色情内容的图片/视频,标准较宽松,可以容忍一些大尺度性感照、不雅姿势、猥琐动作等。

目前绿网模型互联网场景主要是在阿里云的阿里绿网(内容安全),绿网的付费客户数量随着互联网内容管控的需求加大呈现了指数级增长。目前已经为集团内和集团外的大量客户提供了安全稳定的内容保障。

目前绿网模型互联网场景每天调用量已经达到亿级别,平均的 RT 为80ms左右。

由于图像计算量复杂以及图像数据量大,GPU 单机训练已经无法满足目前模型迭代的速度,单机2卡训练一个模型需要长达12天之久,因此分布式训练势在必行:

tf模型固化方式,tf训练入门教程(10)

3.2 分布式调参

如上文,使用 PAISoar 进行分布式训练后,绿网模型取得了非常明显的计算加速效果,在128 GPU卡上,计算加速比能达到101倍。

分布式训练另一个重要的工作就是调参,分布式规模扩大相当于增加 batch size,如果沿用以前的学习策略和参数(learning Rate等)会导致模型收敛慢或不收敛,达不到单机训练的精度。我们需要进行调参来让模型训练收敛。

我们调参所用的方法:

1.训练数据分片,在分布式训练时,需要对数据进行分片,确保每个 worker 读到的数据不一样,最好是每几个 epoch 后整体数据 shuffle 一次,避免模型对输入数据顺序的依赖。

2.使用 PaiSoar 中的 learning rate 动态调节方法smooth_exponential_decay,在训练初期采用 lr(learning rate) 平滑上升的策略,训练刚开始时,使用一个较小的 lr,尽量避免一开始由于 lr 太大导致收敛不稳定。后面再平滑增大 lr,尽量让 weights 更新到离初始的 init weight 比较远的地方。lr 增长到目标值后再采用指数衰退的方式,每个几个 epoch 衰退一次,逐步减少 lr,避免训练后期过大的 lr 导致训练波动,不收敛,learning rate 变化趋势如下图所示:

tf模型固化方式,tf训练入门教程(11)

3.分布式 N 个 worker 训练,相当于单机 batch size 增大N倍,此时需要调大 learning rate,一般调大 sqrt(N)~N倍,可以结合 Tensorboard 来观察 loss 和 lr 的变化趋势来决定调大还是调小 lr.

经过调参在不同 GPU 卡下绿网模型都调试收敛,不同 GPU 卡下训练轮数如下表所示:

tf模型固化方式,tf训练入门教程(12)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.