操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    作者| 阿里文娛高級專家 隨方,阿里文娛開發專家 軒成責編 | 屠敏頭圖 | CSDN 下載自視覺中國

    背景

    在阿里的業務中,有廣泛的算法應用場景,也沉淀了相關的算法應用平臺和工具:基礎的算法引擎部分,有成熟的召回和打分預估引擎、在線實時特征服務;推薦算法應用領域,有算法實驗平臺TPP(源于淘寶個性化平臺),提供形式的算法實驗平臺,包括資源彈性伸縮,實驗能力(代碼在線發布、AB分流、動態配置),監控管理(完善的監控報警、流控、降級)等能力,是算法在線應用的基石。

    但在實際的算法應用業務中,比如優酷推薦業務,算法應用場景眾多(100+活躍場景),需求靈活多變,如果沒有一套通用業務框架,用于抽象出通用和定制化的部分來提高算法組件的復用度;會嚴重拖慢算法實驗的節奏。基于圖引擎的算法服務框架就是為了封裝一套框架,抽象算法在線服務的通用算子圖的應用算法有哪些,支持運行時的算法流程的裝配,提升算法服務場景搭建的效率。

    設計概覽

    算法推薦典型在線處理執行流程:多路粗排召回,合并,預估,打散策略。推薦服務根據用戶的設備ID等其他必要信息進行多路并行召回,在召回引擎中進行粗排后,經過必要的過濾處理,截取一定數量的內容調用Rank引擎進行精排預估,預估結果經過一系列算法策略處理后輸出最終結果。

    整個過程中召回,合并,預估,打散等業務處理有并行處理,有串行處理,根據業務需要能夠靈活配置。基于圖的推薦業務執行引擎是運行在算法實驗平臺上的執行引擎,它的典型處理流程是:在AB實驗分桶上,通過圖形化交互頁面配置數據源、業務算子的執行依賴關系,并配置每個算子的運行時動態參數。

    系統總體結構如下圖所示:分成五個主要的模塊(圖執行算子元件、圖形化配置DAG、圖配置動態解析、DAG圖執行引擎、Debug調試)。

    圖:系統總體架構

    當推薦請求到達時,引擎讀取AB參數,根據參數上配置的算子信息創建算子實例,根據算子的依賴關系配置動態組裝成可運行的DAG。根據條件分支配置,動態裁剪運行時的DAG實例,根據圖運行占用最大線程數配置,動態調整線程復用。算子通過算法實驗平臺的底層協程池并行運行。

    關鍵模塊

    1. 圖執行算子元件

    1)數據集

    在DAG圖中流轉的數據統一封裝為數據集,數據集是結構化多行二維數據的封裝,在數據集上封裝便利的基礎算子操作。

    數據集上一系列處理操作基于Java的 API來進行處理,以此來達到集合處理的最好性能,將非操作延遲到最后數據處理時運行。

    數據集支持同步數據和異步數據讀取,通過異步數據讀取方式,可以延遲數據的解析和避免IO的等待,在使用時才進行數據的解析。

    2)數據源

    將能夠返回數據或者數據交互的二方服務封裝為通用數據源,所有業務算子圍繞數據源的數據進行業務開發,通用數據源包括召回數據集、在線算法需要的輔助數據集(如存放在KV內存存儲的旁路召回數據、特征等數據)、打分預估結果集、內存數據源等等。

    數據源的封裝通過動態參數配置方式實現通用性和可擴展性。數據查詢只需要修改配置即可實現數據獲取圖的應用算法有哪些,不需要開發代碼。

    3)基礎算子

    在數據集上封裝的基本操作作為基礎算子,比如Join、Union、、Sort、Map、等流式操作。在上重新封裝相關API,便于對進行流式處理。對于大多數非類操作,通過流處理API延遲處理。

    4)業務算子

    召回、預估、合并、打散、過濾等業務操作封裝為業務算子,在業務算子中可以查詢數據源,返回數據集后通過基礎算子計算得到結果。最終業務圖中執行單元為業務算子和數據源,業務圖中通過對數據源和業務算子的依賴關系進行配置,表達業務邏輯。

    2.圖形化配置DAG

    算子實現代碼上通過標注的方式聲明算子可配屬性的相關描述,比如屬性名稱、屬性類型、描述、取值范圍、是否必填等。圖形化配置頁面讀取算子元數據識別算子可配信息在頁面展現。通過拖拽的方式將算子組成DAG執行圖,平臺內部實現圖配置和AB配置的互相轉換和兼容,DAG圖結構的保存同時會轉換為AB鍵值配置并保存。同時支持配置實時刷新和算子元數據更新。通過分組的方式將大圖拆分為多個子圖,便于圖展現和維護。

    圖:圖形化配置

    3.配置動態解析和優化

    1)根據AB配置實時變更圖執行結構

    圖引擎在運行時為了減少解析圖結構的耗時,將圖結構進行了緩存,在AB配置更新時需要實時反映到圖引擎中,所以根據圖配置的哈希值校驗的方式檢測圖配置是否更新,圖結構變更后會重新創建引擎實例。

    2)子圖并行線程優化

    在DAG執行時,所有算子都交給線程池異步運行,但是在大多數情況下子圖可能是一個順序執行圖,不需要并行,不應該占用其他線程,所以在圖執行時,動態根據依賴關系識別節點是否需要占用新線程運行。

    3)條件分支動態裁剪

    如果圖結構中存在條件節點,會根據條件節點的動態結果裁剪后續圖節點的運行。如果一個圖節點的執行條件為否,后續單獨依賴它的節點都不會運行,條件節點具備傳遞性。如果后續節點不單獨依賴不運行的節點,則當前節點可運行。

    4.DAG圖執行引擎

    1)并發控制

    通過圖中依賴關系自動解析節點需要通過并行還是串行執行,最大程度復用線程,減少線程切換帶來的開銷。圖執行過程中,并不是線程開的越多越好,在圖中可以配置最大并發線程數來控制圖的最大并發度,防止并行過多造成開銷過大。

    2)超時控制

    通過整個圖上配置超時時間來控制圖的超時,根據業務粒度,會將子業務配置為子圖,從而通過控制子圖的超時時間來控制子業務的超時時間。

    3)異步化執行

    算子在圖中的運行是全異步化的,算子之間通過模式進行依賴觸發。

    4)通過協程優化異步執行

    支持協程,在JVM層面可以將線程優化為協程執行。讓用戶的代碼能夠輕量級地分配到多個核上充分利用機器資源,同時遇到阻塞邏輯,也能夠通過運行時主動掛起任務,將線程讓出給隊列中的任務。

    DAG運行依賴線程池運行,算法實驗平臺提供了基礎線程池,并同時將線程池在JVM內部優化為協程,通過壓測比對,在IO阻塞邏輯比較多的情況下,協程池的性能要優于普通線程池。

    5.Debug調試

    1)線程調用樹

    在所有算子運行時都會通過性能分析工具在最小影響執行性能的情況下記錄節點的耗時時間,通過組裝為調用樹的形式進行輸出,在整個請求超時情況下,輸出到對應日志,便于性能和問題分析。

    2)Debug

    在開發時會用到本地調試能力,通過開發SDK本地運行代碼,同時將并行圖改為串行運行方便本地調試。

    3)日志信息

    在圖框架運行時會捕捉算子運行異常等信息,通過日志文件和統計的方式進行輸出,在頁面進行報表呈現和監控。

    典型業務應用

    1.典型串行圖化改造

    以推薦場景的簡單業務邏輯舉例,通過圖化執行提高業務算子并行度,降低延時。

    圖:典型串行圖化改造

    在圖架構之前,模塊的封裝都以串行邏輯運行,其中會存在一些可并行優化的處理邏輯。比如在播放過濾和內容池過濾部分,內容池的查詢和播放內容的查詢本身是不相關,沒有直接依賴,是可并行執行的操作。在串行編碼情況,實際執行邏輯維持串行邏輯。

    通過圖化改造后,將查詢內容池部分和查詢播放內容部分提取為算子,在圖中并行執行,被過濾算子依賴,這樣可以最大程度的并發執行,充分利用CPU,減少執行延時。

    2.典型業務執行圖

    以推薦典型業務場景為例,對整個圖進行分解。

    圖:典型業務執行圖

    業務大圖:包含多路召回,后續通過模型混排合并、打散、策略執行返回最終結果。

    分支子圖:單獨一路召回子圖中,包含了不同類型的召回,通過過濾、排序、策略合并得到單路結果。

    :策略合并算子會基于圖中流轉的數據集,使用數據集包裝的基本API進行數據集的訪問操作。

    基礎數據源:業務算子中通過封裝的通用BE、、Tair等數據源接口查詢或寫入數據。

    通過業務子圖、基礎數據集、基礎數據源等層面的將業務進行分解,基礎數據集API和通用數據源算子和業務無關,業務層通過使用基礎API進行業務算子實現和依賴組成最后業務邏輯圖。最終達到業務層、基礎層的復用。

    總結&展望

    基于圖引擎的算法服務框架建設,通過抽象算法業務的通用組件,提供圖形化流程編排工具和圖執行引擎,實現了0代碼、配置化支持算法業務需求。為快速的算法應用,不斷提升用戶的個性化服務打下了堅實基礎。對推薦、搜索、廣告等算法應用業務有參考價值。

    接下來,為了進一步提升引擎性能,我們將在構圖優化和引擎執行性能上做優化,在保持業務表達靈活簡潔的同時,追求更優的執行性能。

    更多精彩推薦

    ?Facebook 公司:如何清除 960 萬句“臟話”?

    ?Linux 之父怒刪工程師提交的補丁,稱“太蠢了”網友:懟得好!

    ?張一鳴是如何練就字節跳動的

    ?性能超越最新序列推薦模型,華為諾亞方舟提出記憶增強的圖神經網絡

    ?DevOps 在移動應用程序開發中扮演什么角色?

    ?穩定幣經濟:十大穩定幣簡史

    你點的每個“在看”,我都認真當成了喜歡

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有