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.在线学习管理系统:重塑教育未来的创新工具一、在线学习管理系统的内涵 在线学习管理系统(Learning Management System,简称LMS)是一种基于互联网技术的教育平台,旨在为用户提供全面、便捷、高效的在线学习体验。它集成了课程管理、学员管理、考试管理、数据分析等多种功能,为教育机构、企业和个人提供了全方位的学习支持。 https://www.pbids.com/aboutUs/pbidsNews/1861300265132593152
2.AI听力练习APP的开发框架? 与音频播放库(如Howler.js)结合,实现音频控制功能。 ?Vue.js: ? 简洁易用,适合快速开发。 ? 强大的生态支持,适合与其他音频处理插件集成。 ?Svelte: ? 编译时框架,性能优秀,适合轻量化应用。 适用于移动端 ?React Native: ? 跨平台支持,适合开发iOS和Android应用。 https://www.jianshu.com/p/511d130642c1
3.大型在线教育管理平台系统,其功能与学习通高度相似,另有1.6万字文档一项目演示:原创项目:仿超星学习通大型在线教育系统,毕设可用,技术栈为spring boot+vue,年初接的项目,项目易于理解,部署,没有用过于复杂的技术,论文也已完成_哔哩哔哩_bilibili 其功能与学习通高度相似,本系统采用的技术架构,包括后端的Spring、Spring MVC、MyBatis-Plus及SpringBoot框架,前端则采用Vue.js构建,数据库选https://blog.csdn.net/2401_86651646/article/details/144385908
4.在线学习平台的功能与特点介绍.pptx在线学习平台的功能与特点介绍汇报人:PPT可修改20240124目 录引言在线学习平台的核心功能在线学习平台的特点在线学习平台的优势在线学习平台的应用场景在线学习平台的挑战与发展趋势01引言随着互联网技术的快速发展,传统教育模式已经无法满足https://m.renrendoc.com/paper/319365774.html
5.干货:在线学习平台开发(含功能表)在线学习平台开发功能表是一个详细列出平台所需实现功能的清单,旨在确保平台能够满足用户(学习者)和教育者(内容提供者)的需求。以下是一个在线学习平台开发功能表的示例 1. 用户管理 用户注册与登录:支持邮箱、手机号、社交媒体账号等多种注册方式,提供安全登录功能。 https://blog.itpub.net/70041075/viewspace-3028221/
6.构建未来极客学习平台极客学院作为专业IT职业在线教育平台,拥有海量高清IT职业课程,涵盖30+个技术领域,如Android,iOS ,Flash,Java,Python,HTML5,Swift,Cocos2dx等视频教程.根据IT在线学习特点,极客学院推出IT学习知识体系图,IT职业学习实战路径图,帮助IT学习者从零基础起步,结合IT实战案例演练,https://www.jiker.com/cooperate/microsoft
7.在线教育平台产品架构图在线教育平台功能模块在线教育平台 产品架构图 在线教育平台功能模块 近年来因为疫情原因,越来越多的教育机构开通了线上教育平台,在线教学由于是通过互联网进行,那么只要家长或孩子有时间就都可以打开手机或者电脑进行学习,也因此,线上教育彻底打破了地域差距和时间限制,无论身处何地,只要有网络,孩子就可以随时随地上课,不受地区和时间的https://blog.51cto.com/u_16099283/9080371
8.西方经济学论文(精选13篇)西方经济学教学资源共享平台,一方面支持资源的查找、链接、更新、上传、下载,另一方面支持教师在线管理功能,学生在线学习及动态资源调用。教学资源共享平台建设分为基础部分和扩展部分。 1.基础软件部分 基础软件包括教学视频、教学课件、讲义、案例库、试题库共五个子模型。分述如下:教学视频是信息技术发展的必然形势也是https://mip.yjbys.com/bylw/jingjixue/106957.html
9.Web线上学习平台的设计与实现.docx学习平台采用B/S架构,实现了前后端的分离,前端使用Vue.js框架,后 端使用java框架Springboot并结合Mysql数据库实现。 该线上学习平台的主要功能有教务信息查询,课件资源分发,在线作业,成绩查询等。本系统经过了的测试, 基本完成了各项功能,基本满足院校对在线学习平台的要求,对提高教学质量,实现教育的现代化具有积极https://m.book118.com/html/2023/0221/8010113121005037.shtm
10.深度学习平台KDL购买价格功能优势嘲案例深度学习平台KDL(Kingsoft Deep Learning)金山云为您提供深度学习平台服务,购买价格、功能优势、运用场景、案例文档、帮助您解决深度学习中的各类问题。https://www.ksyun.com/proservice/kdl
11.01网络安全态势感知(在线阅读版).pdf数据本身及其背后的价值,大数据和机器学习技术也因此得到快速、蓬勃的发展。正 是在这样的背景下,网络安全态势感知系统架构中引入大数据和机器学习技术,解决 了之前存在的诸多关键问题,完善了相关模型和功能,最终推动整个产业快速发展。 8 网络安全态势感知的技术基础 3.1 大数据平台框架 进入大数据时代后,数据规模https://support.huawei.com/enterprise/zh/doc/EDOC1100212092
12.Java框架的最新趋势有哪些?java教程使用Spring Cloud Native 和 Kubernetes,可以构建一个云原生的在线学习平台,可自动扩展以满足需求波动,并提供高可用性。 趋势3:全栈式框架 全栈式框架提供了一组完整的工具,以支持从前端到后端的所有开发方面。JHipster 和 Vaadin等框架集成了对 Java、Spring Boot、Angular 和 React 的支持,从而使开发人员能够创建现代https://m.php.cn/faq/828848.html
13.cubestudio开源云原生一站式机器学习/深度学习/大模型AI平台对接一站式机器学习平台,支持自动化标注(需购买aihub): 支持目标识别,目标边界识别,目标遮罩识别,图片分类,图片描述,ocr,关键点检测。支持大模型自动化标注:文本分类,文本翻译,命名实体识别,阅读理解,问答,摘要提取。 开发环境镜像功能 镜像仓库/镜像管理/在线构建镜像。同时提供平台所有镜像,包括模板镜像/服务镜像/nothttps://github.com/tencentmusic/cube-studio
14.新世纪数学学生版app下载新世纪安卓学生版下载v1.0.4《新世纪数学 学生版》一款专业的数学学习平台app,为更多小学生提供简单有效的数学学习服务,通过app,学生就可以随时在线上微型课程,观看视频,然后拥有基于游戏的闯关性学习内容,并且还可以随时学习和练习大量练习和课程视频,视频家教学更是打破书本知识的框架,感兴趣的下载去体验吧。 软件简介 在这里,我们为中学生提供https://app.3dmgame.com/mip/android/262081.html?ivk_sa=1024320u
15.微信公众号在线学习平台搭建实践《硅谷课堂》学习课程微信公众号在线学习平台搭建实践_《硅谷课堂》 硅谷课堂是与尚硅谷合作项目,是一款基于微信公众号B2C模式在线学习平台。教程技术栈涉及主流SpringBoot+SpringCloud微服务架构,应用存储和点播,涉及微信公众号开发,包含公众号菜单/消息、微信分享/授权/支付。前端采用主流框架Vue和Element-ui,微信公众号采用H5页面,涵盖ES6/NPMhttps://cloud.tencent.com/developer/learning/camp/11
16.资管云资管云,金融从业者体系化在线视频学习培训平台。资管云依托母公司智信研究10余年研究积淀,旨在构建中国金融全景知识图谱,不断精进大投行、大资管、大财富等知识框架。资管云课程覆盖金融市场、投资银行、资产管理、财富管理知识树体系,并推出业务前瞻大咖经验谈,一站式https://www.ziguanyun.com/about/zgt