阿里开源首个深度学习框架 X-Deep Learning

Posted 人工智能和大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里开源首个深度学习框架 X-Deep Learning相关的知识,希望对你有一定的参考价值。






尽管以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)


系统设计与优化


阿里开源首个深度学习框架 X-Deep Learning


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内运行的方式定义的,大幅减少了重复计算和网络吞吐。


Backend Engine:桥接技术复用成熟框架的单机能力

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


Compact Computation:结构化计算模式大幅提升训练效率

工业界稀疏场景下的样本表征,往往呈现很强的结构化特点,例如用户特征、商品特征、场景特征。这种构建方式决定了某些特征会大量出现在重复的样本中——隶属于同一个用户的多条样本中,用户特征很大一部分是相同的。结构化样本压缩正是利用海量样本中,大量局部特征重复这一特点,在存储和计算两个维度上对特征进行压缩,节省了存储、计算和通信带宽资源。样本预处理阶段,对需要聚合的特征进行排序(例如按用户ID排序,聚合用户特征);batching阶段,在tensor层面进行压缩;计算阶段,压缩特征只有在最后一层才会展开,极大节省深层网络的计算开销。 推荐场景下的效果验证表示,在典型的生产数据上,使用聚合排序的样本和完全shuffle的样本评估AUC指标一致,整体性能提升10倍以上。


Online-Learning:大规模在线学习

在线学习近年来在工业界开始被大规模应用,它是工程与算法的深入结合,赋予模型实时捕捉线上流量变化的能力,在一些对时效性要求很高的场景,有十分大的价值。例如在电商大促等场景下,在线学习可以更加实时的捕捉用户行为的变化,显著的提升模型的实时效果。XDL提供了一套完整的在线学习的解决方案,支持基于全量模型,读取实时消息队列里的样本进行实时持续学习,我们内置支持了Kafka等作为Message Source,并允许按照用户设置控制模型写出的周期。另外,为了避免无限制的新特征流入导致的实时模型爆炸问题,XDL内置了实时特征自动选择与过期特征淘汰等功能,保证用户使用XDL进行在线学习的简便性。

1)去ID化的稀疏特征学习:传统的机器学习框架一般要求对稀疏特征进行ID化表征(从0开始紧凑编码),以此来保证训练的高效性。XDL则允许直接以原始的特征进行训练,大幅简化了特征工程的复杂度,极大地增加了全链路数据处理效率,这一特性在实时在线学习场景下显得更加有意义。

2)实时特征频控:用户可以设置一个特征过滤的阈值,例如出现次数大于N次的特征才纳入模型训练,系统会自动的采用自动概率丢弃的算法进行特征选择,这样可以大幅降低无效超低频特征在模型中的空间占用。

3)过期特征淘汰:长周期的在线学习时,用户也可以通过打开过期特征淘汰功能,系统会自动的对影响力弱且长周期没有碰触到的特征参数进行自动淘汰。







以上是关于阿里开源首个深度学习框架 X-Deep Learning的主要内容,如果未能解决你的问题,请参考以下文章

阿里首次开源深度学习框架X-Deep Learning

开发 | 阿里巴巴开源深度学习框架 X-Deep Learning,引领高维稀疏数据场景的深度学习标准

阿里公开深度学习框架 代码链接于12月发布

阿里巴巴对深度学习框架X-Deep Learning进行开源,互联网企业的技术迭代将大大缩短

重磅!阿里巴巴首次公开深度学习框架, X-Deep Learning助力提升广告推荐搜索场景效率

阿里首个深度学习框架XDL正式开源!