一站式機器學習平臺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網際網路機器學習平臺的建設與實踐機器學習
- 國家質量基礎設施一站式服務平臺建設,NQI雲平臺建設
- [平臺建設] HBase平臺建設實踐
- 貨拉拉一站式雲原生AI平臺建設實踐AI
- 國家質量基礎設施(NQI)一站式服務平臺,NQI雲服務平臺建設
- 特徵平臺在數禾的建設與應用特徵
- 質量基礎設施建設系統開發,NQI線上一站式服務平臺建設
- 質量基礎設施一站式NQI雲平臺系統建設方案
- 加快建設人才中心和創新高地--建設高層次人才“一站式”服務平臺
- Endeavour的機器學習平臺機器學習
- 機器學習研究與開發平臺的選擇機器學習
- 運維平臺的建設思考運維
- 外鏈建設平臺:選擇合適平臺,快速建設外鏈
- 質量基礎設施“一站式”平臺開發,NQI線上系統建設
- 質量基礎設施NQI“一站式”線上公共服務平臺建設方案
- 質量基礎設施“一站式”平臺建設,NQI線上系統開發
- NQI質量基礎設施“一站式”服務平臺建設解決方案
- 質量基礎設施一站式服務平臺建設,NQI一站式系統開發方案
- 雲音樂輿情平臺建設雲音樂輿情平臺建設
- vivo資料庫與儲存平臺的建設和探索資料庫
- 質量基礎設施NQI一站式公共服務平臺建設解決方案
- 國家質量基礎設施(NQI)“一站式”公共服務平臺建設方案
- 國家質量基礎設施(NQI)一站式服務平臺開發建設
- 質量基礎設施(NQI)“一站式”線上服務平臺建設解決方案
- 質量基礎設施“一站式”服務平臺開發,NQI系統建設
- 加速企業敏捷的DEVOPS平臺的開發與建設敏捷dev
- 平臺介面建設規範
- NQI質量一站式服務平臺推進質量強國建設
- 人才服務中心高層次人才一站式服務平臺建設方案
- NQI國家質量基礎設施“一站式”公共服務平臺開發建設
- 質量基礎設施“一站式”綜合服務平臺建設,NQI系統開發
- 質量基礎設施一站式服務平臺建設,NQI線上系統開發
- 質量基礎設施“一站式”服務線上平臺建設,NQI系統開發
- 質量基礎設施“一站式”服務平臺建設,NQI線上系統開發
- NQI質量基礎設施“一站式”服務平臺開發,NQI系統建設
- NQI一站式服務平臺建設,質量基礎設施系統開發方案
- 國家質量基礎設施NQI一站式服務平臺開發建設方案
- 質量基礎設施NQI“一站式”服務平臺建設,NQI系統開發