日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 架構師社區(qū)
[導讀]Angel是騰訊自研的分布式高性能的機器學習平臺,支持機器學習、深度學習、 圖計算,以及聯(lián)邦學習等場景。Angel的深度學習平臺已應用在騰訊的很多個場景中,所以今天會為大家介紹Angel:深度學習在騰訊廣告推薦系統(tǒng)中的應用實踐。



Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐


分享嘉賓:郭躍超 騰訊 應用研究員

編輯整理:康德芬

出品平臺:DataFunTalk


導讀: Angel是騰訊自研的分布式高性能的機器學習平臺,支持機器學習、深度學習、 圖計算以及聯(lián)邦學習等場景。 Angel的深度學習平臺已應用在騰訊的很多個場景中。 所以今天會為大家介紹Angel:深度學習在騰訊廣告推薦系統(tǒng)中的應用實踐,介紹的內容會圍繞著下面幾點展開。
  • Angel機器學習平臺

  • 廣告推薦系統(tǒng)與模型

  • 模型訓練和優(yōu)化

  • 優(yōu)化效果

01
Angel機器學習平臺

1. Angel機器學習平臺架構

Angel機器學習平臺是騰訊自研的基于傳統(tǒng)Parameter Server架構的高性能分布式的機器學習平臺如圖1所示,詳細架構圖如圖2所示。它是一個全棧機器學習平臺,支持特征工程、模型訓練、模型服務、參數(shù)調優(yōu)等,同時支持機器學習、深度學習、圖計算和聯(lián)邦學習等場景。已經(jīng)應用在眾多業(yè)務如騰訊內部廣告、金融和社交等場景,吸引了包括華為、新浪、小米等100多家外部公司的用戶和開發(fā)者。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig1 Angel機器學習平臺
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig2 Angel機器學習平臺架構圖

Angel機器學習平臺設計時就考慮到了很多問題,首先是易用性,Angel機器學習平臺編程接口簡單,可快速上手使用,支持訓練數(shù)據(jù)和模型的自動化切分,減少用戶的干預,簡單易用。然后是可擴展性方面,Angel提供了PsFun接口,繼承特定的類可實現(xiàn)自定義參數(shù)更新邏輯和自定義數(shù)據(jù)格式和模型切分方式等。之后是靈活性,Angel實現(xiàn)了ANGEL_PS_WORKER和ANGEL_PS_SERVICE兩種模式,ANGEL_PS_WORKER模式下模型的訓練和推理服務由Angel平臺自身的PS和Worker完成,這種模式主打速度。而ANGEL_PS_SERVICE模式下,Angel只啟動Master和PS,具體的計算交給其他計算平臺(如Spark,TensorFlow)負責,Angel只負責提供Parameter Server的功能,主打生態(tài)來擴展Angel機器學習平臺的生態(tài)位。Angel通信模式支持BSP、SSP、ASP等通信協(xié)議,滿足各種復雜的實際通信環(huán)境的要求。最后是穩(wěn)定性,Angel的PS容錯采用CheckPoint模式,Angel每隔一段時間會將PS承載的參數(shù)寫入到分布式存儲系統(tǒng)中,如果某個PS實例掛掉,PS會讀取最后一個CheckPoint重新進行服務。Angel的Worker容錯方面,如果Work掛掉,Master會重新啟動一個Work實例,該實例會從Master上獲取掛掉時參數(shù)迭代信息。Angel的Master任務信息也會定期存儲到分布式存儲系統(tǒng)中,如果Mater掛掉,會借助Yarn Master重啟機制重新拉起一個Master并加載信息從之前的斷點開始任務。Angel還有有慢work檢測機制,如果某個Work運行過慢其任務會被調度到其他的Work上進行。

Angel機器學習平臺任務提交執(zhí)行簡單,具體步驟如圖3所示,進入Cient后,啟動一個PS實例,該PS會從Client端加載模型,之后Client會啟動多個Work,Work會加載訓練數(shù)據(jù)開始訓練和學習,push和pull會進行參數(shù)的拉取和更新,訓練完成后將模型存入指定的路徑。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig3 Angel機器學習平臺提交執(zhí)行流程圖

Angel機器學習平臺在代碼結構設計上做了很多的抽象,這樣的設計方式可擴展性強,整個結構主要分為四層如圖4所示。核心層(Angel-Core)是基礎層,主要包括PSAgent、PSServer、Work、Network和Storage等。機器學習層(Angel-ML)提供基礎數(shù)據(jù)類型和方法,同時用戶可根據(jù)PsFunc定義自己的方法把私有模型接入。接口層(Angel-Client)可插拔式擴展,支持多種用途比如接入TensorFlow和pyTorch等。算法層(Angel-MLLib)提供了封裝好的算法如GBDT、SVM等。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig4 Angel機器學習的代碼結構

2. Angel機器學習平臺在深度學習方向上的拓展和應用

深度學習常用的分布式計算范式有兩種,分別是MPI ( 基于消息模型的通信模式 ) 和Parameter Server,如圖5所示。這兩種范式均在Angel平臺上有實現(xiàn),對于Parameter Server范式的實現(xiàn)如圖6所示,Angel Work可通過Native C++的API接口接入常用的深度學習的OP如PyTorch或者Tensorflow等,在訓練的起始端Angel PS會把模型Push到每個Worker上,Worker會加載到對應的OP上進行訓練,每次訓練完成后會將梯度信息回傳到PS上進行融合,以及應用優(yōu)化器得到更新的參數(shù),完成后又會分發(fā)到每個Worker上,重復上述過程直到訓練結束,最終將模型保存到指定路徑。這種方案Angel PS提供了一個梯度PS的控制器,來接入多個分布式的Worker,每個Worker上可以運行一些通用的深度學習框架例,這種方案PyTorch版本的工作我們已經(jīng)完成,并已經(jīng)開源了(PyTorch on Angel)。另外一種是MPI AllReduce范式如圖7所示,這種范式梯度信息是通過AllReduce方法進行融合的,在這種范式的實現(xiàn)上,Angel PS是一個進程控制器,會在每個Work上拉起一個進程,這個進程可以是PyTorch或者是Tensorflow等進程,這種范式對用戶侵入少,用戶開發(fā)的算法不需要太多的修改即可接入到Angel平臺進行訓練。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

MPI 范式

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Parmeter Server范式

Fig5 深度學習領域分布式計算常用的兩種范式
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig6 Parameter Server范式在Angel上的實現(xiàn)
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig7 Allreduce范式在Angel上的實現(xiàn)
02
廣告推薦系統(tǒng)與模型

1. 騰訊的廣告推薦系統(tǒng)

騰訊大數(shù)據(jù)示意圖,如圖8所示,在線業(yè)務的數(shù)據(jù)如微信游戲等會通過消息中間件實時地傳遞到中臺系統(tǒng),中臺系統(tǒng)包括實時計算、離線計算、調度系統(tǒng)和分布式存儲,這些數(shù)據(jù)有的會進行實時計算有的會進行離線計算,數(shù)據(jù)的應用也是從消息中間件中獲取其需要的數(shù)據(jù)。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig8 騰訊大數(shù)據(jù)平臺

騰訊的推薦廣告推薦系統(tǒng)業(yè)務分層如圖9所示,用戶發(fā)送一個請求后會去拉取用戶地畫像特征,之后會對廣告庫的廣告進行一個初步地排序和打分,打分之后會提取用戶地特征信息,同時將廣告庫的ID數(shù)量降為百級別,在這個百級范圍內會有一個精細的排序,完成后將廣告推送給用戶。整個推薦系統(tǒng)面臨著下面的幾大挑戰(zhàn),首先是數(shù)據(jù)來源多樣化,數(shù)據(jù)既有線上數(shù)據(jù)也有歷史落盤數(shù)據(jù)。其次是數(shù)據(jù)的格式多元化,包括用戶信息、Item信息、點擊率和圖像等數(shù)據(jù)的多元格式。然后是增量數(shù)據(jù)多,用戶請求頻繁,廣告庫也在不斷更新中。最后是訓練任務多元化,整個推薦系統(tǒng)涉及到粗排、精排、圖像檢測和OCR等任務。為了解決上述問題,我們在精準排序任務上開發(fā)了一整套的軟件框架"智凌"(基于TensorFlow)來滿足訓練需求。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig9 騰訊廣告推薦系統(tǒng)

"智凌"框架結構如圖10所示,該框架最底層C++ core封裝了MQ receiver和深度學習框架的一些OP類,最典型的是TensorFlow的dataset類,通過封裝tensorflow的dataset類來提供從MQ獲取數(shù)據(jù)的能力。數(shù)據(jù)抽象和處理在C++和Python上完成。然后是深度學習的framework(tensorflow)層提供各種深度學習的庫。最后是具體的應用模型如DSSM、VLAD和一些圖像算法的模型等。"智凌"軟件框架具有算法封裝完整、開發(fā)新模型較快、數(shù)據(jù)和算法隔離解耦較好、預處理邏輯方便修改和更新及兼容性好等優(yōu)點,但同時對于Tensorflow框架侵入性修改多、單機多卡性能差、多機分布式不支持、算法和OP層面優(yōu)化不夠完全等缺點。圖11是"智凌"在基礎數(shù)據(jù)上的訓練流程圖,從圖中看到從消息中間件中讀取數(shù)據(jù)到本地的DataQueue中,DataQueue給每個在GPU節(jié)點上的模型分發(fā)Batch數(shù)據(jù)然后進行訓練,訓練完成后讀取到CPU進行梯度融合和備份然后分發(fā)給各個GPU進行再訓練,這種設計是面向單機結構的設計,CPU去實現(xiàn)梯度的融合和優(yōu)化器的功能,CPU資源消耗大,這種設計很不合理,針對這種情況我們做了很多的優(yōu)化后面會向大家介紹。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Fig10 "智凌"框架結構
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig11?"智凌"在基礎數(shù)據(jù)上的訓練流程圖

2. 騰訊的廣告推薦系統(tǒng)中的模型

DSSM增強語義模型如圖12,在這里我們用該模型來計算用戶和推薦ID之間的相關性并在此基礎上計算用戶對給定推薦ID的點擊率,相關性和點擊率計算公式分別是:

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

DSSM模型較為簡單,分為Quey Id和Item Id并表達為低維語義向量,然后通過余弦距離來計算兩個語義向量之間的距離。通過模型計算Query和Item之間的相關性,打分最高點就是我們要推薦的Item, 廣告推薦系統(tǒng)中的DSSM模型要支持以下一些新的需求點:

  • ID類特征維度億級別;

  • 變化快,每周有25%是新條目,支持增量訓練。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig12 DSSM模型

VLAD/NetVLAD/NeXtVLAD等模型我們主要用來判斷兩個廣告之間的距離關系,傳統(tǒng)的VLAD可以理解為一個聚類合并的模型,其向量計算公式為:

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

NeXtVLAD如圖13則通過將ak符號函數(shù)變成一個可導函數(shù)來得到一個更好距離效果,NeXtVLAD的向量計算公式為:

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

其中,Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig13 NeXtVLAD模型

YOLO V3如圖14是圖像處理模型,在這里我們將其應用在OCR業(yè)務最前端做初檢,它的特點是圖片輸入尺寸大(608*608,1024*1024),也因此YOLO模型的Loss部分占據(jù)比較大的計算。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Fig14 YOLO V3模型
03
模型訓練和優(yōu)化

1. 數(shù)據(jù)流優(yōu)化

前面的介紹中我們知道"智凌"軟件框架是單管道數(shù)據(jù)流,現(xiàn)在我們將其優(yōu)化為多管道如圖15所示,即通過多機多數(shù)據(jù)流來解決單機IO瓶頸問題。原來的單管道數(shù)據(jù)中會有DataQueue,如果數(shù)據(jù)流很大會對IO造成很大的壓力,優(yōu)化為多對管道后為每一個訓練進程GPU定義了一個DataQueue,通過這種分布式方法來有效解決IO瓶頸問題。這種情況下的管理工作是通過Angel PS(AllReduce版本)進程控制器來進行管理的。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig15 "智凌"的多管道結構

2. Embedding計算優(yōu)化

Embedding Lookup過程常會碰到如果在hash之前進行SparseFillEmptyRows操做會對空行填充默認值,增加過多的字符串操做,優(yōu)化后我們先做hash操做然后再做SparseFillEmptyRows操做,去除耗時過多的字符串操作 ( 百萬級別 ),節(jié)省CPU算力來提升QPS,此優(yōu)化單卡性能約有6%的提升。

3. 模型算法層面優(yōu)化

YOLO的Loss計算量較大,我們對其進行了特殊的優(yōu)化。YOLO模型有三個Feature map層,傳統(tǒng)尋找正負樣本的時候,真正的Bounding box會在Feature map上會做一個遍歷比較,先橫向遍歷然后再縱向遍歷,遍歷的過程中尋找Feature map點和Bounding box IOU最大的值作為正樣本。因為圖像的size很大,所以Feature map也很大,這使計算Loss耗時過長。計算Loss優(yōu)化方法如下,由于x軸方向上的塊和y軸方向上的塊關于對角線對稱,所以我們計算Feature map和Bounding box 的IOU的時候按照中軸線對角點方向進行遍歷如圖16所示。先計算對角線方向上的的塊,然后再計算每個feature map塊兩邊的塊。這種優(yōu)化方法可減少大量的計算量。另外,在某個點上向兩邊遍歷所有的Feature map塊的時候有一些計算技巧特點,比如往右上開始遍歷的時候,x軸與y軸是關于對角線對稱變化的,我們可以預估這種變化,從而有意識地去尋找最大的Anchor位置,然后丟棄其他信息,通過這樣的優(yōu)化方法也可以大量的減少計算量。我么通過上述方法優(yōu)化了Loss計算之后單卡性能有約10%的提升。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig16 YOLO V3優(yōu)化示意圖
04
優(yōu)化效果

通過在模型層面和數(shù)據(jù)層面的優(yōu)化,以及Angel平臺應用到整個控制流程中,DSSM的單卡性能有33倍的提升,VLAD有22倍的提升,YOLO有2.5倍的提升如圖17所示。圖18、19、20是詳細測評結果,它們有三種類型的測試模式,分別是訓練數(shù)據(jù)通過TDbank(騰訊自研的MQ系統(tǒng))線上拉?。〞r延包括網(wǎng)絡傳輸、數(shù)據(jù)packing等);本地數(shù)據(jù)讀取,訓練數(shù)據(jù)預先存放本地磁盤(時延包括磁盤IO,數(shù)據(jù)映射預處理);Benchmark模式訓練數(shù)據(jù)放內存(時延僅包括數(shù)據(jù)映射預處理)。從圖18中看到Benchmark不考慮數(shù)據(jù)讀取前的延時基本能把整個系統(tǒng)計的算能力跑滿這是一個準線性地提升??紤]到實際的數(shù)據(jù)是從MQ中讀取,在1卡中提升不大TPS為3000多,2卡QPS為4000多,兩機兩卡TPS達到6000多,所以隨著多機越多,訓練性能達到線性的提升, VLAD-CTR模型的測試具有相同的結果。YOLO V3優(yōu)化后1機1卡有2.5倍的性能提升,1機8卡有7.2倍的提升。

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig17 優(yōu)化后的性能提升結果
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig18 優(yōu)化后的DSSM-CVR模型性能提升結果
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig19 優(yōu)化后的VLAD-CTR模型性能提升結果
Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐
Fig20 優(yōu)化后的YOLO V3模型性能提升結果
05
總結

今天主要和大家分享了三部分的內容,第一部分內容是介紹了騰訊的Angel機器學習平臺和其在深度學習方向上的拓展和應用,第二部分的內容是介紹了騰訊廣告推薦系統(tǒng)的特點和常用模型,最后一部分的內容介紹了Angel深度學習在騰訊廣告推薦系統(tǒng)中的應用,模型訓練和優(yōu)化,以及取得的效果。

嘉賓介紹:

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

郭躍超

騰訊?|?應用研究員

郭躍超,畢業(yè)于北京大學,主要研究方向是異構加速計算,分布式系統(tǒng)的設計開發(fā)和優(yōu)化,語音/NLP等領域的算法優(yōu)化等。目前在騰訊主要負責Angel平臺的深度學習方面的新技術研究,開發(fā)和業(yè)務場景的落地應用。

特別推薦一個分享架構+算法的優(yōu)質內容,還沒關注的小伙伴,可以長按關注一下:

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

長按訂閱更多精彩▼

Angel:深度學習在騰訊廣告推薦系統(tǒng)中的實踐

如有收獲,點個在看,誠摯感謝

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉