作者|廉相如(快手FeDA智能决策实验室 )

如何有效处理大规模用户数据进行广告推荐?对于互联网企业的发展和进步至关重要。这也是为何快手成立西雅图实验室并实现新一代GPU广告模型训练平台的原因之一。快手新创建的“Persia”GPU广告模型训练平台比起传统CPU训练平台,单机训练速度提升可达几百倍,在约一小时内即可训练百T级别数据量,并能通过设计算法得到相对于传统训练平台精度更高的模型,对企业收入、计算资源的节约和新模型开发效率产生直观的提升。

大模型GPU分布式运算存储

近年来,GPU训练已在图像识别、文字处理等应用上取得巨大成功。GPU训练以其在卷积等数学运算上的独特效率优势,极大地提升了训练机器学习模型,尤其是深度神经网络的速度。然而,在广告模型中,由于大量的稀疏样本存在(比如用户id),每个id在模型中都会有对应的Embedding向量,因此广告模型常常体积十分巨大,以至于单GPU无法存下模型。目前往往将模型存在内存中,由CPU进行这部分巨大的Embedding层的运算操作。这既限制了训练的速度,又导致实际生产中无法使用比较复杂的模型——因为使用复杂模型会导致对给定输入CPU计算时间过长,无法及时响应请求。

“Persia”系统实现了多GPU分散存储模型,每个GPU只存储模型一部分,并进行多卡协作查找Embedding向量训练模型的模式。这既解决了CPU运算速度过慢的问题,又解决了单GPU显存无法存下模型的问题。当模型大小可以放入单个GPU时,“Persia”也支持切换为目前在图像识别等任务中流行的AllReduce分布训练模式。据研究人员透露,对于一个8GPU的计算机,单机数据处理速度可达原CPU平台单机的640倍。

由于普遍使用的传统异步SGD有梯度的延迟问题,若有 n台计算机参与计算,每台计算机的梯度的计算实际上基于n个梯度更新之前的模型。在数学上,对于第t步的模型xt,传统异步SGD则更新为:

xt+1←xt − learning rate × g(xt−τt),

其中g(xt−τt) 是训练样本的损失函数在τt个更新之前的模型上的 梯度。而τt的大小一般与计算机数量成正比:当计算机数量增多,xt−τt与xt相差就越大,不可避免地导致模型质量的降低。“Persia”的训练模式解决了这种梯度延迟的问题,因此模型质量也有所提升。

同时,“Persia”训练系统还支持对Embedding运算在GPU上进行负载均衡,使用“贪心算法”将不同Embedding均匀分散在不同GPU上,以达到均匀利用GPU的目的。给定k个 GPU,当模型具有m个Embedding层:e1, e2, …, em,对应负载分别为 l1, l2, …, lm,“Persia”将会尝试将Embedding分为k组 S1, S2, …, Sk,并分别存放在对应GPU上,使得每组∑i∈Sjli, ∀j大致相等。

训练数据分布式实时处理

快手“Persia”的高速GPU训练,需要大量数据实时输入到训练机中,由于不同模型对样本的需求不同,对于每个新实验需要的数据格式可能也不同。快手“Persia”系统具备基于Hadoop集群的实时数据处理系统,可以应不同实验需求从HDFS中使用任意多计算机分布式读取数据进行多级个性化处理传送到训练机。传输使用高效消息队列,并设置多级缓存。传输过程实时进行压缩以节约带宽资源。

未来:分布式多机训练

未来,快手“Persia”系统即将展开分布式多GPU计算机训练。有别于成熟的计算机视觉等任务,由于在广告任务中模型大小大为增加,传统分布式训练方式面临计算机之间的同步瓶颈会使训练效率大为降低。“Persia”系统将支持通讯代价更小,并且系统容灾能力更强的去中心化梯度压缩训练算法。

快手FeDA智能决策实验室负责人刘霁介绍,该算法结合新兴的异步去中心化训练 (Asynchronous decentralized parallel stochastic gradient descent, ICML 2018)和梯度压缩补偿算法(Doublesqueeze: parallel stochastic gradient descent with double-pass error-compensated compression, ICML 2019), 并有严格理论保证。据预计,快手“Persia”系统在多机情景下在单机基础上将有数倍到数十倍效率提升。

CTA核心技术及应用峰会

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。议程设置请请识别海报二维码查看。

目前CTA峰会倒计时2天!还没有拿到入场券的小伙伴可以识别海报二维码或者点击阅读原文,即刻抢购。你也添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

推荐阅读

  • 海康、大华遭“封杀”!美欲再切断五家安防公司技术供应

  • ICML 2019接受论文:清华、北大领跑,谷歌强压枝头,BAT略显“低调”

  • 33关Python游戏,测试你的爬虫能力到底及格不?

  • Python小白数据科学教程:SciPy精讲

  • 中年程序猿图鉴

  • 荣耀 20/20 PRO 全球首发,全系 AI 四摄 DxO 分全球第二!

  • 中国开发者地位渐高? V神二度来京, 竟是为了……

  • kappa和lambda对比 | 程序员硬核评测

  • 这本京东断货王的Python神书,刷爆整个编程圈!

点击阅读原文,了解CTA核心技术及应用峰会

单机训练速度提升高达640倍,快手开发GPU广告模型训练平台相关推荐

  1. 将sklearn训练速度提升100多倍,美国「返利网」开源sk-dist框架

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 选自Medium 作者:Evan Harris 机器之心编译 参与: ...

  2. 中望CAD调用lisp在哪_中望CAD+加载LISP程序速度提升高达8倍

    对于即将推出的全新一代二维CAD平台软件中望CAD+,广州中望数字化设计软件有限责任公司中望CAD+研发总监何祎认为,"Lisp 是CAD 应用发展中使用最普遍的程序语言之一.数以百万计的设 ...

  3. alexnet训练多久收敛_如何将深度学习训练速度提升一百倍?PAISoar 来了

    阿里妹导读:得力于数据规模增长.神经网络结构的演进和计算能力的增强,深度学习的图像处理.语音识别等领域取得了飞速发展.随着训练数据规模和模型复杂度的不断增大,如何充分利用分布式集群的计算资源加快训练速 ...

  4. 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍

    作者 | Evan Harris 译者 | Monanfei 编辑 | Jane  出品 | AI科技大本营(ID:rgznai100) [导语]这篇文章为大家介绍了一个开源项目--sk-dist.在 ...

  5. 如何将深度学习训练速度提升一百倍?PAISoar 来了

    阿里妹导读:得力于数据规模增长.神经网络结构的演进和计算能力的增强,深度学习的图像处理.语音识别等领域取得了飞速发展.随着训练数据规模和模型复杂度的不断增大,如何充分利用分布式集群的计算资源加快训练速 ...

  6. 【云原生AI】Fluid + JindoFS 助力微博海量小文件模型训练速度提升 18 倍

    简介: 深度学习平台在微博社交业务扮演着重要的角色.计算存储分离架构下,微博深度学习平台在数据访问与调度方面存在性能低效的问题.本文将介绍微博内部设计实现的一套全新的基于 Fluid(内含 Jindo ...

  7. 阿里公开自研AI集群细节:64个GPU,百万分类训练速度提升4倍

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :量子位 AI博士笔记系列推 ...

  8. 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏

    来源:新智元 [导读]知识蒸馏已经成了目前常用的模型压缩方法,但相关研究还局限在图像分类任务上.最近旷视孙剑博士联手西安交大发表了一篇论文,提出新模型LGD,无需一个强力的teacher模型也能在目标 ...

  9. Mask R-CNN官方实现“又”来了!基于PyTorch,训练速度是原来2倍

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 来自官方的Mask R-CNN实现终于"又"来了!PyTorch官方Twitter今天公布了一个名为Mask R-CNN ...

最新文章

  1. java获取当月有几天_你真的能在JAVA开发这条路上面一直坚持下去吗?
  2. linux上部署mysql服务_在Linux环境下部署MySql服务
  3. oracle学习第一天
  4. SQL 模糊查询技术
  5. Linux 安装json神器 jq
  6. pat 乙级 1041 考试座位号(C++)
  7. 基于Curator实现dubbo服务自动注册发现
  8. Linux监控命令之==sar
  9. android 视频编码vfr cfr,[转载]VFR的源转换CRF输出 批处理
  10. Android移动应用基础教程 【程序活动单元Activity】
  11. CSDN下载频道积分规则2.1
  12. Win32 Console Application、Win32 Application、MFC三者之间的联系和区别
  13. Android TextToSpeech简单使用
  14. VSCode Markdown 插件
  15. VMware安装winXP SP3专业版+常用软件+正常联网
  16. 非共识与小趋势——复盘罗辑思维7年演化之路
  17. Spirent TestCenter指定端口上配置OSPFv2 Router
  18. Vue2.0 的 Material Design UI 组件库 Muse-UI
  19. 可靠传输的原理:停止等待协议、ARQ协议;TCP协议的可靠传输
  20. NGUI的动态字体dynamicFont的制作

热门文章

  1. Android官方提供的支持不同屏幕大小的全部方法
  2. BREW 计费模式概览
  3. Silverlight初级教程-开发工具
  4. KV结构的集合,在处理null值的存储上有细微的区别,下列哪些说法是正确的
  5. ORB-SLAM2从理论到代码实现(三):ORB特征提取和匹配理论和代码详解
  6. elementui 清空下拉框值_element中的select如何在下拉数据改变后清空之前的选择?...
  7. 2018-4-8使用兔子的例子对比说明遗传算法,局部搜索,禁忌搜索,模拟退火方法
  8. 2.27 MapReduce Shuffle过程如何在Job中进行设置
  9. 异步发送邮件、短信、微信
  10. JavaScript中的加法运算