• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    400-123-4567

    电子邮件

    1691000615@qq.com
  • 星点互联APP

    随时掌握企业动态

  • 扫描二维码

    关注星点微信公众号

Lv.9 管理员
1号会员,12264活跃度,2019/01/10 加入学习
  • 26发帖
  • 13主题
  • 1关注
  • 0粉丝
别嫉妒成功,别怜悯失败。
优秀讲师更多
课堂交流更多
开启左侧

[新课预告] 阿里开源首个深度学习框架 X-Deep Learning!

[复制链接]
admin 发表于 2019-1-11 15:03:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
刚刚,阿里妈妈正式对外发布了X-Deep Learning(下文简称XDL)的开源代码地址,开发者们可以在Github上自主下载。



此前,在11月底,阿里妈妈就公布了这项开源计划,引来了业界的广泛关注。XDL突破了现有深度学习开源框架大都面向图像、语音等低维稠密数据而设计的现状,面向高维稀疏数据场景进行了深度优化,并已大规模应用于阿里妈妈的业务及生产场景。本文将为大家详细介绍XDL的设计理念及关键技术。

概述


以深度学习为核心的人工智能技术,过去的几年在语音识别、计算机视觉、自然语言处理等领域获得了巨大的成功,其中以GPU为代表的硬件计算力,以及优秀的开源深度学习框架起到了巨大的推动作用。
尽管以TensorFlow、PyTorch、MxNet等为代表的开源框架已经取得了巨大的成功,但是当我们把深度学习技术应用在广告、推荐、搜索等大规模工业级场景时,发现这些框架并不能很好的满足我们的需求。矛盾点在于开源框架大都面向图像、语音等低维连续数据设计,而互联网的众多核心应用场景(如广告/推荐/搜索)往往面对的是高维稀疏离散的异构数据,参数的规模动辄百亿甚至千亿。进一步的,不少产品应用需要大规模深度模型的实时训练与更新,现有开源框架在分布式性能、计算效率、水平扩展能力以及实时系统适配性的等方面往往难以满足工业级生产应用的需求。

X-DeepLearning正是面向这样的场景设计与优化的工业级深度学习框架,经过阿里巴巴广告业务的锤炼,XDL在训练规模和性能、水平扩展能力上都表现出色,同时内置了大量的面向广告/推荐/搜索领域的工业级算法解决方案。

系统核心能力
1) 为高维稀疏数据场景而生。支持千亿参数的超大规模深度模型训练,支持批学习、在线学习等模式。
2) 工业级分布式训练能力。支持CPU/GPU的混合调度,具备完整的分布式容灾语义,系统的水平扩展能力优秀,可以轻松做到上千并发的训练。
3) 高效的结构化压缩训练。针对互联网样本的数据特点,提出了结构化计算模式。典型场景下,相比传统的平铺样本训练方式,样本存储空间、样本IO效率、训练绝对计算量等方面都大幅下降,推荐等场景下整体训练效率最大可提升10倍以上。
4) 成熟多后端支持。单机内部的稠密网络计算复用了成熟开源框架的能力,只需要少量的分布式驱动代码修改,就可以把TensorFlow/MxNet等的单机代码运行在XDL上,获得XDL分布式训练与高性能稀疏计算的能力。

内置工业级算法解决方案
1)点击率预估领域的最新算法,包括深度兴趣网络(Deep Interest Network,DIN),用户兴趣演化模型(Deep Interest Evolution Network, DIEN),跨媒介网络(Cross Media Network,CMN)。
2)点击率&转化率联合建模的全空间多任务模型(Entire Space Multi-task Model, ESMM)。
3)匹配召回领域的最新算法——深度树匹配模型(Tree-based Deep Match,TDM)。
4)轻量级通用模型压缩算法(Rocket Training)

系统设计与优化           
                  
XDL-Flow:数据流与分布式运行时
XDL-Flow驱动整个深度学习计算图的生成与执行,包括样本流水线、稀疏表征学习、稠密网络学习。同时,XDL-Flow也负责分布式模型的存储与交换控制逻辑,分布式容灾与恢复控制等全局一致性协调的工作。

在搜索、推荐、广告等场景下的样本量巨大,通常达到几十TB至数百TB,如果不能很好的优化样本流水线,样本IO系统很容易成为整个系统的瓶颈,从而导致计算硬件的利用率低下。在大规模稀疏场景下,样本读取的特点是IO密集,稀疏表征计算的特点是参数交换网络通信密集,稠密深度计算是计算密集型。
XDL-Flow通过把三个主要环节异步流水线并行,较好的适配了3种不同类型任务的性能。最好的情况下,前两个阶段的延时都被隐藏了。同时,我们也正在尝试自动化的Tunning异步流水线的各个参数,包括各个Step的并行度、Buffer大小等,尽可能让用户不需要关心整个异步流水线并行的细节。

AMS:高效模型服务器
AMS是面向稀疏场景专门设计与优化的分布式模型存储与交换子系统。我们综合小包网络通信、参数存储结构、参数分布式策略等进行了大量的软硬件优化,使得AMS在吞吐力和水平扩展力上都大幅优于传统的Parameter Server,AMS也支持内置的深度网络计算,使得你可以使用AMS进行表征子网络的二阶计算。
1)AMS通过软硬件结合在网络通信层做了大量优化,包括使用Seastar,DPDK,CPUBind,ZeroCopy等技术,充分压榨硬件性能,经过我们实际测试,大规模并发训练下,参数交换导致的小包吞吐能力是传统RPC框架的5倍以上。
2)通过内置的参数动态均衡策略,可以在运行过程中找到最优的稀疏参数分布策略,有效解决传统参数服务器由于参数分布式不均匀带来的热点问题,大幅提高了系统在高并发情况下的水平扩展能力。
3)AMS同样支持通过GPU加速大Batch Size场景下的Sparse Embedding计算,针对超大Batch的场景,可以起到很好的加速作用。
4)AMS支持内部定义子网络。例如我们的算法解决方案中提供的Cross-Media建模,图像部分的表征子网络就是以AMS内运行的方式定义的,大幅减少了重复计算和网络吞吐。

BackendEngine:桥接技术复用成熟框架的单机能力
为了充分利用现有开源深度学习框架在稠密深度网络上的能力,XDL使用桥接技术(Bridging),把开源深度学习框架(本期开源版XDL支持了TensorFlow、MxNet)作为我们的单机稠密网络的计算引擎后端。用户可以在保留TensorFlow或MxNet网络开发习惯的同时,通过少量的驱动代码修改,就直接获得XDL在大规模稀疏计算上的分布式训练能力。换句话说,使用XDL时无需再学习一门新的框架语言,这带来另一个好处是XDL可以跟现有成熟的开源社区无缝对接——用户可以很轻松地将tensorflow社区的某个开源模型通过XDL拓展到工业级场景。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz!X3.5 ©2001-2013 Comsenz Inc.星点互联设计( 鲁ICP(125234543) )