世界時訊:NVIDIA助力DeepRec為vivo推薦業(yè)務實現高性能GPU推理優(yōu)化
簡介
【資料圖】
· 本案例中,vivo人工智能推薦算法組自研的推薦服務平臺,使用阿里巴巴開源大規(guī)模稀疏模型訓練和預測引擎 DeepRec,在稀疏模型訓練(稀疏功能、I/O優(yōu)化)和高性能推理框架層面,實現其搜廣推各類業(yè)務場景下,算法開發(fā)和上線的全鏈路優(yōu)化。
· 其中,在GPU線上推理服務優(yōu)化上,vivo使用DeepRec提供的Device Placement Optimization,以及NVIDIA CUDA multi-stream,MPS (Multi-Process Service) / Multi-context和NVIDIA GPU計算專家團隊在multi-stream基礎上開發(fā)的MergeStream功能,顯著提升了線上推理服務的GPU有效利用率。
客戶簡介及應用背景
vivo人工智能推薦算法組的業(yè)務包含了信息流、視頻、音樂、廣告等搜索/廣告/推薦各類業(yè)務,基本涵蓋了搜廣推各類型的業(yè)務。
為了支撐上述場景的算法開發(fā)上線,vivo自研了集特征數據、模型開發(fā)、模型推理等流程于一體的推薦服務平臺。通過成熟、規(guī)范的推薦組件及服務,該平臺為vivo內各推薦業(yè)務(廣告、信息流等)提供一站式的推薦解決方案,便于業(yè)務快速構建推薦服務及算法策略高效迭代。
圖片來源于vivo
vivo人工智能推薦算法組在深耕業(yè)務同時,在積極探索適用于搜索/廣告/推薦大規(guī)模性稀疏性算法訓練框架。分別探索了TensorNet/XDL/TFRA等框架及組件,這些框架組件在分布式、稀疏性功能上做了擴展,能夠彌補TensorFlow在搜索/廣告/推薦大規(guī)模性稀疏性場景不足,但是在通用性、易用性以及功能特點上,這些框架存在各種不足。
作為DeepRec最早的一批社區(qū)用戶,vivo在DeepRec還是內部項目時,就與DeepRec開發(fā)者保持密切的合作。經過一年積累與打磨,vivo見證了DeepRec從內部項目到開源再到后續(xù)多個release版本的發(fā)布。在合作中,DeepRec賦能vivo各個業(yè)務增長,vivo也作為DeepRec深度用戶,將業(yè)務中的需求以及使用中的問題積極回饋到DeepRec開源社區(qū)。
DeepRec(https://github.com/alibaba/DeepRec)是阿里巴巴集團提供的針對搜索、推薦、廣告場景模型的訓練/預測引擎,在分布式、圖優(yōu)化、算子、Runtime等方面對稀疏模型進行了深度性能優(yōu)化,提供了豐富的高維稀疏特征功能的支持?;贒eepRec進行模型迭代不僅能帶來更好的業(yè)務效果,同時在Training/Inference性能有明顯的性能提升。
圖片來源于阿里巴巴
通過業(yè)務實踐,在稀疏模型訓練層面,vivo使用DeepRec提供的基于Embedding Variable的動態(tài)Embedding功能和特征準入/淘汰功能,解決了使用TensorFlow原生EmbeddingLayer 的三個痛點,包括可拓展性差,hash沖突導致模型訓練有損,無法處理冗余的稀疏特征;并在內部嘗試對訓練數據存儲格式做I/O優(yōu)化。
圖片來源于阿里巴巴
使用動態(tài)Embedding和特征準入/淘汰功能實現的收益如下:
1. 靜態(tài)Embedding升級到動態(tài)Embedding:使用 DeepRec 的動態(tài) Embedding 替換 TensorFlow 的靜態(tài) Embedding 后,保證所有特征 Embedding 無沖突,離線 AUC 提升 0.5%,線上點擊率提升 1.2%,同時模型體積縮小 20%。
2. ID 特征的利用:在使用 TensorFlow 時,vivo 嘗試過對 ID 特征進行 hash 處理輸入模型,實驗表明這種操作對比基線具有負收益。這是由于 ID 特征過于稀疏,同時 ID 具有唯一指示性,hash 處理會帶來大量的 Embedding 沖突?;趧討B(tài) Embedding,使用 ID 特征離線 AUC 提升0.4%,線上點擊率提升 0.6%。同時配合 global step 特征淘汰,離線 AUC 提升 0.1%,線上點擊率提升 0.5%。
Embedding Variable流程示意圖,圖片來源于阿里巴巴
在I/O優(yōu)化上,目前vivo內部使用的是TFRecord數據格式存儲訓練數據,存在占用存儲空間大,非明文存儲的兩個缺陷。而DeepRec的Parquet是一種列式存儲的數據格式,能夠節(jié)省存儲資源,加快數據讀取速度。使用ParquetDataset 支持讀取Parquet文件,開箱即用,無需額外安裝第三庫,使用簡單方便。同時,ParquetDataset 能夠加快數據讀取速度,提高模型訓練的I/O性能。
vivo內部嘗試使用Parquet Dataset來替換現有TFRecord,提高訓練速度30%,減少樣本存儲成本38%,降低帶寬成本。同時,vivo內部支持hive查詢Parquet文件,算法工程師能夠高效快捷地分析樣本數據。
在高性能推理框架層面,由于在業(yè)務逐漸發(fā)展過程中,廣告召回量增長3.5倍,同時目標預估數增加兩倍,推理計算復雜度增加,超時率超過5%,嚴重影響線上服務可用性以及業(yè)務指標。因此,vivo嘗試探索升級改造現有推理服務,保證業(yè)務可持續(xù)發(fā)展。vivo借助DeepRec開源的諸多推理優(yōu)化功能,在CPU推理改造以及GPU推理升級方面進行探索,并取得一定收益。
客戶挑戰(zhàn)
在CPU推理優(yōu)化層面,vivo在使用DeepRec提供的基于ShareNothing架構的SessionGroup后,明顯緩解了直接使用TensorFlow的C++接口調用Session::Run而導致的CPU使用率低的問題,在保證latency的前提下極大提高了QPS,單機QPS提升高達80%,單機CPU利用率提升75%。
但是經過SessionGroup的優(yōu)化,雖然CPU推理性能得到改善,超時率依舊無法得到緩解。鑒于多目標模型目標塔數較多、模型中使用Attention、LayerNorm、GateNet等復雜結構、特征多,存在大量稀疏特征三點原因,vivo嘗試探索GPU推理來優(yōu)化線上性能。
應用方案
DevicePlacement Optimization:
通常,對于稀疏特征的處理一般是將其Embedding化,由于模型中存在大量的稀疏特征,因此vivo的廣告模型使用大量的Embedding算子。從推理的timeline可以看出,Embedding算子分散在timeline的各個階段,導致大量的GPUkernel launch 以及數據拷貝,因此圖計算非常耗時。
圖片來源于阿里巴巴
DevicePlacement Optimization 完全將EmbeddingLayer placed 到CPU上,解決了Embeddinglayer 內部存在的CPU和GPU之間大量數據拷貝的問題。
圖片來源于阿里巴巴
Device Placement Optimization性能優(yōu)化明顯,CPU算子(主要是Embedding Layer)的計算集中在timeline的最開端,之后GPU主要負責網絡層的計算。相較于CPU推理,Device Placement Optimization P99 降低35%。
NVIDIA CUDA Multi-Stream 功能:
在推理過程中,vivo發(fā)現單流執(zhí)行導致GPU的利用率不高,無法充分挖掘GPU算力。DeepRec支持用戶使用multi-stream功能,多stream并發(fā)計算,提升GPU利用率。多線程并發(fā)launch kernel 時,存在較大的鎖開銷,極大影響了kernel launch 的效率,這里的鎖與CUDA Driver中的Context相關。因此可以通過使用MPS/Multi-context來避免launch過程中鎖開銷,從而進一步提升GPU的有效利用率。
圖片來源于阿里巴巴
此外,模型中存在大量的H2D以及D2H的數據拷貝,在原生代碼中,計算stream和拷貝stream是獨立的,這會導致stream之間存在大量同步開銷,同時對于在Recv算子之后的計算算子,必須等到MemCopy完成之后才能被launch執(zhí)行,MemCopy和launch難以overlap執(zhí)行?;谝陨蠁栴},NVIDIAGPU 計算專家團隊在multi-stream功能基礎上進一步優(yōu)化,開發(fā)了MergeStream功能,允許MemCopy和計算使用相同的stream,從而減少上述的同步開銷以及允許Recv之后計算算子launch開銷被overlap。
圖片來源于阿里巴巴
vivo在線上推理服務中使用了multi-stream功能,P99降低18%。更進一步地,在使用MergeStream功能后,P99降低11%。
編譯優(yōu)化– BladeDISC:
Blade DISC(https://github.com/alibaba/BladeDISC)是阿里集團自主研發(fā)的、原生支持存在動態(tài)尺寸模型的深度學習編譯器。DeepRec中集成了 Blade DISC,通過使用Blade DISC內置的aStitch大尺度算子融合技術對于存在較多訪存密集型算子的模型有顯著的效果。利用Blade DISC對模型進行編譯優(yōu)化,推理性能得到大幅度提升。
Blade DISC將大量訪存密集型算子編譯成一個大的融合算子,可以大大減少框架調度和kernellaunch的開銷。區(qū)別于其他深度學習編譯器的是,Blade DISC還會通過優(yōu)化GPU不同層次存儲(特別是SharedMemory)的使用來提升了訪存操作和Op間數據交換的性能。圖中可以看到,綠色是Blade DISC優(yōu)化合并的算子替代了原圖中大量的算子。
圖片來源于阿里巴巴
圖片來源于阿里巴巴
另外,由于線上模型比較復雜,為了進一步減少編譯耗時、提升部署效率,vivo啟用了Blade DISC的編譯緩存功能。開啟此功能時,Blade DISC僅會在新舊版本模型的Graph結構發(fā)生改變時觸發(fā)編譯,如果新舊模型僅有權重變更則復用之前的編譯結果。經過驗證,編譯緩存在保證正確性的同時,幾乎掩蓋了編譯模型的開銷,模型更新速度與之前幾乎相同。在使用Blade DISC功能后,線上服務P99降低21%。
使用效果及影響
DeepRec提供大量的解決方案可以幫助用戶快速實施GPU推理。經過一系列優(yōu)化,相較于CPU推理,GPU推理P99降低50%,GPU利用率平均在60%以上。此外,線上一張NVIDIA T4 Tensor Core GPU 的推理性能超過兩臺Xeon 6330 112Core 的CPU機器,節(jié)省了大量的機器資源。
基于CPU的分布式異步訓練存在兩個問題:一是異步訓練會損失訓練精度,模型難以收斂到最佳;二是隨著模型結構逐漸復雜,訓練性能會急劇下降。未來,vivo打算嘗試基于GPU的同步訓練來加速復雜模型訓練。DeepRec支持兩種GPU同步框架:NVIDIA Merlin Sparse Operation Kit (SOK) 和Hybrid Backend。后續(xù)vivo將嘗試這兩種GPU同步訓練來加速模型訓練。
NVIDIA計算專家團隊也與DeepRec技術團隊深入合作,為在稀疏功能層面的Embedding Variable GPU 支持、在同步訓練層面的Merlin SOK 集成,以及圖優(yōu)化層面的Embedding子圖Fusion功能開發(fā)提供技術支持。
Embedding Variable GPU 支持介紹:
DeepRec設計并提供了一套支持動態(tài)Embedding語義的Embedding Variable,在特征無損訓練的同時以最經濟的方式使用內存資源,使得超大規(guī)模特征的模型更容易增量上線。?進一步地,因為GPU具有強大的并行計算能力,對于Embedding Variable底層的HashTable 查找、插入等操作也具有明顯的加速作用。同時,對于模型計算部分若使用GPU,則使用GPU上的EmbeddingVariable 也可避免Host和Device上的數據拷貝,提高整體性能。因此增加了Embedding Variable 的GPU支持。
GPU版本的Embedding Variable通過NVIDIA cuCollection 作為底層Hash Table的實現,可以明顯加速Embedding相關的操作,而且使用方便,在具有NVIDIA GPU的環(huán)境中會自動啟用,也可以手動放置在合適的GPU設備上。性能測試顯示GPU版本相比于CPU版本,Embedding部分會有2倍以上的加速。
分布式訓練集成Merlin SOK介紹:
DeepMerlin SOK 是NVIDIA Merlin團隊基于Merlin SOK提供的針對神經網絡中稀疏操作的加速插件庫,使用DeepMerlin SOK 可對DeepRec中相關的Embedding操作進行加速和分布式訓練的支持。
該SOK的設計理念就是希望同時兼容靈活性和高性能。在靈活性方面,使用SOK不會對用戶使用 DeepRec本身的功能有影響,可以和DeepRec提供的Embedding Variable 完全兼容,也會集成到 DeepRec的高級接口方便用戶的使用。在高性能方面,SOK主要從兩方面去考慮,一方面,在算法設計上,通過reduce操作來減少搬運的數據量,另一方面,在實現上,主要通過算子融合技術,融合多表的查詢和通信,提供稀疏操作的性能。性能測試顯示SOK能夠提供接近于線性的擴展能力,在8 GPU下相比1 GPU能夠達到6.5倍的加速效果。
Embedding子圖Fusion功能介紹:
DeepRec及TensorFlow原生的embedding lookup 相關API,如safe_embedding_lookup_sparse,會創(chuàng)建比較多細碎的算子,且部分算子只有CPU實現。因此在GPU上執(zhí)行時容易出現kernel launch bound 的問題以及額外H2D& D2H 拷貝,造成低GPU利用率,降低執(zhí)行速度。
針對此場景,NVIDIA計算專家團隊與DeepRec合作,共同定制開發(fā)了支持在NVIDIA GPU上執(zhí)行的Embedding子圖Fusion功能,并對GPU高算力高吞吐的特點進行了針對性優(yōu)化:提供一組接口以及相關Fusion算子,通過算子融合,減少需要launch的kernel數量,優(yōu)化訪存,提供高性能的實現,達到加速執(zhí)行的目的。
Embedding Fusion 功能易用,從Python層面提供接口及開關,用戶無需修改代碼即可快速使用。加速效果方面,單獨從Embedding模塊看,GPU Embedding Fusion 可以提供2倍左右的加速。從整體模型來看,加速效果取決于Embedding模塊的耗時占比。在幾個測試模型上,此功能可以提供1.2倍左右的整體性能加速。
英偉達(NVIDIA) Tesla T4 A40 V100 A100 H100 A800顯卡GPU Quadro GV100 32G
進入購買
英偉達(NVIDIA)GeForce RTX4090 公版顯卡 深度學習AI高性能計算GPU新架構 NVIDIA RTX4080 16G 公版
進入購買
標簽:
相關閱讀
-
世界時訊:NVIDIA助力DeepRec為vivo推薦業(yè)務實現高性能GPU推理優(yōu)化
簡介·本案例中,vivo人工智能推薦算法組自研的推薦服務平臺,使用阿里巴巴開源大規(guī)模稀疏模型訓練和預...
2023-01-21 -
OLED版iPad Pro或將于2024年發(fā)布
中關村在線消息:據韓媒曝光,蘋果目前正在為iPadPro、MacBookPro準備OLED屏幕版本,將于2024年、2026年...
2023-01-21 -
播報:Intel關閉非K/KF處理器超頻!13代酷睿再也不能超了
對于Intel處理器來說,超頻一直是K KF系列型號的專利,但是在12代酷睿上,有玩家意外發(fā)現,非K系列也能...
2023-01-21 -
售價不到3300元?曝RTX 4060 Ti將提供RTX 3070性能
據videoCards報道,NVIDIA新中端GPU的定價和性能傳聞開始浮出水面。七彩虹(Colorful)iGameGeForceRTX3...
2023-01-21
OLED版iPad Pro或將于2024年發(fā)布
中關村在線消息:據韓媒曝光,蘋果目前正在為iPadPro、MacBookPro準備OLED屏幕版本,將于2024年、2026年...
世界時訊:NVIDIA助力DeepRec為vivo推薦業(yè)務實現高性能GPU推理優(yōu)化
簡介·本案例中,vivo人工智能推薦算法組自研的推薦服務平臺,使用阿里巴巴開源大規(guī)模稀疏模型訓練和預...
【新要聞】摔角動態(tài)芬·巴洛爾 不急于轉戰(zhàn)主秀 我將長期留在NXT
今日芬·巴洛爾(FinnBálor)接受了泰茲(Taz)的播客專訪,巴洛爾被問及何時加入主秀的問題。這位現任的NX...
天天看點:摔角動態(tài)NXT選手回歸獨立屆直闖冠軍劇情
上一周前NXT選手所羅門·克勞(SolomonCrowe)向公司提出離職請求,得到了公司的批準。不少人猜測他將以很...
華碩4080顯卡4K暢玩 性能倍增實力拉滿
華碩ROGSTRIXRTX4080顯卡基于全新AdaLovelace架構的GPU,在性能和效率上都實現了巨大的代際飛躍,AdaLov...
播報:Intel關閉非K/KF處理器超頻!13代酷睿再也不能超了
對于Intel處理器來說,超頻一直是K KF系列型號的專利,但是在12代酷睿上,有玩家意外發(fā)現,非K系列也能...
世界觀察:Meta 回望2022:深度賦能,全方位支持中國企業(yè)出海
回望2022,依然是充滿了挑戰(zhàn)和不確定性的一年,中小企業(yè)依然面臨疫情反復影響供應鏈,以及市場需求,通...
售價不到3300元?曝RTX 4060 Ti將提供RTX 3070性能
據videoCards報道,NVIDIA新中端GPU的定價和性能傳聞開始浮出水面。七彩虹(Colorful)iGameGeForceRTX3...
天天熱門:摔角動態(tài)楊二姐將再戰(zhàn)新日摔 對手已定 痛苦制造者形象惹嘩然
摔角網訊,雖然如今克里斯·杰里科(ChrisJericho)為全職巨星,并且手握世界冠軍,不過他同新日摔的合作...
環(huán)球微速訊:五華區(qū)向東川區(qū)、宜良縣捐獻價值120余萬元的抗疫物資
1月18日,五華區(qū)開展“余藥互濟”行動抗疫物資愛心捐獻交接儀式,向建立互幫互助關系的東川區(qū)、宜良縣捐...
天天快訊:2020賽季中甲球隊泰州遠大內蒙古中優(yōu)北京人和無緣該名單
足協29日在官網公布獲得2021賽季職業(yè)聯賽準入資格俱樂部名單,其中,中超衛(wèi)冕冠軍江蘇隊,2020賽季中甲...
熱資訊!中信國安集團等七家公司重整計劃草案獲批 進入執(zhí)行階段
1月19日,ST國安發(fā)布公告稱,中信國安集團等七家公司重整計劃草案獲法院批準,歷時一年的司法重整程序終...
全國中小學生創(chuàng)新作文大賽2021(全國中小學生創(chuàng)新作文大賽)
第十五屆“雨花獎”全國中小學生作文大賽即日起正式啟動。高中作文寫作的內容和要求如下:首先,競賽的...
男足將于上海和中超河南嵩山龍門隊進行本期集訓的首場熱身賽
3月30日下午4點,男足將于上海,和中超河南嵩山龍門隊進行本期集訓的首場熱身賽,陳戌源親自督戰(zhàn)!這次本...
世界新消息丨戴爾d43手機測評(戴爾d43)
一、題文戴爾StreakProD43其中的Streak二、解答Streak只是D43的系列名 如索愛的MT15i LT18i LT26i等等屬于Xperi
熱消息:摔角動態(tài)肥喬會長期留守解說席嗎?外媒給出最新說法
摔角網訊,自從薩摩亞·喬(SamoaJoe)確認成為RAW解說員之后,肥喬何時可以回歸擂臺便一直都是粉絲關注的...
當前時訊:谷歌宣布裁員12000人,CEO發(fā)內部信稱專注于關鍵優(yōu)先事項
谷歌SEO孫達爾·皮柴(SundarPichai)在發(fā)給員工的電子郵件中宣布了裁員計劃。谷歌將裁員約12000人,約占...
觀察:八四消毒液為什么叫八四消毒(八四消毒液中的八四指的是什么)
一、題文84消毒液是一種以次氯酸鈉(NaClO)為主要成分的高效消毒劑。新冠疫情期間,84消毒液成為人們爭...