小嘰導讀:在解決實際問題的時候,很多人認為隻要有機器學習算法就可以了,實際上要把一個算法落地還需要解決很多工程上的難題。本文將和大家分享如何從零開始搭建一個GPU加速的分布式機器學習係統,介紹在搭建過程中遇到的問題和解決方法。
一 背景
在雲計算環境下,虛擬機的負載均衡、自動伸縮、綠色節能以及宿主機升級等需求使得我們需要利用虛擬機(VM)遷移技術,尤其是虛擬機熱遷移技術,對於down time(停機時間)要求比較高,停機時間越短,客戶業務中斷時間就越短,影響就越小。如果能夠根據VM的曆史工作負載預測其未來的工作負載趨勢,就能夠尋找到最合適的時間窗口完成虛擬機熱遷移的操作。
於是我們開始探索如何用機器學習算法預測ECS虛擬機的負載以及熱遷移的停機時間,但是機器學習算法要在生產環境發揮作用,還需要很多配套係統去支持。為了能快速將現有算法在實際生產環境落地,並能利用GPU加速實現大規模計算,我們自己搭建了一個GPU加速的大規模分布式機器學習係統,取名小諸葛,作為ECS數據中台的異構機器學習算法加速引擎。搭載以上算法的小諸葛已經在生產環境上線,支撐阿裏雲全網規模的虛擬機的大規模熱遷移預測。
二 方案
那麼一套完整大規模分布式係統機器學習係統需要哪些組成部分呢?
1 總體架構
阿裏雲全網如此大規模的虛擬機數量,要實現24小時之內完成預測,需要在端到端整個流程的每一個環節做優化。所以這必然是一個複雜的工程實現,為了高效的搭建這個平台,大量使用了現有阿裏雲上的產品服務來搭建。
整個平台包含:Web服務、MQ消息隊列、Redis數據庫、SLS/MaxComputer/HybridDB數據獲取、OSS模型倉庫的上傳下載、GPU雲服務器、DASK分布式框架、RAPIDS加速庫。
1)架構
下圖是小諸葛的總體架構圖。
機器人招商Disinfection Robot機器人公司機器人應用智能醫療物聯網機器人排名機器人企業機器人政策教育機器人迎賓機器人機器人開發獨角獸消毒機器人品牌消毒機器人合理用藥地圖 |