vivo互聯網機器學習平臺的建設與實踐( 二 )


建模是算法工程師的核心工作之一 。建模過程涉及到很多數據工作 , 稱為特征工程,主要是調整、轉換數據 。主要任務是要讓數據發揮出最大的價值 , 滿足業務訴求 。
3.2.1 模型試驗特征工作和超參調整是建模過程中的核心工作 。特征工作主要對數據進行預處理 , 便于這部分輸入模型的數據更好的表達信息 , 從而提升模型輸出結果的質量 。
數據和特征工程決定模型質量的上限,而算法和超參是無限逼近這個上限 。
超參調整包括選擇算法、確認網絡結構、初始參數,這些依賴于算法工程師豐富的經驗,同時需要平臺支持試驗來測試效果 。
特征工程和超參調整是相輔相成的過程 。加工完特征后,需要通過超參的組合來驗證效果 。效果不理想時,需要從特征工程、超參兩個方面進行思索、改進,反復迭代后,才能達到理想的效果 。

vivo互聯網機器學習平臺的建設與實踐

文章插圖
3.2.2 訓練模型可通過標準化數據接口來提高快速試驗的速度,也能進行試驗效果的比較 。底層支持docker操作系統級的虛擬化方案,部署速度快,同時能將模型直接部署上線 。用戶無需對訓練模型進行更多定制化的操作,批量提交任務能節約使用者的時間 , 平臺可以將一組參數組合的試驗進行比較 , 提供更友好的使用界面 。
其次 , 由于訓練的方向較多,需要算力管理自動規劃任務和節點的分配,甚至可以根據負載情況,合理利用空閑資源 。
四、vivo機器學習平臺實踐前面我們介紹了機器學習平臺的背景和發展方向,現在我們來介紹下,平臺在解決用戶問題部分的困擾和解決思路 。
4.1 平臺能力矩陣機器學習平臺主要目標是圍繞模型訓練進行深耕 , 并輔助用戶進行模型決策,更快的進行模型部署 。
以此為目標分為兩個方向,訓練框架的優化能夠支撐大規模模型的分布式計算 , 調度能力優化能夠支持批次模型的執行 。
在調度能力上,平臺由原生k8s調度 , 單個訓練調度的效率較低 , 升級為kube-batch批量調度,到以混合云精細化編排為目標,當前主要處于靈活性調度策略的形式 。
在訓練框架上 , 從原生Tensorflow模型,隨著特征和樣本規模的擴大,自研了超大規模的訓練框架vlps,當前處于TensorFlow+vlps結合的新框架狀態 。
vivo互聯網機器學習平臺的建設與實踐

文章插圖
4.2 平臺能力介紹平臺能力建設主要圍繞模型試驗和訓練模型的運用 , 運用過程中遇到的痛點和難點如何解決,是我們在實踐中的關鍵 。同時 , 訓練框架也是平臺關鍵能力的體驗 , 基于業務的復雜度,持續對框架進行優化 。
已覆蓋公司內部算法工程師模型調試的工作,已達到億級樣本 , 百億特征的規模 。
4.2.1 資源管理痛點:
機器學習平臺屬于計算密集型的平臺 。
  • 業務場景不同,是否完全按照業務分組進行資源劃分;
  • 資源池劃分過小 , 會導致資源利用率低且沒辦法滿足業務激增的資源訴求;
  • 資源不足以滿足業務訴求時,會存在排隊情況導致模型更新不及時;
  • 如何管理好算力 , 提效與降本的平衡,是平臺資源管理的一個核心問題 。
解決思路:
資源管理的基本思路是將所有計算資源集中起來,按需分配,讓資源使用率盡量接近100% 。任何規模的資源都是有價值的 。
比如 , 一個用戶,只有一個計算節點,有多條計算任務時,資源管理通過隊列可減少任務輪換間的空閑時間 , 比手工啟動每條計算任務要高效很多 。多計算節點的情況 , 資源管理能自動規劃任務和節點的分配 , 讓計算節點盡量都在使用中,而不需要人為規劃資源,并啟動任務 。多用戶的情況下,資源管理可以根據負載情況 , 合理利用其它用戶或組的空閑資源 。隨著節點數量的增加 , 基于有限算力提供更多業務支持是必經之路 。
1.以配額限資源濫用:
新增配額組和個人配額,減少業務之間的相互干擾,盡可能滿足各組的資源需要,并且配額組支持臨時擴容和共享 , 解決偶發性激增的資源訴求;限額后用戶僅支持在有限資源下使用,讓用戶自我調節高優先級訓練 。
vivo互聯網機器學習平臺的建設與實踐

推薦閱讀