一站式機器學習平臺Deepthought的建設與初探
愛奇藝除了在音影片、推薦等深度學習的AI應用以外,也有不少資料探勘、資料分析的傳統機器學習應用場景,例如使用者預測、風控等。傳統的研發模式的痛點,就是會給演算法人員和業務人員一些不便利,具體如下:
1. 使用者程式碼基於單機指令碼實現,處理環節長、耦合高,難以修改和擴充套件,長久以來可讀性降低;
2. 同一業務下多個場景、同一場景下多個模型,在資料處理、模型訓練等技術流程上類似,場景重複步驟和資料結果難以重複利用;
3. 場景不同導致存在週期訓練、定時預估、實時預估等需求,對業務人員和演算法人員的程式碼要求高,維護成本高;
4. 演算法人員和業務人員對分散式機器學習的開發存在技術壁壘,導致資料量和模型複雜度受單機資源限制;
基於以上痛點,愛奇藝開發了面向通用的機器學習場景的一站式機器學習平臺Deepthought,可實現視覺化互動,能更加直觀便捷的搭建適合業務場景需要的架構,以及實時預估服務,是演算法模型部署至實際業務的重要環節。
Deepthought在開發之初即考慮了以下基本業務需求:
1. 核心演算法基於分散式機器學習框架封裝,以開源封裝為主、自研實現為輔,滿足快速上線基本演算法需求;
2. 對於機器學習和資料探勘各個環節解耦,滿足不同環節的輸出結果可複用;
3. 與大資料平臺通天塔深度融合,利用通天塔管理的專案、資料、排程實現機器學習任務的線上、離線場景的執行;
4. 減輕使用者程式碼開發壓力,透過視覺化互動和配置方式,實現機器學習任務的編排,提升演算法模型搭建效率。
Deepthought v1.0版,面向具體業務的機器學習平臺
屬於反作弊業務使用的機器學習平臺,主要將反作弊業務中的機器學習流程各個階段解耦合,同時管理反作弊業務中的業務資料,例如黑名單、樣本、特徵管理。Deepthought v1架構如下圖所示。
Deepthought基於Spark ML/MLLib封裝了業務常用二分類模型,以及常用資料預處理過程,例如缺失值填充、歸一化等。
Deepthoughtv2.0版,面向通用業務的機器學習平臺
所有資料處理和演算法執行透過元件的方式管理和排程。演算法的擴充套件除了核心邏輯和排程指令碼外,所有元件資訊和配置項都可透過後臺配置管理完成,前端互動時動態渲染元件的所有配置資訊。
演算法擴充
在v2我們持續增加了多個機器學習演算法,其中包括監督學習二分類、多分類、迴歸演算法,非監督學習的聚類、圖類演算法,多種資料預處理演算法以及多種演算法評估和資料分析視覺化元件,基本滿足傳統機器學習所有場景的需要。
視覺化互動
每一個機器學習的步驟,以元件的方式管理和使用。使用者透過對元件的拖拉拽方式的互動操作,能更加直觀便捷的搭建適合業務場景需要的架構,可實現的業務場景也更加靈活開放。另外,前端也提供了一系列標註化的報表控制元件,系統即時讀取的報表資料可動態渲染成視覺化報表。
離線定時排程任務
與大資料平臺通天塔許可權打通,透過大資料平臺通天塔讀取Deepthought任務資訊並進行排程,實現任務的定時預測的場景。
Deepthought v2架構如下圖所示。
Deepthoughtv3.0版,支援實時預估服務
自動調參
v2實現了自動調參的功能,可透過多種調參演算法,對多個引數進行最佳化組合、並行訓練,最終找出最優評估效果的引數組合和最優模型。透過自動執行重複性任務提高使用者工作效率,使得使用者更多關注問題,而不是模型。
實時預估
引數伺服器
由於一些內在原因,在基於Spark的機器學習無法支撐百萬級以上維度、億級以上行數的超大規模資料訓練。業界透過引數伺服器解決了超大規模資料訓練的問題。v3整合了開源引數伺服器,並在此基礎上實現了部分常用模型的引數伺服器版本。
Deepthought v3架構如下圖所示。
部分核心實現與封裝
下文將對平臺部分核心功能的實現和封裝簡要介紹。
Spark ML/MLLib封裝
Deepthought中演算法元件基於spark原生ml/mllib包進行封裝和改進,在繼承了其平行計算、通道流式處理等優點之外,還加入一系列提供使用者易用性的功能,同時增加了一些原生包中不存在的演算法。
Deepthought不僅僅是對Spark ML/MLLib做了封裝,也有很多基於實際業務和平臺化的開發。為了擴充套件和最佳化Deepthought的功能,Deepthought增加了資料預處理元件以及訓練元件中的標籤自動轉換功能。
loss實時輸出原理
一個良好的可用的機器學習模型,需要經過演算法工程師不斷的調優、嘗試;而模型的調優需要花費大量的時間和精力。
使用者線上上使用模型實時預估的過程中,需要定期使用新訓練的模型替換舊模型。在實時預估服務的早期版本中,預估服務程式碼在載入到QAE後,透過初始化一次性載入模型到記憶體裡。
這就導致如果需要更新模型時,我們需要透過kill QAE例項,逐漸替換QAE達到新模型替換舊模型的效果。這種方式存在缺陷是:
1. 使用者對切換過程不可知,無法追蹤某次響應具體是舊模型或新模型的預測結果;
2. 由於RPC是長連線,KILL一個QAE例項後會導致當前例項中的所有連結中斷。過程雖然短暫,但仍然會造成一定的請求抖動。
目前應用和後續工作
目前Deepthought已被流量反作弊、使用者行為分析、愛奇藝號、文學等多個團隊使用。下文簡要介紹目前已在Deepthought開展業務的一些典型場景。
目前流量反作弊業務已全線使用Deepthought進行模型訓練和離線預測。
Deepthought在推薦業務中也受到的廣泛的應用和好評。
在整個推薦業務中,Deepthought專注於模型的訓練,透過將大資料平臺通天塔準備好的資料給入到Deepthought平臺,使用者透過拉取元件的形式,構建一系列資料預處理,資料拆分,模型訓練、評估的流程,並在模型訓練完備之後部署到線上,從而進行實時的預估附。當整套流程第一次構建完成之後,使用者往後僅僅需要定時執行流程,實現模型的更新即可。
其中gbdt編碼+fm訓練的組合模型,是使用頻率最高的模型之一。推薦業務透過gbdt編碼將連續型資料轉換為離散型資料,在與已有離散型資料進行拼接,從而得到可用於fm模型訓練的資料。
當模型訓練完成,Deepthought透過公眾號和郵件的方式通知使用者模型的準確率、召回等詳情。當模型確認可用後,可透過Deepthought平臺將模型進行實時部署,從而滿足推薦業務的實時預測需求。
Deepthought對大量機器學習封裝和平臺化開發,使使用者可透過簡單配置和拖動方式完成機器學習操作,協助非演算法業務同學能夠輕鬆使用機器學習,同時規範使用,大大減輕使用者在重複程式碼和演算法、模型管理上的工作量。同時,與大資料平臺通天塔深度合作,實現資料開發到模型訓練、離線、線上預測全流程閉環,是大資料團隊資料中臺重要組成部分。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945252/viewspace-2704726/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vivo網際網路機器學習平臺的建設與實踐機器學習
- Endeavour的機器學習平臺機器學習
- 揭秘FACEBOOK未來的機器學習平臺機器學習
- 國家質量基礎設施一站式服務平臺建設,NQI雲平臺建設
- 如何構建一臺機器學習伺服器機器學習伺服器
- 揭祕FACEBOOK未來的機器學習平臺機器學習
- tensorflow機器學習模型的跨平臺上線機器學習模型
- 萬丈高樓平地起:如何構建全流程機器學習平臺機器學習
- [平臺建設] HBase平臺建設實踐
- 滴滴機器學習平臺架構演進機器學習架構
- 真正的機器學習平臺根本不存在?機器學習
- 從零開始學機器學習——初探分類器機器學習
- 機器學習建議機器學習
- 滴滴機器學習平臺架構演進之路機器學習架構
- 貨拉拉一站式雲原生AI平臺建設實踐AI
- AI開發平臺系列2:整合式機器學習平臺對比分析AI機器學習
- 用PMML實現機器學習模型的跨平臺上線機器學習模型
- 網易雲音樂機器學習平臺實踐機器學習
- 使用pmml實現跨平臺部署機器學習模型機器學習模型
- MediaPipe - 跨平臺機器學習應用開發框架API機器學習框架
- 流批一體機器學習演算法平臺機器學習演算法
- MLFlow機器學習管理平臺入門教程一覽機器學習
- 特徵平臺在數禾的建設與應用特徵
- 基於機器學習的經濟預測模型演算法平臺的設計與實現 DAY7機器學習模型演算法
- 頭歌實踐教學平臺-機器學習 --- PCA-答案機器學習PCA
- 國家質量基礎設施(NQI)一站式服務平臺,NQI雲服務平臺建設
- 初探神經網路與深度學習 —— 感知器神經網路深度學習
- 阿里雲機器學習平臺PAI與香港大學合作論文入選INFOCOM 2022阿里機器學習AI
- 吳恩達機器學習筆記 —— 11 應用機器學習的建議吳恩達機器學習筆記
- 16個用於資料科學和機器學習的頂級平臺資料科學機器學習
- 堡壘機:愛奇藝海量伺服器安全運維平臺的建設伺服器運維
- 質量基礎設施一站式NQI雲平臺系統建設方案
- Comet如何在GitLab DevOps平臺上簡化機器學習?Gitlabdev機器學習
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 加快建設人才中心和創新高地--建設高層次人才“一站式”服務平臺
- 質量基礎設施建設系統開發,NQI線上一站式服務平臺建設
- 阿里雲機器學習平臺PAI與華東師範大學論文入選SIGIR 2022阿里機器學習AI
- 外鏈建設平臺:選擇合適平臺,快速建設外鏈