国产精品成av人在线观看片-国产精品成久久久久三级-国产精品成久久久久三级四虎-国产精品成久久久久三级无码-国产精品成年片在线观看-国产精品成人

登錄注冊
新聞 資訊 金融 知識 財經(jīng) 理財 科技 金融 經(jīng)濟 產(chǎn)品 系統(tǒng) 連接 科技 聚焦
首頁 > 新聞 > 熱點 > > 正文

weidl x DeepRec:熱門微博推薦框架性能提升實戰(zhàn)

2022-12-26 11:27:06來源:壹點網(wǎng)

微博推薦團隊:陳雨、韓楠、蔡小娟、高家華

1.項目背景

熱門微博是新浪微博的重要功能之一,包含熱門流、熱點流、頻道流、小視頻后推薦、視頻社區(qū)等場景。

推薦首頁 發(fā)現(xiàn)頁推薦 沉浸視頻

1.jpg

weidl機器學習框架為熱門微博在線學習提供模型訓練和推理服務,推薦全鏈路中在線推理服務的性能一直是weidl框架優(yōu)化迭代的重要目標。在線學習系統(tǒng)依托于weidl框架。其服務的吞吐量、平均響應時間、承接上游QPS、機器資源占用等指標相互制衡,其中weidl框架推理計算的性能至關重要,與推薦服務全鏈路的整體性能指標及成本密切相關。探索引擎中計算圖運行時算子計算加速的各種特性及優(yōu)化支持成為本項目主要方向。

DeepRec (https://github.com/alibaba/DeepRec)是阿里巴巴集團提供的針對搜索、推薦、廣告場景模型的訓練/預測引擎,在分布式、圖優(yōu)化、算子、Runtime等方面對稀疏模型進行了深度性能優(yōu)化,同時提供了稀疏場景下豐富的Embedding相關功能。

2.jpg

本文主要介紹熱門微博推薦的整體架構與DeepRec對熱門推薦框架性能上的提升,并詳細剖析的weidl平臺中使用的DeepRec的重要優(yōu)化點。

2.熱門微博推薦系統(tǒng)與weidl在線學習平臺

2.1 熱門微博推薦系統(tǒng)整體架構

3.jpg

熱門微博推薦系統(tǒng)可分為前臺業(yè)務與weidl在線學習平臺兩個部分。前臺業(yè)務為各個業(yè)務的接口,負責將推薦結果返回給業(yè)務方。在線學習平臺集成了樣本拼接、模型訓練、參數(shù)服務器、模型服務等多個模塊,為熱門推薦的多個業(yè)務實現(xiàn)了完整的推薦流程,可快速為新業(yè)務搭建一套推薦系統(tǒng)。

2.2 weidl在線學習平臺

在線學習平臺是整個系統(tǒng)最核心的部分,主要負責召回、粗排、精排等模塊。熱門推薦系統(tǒng)為全鏈路大規(guī)模深度模型的在線學習系統(tǒng),其中召回模塊有興趣召回、熱點召回、策略召回、模型召回等多路召回,分別從千萬級物料庫中召回部分候選集,通過每路配額配置,將萬級物料送入粗排模塊。粗排階段通過物料特征離線生成、用戶特征實時拉取的方式,實現(xiàn)高性能的打分服務,通過粗排排序后,將千級候選集送入精排階段。精排階段模型最為復雜,物料與用戶特征實時拉取,多場景多目標融合,最終通過規(guī)則系統(tǒng)的重排,選出一次曝光的博文,推薦給用戶。

在線學習平臺底層推理計算部分采用bridge模式,支持多個backend,包括DeepRec、TensorFlow、Torch、TensorRT等,同時支持基于CPU與GPU的模型訓練與在線推理。

4.jpg

weidl在線學習平臺

熱門微博推薦系統(tǒng)從2018年開始,經(jīng)過幾年的升級,在實時性和規(guī)模上都有了本質(zhì)的提升。

5.jpg

2.2.1 實時性

實時性包括模型學習到用戶行為的速度,模型參數(shù)的更新應用到線上模型服務的速度。推薦系統(tǒng)的更新速度越快,越能夠反應用戶最近的用戶習慣,越能夠給用戶進行越有時效性的推薦;模型更容易發(fā)現(xiàn)最新流行的數(shù)據(jù)pattern,越能夠讓模型反應找到最新的流行趨勢。工程上主要通過以下幾個方面,實現(xiàn)推薦系統(tǒng)的實時性。

a. 樣本拼接作為模型訓練的起點,一條完整的樣本拼接完成的速度決定了模型學習用戶行為速度的上限,目前熱門推薦樣本拼接窗口為30分鐘,即用戶在客戶端的互動行為在30分鐘內(nèi)必會生成一條樣本,送入kafka隊列。

b. 模型訓練讀取樣本流kafka,保證kafka無積壓,所以該條樣本會在毫秒級被模型學到,并通過rpc調(diào)用,更新到訓練的參數(shù)服務器,并將新的模型參數(shù)推入kafka隊列。

c. 參數(shù)同步服務從模型更新的kafka隊列中讀取數(shù)據(jù),將模型最新的參數(shù)通過rpc調(diào)用,發(fā)送給在線服務所用的參數(shù)服務器中,此時從用戶行為到模型更新完成。

d. 模型在線推理服務直連參數(shù)服務器,實時拉取模型最新參數(shù)進行打分。除去樣本拼接所需的30分鐘窗口,其余流程在1分鐘內(nèi)完成。

6.jpg

2.2.2 大規(guī)模深度復雜模型

熱門推薦業(yè)務從最初的FM模型,到現(xiàn)在召回階段以雙塔為主,粗排階段以cold dnn為主,精排階段以多場景、多目標的復雜深度模型為主,模型在特征數(shù)量、目標個數(shù)、模型結構復雜度上都發(fā)生了質(zhì)的變化,給業(yè)務帶來了很大的收益。

7.jpg

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

8.jpg

粗排雙塔模型迭代到cold dnn模型

模型復雜度的提升給工程架構帶來了不小的壓力,一個multitask模型比一個單目標的dnn模型在算力上是成倍的增加。為了復雜模型的落地,熱門微博推薦團隊探索了多種開源框架,包括TensorRT, XDL,TFRA等,通過測試與源碼分析,這些框架都在原生Tensorflow基礎上做了不同方向的優(yōu)化,但性能始終無法滿足要求。同時,我們也通過指令集優(yōu)化、改進TensorFlow內(nèi)存管理、算子融合等方式,優(yōu)化weidl kernel部分性能。

在不斷的優(yōu)化與開源框架的嘗試中,發(fā)現(xiàn)DeepRec框架在性能、易用性、與weidl的兼容性上都全面勝出,最終,熱門推薦框架引擎采用DeepRec引擎,提升了訓練與在線推理的新能,同時也給業(yè)務帶來了效果上的提升。

3.DeepRec及相關模塊優(yōu)化點剖析

3.1 OneDNN庫加速算子運算

DeepRec集成了最新版本的開源的跨平臺深度學習性能加速庫oneDNN(oneAPI Deep Neural Network Library),英特爾相關團隊進一步優(yōu)化將oneDNN 原有的線程池統(tǒng)一成DeepRec的Eigen線程池,減少了線程池切換開銷,避免了不同線程池之間競爭而導致的性能下降問題。oneDNN針對主流算子實現(xiàn)了性能優(yōu)化,包括MatMul、BiasAdd、LeakyReLU等在稀疏場景中的常見算子。針對熱門微博的線上模型,性能提升明顯。

在DeepRec中英特爾CESG團隊針對搜索廣告推薦模型中存在著大量稀疏算子如Select、DynamicStitch、Transpose、Tile、SparseSegmentMean、Unique、SparseSegmentSum、SparseFillEmptyRows等一系列稀疏算子進行了深度的優(yōu)化,下面介紹2個常用稀疏算子的優(yōu)化方法。

3.1.1 Select算子優(yōu)化

Select算子實現(xiàn)原理是依據(jù)條件來做元素的選擇,此時可采用向量化指令的mask load方式,如圖所示,以減少原先由if條件帶來大量判斷所導致的時間開銷,然后再通過批量選擇提升數(shù)據(jù)讀寫效率,最終線上測試表明,性能提升顯著。

9.jpg

3.1.2 Transpose算子優(yōu)化

同樣,可以使用向量化的unpack和shuffle指令對transpose算子進行優(yōu)化,即通過小Block的方式對矩陣進行轉置,最終經(jīng)線上測試表明,性能提升同樣十分顯著。

10.jpg

3.2 關鍵路徑優(yōu)先的調(diào)度引擎

DeepRec通過對執(zhí)行引擎以及底層線程池的重新設計,達到在不同的場景下,包括trianing和inference,能做到更佳執(zhí)行性能。保證不同線程之間的均衡性,盡量減少線程之間的steal,避免加鎖等問題。

Executor的設計需要考慮對內(nèi)存的訪問及其并行實現(xiàn)之間的聯(lián)系,進行多層次任務調(diào)度,減少緩存缺失和遠程內(nèi)存訪問,充分發(fā)揮多核、多節(jié)點CPU的并行特性,提升系統(tǒng)的運行性能。在線程池層面,設計Cost-aware線程池,結合內(nèi)存感知以及算子類型等信息,進行針對性優(yōu)化;在計算圖層面,對張量內(nèi)存的位置進行調(diào)度,有利于線程池的調(diào)度;在算子生成層面,進行有利于線程池任務調(diào)度的算子任務劃分。

DeepRec提供的基于關鍵路徑優(yōu)化的執(zhí)行引擎,通過動態(tài)采集Session Run情況,統(tǒng)計與計算多組指標,并構建CostModel,計算出一個較優(yōu)的調(diào)度策略。該功能中包含了基于關鍵路徑的調(diào)度策略,根據(jù)CostModel patching執(zhí)行細碎算子的調(diào)度策略以及線程池Cost-aware調(diào)度策略等。

11.jpg

在graph執(zhí)行過程中,Collector會監(jiān)測所有算子執(zhí)行以及線程池情況,包括算子執(zhí)行時間,線程池pending任務飽和度,以及算子的前后依賴關系。這些參數(shù)會通過CostModel來計算更佳的調(diào)度策略。對于一張graph來說,存在一條或者多條關鍵路徑,即從輸入到輸出經(jīng)過的延時最長的邏輯路徑。graph執(zhí)行總的時間一定是大于等于關鍵路徑時間。為了讓整個graph執(zhí)行更快,并發(fā)更佳高效 ,在graph執(zhí)行時應當優(yōu)先執(zhí)行關鍵路徑上的節(jié)點。

在稀疏模型圖中,可能會存在大量細碎算子,會帶來大量調(diào)度開銷。有些可以通過算子融合來做優(yōu)化,算子融合一般通過graph pattern匹配或者手動指定子圖來確定需要融合的對象,難以覆蓋全部算子。故而在executor層面,通過trace運行時數(shù)據(jù)來動態(tài)進行批量調(diào)度執(zhí)行,這樣可以減少非必要的細碎算子調(diào)度開銷。

在線程調(diào)度層面,目前的線程池調(diào)度策略比較簡單,如果當前執(zhí)行線程是inter線程,優(yōu)先將task調(diào)度到當前線程執(zhí)行,若不是,則調(diào)度到一個random線程上。線程的balance完全由steal機制來保證。在我們的觀察中,發(fā)現(xiàn)inter線程之間存在大量的steal,這會導致很多鎖以及重復的線程調(diào)度等開銷。CostModel executor通過采集運行時數(shù)據(jù),來確定更佳的線程來執(zhí)行任務,減少大量的steal行為。

在復雜模型上,使用DeepRec的CostModel調(diào)度,能夠生成更佳的調(diào)度策略,減少調(diào)度開銷。在測試的snr模型上平均耗時穩(wěn)定優(yōu)化2ms。

3.3 動態(tài)感知的內(nèi)存/顯存分配器

在張量內(nèi)存管理方面,通常存在兩點問題,一個是內(nèi)存碎片過多,另一個是沒有考慮模型結構存在多分支的情況下算子并行帶來的內(nèi)存增長。其內(nèi)存管理十分粗放,大體上都是運行時依據(jù)內(nèi)存請求動態(tài)進行內(nèi)存釋放和分配,同時進行一些內(nèi)存池管理。由于無法感知上層應用的分配請求特點,這種內(nèi)存管理存在著內(nèi)存碎片過多的特點。例如在不清楚后續(xù)內(nèi)存請求的情況下,由于前期的多次內(nèi)存分配和釋放,會導致后來的大內(nèi)存請求由于內(nèi)存碎片的問題而需要一塊新的內(nèi)存或者OOM。

深度學習模型的內(nèi)存分配由于其應用特點存在著明顯的規(guī)律性,訓練時都是以一個個mini-batch的形式訓練,每個mini-batch的分配特征大體上保持一致,訓練時前向過程一直分配內(nèi)存,較少釋放,而反向過程中會釋放前向計算中的臨時張量,釋放大量內(nèi)存,所以內(nèi)存會周期性呈現(xiàn)先增長后降低的特征。基于此學習到執(zhí)行過程中內(nèi)存分配pattern,從而減少內(nèi)存的動態(tài)分配以及對內(nèi)存塊做到最佳的復用。同時自適應內(nèi)存分配器也是graph-aware的,這樣使得不同子圖之間存在較小的相互干擾,提高分配效率。自適應內(nèi)存分配器基本架構如下圖所示:

自適應內(nèi)存分配器在訓練過程對于前面的K輪進行一些統(tǒng)計,通過Allocator模塊,對內(nèi)存的分配,包括分配的時間點、分配的大小,統(tǒng)計好分配的時間點和大小后,在K輪結束之后會使用啟發(fā)式的一些算法規(guī)劃出一個較優(yōu)的tensor cache planner,planner會創(chuàng)建allocator,并且預分配一些tensor內(nèi)存塊,后續(xù)的分配會優(yōu)先通過此allocator進行分配。

自適應內(nèi)存分配器基本原則是使用盡量少內(nèi)存,同時提高內(nèi)存的復用率。整體來講,自適應內(nèi)存分配器解決了在稀疏場景中內(nèi)存分配上存在的一些問題,主要包括,第一,減少了在稀疏場景中,大量內(nèi)存分配問題,包括小內(nèi)存和大內(nèi)存。譬如小內(nèi)存分配出現(xiàn)在特征的處理過程中,包括一些特征的拼接,或者在做一些交叉特征,這里會存在大量的小內(nèi)存的分配。同樣在模型訓練也存在很多大的內(nèi)存,包括attention、RNN、或者全連接層,會有一些大內(nèi)存的分配。減少大內(nèi)存的分配,進而也減少了minor pagefault數(shù)量。第二,對于tensor能做到更好的復用,減少了總體的內(nèi)存占用量。

4.DeepRec在業(yè)務中取得的收益

4.1 服務性能提升

熱門微博已于9月將weidl的backend全量替換為DeepRec,線上服務與訓練都取得了很大的收益,最明顯的是精排多任務模型,圖計算部分DeepRec比原生TensorFlow耗時降低50%,精排階段整體耗時降低20%,單機吞吐量提升30%。

對于雙塔和cold dnn模型,圖計算部分耗時降低20%,粗排階段整體耗時降低10%, 單機吞吐量提升20%,模型訓練模塊性能提升20%, 提升了訓練速度并有效的改善了樣本積壓問題。

4.2 性能提升所帶來的其他收益

推薦引擎模塊整體耗時減少與吞吐量的提升,減少了推薦在訓練與在線推理上所使用的機器資源,極大的降低了公司成本。

在線推理服務性能提升,使推薦引擎各個模塊可以計算更多的候選物料,粗排階段可以計算更多的候選物料,提升物料庫總量與擴大召回條數(shù),精排也由1000條擴到2000條,每個階段候選物料數(shù)的增加,都會對整體指標有顯著的提升。

免責聲明:市場有風險,選擇需謹慎!此文僅供參考,不作買賣依據(jù)。

關鍵詞:

推薦內(nèi)容

熱點
39熱文一周熱點
叫吧宝贝我想听你叫什么| 国内大量揄拍人妻精品視頻| 高潮久久久久久久久不卡 | 领导不戴套玩弄下属娇妻| 久久天天躁狠狠躁夜夜AVAPP| 两毫米的小洞你却稳稳命中| 逆徒每天都想着欺师犯上| 亲子乱AⅤ一区二区三区| 三级4级全黄60分钟| 无人区码一码二码三码是什么意思| 亚洲AV成人无码一区在线观看| 亚洲欧美精品午睡沙发| 中文字幕AⅤ天堂在线| YSL万人千色T9| 国产成人A在线观看视频免费| 国色天香卡一卡二乱码| 久久久久久久综合色一本| 欧美老熟妇乱子伦视频| 少妇性SEXBBWZⅩX| 亚洲AV无码专区在线电影天堂 | 少妇被又粗又硬猛烈进出小说| 无码加勒比一区二区三区四区| 亚洲第一AV网站| 中国丰满少妇性BBBBBBBB| 宝贝把腿开大让我添添电影| 国产成人AV无码专区亚洲AV| 娇喘潮喷抽搐高潮在线视频| 美女露100%双奶头无遮挡图片 | 图片区小说区激情区偷拍区| 亚洲精品午夜国产VA久久成人| 12孩岁女A处破娇小| 动漫成人无码精品一区二区三区 | 久久亚洲色WWW成人男男| 人妻激情偷乱视频一区二区三区| 无码人妻AV一二区二区三区| 亚洲无亚洲人成网站77777| JΑPΑN丰满人妻HDXXXX| 国产精品美女一区二区三区| 久久亚洲精品无码爱剪辑 | XXXXXL日本17上线| 国产免费AV一区二区三区| 另类老妇性BBWBBW| 色欲AV无码中字乱人伦在线| 亚洲精品亚洲人成在线观看麻豆| AV人摸人人人澡人人超碰小说 | 私人家庭影院5577| 亚洲综合色成在线观看| 成人精品视频一区二区不卡| 国产又粗又猛又黄又爽无遮挡| 麻豆影视视频高清在线观看| 手机成人免费A级毛片无码| 亚洲婷婷五月综合狠狠爱| 纯爱无遮挡H肉动漫| 九九久久精品国产免费看小说| 人妻无码一区二区在线影院| 亚洲国产欧美在线人成大黄瓜| AV无码一区二区大桥久未| 国产毛片一区二区精品| 欧美交换配乱吟粗大视频| 亚洲 精品 制服 校园 无码 | 超碰CAOPROM 永久地址发| 精品久久久久香蕉网| 日韩精品无码AV成人观看| 亚洲一线产区二线产区区别在哪| 丰满人妻一区二区三区Aⅴ在线| 久久久久久国产精品无码超碰| 日韩一区二区在线观看视频| 野花视频在线观看免费高清版| 公交车上拨开她湿润的内裤| 美女裸体跪姿扒开屁股无内裤| 香蕉久久久久久AV成人| Y11111少妇无码电影| 久久99精品国产麻豆| 天美传媒MV在线看免费| 70歳の熟女セックス| 狠狠躁夜夜躁人人爽天天BL| 日韩人妻无码一区二区三区| 岳两腿之间白嫩的小缝| 国产在线国偷精品免费看| 日韩精品无码一区二区三区| 在线天堂おっさんとわたしWWW | 久久久久亚州AⅤ无码专区首| 天天AV天天爽无码中文| 98在线视频噜噜噜国产| 精品无码国产自产野外拍在线| 天堂А√在线最新版中文下载| 777精品久无码人妻蜜桃| 精品久久久无码中字| 无码毛片视频一区二区三区| 暗呦交小U女国产精品视频| 久久婷婷五月综合色高清图片| 小婷又软又嫩又紧水又多的软件 | 伊人久久大香线焦AV色| 国产影片AV级毛片特别刺激| 色一情一乱一伦一视频免费看| 99国精产品W灬源码1688| 久久精品中文字幕无码| 性色AV极品无码专区亚洲AV| 大屁股大乳丰满人妻| 欧美精品亚洲日韩AⅤ| 一区二区三区无码免费看| 狠狠躁日日躁夜夜躁2020| 玩弄老太太的BB| 赤裸羔羊Ⅲ致命快感 电影| 欧美性狂猛XXXXX深喉| 中国高清WINDOWS视频软件| 久久精品国产9久久综合| 亚洲成a人片8888一在线观看| 国产精品久久久久久亚洲AV| 色偷偷人人澡久久超碰97| の乳頭を凸起しています| 女人被弄到高潮叫床免| 正在播放熟妇群老熟妇456| 久久久人人人婷婷色东京热| 亚洲成A人片在线观看无码专区| 国产精品美女久久久久久2018| 少妇做爰免费视频网站| 成年性生交大片免费看| 秋霞在线看片无码免费| FREE嫩白18SEⅩ性HD处| 男人激烈吮乳吃奶动态图 | 亚洲AV秘 无码一区白峰美| 国产成人一区二区青青草原| 少妇人妻AV无码专区| 动漫精品视频一区二区三区 | 我跟闺蜜公交车被弄到高潮| 福建妹妹幼儿十岁左右| 少妇被CAO高潮呻吟声| 低调看JRS直播| 色欲久久久天天天综合网| 成年性生交大片免费看| 日韩精品无码成人专区| 成熟人妻换╳╳╳╳| 少妇被躁爽到高潮无码文| 粉嫩小泬无遮挡久久久久久小说| 日韩精品无码观看视频免费| 成人精品一区二区三区在线观看 | 老头边吃奶边弄进去呻吟| 又色又爽又黄的视频软件APP| 久久永久免费人妻精品我不卡 | 成人久久免费网站| 色老板精品无码免费视频| 岛国AV在线无码播放| 色综合久久蜜芽国产精品| 给个网站2021年直接进入的| 天天做天天爱夜夜夜爽毛片 | AV天堂午夜精品一区| 欧洲精品免费一区二区三区| 爆乳上司JULIA中文字幕| 日欧一片内射VA在线影院| 国产成人精品久久久久精品日日| 无码αv人妻一区二区三区| 国产男女猛烈无遮挡免费视频网站| 亚洲AV成人片色在线观看蜜桃| 好疼太大了太粗太长了视频| 亚洲欧美性爱视频| 里面也请好好疼爱五集| 999久久久无码国产精品| 日本WWW一道久久久免费| 国产成人香蕉久久久久| 性色AV极品无码专区亚洲AV| 久久99精品久久久久久不卡| 专干熟肥老妇人视频在线看| 秋霞午夜无码鲁丝片午夜| 国产AV无码专区亚洲AVJUL| 亚洲AV成人一区二区三区观看在 | 国产超碰AV人人做人人爽| 无码人妻精品中文字幕不卡| 精品久久亚洲中文无码| 2020久久国产综合精品SWA| 日本适合十八岁以上的护肤品| 国产精品久久久久精品A级| 亚洲精品国偷自产在线99正片| 老赵揉搓苏清雅双乳| 宝宝锕~进去就不痛了在线观看| 为了升职丈夫把我献给他们领导 | 高清不卡亚洲日韩AV在线| 亚洲AV无码1区2区久久| 狂野AV人人澡人人添| 超级黄18禁色惰网站| 亚洲AV成人片色在线观看www| 两个奶头被吃到高潮什么感觉| 锕锕锕锕锕锕锕好疼JK漫画| 无人区码一码二码三码四码| 久久久久亚洲AV片无码V| YYYY111111少妇影院| 五十路熟妇无码专区| 老年镖客视频大全播放| 成人精品一区二区www| 亚洲VA中文字幕无码一二三区| 蜜臀AV永久免费看片| 高黄暴H日本在线观看| 亚洲日韩亚洲另类激情文学| 欧美性战A久久久久久| 国产日韩精品中文字无码| 制服视频在线一区二区| 少妇人妻无码专区视频| 久久97久久97精品免视看| 超级YIN荡的公司聚会| 亚洲国产在一区二区三区|