色视频www在线播放国产成人 _亚洲第一激情av_在线播放豆国产99亚洲_国产亚洲精品福利_午夜伦全在线观看_这里只有精品丝袜_欧美少妇精品_欧美成人午夜电影_成人在线免费观看黄色_欧美日韩亚洲综合一区二区三区_欧美高清xxxxxkkkkk_久久精品国产99久久6

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

微博推薦團(tuán)隊:陳雨、韓楠、蔡小娟、高家華

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

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

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

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

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

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

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

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

2.2 weidl在線學(xué)習(xí)平臺

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

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

weidl在線學(xué)習(xí)平臺

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

2.2.1 實時性

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

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

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

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

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

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

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

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

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

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

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

3.DeepRec及相關(guān)模塊優(yōu)化點(diǎn)剖析

3.1 OneDNN庫加速算子運(yùn)算

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

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

3.1.1 Select算子優(yōu)化

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

3.1.2 Transpose算子優(yōu)化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.1 服務(wù)性能提升

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

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

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

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

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

(0)
上一篇 2022年12月22日 11:00
下一篇 2022年12月22日 11:01
日本三级久久久| 欧美综合国产精品久久丁香| 日韩久久一级片| 久久精品30| 国产999精品视频| 自拍偷拍亚洲| 日韩三级中文字幕| 十九岁完整版在线观看好看云免费| 国产1区2区3区精品美女| 国产视频精品网| 凹凸成人精品亚洲精品密奴| 日韩视频免费在线观看| 国产在线美女| 欧美久久久久久蜜桃| 中文字幕在线中文字幕二区| 国产欧美一区二区精品久导航| 亚洲中文字幕无码一区二区三区| 美女久久一区| 蜜桃久久影院| 99精品热视频只有精品10| 成人观看高清在线观看免费| 欧美精品密入口播放| 精品国产依人香蕉在线精品| 三级成人在线| 亚洲天堂影视av| 国产拍在线视频| 日韩av一区二区在线观看| 黄污视频在线观看| 欧美一区午夜视频在线观看| 91在线高清| 欧美精品高清视频| 综合久久2019| 日韩成人小视频| 成人亚洲欧美| 亚洲网站在线观看| 日韩在线观看不卡| 日韩中文字幕免费视频| 北岛玲精品视频在线观看| 久久天天躁日日躁| 精品视频在线观看免费观看 | 国产精品网红福利| 欧美精品momsxxx| 国产精品一区二区久久国产| 久久精品久久久| 久久99精品国产99久久| 免费成人性网站| 日韩人妻无码精品久久久不卡| 91色porny蝌蚪| 明星乱亚洲合成图.com| 亚洲精品国产精华液| 视频一区二区三区国产 | 成人精品亚洲| 91国产在线免费观看| 久久精品在线| 男女啪啪免费视频网站| 中文字幕一区二区三区不卡| 欧美少妇另类| 日韩精品亚洲元码| 一区二区三区视频免费视频观看网站| 国产精品高潮粉嫩av| 国产日韩一区二区三区在线| 一二三在线视频| 国产精品视频九色porn| 免费福利在线观看| 亚洲欧美国产高清va在线播| 加勒比色老久久爱综合网| 亚洲va电影大全| 国产激情视频一区二区在线观看| 中文字幕第100页| 欧美人与z0zoxxxx视频| 欧美亚洲黄色| 91免费在线观看网站| 国产一区二区在线影院| 午夜网站在线观看| 欧美不卡视频一区| 欧美一区 二区| 日韩中文一区二区三区| 国产精品国产成人国产三级 | 日本国产精品视频| 亚洲国产一区二区三区a毛片| 超碰97在线看| 亚洲va天堂va国产va久| 福利在线导航136| 2025国产精品视频| 青草国产精品久久久久久| 97福利电影| 精品成人a区在线观看| 免费精品一区| 麻豆av一区| 亚洲精品亚洲人成人网在线播放| 久久电影网站| 国产成人精品免高潮在线观看| 毛片av一区二区| 亚洲热app| 欧美大尺度在线观看| 久久天天综合| 美国成人av| 久久综合五月天| 天堂在线一区二区| 中文字幕在线中文字幕二区| 久久在线观看视频| 日韩精品午夜视频| 日本一卡二卡四卡精品| 性欧美在线看片a免费观看| 黄色精品一二区| av中文天堂在线| 欧洲亚洲女同hd| av一区二区久久| 好看的中文字幕在线播放| 成人网页在线免费观看| 中文字幕精品一区二区三区精品| 伊人久久视频| 色大师av一区二区三区| 在线观看国产日韩| 成人在线免费观看91| 日本久久久久久久久久久久| 精品无人区乱码1区2区3区在线| 国内精品99| 香蕉影院在线| 国产成人亚洲综合91| 国产日产欧产精品推荐色| www.一区| 久久av综合网| 亚洲精选一区二区| 蜜桃视频一区二区三区| www亚洲人| 国产美女99p| 91福利在线导航| 欧美日韩三区| 免费在线观看污视频| 成人黄色av免费在线观看| 一区二区三区小说| 国产一区二区三区探花| 老司机很黄的视频免费| 日本成人黄色片| 亚洲激情自拍偷拍| 国产成人黄色| 国产成+人+亚洲+欧美+综合| 91极品视频在线| 中文字幕中文字幕在线一区| 国产伦精品一区二区三区免费优势| 免费观看国产精品视频| 中文字幕在线视频日韩| 成人三级在线视频| 国产在线一区不卡| 欧美牲交a欧美牲交aⅴ免费真| 久久精品电影网站| 久久免费美女视频| 伊人久久亚洲| 91大神在线资源观看无广告| 国产精品678| 精品欧美国产一区二区三区| 国产精品激情电影| 福利视频在线| 日本免费成人网| 欧美激情第99页| 一区二区三区精品久久久| 一本精品一区二区三区| 国产成人高清精品| 国产精品免费看久久久无码| 久久精品国产91精品亚洲| 国产精品全国免费观看高清| 成人嫩草影院| 黄色网页网址在线免费| 一区二区三区在线观看www| 亚洲日本欧美中文幕| 久久久高清一区二区三区| 午夜欧洲一区| 青春有你2免费观看完整版在线播放高清| 成人网页在线免费观看| 91精品中文字幕一区二区三区| 国产在线精品免费av| 亚洲一区二区三区久久久| 美女的尿口免费视频| 成人在线观看网址| 亚洲第一精品自拍| 久久九九国产精品| 婷婷丁香综合| 一级毛片久久久| 成人女性文胸| 欧美极品一区| 日韩性xxxx爱| 欧美午夜精品久久久久久人妖| 欧美一级视频| 久久伊人影院| 性欧美精品孕妇| 免费久久久久久| 2019日本中文字幕| 欧美性videosxxxxx| 不卡的看片网站| 欧美国产91| 日韩毛片免费看| 看电影就来5566av视频在线播放| 日日噜噜夜夜狠狠久久丁香五月| 91精品国产精品| 欧美va亚洲va香蕉在线| 亚洲天堂福利av| 韩国成人精品a∨在线观看| 日韩成人综合| 外国成人毛片|