weidlxDeepRec:热门微博推荐框架性能提升实战

在线学习平台底层推理计算部分采用bridge模式,支持多个backend,包括DeepRec、TensorFlow、Torch、TensorRT等,同时支持基于CPU与GPU的模型训练与在线推理。

weidl在线学习平台

2.2.1实时性

实时性包括模型学习到用户行为的速度,模型参数的更新应用到线上模型服务的速度。推荐系统的更新速度越快,越能够反应用户最近的用户习惯,越能够给用户进行越有时效性的推荐;模型更容易发现最新流行的数据pattern,越能够让模型反应找到最新的流行趋势。工程上主要通过以下几个方面,实现推荐系统的实时性。

2.2.2大规模深度复杂模型

精排模型从snr模型迭代到mm模型

粗排双塔模型迭代到colddnn模型

3

3.1OneDNN库加速算子运算

3.1.1Select算子优化

3.1.2Transpose算子优化

同样,可以使用向量化的unpack和shuffle指令对transpose算子进行优化,即通过小Block的方式对矩阵进行转置,最终经线上测试表明,性能提升同样十分显著。

3.2关键路径优先的调度引擎

DeepRec通过对执行引擎以及底层线程池的重新设计,达到在不同的场景下,包括trianing和inference,能做到更佳执行性能。保证不同线程之间的均衡性,尽量减少线程之间的steal,避免加锁等问题。

Executor的设计需要考虑对内存的访问及其并行实现之间的联系,进行多层次任务调度,减少缓存缺失和远程内存访问,充分发挥多核、多节点CPU的并行特性,提升系统的运行性能。在线程池层面,设计Cost-aware线程池,结合内存感知以及算子类型等信息,进行针对性优化;在计算图层面,对张量内存的位置进行调度,有利于线程池的调度;在算子生成层面,进行有利于线程池任务调度的算子任务划分。

DeepRec提供的基于关键路径优化的执行引擎,通过动态采集SessionRun情况,统计与计算多组指标,并构建CostModel,计算出一个较优的调度策略。该功能中包含了基于关键路径的调度策略,根据CostModelpatching执行细碎算子的调度策略以及线程池Cost-aware调度策略等。

在稀疏模型图中,可能会存在大量细碎算子,会带来大量调度开销。有些可以通过算子融合来做优化,算子融合一般通过graphpattern匹配或者手动指定子图来确定需要融合的对象,难以覆盖全部算子。故而在executor层面,通过trace运行时数据来动态进行批量调度执行,这样可以减少非必要的细碎算子调度开销。

在线程调度层面,目前的线程池调度策略比较简单,如果当前执行线程是inter线程,优先将task调度到当前线程执行,若不是,则调度到一个random线程上。线程的balance完全由steal机制来保证。在我们的观察中,发现inter线程之间存在大量的steal,这会导致很多锁以及重复的线程调度等开销。CostModelexecutor通过采集运行时数据,来确定更佳的线程来执行任务,减少大量的steal行为。

在复杂模型上,使用DeepRec的CostModel调度,能够生成更佳的调度策略,减少调度开销。在测试的snr模型上平均耗时稳定优化2ms。

3.3动态感知的内存/显存分配器

在张量内存管理方面,通常存在两点问题,一个是内存碎片过多,另一个是没有考虑模型结构存在多分支的情况下算子并行带来的内存增长。其内存管理十分粗放,大体上都是运行时依据内存请求动态进行内存释放和分配,同时进行一些内存池管理。由于无法感知上层应用的分配请求特点,这种内存管理存在着内存碎片过多的特点。例如在不清楚后续内存请求的情况下,由于前期的多次内存分配和释放,会导致后来的大内存请求由于内存碎片的问题而需要一块新的内存或者OOM。

深度学习模型的内存分配由于其应用特点存在着明显的规律性,训练时都是以一个个mini-batch的形式训练,每个mini-batch的分配特征大体上保持一致,训练时前向过程一直分配内存,较少释放,而反向过程中会释放前向计算中的临时张量,释放大量内存,所以内存会周期性呈现先增长后降低的特征。基于此学习到执行过程中内存分配pattern,从而减少内存的动态分配以及对内存块做到最佳的复用。同时自适应内存分配器也是graph-aware的,这样使得不同子图之间存在较小的相互干扰,提高分配效率。自适应内存分配器基本架构如下图所示:

自适应内存分配器基本原则是使用尽量少内存,同时提高内存的复用率。整体来讲,自适应内存分配器解决了在稀疏场景中内存分配上存在的一些问题,主要包括,第一,减少了在稀疏场景中,大量内存分配问题,包括小内存和大内存。譬如小内存分配出现在特征的处理过程中,包括一些特征的拼接,或者在做一些交叉特征,这里会存在大量的小内存的分配。同样在模型训练也存在很多大的内存,包括attention、RNN、或者全连接层,会有一些大内存的分配。减少大内存的分配,进而也减少了minorpagefault数量。第二,对于tensor能做到更好的复用,减少了总体的内存占用量。

4

DeepRec在业务中取得的收益

4.1服务性能提升

对于双塔和colddnn模型,图计算部分耗时降低20%,粗排阶段整体耗时降低10%,单机吞吐量提升20%,模型训练模块性能提升20%,提升了训练速度并有效的改善了样本积压问题。

4.2性能提升所带来的其他收益

推荐引擎模块整体耗时减少与吞吐量的提升,减少了推荐在训练与在线推理上所使用的机器资源,极大的降低了公司成本。

在线推理服务性能提升,使推荐引擎各个模块可以计算更多的候选物料,粗排阶段可以计算更多的候选物料,提升物料库总量与扩大召回条数,精排也由1000条扩到2000条,每个阶段候选物料数的增加,都会对整体指标有显著的提升。

THE END
1.在线学习系统关于在线学习系统的业务流程图在线学习系统 技术:Java、JSP等 摘要: 由于信息工程技术的不断发展, 使得在线学习技术受到越来越多的关注和应用。在线学习是利用网络技术的设计,传输,选择,管理和使用来延伸日常学习,打破了时空的界限,在继承传统教育的基础上,充分发挥网络时代的学习观念。https://blog.csdn.net/m0_52958155/article/details/138425106
2.知识无界:全球在线学习平台1.架构设计 -设计一个可扩展、安全且稳定的平台架构,确保可以处理大量用户在线学习的需求。 2.用户界面(UI)设计 -开发直观、清晰且吸引人的界面设计,以提升用户体验。 3.功能实现 -根据需求分析,开发平台的核心功能,如视频播放、作业提交、考试系统、讨论板等。 http://dongguan.11467.com/info/31999520.htm
3.基于云平台的在线学习系统设计与实现基于云平台的在线学习系统设计与实现,云计算,在线学习,AJAX异步刷新技术,UML模型,MVC架构,云计算技术以及大数据技术的发展,使得在线学习的实施具有了更多的条件,其具有资源更新便捷、实时沟通方便等优势,具有较高的稳定性https://wap.cnki.net/lunwen-1019605239.html
4.“互联网+教育”教学资源管理平台建设方案借助全媒体教学资源融合管理平台实现统一入口、统一管理和统一调度,系统架构支持云服务和模块化设计,底层搭建各种平台应用硬件设施和软件系统,中间架设平台所有基础功能组件,同时将这些功能组件以服务的形式提供给区域各级和各角色用户,用户无论在录播教室、会议室、班班通教室、教研室、办公室、差旅中,仅需采用自己最适合的https://www.douban.com/note/861125885/
5.新为股份e新为股份-e-learning平台系统专家,14年研发专注和6000+客户成功案例,新为学习发展系统可为企业事业单位提供专业的e-learning平台,移动学习系统,在线学习系统,在线培训系统,在线学习平台,培训考试平台,培训管理平台,企业学习管理系统,创建学习型组织企业大学首选新为e-learnihttp://www.newv.com.cn/products/7/1.html
6.智慧校园云教室项目建设方案云桌面产品及云桌面虚拟化方案供应商在满足当前使用的条件下,充分考虑未来的发展,从系统和结构发展的变化,采用集成技术和设计架构保证其扩充性,保证其扩展性和投资价值。 实用性 云平台建设充分考虑实用性。在平台设计和系统架构时,采用切实可行的信息技术设备,使整个云教室平台安全可靠、管理有效,使用方便。 https://www.yun0101.com/xwdt/hyxw946.html
7.在线学习培训系统平台架构简介20221210013817.doc在线学习培训系统平台架构简介.doc,在线培训系统平台架构简介 一、技术架构 在线培训系统完整基于云架构进行设计、开发、部署。平台部署在Linux操作 系统上,采纳目前运转稳固,安全性很高的JAVA语言开发,使用开源的MySQL数据 库储存数据,可以在平台上部署Redis、Memcachehttps://max.book118.com/html/2022/1210/8020051130005020.shtm
8.教学资源库建设多媒体教学资源库平台所配备的即时测试实现了学生在借助多媒体教学资源库进行自主性学习探究时,对学习效果的反馈,该部分的系统架构上包括三个部分,分别是题库资源、随机分配和提交评分,即时测试可以满足知识掌握验证的需求,也可以提高学习中的成就感,这样的互动可以提升学生对于学习的积极性和学习质量。 https://www.unjs.com/w/413210.html
9.系统架构师学习之路:从入门到初级实战例如,某在线教育平台需要支持大规模用户同时在线学习,系统架构师需要确定系统的可扩展性和可用性要求。 系统设计:设计系统的整体架构,包括数据库、服务器、网络等组件。例如,在设计数据库时,架构师需要选择合适的数据库类型(如MySQL、MongoDB)以及设计数据模型。 技术选型:选择适合项目的技术和工具,如编程语言(Java、https://www.imooc.com/article/361189
10.在线虚拟仿真实训平台建设方案1. 在线虚拟仿真实训平台架构 虚拟仿真系统按照功能分为三种:桌面型VR系统、沉浸型VR系统和共享型VR系统。其中,桌面型VR系统利用计算机和工作站实现仿真,用户借助鼠标、键盘、屏幕就可于虚拟环境进行交互,由于VR系统沉浸感不足,只适用于简单、交互性不强的实验项目;沉浸型VR系统对硬件设备要求较高,需要使用传感器跟踪https://www.lingtuvr.com/company-news/8334.html
11.网络中心a)数字校园不仅包括技术系统,还包括组织体系。技术系统涉及多部门、多系统,需要进行顶层设计,进行数据标准编制和系统架构设计,处理好各系统之间关系,实现良好的系统集成,便于系统联通、数据融合共享,构建一体化信息服务平台。组织体系涉及利益调整、组织变革,需要建成运行良好的数字校园规划、实施、运行管理、安全保障的体制http://www.xtzy.com/wlzx/detail.jsp?public_id=153330
12.网络党校考试系统党校在线考试系统网络党校在线学习平台亿博软件提供专业的网络党校,网络党校系统,网络党校考试系统,网络党校平台,网络党校在线学习系统,网络党校培训平台,党校入学考试,党校结业考试,是使用当今最核心的J2EE系统架构,研发出的专为学校组织部开展网上党校培训的新一代网络学习平台.http://www.dangxiaowang.com/
13.党校培训平台在线学习系统网络学习系统网络在线学习系统瑞德党校培训平台是瑞德软件依据多年的学习平台开发经验,使用当今最核心的J2EE系统架构,研发出的专为学校组织部开展网上党校培训的新一代网络学习平台。瑞德网上党校培训平台采用WEB2.0社区设计思想、友好的用户界面、灵活的权限分配机制、多服务器分布式管理架构和高并发量等特点,是各个高校的不二选择。 http://www.elearning51.net/cp/dxpt/2013/0312/2.html
14.数字化网络教学平台的研究与实现AET1 系统设计与架构 数字化网络教学平台包括教学资源、在线辅导、毕业设计辅导、计算机等级考试辅导、在线测试、热门文章和师生风采等模块,主要包括课程教学资料、教师在线辅导答疑、教师在线收发并批改学生作业和实验报告、实践项目的视频演示、网上论谈、计算机等级考试专项训练及模拟、大学英语专项训练及模拟、大学生挑战杯竞赛http://www.chinaaet.com/article/213447/
15.高校学习系统在线学习平台自考乐是一个高校在线学习平台,以大数据和智能化应用为发展路径,综合运用先进成熟的互联网技术,实现广大学生与学习内容、专业课程和知识结构上的精准匹配,能够为各高校定制性能优越、操作便捷、师生欢迎的学习培训平台。 电话:18580070692https://www.zsbxx.cn/
16.elearning平台系统专家新为软件新为公司发布了SmartLearning学习发展系统、SmartMedia P2P流媒体平台; 新为产品通过AICC与SCORM国际标准测试。 2007 新为SmartBOS学习运营系统、LiveLearning培训会议系统面世; 新为分布式E-Learning解决方案发布; 2006 新为顺利通过深圳市双软企业认定; 发布国内首套支持万人并发的全B/S架构在线考试系统; 2005 新为公司http://newlms.cn/article.html