機器學習應用在幾種形態下落地的問題和參考架構

前言

機器學習是人工智能研究領域的一個重要分支,近十年因爲以深度學習爲代表的研究方向在圖像識別,語音識別,文本翻譯及深度強化學習在圍棋等遊戲應用中的重大突破而又重新興起,變成新的技術浪潮。但是機器學習還沒有達到實現人工智能的階段,無法像人一樣快速學習新技能,掌握新領域,進行創造性活動。機器學習還僅僅是弱人工智能,即在特定領域,在給定的業務問題邊界,充分的數據支撐條件下,通過專家的特徵工程和麪向業務目標構建的反饋優化方法上來實現達到或者超過人類專家的行爲能力。因此機器學習應用的落地絕不是一蹴而就的,需要不斷的解決機器學習應用落地過程中的各種問題,包括數據,特徵,目標,反饋優化以及機器學習應用系統的性能,維護和可擴展問題,這些問題本身有時又會交織在一起,需要我們系統性的思考,平衡和解決。

 

機器學習應用形態劃分

我們根據機器學習應用的使用者不同,可以把應用形態劃分爲面向人的輔助支撐工具offline形態和麪向設備,系統的持續運行分析的online形態,當然online形態中因爲一些系統性能等方面的需要,通常都會結合offline形態的能力,因此也可以把offline,online看作機器學習應用的第一階段和第二階段。典型的工業offline應用有****擴容預測(非雲化設備場景),存儲和光器件設備老化預測等,這些應用支撐業務人員完成具體的決策和物理活動;典型的online應用則包括了故障類型識別,UE主頻智能切換等。

 

在online形態中,我們根據應用場景要求的機器學習模型時效性不同,即機器學習模型的更新週期不同,又可以將應用形態劃分爲online predict和online learning兩種形態,前者的機器學習模型主要爲離線建模,模型按天/周/月更新,在線僅僅是應用模型進行預測;後者則需要進行在線建模,在線預測,模型更新的週期需要達到小時/分鐘。Online learning的典型應用則例如根據預測分鐘級別的業務流量進行基站節能,根據帶寬流量預測進行數據中心間的帶寬利用率提升和邊緣視頻碼率的選擇。

 

根據應用場景的地域部署特性要求,即對機器學習模型的泛化能力要求不同,可以劃分爲local Learning和Global learning。Local learning只需要模型在一個地域適應一組數據源的樣本,雖然隨着時間的變化,部分數據及關聯特徵的分佈也會出現變化,但總體來說是緩慢的,對模型來講,僅需要具備弱泛化能力;Global learning則需要模型進行全球部署,需要模型能夠適應在不同地域數據和特徵的劇烈變化,如大部分特徵的消失或增加。Global Learning的典型應用即上述應用形態在全球部署的延伸,可見的成功案例主要有Google的廣告推薦,Netflix的視頻推薦。

 

小結一下,根據機器學習應用的使用角色,時效性以及地域性要求,我們可以將機器學習應用劃分爲offline,online predict,online learning,local learning和Global learning等多種形態。不同形態下不同的技術實現路徑我們將面臨不同的挑戰和問題。

 

應用形態和技術架構

接下來,我們從核心的架構質量屬性的角度看看各種應用形態的挑戰和問題。

 

Offline

從最簡單的offline應用開始,如圖1,因offline條件下,訓練和預測對於性能一般情況下均沒有嚴格強調響應時間,所以多數情況下,大家僅需要考慮batch的批量執行模式。訓練和預測在接入原始數據後的數據準備,特徵工程等數據處理部分和基於模型的預測部分可以完全複用訓練階段的能力。

offline機器學習應用技術架構

圖1. offline機器學習應用技術架構

 

因爲訓練和預測均爲離線,所以兩者可以複用相同的特徵處理過程,一般情況下可以複用統一的特徵存儲能力,例如HDFS。

 

Online Predict

那麼online predict形態會有什麼不同?

1、首先因爲在線預測部分對於響應時間的要求,即需要在實際預測前準備好可以提前處理的數據特徵;

2、因爲在線預測部分多數按照事件方式請求,所以對預測對象如基站小區等的特徵訪問不是batch模式,而是按key 訪問,所以需要引入KV存儲;

3、同時在online predict形態下,可以引入一些更具有時效性的特徵,這些特徵的處理在訓練時仍然可以使用離線處理方法,但是在線部分就需要引入新的流處理能力;

4、因爲引入online predict後,模型的更新就需要更多的系統流程來替代offline模式下人的許多手工動作,如模型的更新,模型的版本管理,模型的評估,模型的對比測試等。所以需要額外引入模型管理,如圖2。

Online Predict機器學習應用技術架構

圖2. Online Predict機器學習應用技術架構

 

上圖中紅色部分圈中的特徵庫-KV存儲,是典型的機器學習應用領域中,面向業務對象構建的可複用的基礎特徵庫,可以在多個相同領域的機器學習中應用,在機器學習平臺類軟件中,是領域機器學習平臺的重要組成部分。模型管理部分用於持續評估和管理模型,可以提供相對通用的機器學習框架來解決模型的閉環反饋更新問題。常見的模型更新方式有多種:

1、簡單的使用滑動數據集方式,重新訓練模型;

2、採用模型Wrapper的方式持續疊加新的模型,類似RandomForrest,GBDT等算法;

3、採用機器學習函數求解的增量迭代方式;

4、針對反饋數據單獨使用分類模型,特別是針對訓練模型本身爲非監督模型的算法,採用GAN方式進行持續優化。

 

在線數據處理-Spark Streaming部分區別於離線數據準備,需要爲算法提供更具時效性的特徵,例如事件級別,分鐘級別的統計特徵,如15分鐘的基站視頻協議業務流量等。PredictServer部分主要提供在線的模型測試框架,支持同時存在的多個模型組進行對比測試,並提供詳細的對比測試記錄給訓練模型。以上兩種形態,Train和Predict部分都是可以網絡隔離的,因爲Train部分的數據都是可以離線的,可以採用人工、非自動化的方式從生產系統中以抽樣的方式離線導出來訓練的。

 

Online learning

更具挑戰的則是online learning,在算法和系統會有更復雜的要求:

1、首先模型在線更新導致模型審覈一般不再由人工來完成,需要系統自動完成;

2、因爲在線更新,所以每次僅能基於增量的數據;

3、因爲1,2的原因,系統必須避免模型因爲當前窗口數據導致的劇烈變化,能夠在歷史模型參數和當前模型參數間進行平滑;

4,長期online的系統除了考慮特徵隨時間變化而產生分佈變化的弱泛華要求,也需要考慮系統環境變化如硬件、軟件版本升級導致的特徵(包括關鍵特徵)增加、刪除的劇烈變化;

5、工程上需要匹配算法,支持特徵的柔性變化,做到特徵更新無需版本更新。這些都需要引入online training的處理能力,在線處理組件從kafka等消息或流系統中實時增量獲取數據,本地訓練後講算法中間狀態保存在狀態數據庫中,狀態的數據主要也是KV結構的數據,需要引入KV存儲。需要注意的是,如果offline Training還可以使用一些傳統的數據挖掘類算法如Decision Tree,Bayesian等方法,那麼online Training就要求基於目標損失函數,採用增量、迭代的方式進行函數優化,持續更新優化。參考技術架構如圖3。

Online Learning機器學習應用技術架構

圖3. Online Learning機器學習應用技術架構

 

在線學習部分的輸入數據包括kafka輸出的在線算法特徵和特徵庫—KV存儲中保存的已預計算的歷史特徵。在線學習過程中的模型迭代參數需要持續更新到狀態庫-KV存儲中(個別非模型的增量迭代計算可能需要保存中間計算結果)。在線學習部分還有一個重要分支就是強化學習,強化學習方向無論是早期的q-learning,saras,還是近期的DQN,DDPG等算法,典型的結構如圖4。

ReinforcementLearning機器學習交互結構

圖4. ReinforcementLearning機器學習交互結構

 

上述架構中

Agent表示智能體,即執行強化學習算法的**服務,根據外部輸入的狀態參數選擇最優的執行動作,並根據動作執行後的環境狀態和報酬優化動作選擇算法。此處未展開多智能體學習結構,原則上可以認爲是Agent內部的層次結構。Environment表示執行環境,持續輸出環境參數給Agent,並從Agent接收並執行Action。State Store表示狀態存儲,在面向傳統的離散狀態和Action時,State Store中保存State、Action、Reward的映射表,在面向新興的連續Action和State時,保存DQN等神經網絡的回放樣本數據,也是表示爲(St,at,St+1,rt+1)將強化學習合入已有架構後參考如下圖5,其中算法執行框架部分可以利用已有的Tensorflow框架,狀態存儲可以複用已有的KV存儲,外部環境代理EnvironmentProxy部分則將Agent的算法邏輯與具體的業務網元交互邏輯解耦出來,特別當外部網元交互模式、協議、部署複雜時。

Online Learning(含RL)機器學習應用技術架構

圖5. Online Learning(含RL)機器學習應用技術架構

 

Local learning and Global Learning

最後再看看Global Learning和Local Learning,Local Learning可以理解爲上述offline,online的應用形態。Global learning有多種實現方式:簡單實現可以是多個**的Local learning,Netflix初期在十幾個國家推廣運營時,實際上就是類似運作方式,好處就是系統簡單,易複製;複雜實現由兩種方式,如圖6

Online Predict機器學習應用技術架構

圖6. Online Predict機器學習應用技術架構

 

1、Global data share, data share方式與online learning非常相似,全球多地部署的系統可以僅理解爲數據採集,真正的學習則還是部署在中心區域,各地的數據通過流的方式持續的發送到中心區域。Google和Netflix目前都是data share(視野所限,沒有發現公開的論文討論如何解決模型共享的問題),將全球各地的數據統一採集彙總到某一個數據中心統一進行模型訓練,將不同國家,語言,文化,種族相關的特徵引入統一的模型,在統一的模型基礎上再進行校正和糾偏[1][2];

2、model share方式則解決data share方式的限制,即解決數據安全隱私導致的無法共享問題。這樣需要在各個區域,國家部署本地學習能力,然後將模型與中心區域及其它各區域做交換。中心區域邏輯上充分利用領域知識、全球各區域的數據和模型來最大程度的優化模型,特別是針對部分區域數據缺乏的問題。目前主要有學術研究,周志華老師2016年提出過learn ware及相關的一些基礎研究[3][4],主要就是解決在數據不共享的條件下,如何實現模型的可重用,可演進,可瞭解等重要問題。

原文:機器學習應用在幾種形態下落地的問題和參考架構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章