当前位置:资讯 > 正文

阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec

2022-03-21 12:37:37  来源:壹点网
刘童璇

经历6年时间,在各团队的努力下,阿里巴巴集团大规模稀疏模型训练/预测引擎DeepRec正式对外开源,助力开发者提升稀疏模型训练能和效果。

DeepRec是什么

DeepRec(PAI-TF)是阿里巴巴集团统一的大规模稀疏模型训练/预测引擎,广泛应用于淘宝、天猫、阿里妈妈、高德、淘特、AliExpress、Lazada等,支持了淘宝搜索、推荐、广告等核心业务,支撑着千亿特征、万亿样本的超大规模稀疏训练。

DeepRec在分布式、图优化、算子、Runtime等方面对稀疏模型进行了深度能优化,同时提供了稀疏场景下特有的Embedding相关功能。

DeepRec项目从2016年开发至今,由阿里巴巴集团内AOP团队、XDL团队、PAI团队、RTP团队以及蚂蚁集团AIInfra团队共建,并且得到了淘宝推荐算法等多个业务算法团队的支持。DeepRec的研发也得到了Intel CESG软件团队、Optane团队和PSU团队,NVIDIA GPU计算专家团队及Merlin HughCTR团队的支持。

DeepRec架构设计原则

在TensorFlow引擎上支持大规模稀疏特征,业界有多种实现方式,其中最常见的方式是借鉴了ParameterServer的架构实现,在TensorFlow之外独立实现了一套ParameterServer和相关的优化器,同时在TensorFlow内部通过bridge的方式桥接了两个模块。这个做法有一定的好处,比如PS的实现会比较灵活,但也存在一些局限

DeepRec采取了另一种架构设计方式,遵循“视整个训练引擎为一个系统整体”的架构设计原则。TensorFlow是一个基于Graph的静态图训练引擎,在其架构上有相应的分层,比如最上层的API层、中间的图优化层和最下层的算子层。TensorFlow通过这三层的设计去支撑上层不同Workload的业务需求和能优化需求。

DeepRec也坚持了这一设计原则,基于存储/计算解耦的设计原则在Graph层面引入EmbeddingVariable功能;基于Graph的特点实现了通信的算子融合。通过这样的设计原则,DeepRec可以支持用户在单机、分布式场景下使用同一个优化器的实现和同一套EmbeddingVariable的实现;同时在Graph层面引入多种优化能力,从而做到独立模块设计所做不到的联合优化设计。

DeepRec的优势

DeepRec是基于TensorFlow1.15、Intel-TF、NV-TF构建的稀疏模型训练/预测引擎,针对稀疏模型场景进行了定制深度优化,主要包含以下三类功能优化:

模型效果

DeepRec提供了丰富的稀疏功能支持,提高模型效果的同时降低稀疏模型的大小,并且优化超大规模下Optimizer的效果。下面简单介绍Embedding及Optimizer几个有特色的工作:

 EmbeddingVariable(动态弹特征):

1)解决了静态Shape Variable的vocabulary_size难以预估、特征冲突、内存及IO冗余等问题,并且在DeepRec中提供了丰富的EmbeddingVariable的进阶功能,包括不同的特征准入方式、支持不同的特征淘汰策略等,能够明显提高稀疏模型的效果。

2)在访问效率上,为了达到更优化的能和更低的内存占用,EmbeddingVariable的底层HashTable实现了无锁化设计,并且进行了精细的内存布局优化,优化了HashTable的访问频次,使得在训练过程中前后向只需访问一次HashTable。

 DynamicDimensionEmbeddingVariable(动态弹维度):

在典型的稀疏场景中,同类特征的出现频次往往极度不均匀。通常情况下,同一个特征列的特征都被设置成统一维度,如果Embedding维度过高,低频特征容易过拟合,而且会额外耗费大量内存;如果维度设置过低,高频部征特征可能会由于表达不够而影响效果。

Dynamic Dimension Embedding Variable提供了同一特征列的不同特征值,根据特征的冷热自动配置不同的特征维度,高频特征可以配置更高维度增强表达能力,而低频特征因为给定低维度embedding缓解了过拟合的问题,而且可以极大程度节省内存(低频长尾特征的数量占据绝对优势)。

 Adaptive Embedding(自适应Embedding):

当使用动态弹特征功能时,低频特征存在过拟合问题。EmbeddingVariable中所有的特征都从initializer设定的初始值(一般设为0)开始学起,对于一些出现频次从低到高的特征,也需要逐渐到一个较好的状态,不能共享别的特征的结果。AdaptiveEmbedding功能使用静态Shape Variable和动态EmbeddingVariable共同存储稀疏特征,对于新加入的特征存于有冲突的Variable,对于出现频率较高的特征存于无冲突的EmbeddingVariable,特征迁移到EmbeddingVaraible可以复用在有冲突的静态Shape Variable的结果。

 Adagrad Decay Optimizer:

为支持超大规模训练而提出的一种改进版Adagrad优化器。当模型训练的样本量大,同时持续增量训练较长时间时,Adagrad优化器的梯度会趋于0,导致新增训练的数据无法对模型产生影响。已有的累积打折的方案虽然可以解决梯度趋0的问题,但也会带来模型效果变差的问题(通过iteration打折策略无法反映实际的业务场景特点)。Adagrad Decay Optimizer基于周期打折的策略,同一个周期内的样本相同的打折力度,兼顾数据的无限累积和样本顺序对模型的影响。

此外,DeepRec还提供Multi-HashEmbedding、AdamAsyncOptimizer等功能,在内存占用、能、模型效果等方面为业务带来实际的帮助。

训练

DeepRec针对稀疏模型场景在分布式、图优化、算子、Runtime等方面进行了深度能优化。其中,DeepRec对不同的分布式策略进行了深度的优化,包括异步训练、同步训练、半同步训练等,其中GPU同步训练支持HybridBackend以及NVIDIA HugeCTR-SOK。DeepRec提供了丰富的针对稀疏模型训练的图优化功能,包括自动流水线SmartStage、结构化特征、自动图Fusion等等。DeepRec中优化了稀疏模型中数十个常见算子,并且提供了包括Embedding、Attention等通用子图的Fusion算子。DeepRec中CPUAllocator和GPUAllocator能够大大降低内存/显存的使用量并显著加速E2E的训练能。在线程调度、执行引擎方面针对不同的场景提供了不同的调度引擎策略。下面简单介绍分布式、图优化、Runtime优化方面几个有特色的工作:

StarServer(异步训练框架):

在超大规模任务场景下(几百、上千worker),原生开源框架中的一些问题被暴露出来,譬如低效的线程池调度、关键路径上的锁开销、低效的执行引擎、频繁的小包rpc带来的开销导致ParameterServer在分布式扩展时成为明显的能瓶颈。StarServer进行了包括图、线程调度、执行引擎以及内存等优化,将原有框架中的send/recv语义修改为pull/push语义,并且在子图划分上支持了该语义,同时实现了ParameterServer端图执行过程中的lockfree,实现了无锁化的执行,大大提高了并发执行子图的效率。对比原生框架,能够提升数倍的训练能,并且支持3000worker规模的线分布式扩展。

SmartStage(自动流水线):

稀疏模型训练通常包含样本数据的读取、Embedding查找、Attention/MLP计算等,样本读取和Embedding查找非计算密集操作,同时并不能高效利用计算资源(CPU、GPU)。原生框架中提供的dataset.prefetch接口可以异步化样本读取操作,但Embedding查找过程中涉及特征补齐、ID化等复杂的过程,这些过程无法通过prefetch进行流水线化。SmartStage功能能够自动分析图中异步流水线化的边界并自动插入,可以使并发流水线发挥最大的能提升。

PRMalloc(内存分配器):

如何做到既高效又有效的使用内存,对于稀疏模型的训练非常关键,稀疏场景模型训练中大块内存分配使用造成大量的minor pagefault,此外,多线程分配效率存在比较严重的并发分配效率问题。针对稀疏模型训练前向、后向,Graph计算模式的相对固定、多轮反复迭代的特点,DeepRec设计了一套针对深度任务的内存管理方案,提高内存的使用效率和系统能。使用DeepRec中提供的PRMalloc能够极大降低训练过程中minor pagefault,提高多线程并发内存分配、释放的效率。

 PMEM allocator(持久内存分配器):

基于PMDK的底层libpmem库实现的PMEM allocator将从PMEM map出的一块空间分为若干segment,每个segment又分成若干blocks,block是allocator的最小分配单元。分配block的线程为避免线程竞争,缓存一些可用空间,包括一组segment和free list。可用空间中为每种record size(若干个block)维护一个free list和segment。各record size对应的segment只分配该大小的PMEM空间,各record size对应的free list中的所有指针均指向对应record size的空闲空间。此外,为了均衡各thread cache的资源,由一个后台线程周期地将thread cache中的free list移动到后台的pool中,pool中的资源由所有前台线程共享。实验证明,基于持久内存实现的内存分配器在大模型的训练能方面与基于DRAM的训练能差别很小,但是TCO会有很大的优势。

部署及Serving

 增量模型导出及加载:

时效要求高的业务,需要频繁的线上模型更新,频率往往达到分钟级别甚至秒级。对于TB-10TB级别的超大模型而言,分钟级别的模型生成到上线很难完成。此外,超大模型的训练和预测存在着资源浪费、多节点Serving延时加大等问题。DeepRec提供了增量模型产出及加载能力,极大加速了超大模型生成和加载。

 Embedding多级混合存储:

稀疏模型中特征存在冷热倾斜的特,这产生了某些冷门特征很少被访问和更新导致的内存/显存浪费问题,以及超大模型内存/显存放不下的问题。DeepRec提供了多级混合存储(支持最多四级的混合存储HBM+DRAM+PMEM+SSD)的能力,自动将冷门特征存放到廉价的存储介质中,将热门特征存放到访问更快、更贵的存储介质上,通过多级混合存储,使得单节点可以进行TB-10TB模型的Training和Serving。

通过多级混合存储,能够更大发挥GPU训练稀疏模型的能力,同时降低由于存储资源限制造成的计算资源浪费,可以使用更少的机器进行相规模的模型训练,或者使用相同数量的机器进行更大规模的训练。多级混合存储也能使得单机进行超大模型预测时避免分布式Serving带来的latency增大问题,提高大模型的预测能的同时降低成本。多级混合存储功能也拥有自动发现特征的访问特,基于高效的热度统计策略,将热度高的特征放置到快速的存储介质中,将低频的特征offload到低速存储介质中,再通过异步方式驱动特征在多个介质之间移动。

为什么开源DeepRec

开源深度框架都不能很好地支持稀疏场景中对于稀疏Embedding功能的需求、模型训练能需求、部署迭代和线上服务的需求。DeepRec经过阿里巴巴集团搜索、推荐、广告等核心业务场景及公有云上各种业务场景的打磨,能够支持不同类型的稀疏场景训练效果和能需求。

阿里巴巴希望通过建立开源社区,和外部开发者开展广泛合作,进一步推动稀疏

模型训练/预测框架的发展,为不同业务场景中的搜推广模型训练和预测带来业务效果和能提升。

今天DeepRec的开源只是我们迈出的一小步。我们非常期待得到您的反馈。最后,

如果你对DeepRec有相应的兴趣,你也可以来转转,为我们的框架贡献一点你的

代码和意见,这将是我们莫大的荣幸。

开源地址:https://github.com/alibaba/DeepRec

钉钉答疑交流群:34375411

想了解更多AI开源项目,请点击:

https://www.aliyun.com/activity/bigdata/opensource_bigdata__ai

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。

关键词: 阿里巴巴

推荐阅读

运动型轿车是什么 运动型轿车与普通车有何区别?

运动型轿车凭借着外观酷炫,动力性能强的特点,深受国内众多消费者的喜爱。特别是在年轻消费者心目中,运动型轿车基本上是购车的首选。但是 【详细】

汽油清洗剂是什么 汽油清洗剂加在汽油里是干嘛的?

最近有很多车主反映加油的时候总是建议用汽油清洁剂。但是,大部分人还是不太了解,还有就是一部分人纳闷汽油清洗剂加在汽油里是干嘛的?汽 【详细】

中国最便宜的汽车是哪个 最便宜的汽车汇总

现在汽车已经成为了大家最常见的交通代步工具了。但是,依然还是有很多的家庭非常的需要代步工具,却买不起特别贵的汽车。所以今天,我们就 【详细】

伊莱克斯冰箱质量怎么样 伊莱克斯冰箱质量好不好?

伊莱克斯冰箱质量怎么样:在2018年全球500强企业中,伊莱克斯排名第162位,在2020年全球2000强企业中,伊莱克斯排名第1965位,可见伊莱克斯 【详细】

劳动保护用品是什么 劳动保护用品有哪些?

劳动保护用品有哪些?劳动防护用品分为特殊劳动防护用品和一般劳动防护用品,一般劳动防护用品是指未列入目录的一般劳动防护用品。以下产品 【详细】

相关新闻

实现高并发秒杀的七种方式

引言商品秒杀-超卖解决商品超卖方式一(改进版加锁)方式二(AOP版加锁)方式三(悲观锁一)方式四(悲观锁二)方式五(乐观锁)方式六(阻塞 【详细】

全球看热讯:3D渲染引擎 HOOPS Visualize 2023全新发布-增加对顶点着色器支持

HOOPSVisualize是一款工业级3D渲染引擎,可以用于打造移动端和PC端工程应用程序,其灵活、分层的场景管理引擎,支持处理各种3D模型 【详细】

世界看热讯:「升级」Hubstudio多账号安全管理浏览器之扩展中心上线啦!

Hubstudio多账号安全管理系统,到目前为止已经安全管理600w以上的环境账号,而且小编发现大家在环境中最常用的就是插件哦,所以为了给大家在 【详细】

汽车早报 - 消息称蔚来布局百万元级别电动车 广汽称将继续为讴歌中国客户提供售后服务

吉利称2022年新能源销量较上年翻三番1月9日,吉利控股集团官微发布消息称,2022年12月,吉利汽车集团旗下新能源(含吉利、几何、领克、极氪、 【详细】

今头条!车轮上的2022∣新能源与汽车出口带动:全国乘用车零售量同比增长1.9%

21世纪经济报道记者杜巧梅北京报道“‘新十条’改变了车市的封控状态,市场明显回升,部分有购买力的消费者希望尽快提车;同时部分政策到期加 【详细】

谷歌文档新功能:看到非打印字符

谷歌周一在一篇博文中宣布,该公司正在为GoogleDocs增加一项功能,让你看到非打印字符,如空格、制表符和各种类型的断句。该选项将在视图菜单 【详细】

世界新消息丨一加新机质感高级,更有多项黑科技加持,3999的价格入手值吗?

最后一加11出来的时候确实也是惊艳了所有人,产品力相当不俗,而且外观设计什么的也很好看,下面就跟着笔者一起来了解一下吧。 【详细】

焦点信息:中国手机品牌在2022年拿下俄罗斯市场份额65% 但高价机一个没有

2万~4万卢布最受喜欢的手机型号是:RedmiNote10Pro、Honor50Lite、三星GalaxyA52、三星G 【详细】

2022年这5款熟悉的产品向我们告别

在过去的一年里,有很多新产品发布,当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活,给我们带来欢乐,帮助我们成长。 【详细】

即时:陈副区长事件,引出一个老生常谈的问题,腾讯是否会保留聊天记录

陈副区长事件出来以后,我觉得,她,以及那男的,第一时间,都会删除手机上的聊天记录。如此,再要查那个男人是谁,就难度很大了。 【详细】

我国首个具备独立运行能力的新能源储能项目在内蒙古并网通电

日前,内蒙古自治区阿拉善盟额济纳旗“源网荷储”微电网示范项目完成建设,并初步实现并网供电,下一步将进入联调联试阶段。 【详细】

上海奉贤区初中转学条件2023

上海奉贤区初中转学条件2023寒假,上海奉贤区初中转学对象、不予转学情况如下:一、转学对象1、本市户籍学生;2、随父母到本区居住的非本市户籍 【详细】

新冠病毒变异逻辑的猜测

新冠病毒经历了多代变异。我有个大胆的猜测这个病毒变异的逻辑,是这样的:在遇到前面已经感染的毒株已经无法继续传播了,于是逼着毒株进行了变 【详细】

世界讯息:充1次用10天!史上续航最强的国产手机,太猛了

骁龙8Gen2继续支棱起来,性能释放猛功耗也不错,不需要再担心这方面问题。而iQOO、Redmi和realme持续发力,快充已经 【详细】

全球视点!10个暗藏惊喜的微信小程序,个个好用不要钱,还请低调使用

微信上的小程序非常便捷,无需安装就能使用。下面给大家推荐10个暗藏惊喜的微信小程序,个个好用不要钱,还大家请低调使用。 【详细】

世界热头条丨刘强东告别他的时代?回笼640亿携孕妻现身英国,祖宅半夜被泼漆

但有网友透露出发现刘强东和怀孕的章泽天出现在伦敦街头,有人推测刘强东回笼了640亿资金要移居海外,他老家祖宅半夜还曾被人泼上了油漆。 【详细】

更便捷!威海市立医院互联网医院上线“新冠感染门诊”

为保障群众就医安全、便利,威海市立医院充分发挥互联网医院线上复诊、续方开药等优势,及时开设发热线上咨询、心理线上咨询等互联网医疗服务 【详细】

七大常用的AR开发工具,总有一款适合你!

8thWall的现实引擎于2021年推出,使基于Web的增强现实体验能够立即在大量iOS和Android设备、计算机、平板电 【详细】

天天简讯:Telia为NCC提供面向北欧数字基础设施的全方位服务的ICT解决方案

该解决方案包括用于NCC数字基础设施关键部分的通信服务和数据网络。这些是可扩展、经济高效且灵活的解决方案,可以轻松地用于连接整个公司的新 【详细】

【全球播资讯】小米13Ultra最快2月底见面?或告别万年USB 2.0

声音|小白小米13、小米13Pro发布后大家也一直期待着小米13Ultra,早前消息预计是今年三四月发布,现据91mobiles独家报道 【详细】

关于我们  |  联系方式  |  免责条款  |  招聘信息  |  广告服务  |  帮助中心

联系我们:85 572 98@qq.com备案号:粤ICP备18023326号-40

科技资讯网 版权所有