您好,登錄后才能下訂單哦!
愛奇藝除了在音視頻、推薦等深度學習的AI應用以外,也有不少數據挖掘、數據分析的傳統機器學習應用場景,例如用戶預測、風控等。傳統的研發模式的痛點,就是會給算法人員和業務人員一些不便利,具體如下:
1. 用戶代碼基于單機腳本實現,處理環節長、耦合高,難以修改和擴展,長久以來可讀性降低;
2. 同一業務下多個場景、同一場景下多個模型,在數據處理、模型訓練等技術流程上類似,場景重復步驟和數據結果難以重復利用;
3. 場景不同導致存在周期訓練、定時預估、實時預估等需求,對業務人員和算法人員的代碼要求高,維護成本高;
4. 算法人員和業務人員對分布式機器學習的開發存在技術壁壘,導致數據量和模型復雜度受單機資源限制;
基于以上痛點,愛奇藝開發了面向通用的機器學習場景的一站式機器學習平臺Deepthought,可實現可視化交互,能更加直觀便捷的搭建適合業務場景需要的架構,以及實時預估服務,是算法模型部署至實際業務的重要環節。
Deepthought在開發之初即考慮了以下基本業務需求:
1. 核心算法基于分布式機器學習框架封裝,以開源封裝為主、自研實現為輔,滿足快速上線基本算法需求;
2. 對于機器學習和數據挖掘各個環節解耦,滿足不同環節的輸出結果可復用;
3. 與大數據平臺通天塔深度融合,利用通天塔管理的項目、數據、調度實現機器學習任務的在線、離線場景的執行;
4. 減輕用戶代碼開發壓力,通過可視化交互和配置方式,實現機器學習任務的編排,提升算法模型搭建效率。
屬于反作弊業務使用的機器學習平臺,主要將反作弊業務中的機器學習流程各個階段解耦合,同時管理反作弊業務中的業務數據,例如黑名單、樣本、特征管理。Deepthought v1架構如下圖所示。
Deepthought基于Spark ML/MLLib封裝了業務常用二分類模型,以及常用數據預處理過程,例如缺失值填充、歸一化等。
所有數據處理和算法執行通過組件的方式管理和調度。算法的擴展除了核心邏輯和調度腳本外,所有組件信息和配置項都可通過后臺配置管理完成,前端交互時動態渲染組件的所有配置信息。
算法擴充
在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對大量機器學習封裝和平臺化開發,使用戶可通過簡單配置和拖動方式完成機器學習操作,協助非算法業務同學能夠輕松使用機器學習,同時規范使用,大大減輕用戶在重復代碼和算法、模型管理上的工作量。同時,與大數據平臺通天塔深度合作,實現數據開發到模型訓練、離線、在線預測全流程閉環,是大數據團隊數據中臺重要組成部分。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。