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


文章插圖
2.以調度促資源優化:
新增生產環境,確認模型已經正常迭代,在合理利用率的情況下切換至高優環境,提供更高性能的資源池;同時提供調度打分機制 , 圍繞資源顆粒度、配置合理性等維度 , 讓合理的訓練資源更快的拉起,減少調度卡住情況;
上線多維度調度打分機制后,平臺不合理訓練任務有大幅度下降 , 資源效率提升 。
圍繞并不限于以下維度:最大運行時長、排隊時長、cpu&內存&gpu顆粒度和總需求量等 。

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

文章插圖
4.2.2 框架自研痛點:
隨著樣本和特征規模增加后,框架的性能瓶頸凸顯,需要提升推理計算的效率 。
發展路徑:
每一次的發展路徑主要基于業務量的發展 , 尋求最佳的訓練框架,框架的每一次版本升級都打包為鏡像,支持更多模型訓練 。
vivo互聯網機器學習平臺的建設與實踐

文章插圖
當前效果:
vivo互聯網機器學習平臺的建設與實踐

文章插圖
4.2.3 訓練管理痛點:
如何支持多種分布式訓練框架 , 滿足算法工程師的業務訴求,讓用戶無需關心底層機器調度和運維;如何讓算法工程師快速新建訓練,執行訓練,可查看訓練狀態,是訓練管理的關鍵 。
解決思路:
上傳代碼至平臺的文件服務器和git都可以進行讀取 , 同時在平臺填寫適量的參數即可快速發起分布式訓練任務 。同時還支持通過OpenAPI,便于開發者在脫離控制臺的情況下也能完成機器學習業務 。
圍繞訓練模型相關的配置信息 , 分為基礎信息設置、資源信息設置、調度依賴設置、告警信息設置和高級設置 。在試驗超參的過程中,經常需要對一組參數組合進行試驗 。
批量提交任務能節約使用者時間 。平臺也可以將這組結果直接進行比較,提供更友好的界面 。訓練讀取文件服務器或git的腳本,即可快速執行訓練 。
1.可視化高效創建訓練
vivo互聯網機器學習平臺的建設與實踐

文章插圖
2. 準確化快速修改腳本
vivo互聯網機器學習平臺的建設與實踐

文章插圖
3. 實時化監控訓練變動
vivo互聯網機器學習平臺的建設與實踐

文章插圖
4.2.4 交互式開發痛點:
算法工程師調試腳本成本較高,算法工程師和大數據工程師有在線調試腳本的訴求,可直接通過瀏覽器運行代碼,同時在代碼塊下方展示運行結果 。
解決思路:
在交互式工具中進行試驗、開發 , 如:jupyter notebook,提供所見即所得的交互式體驗 , 對調試代碼的過程非常方便 。
在交互試驗的場景下,需要獨占計算資源 。機器學習平臺需要提供能為用戶保留計算資源的功能 。如果計算資源有限 , 可對每個用戶申請的計算資源總量進行限制,并設定超時時間 。
例如,若一周內用戶沒有進行資源使用后,就收回保留資源 。在收回資源后,可繼續保留用戶的數據 。重新申請資源后,能夠還原上次的工作內容 。在小團隊中,雖然每人保留一臺機器自己決定如何使用更方便,但是用機器學習平臺來統一管理,資源的利用率可以更高 。團隊可以聚焦于解決業務問題,不必處理計算機的操作系統、硬件等出現的與業務無關的問題 。
vivo互聯網機器學習平臺的建設與實踐

文章插圖
五、總結目前vivo機器學習平臺支撐了互聯網領域的算法離線訓練 , 使算法工程師更關注于模型策略的迭代優化,從而實現為業務賦能 。未來我們會在以下方面繼續探索:
1.實現平臺能力的貫通
  • 當前特征、樣本還是模型的讀取都是通過hdfs實現的,在平臺上的告警、日志信息都未關聯上,后續可以進行平臺能力貫通;
  • 平臺的數據和模型還有標準化的空間,降低學習成本,提升模型開發的效率 。
2. 加強框架層面的預研
  • 研究不同分布式訓練框架對模型效果的影響,適配不同的業務場景;
  • 提供預置的參數,實現算法、工程、平臺的解耦,降低用戶的使用門檻 。
【vivo互聯網機器學習平臺的建設與實踐】

推薦閱讀