本文的github地址: https://github.com/alibaba/x-deeplearning

X-Deep Learning(简称XDL)于2018年12月由阿里巴巴开源,是面向高维稀疏数据场景(如广告/推荐/搜索等)深度优化的一整套解决方案。以填补 TensorFlow、PyTorch 等现有开源深度学习框架主要面向图像、语音等低维稠密数据的不足。目前只支持ubuntu系统

摘要:

随着数据和计算能力的快速增长,基于深度学习的方法已成为许多人工智能问题(例如图像分类,语音识别和计算机视觉)的主要解决方案。包括Tensorflow,MxNet和PyTorch在内的几个的深度学习(DL)框架已开源。但是,现有的DL框架不是为涉及高维稀疏数据的应用程序而设计的,在许多成功的在线业务(例如搜索引擎,推荐系统和在线广告)中,这类数据广泛存在。在这些工业场景中,通常在具有多达数十亿个稀疏特征和数千亿个样本的大规模数据集上训练深度模型,这给DL框架带来了巨大挑战。在本文中,我们介绍了一个名为XDL的高性能,大规模和分布式DL框架,该框架提供了一种优秀的解决方案,可以填补现有DL框架的一般设计与高维稀疏数据引起的工业需求之间的差距。自2016年以来,XDL已成功部署在阿里巴巴,服务于许多产品,例如在线广告和推荐系统。XDL可以并行运行在数百个GPU卡上,可以在几个小时内训练具有数百亿个参数的深度模型。除了出色的性能和灵活性外,XDL还对开发人员友好。 阿里巴巴的算法科学家仅需几行简单代码即可开发和部署新的深度模型。

引言:

尽管现有的深度学习框架在许多领域都取得了巨大的成功,但它们并不是为涉及高维稀疏数据的应用而设计的。高维稀疏数据广泛存在于许多Internet规模的应用程序中,例如搜索引擎,推荐系统和在线广告。从该数据中提取的训练样本包含数十亿个特征,而对于每个样本,这些维度中只有少数是非零的。
XDL,它是一种高性能,大规模,分布式的深度学习框架,旨在用于学习涉及高维稀疏数据的任务。在稀疏的功能学习部分,XDL提供了精心设计的分布式系统,并对I / O,数据管道,通信和GPU进行了深度优化,从而提供了极高的效率和可扩展性。用户可以使用嵌入词典(embedding dictionary)或深层模型(例如CNN / RNN)将稀疏特征或图像/文本特征映射为密集(dense)表示。在密集模型学习(dense model learning)部分,XDL通过名为桥接(bridging)的全新技术无缝地采用任何开源深度学习框架作为其后端。在实际数据集上评估XDL时,我们发现它的运行速度比Tensorflow / MxNet的本机分布式版本至少快5倍。XDL运行在数百台服务器上,仅几个小时即可训练出数多个参数达数百亿的模型。除了性能和灵活性外,XDL还致力于向用户隐藏复杂的工程细节。使用XDL,算法科学家仅需几行简单代码即可开发和部署新模型。这样的系统设计带来了灵活性,并解锁了许多算法创新。

相关工作:

TensorFlow,MxNet和Caffe等传统解决方案通常在单台机器上运行,为分布式训练提供有限的支持。即使有多个GPU,那些单机解决方案很难处理模型训练具有1011个样本和10 10个参数。

3、XDL结构:

3.1 具有高维稀疏数据的深度模型的网络特性

Embedding & MLP架构激发了以下大部分工作来设计深度模型,这些模型具有来自各种应用程序的高维稀疏输入,例如视频推荐,Web搜索和电子商务网站中的广告。Embedding & MLP从稀疏数据中学习通常分成两个步骤:1)表示学习,可从高维稀疏输入中捕获信息并将其嵌入到低维空间中。2)函数拟合。为简单起见,在本文的其余部分中,我们将第一步的网络称为SparseNet,将第二步的网络称为DenseNet。 下图进行了说明。

3.2 XDL的设计理念与桥接方法
DenseNet由几个dense层组成,需要本地计算机上较高的计算密度。 包括Tensorflow,MxNet和Pytorch在内的多个DL框架具有开源,这样的密集网络可以在这些框架中很好地处理。但是,SparseNet包含从原始样本生成的数千亿个特征。因此,一个成功的可以处理这种情况的DL框架必须具有出色的分布特性和足够的稀疏数据计算能力。现有DL框架并不是针对涉及高维稀疏数据的网络而精心设计的。表1显示了我们的展示广告系统在一天中使用的典型生产数据量。

表2显示了我们日常任务中使用的某些模型的网络参数统计信息。显然,正是SparseNet导致了这些模型的大部分困难。SparseNet需要处理兆兆字节的输入数据的实际I / O问题以及复杂而繁重的并行性问题。这些挑战使SparseNet的训练与DenseNet的训练截然不同且同样关键。

XDL体系结构如图2所示。我们提出了一种全新的桥接体系结构,其中,训练系统与两个主要子系统桥接:
Advanced Model Server (AMS)。AMS提供了精心设计的分布式系统,该系统为训练SparseNet提供了极高的效率和可扩展性。 AMS可处理大规模稀疏输入的快速发展的表示学习算法。 支持嵌入字典和模型(例如CNN / RNN),以将大型稀疏输入映射为密集向量。
Backend Worker (BW) . BW遵循通用的深度学习设置,以从低维输入中学习,并允许采用任何开源DL框架作为其后端。 有了这种灵活性,我们的算法科学家就可以轻松地尝试涉及DNN,注意力机制或门控循环单元(GRU)的新模型结构,以对复杂且不断发展的用户行为进行建模。

评估:

在以下评估中,我们选择Tensorflow作为XDL的计算后端。

可扩展性:

我们还测试了XDL的可伸缩性,并将其与使用80个AMS的各种数量的工作器上的本机TensorFlow进行比较。 同样,每个进程使用8个CPU内核,每个AMS使用96个CPU内核。XDL和Tensorflow均使用无锁样式异步更新。 结果如图8所示。由于XDL对通讯和重复功能进行了优化,因此XDL始终能够保持更好的性能。由于我们确定了AMS的数量,因此在异步模式下运行时,我们几乎实现了线性扩展。

XDL: An Industrial Deep Learning Framework for High-dimensional Sparse Data 论文笔记相关推荐

  1. 《Guiding Deep Learning System Testing using Surprise Adequacy》论文笔记

    Guiding Deep Learning System Testing using Surprise Adequacy 原文:Guiding Deep Learning System Testing ...

  2. Deep learning in video multi-object tracking A survey 论文笔记

  3. 1.3读论文笔记:M. Raissi a等人的Physics-informed neural networks:A deep learning framework for solving forw..

    Physics-informed neural networks: A deep learning framework for solving forward and inverse problems ...

  4. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)

    文章目录 论文信息 摘要 论文贡献 问题定义 动态网络 动态网络链接预测 E-LSTM-D 框架 Encoder–Decoder结构 1. 编码器(Encoder) 2. 解码器(Decoder) 堆 ...

  5. Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic

    IJCAI 2018,大体思路:使用Kipf & Welling 2017的近似谱图卷积得到的图卷积作为空间上的卷积操作,时间上使用一维卷积对所有顶点进行卷积,两者交替进行,组成了时空卷积块, ...

  6. DeepGBM: A Deep Learning Framework Distilled by GBDT for Online Prediction Tasks

    DeepGBM: A Deep Learning Framework Distilled by GBDT for Online Prediction Tasks 论文链接:https://dl.acm ...

  7. 论文笔记:《DeepGBM: A Deep Learning Framework Distilled by GBDT for Online Prediction Tasks》

    论文笔记:<DeepGBM: A Deep Learning Framework Distilled by GBDT for Online Prediction Tasks> 摘要 1. ...

  8. A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking论文阅读

    A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking Abstract 数字水印是一 ...

  9. Clinically applicable deep learning framework for organs at risk delineation in CT images

    Clinically applicable deep learning framework for organs at risk delineation in CT images 发表期刊:Natur ...

最新文章

  1. 深度学习:自然语言处理(五)NLTK的经典应用
  2. 百度蜘蛛动态网页ajax,百度SEO优化百度蜘蛛可读内容
  3. java学习(142):file类的基本创建
  4. python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
  5. 正则不等于一个字符串_王晓阳 | 物理主义不等于物理学主义——表述物理主义的一个新方案...
  6. IOT(34)---物连网体系结构
  7. Android Studio NDK 开发配置
  8. ✨Synchronized底层实现---偏向锁
  9. 微积分经典概念:极限、连续与函数
  10. php添加开机启动脚本_php-fpm开机自动启动Shell脚本
  11. 在android中编程制作kml、kmz文件的思路
  12. C++实现Base32加解码
  13. excel查找在哪里_数据分析,如何学好Excel
  14. 在windows 10上编译bitcoin源码
  15. 【九校3D2T3】世界第一的猛汉王
  16. 纵即逝的烟花蓄势于纸
  17. Winform中给下拉框(ComboBox或LookUpEdit)添加内容
  18. 苹果手机上没有显示订阅服务器,手机里没有订阅的选项,我该怎样取消自动收费项目...
  19. HTML(一、语法规范,二、结构标签,三、开发工具,四、HTML常用标签,五、注释和特殊字符)
  20. python编程水上行走_普通人如何水上行走,只要速度足够的快,何愁不能水上漂...

热门文章

  1. java 内存模型面试_Java面试- JVM 内存模型讲解
  2. “3亿”风暴席卷昆明 搜狗全国移动峰会即将开幕
  3. MySQL必知必会学习历程(一)
  4. 管理者应该怎么面对员工的顶撞
  5. IHG Connect,给旅人一个温暖的家
  6. Android Studio导入项目提示“Unrecognized Android Studio”
  7. python 标签云_python 制作标签云
  8. 听趣拍云产品经理剖析视频基础知识
  9. 血族手游Lua脚本及资源文件解密
  10. 51单片机堆栈深入剖析