這是一個AI賦能的時代,而機器學習則是實現AI的一種重要技術手段。那么,是否存在一個通用的通用的機器學習系統架構呢?
在老碼農的認知范圍內,Anything is nothing,對系統架構而言尤其如此。但是,如果適用于大多數機器學習驅動的系統或用例,構建一個可擴展的、可靠的機器學習系統架構還是可能的。從機器學習生命周期的角度來看,這個所謂的通用架構涵蓋了關鍵的機器學習階段,從開發機器學習模型,到部署訓練系統和服務系統到生產環境。我們可以嘗試從10個要素的維度來描述這樣的一個機器學習系統架構。
1.數據和特征工程流水線
在給定的時間內提供高質量的數據,并以可伸縮和靈活的方式生成有用的機器學習特征。一般來說,數據流水線可以與特征工程流水線分離。數據流水線是指提取、轉換和加載(ETL)的流水線,其中,數據工程師負責將數據傳輸到存儲位置,比如建立在對象存儲之上的數據湖,特征工程流水線側重于將原始數據轉換成可以幫助機器學習算法更快、更準確地學習的機器學習特征。
特征工程一般分為兩個階段。在第一階段,特征工程邏輯通常由數據科學家在開發階段通過各種實驗創建,以便找到最佳的特征集合,而數據工程師或機器學習工程師則負責特征工程流水線的生產,為模型訓練和在生產環境中服務提供高質量的特征數據。
2. 特征存儲
存儲機器學習的特征數據,進行版本管理,用于發現、共享和重用,并為模型訓練和服務提供一致的數據和機器學習特征,從而提高機器學習系統的可靠性。
面對機器學習的特征數據,特征存儲是特征工程流水線創建的持久化存儲方案。特性存儲支持模型訓練和服務。因此,它是一個非常重要的部分,是端到端機器學習系統架構的一個重要組件。
3.機器學習模型訓練和再訓練流水線
對于機器學習訓練運行不同的參數和超參數,以一種簡單和可配置的方式進行實驗,并記錄這些訓練所運行的各種參數和模型性能指標。自動評估、驗證、選擇性能最好的模型并將其記錄到機器學習模型庫中。
4.訓練與模型的元存儲
存儲并記錄機器學習的運行,包括參數、指標、代碼、配置結果和經過培訓的模型,并提供模型的生命周期管理、模型注釋、模型發現和模型重用等功能。
對于一個完整的機器學習系統來說,以工程、模型訓練和模型服務為特征,可以從數據中生成大量的元數據。所有這些元數據對于了解系統如何工作非常有用,可以從數據-> 特征-> 模型-> 服務端來提供可跟蹤性,并在模型停止工作時提供用于調試的有用信息。
5.機器學習模型服務流水線
為在生產環境中使用機器學習模型提供適當的基礎設施,既考慮到全程服務,也要考慮延遲。
一般來說,有三種服務模式: 批量服務、流式服務和online服務。每種服務類型都需要完全不同的基礎設施。此外,基礎設施應該是容錯和自動擴展的,以響應請求和吞吐量波動,特別是對于關鍵業務的機器學習系統。
6.監控生產中的 ML 模型
在生產環境中,在發現數據和模型漂移及異常時,提供數據收集、監控、分析、可視化和通知功能,并提供必要的信息協助系統調試。
7.機器學習流水線
與特定的機器學習工作流相比,機器學習流水線提供了一個可重用的框架,使數據科學家能夠更快地開發和迭代,同時保持高質量的代碼并減少生產時間。一些機器學習流水線框架還提供了編排和架構抽象的功能。
8.工作流編排
工作流編排是集成端到端機器學習系統的關鍵組件,協調和管理所有這些關鍵組件的依賴項。工作流編排工具還提供諸如日志記錄、緩存、調試和重試等功能。
9.持續集成/持續培訓/持續交付(CI/CT/CD)
持續測試和持續集成是指持續用新數據培訓新模型,在需要時升級模型性能,并以安全、敏捷和自動化的方式持續為生產環境提供服務并部署模型。
10.針對數據和模型的端到端質量控制
在端到端機器學習工作流的各個階段,需要嵌入可靠的數據質量檢查、模型質量檢查、數據和概念漂移檢測,以確保機器學習系統本身是可靠且可信的。這些質量控制的檢查包括描述統計學、整體數據形狀、數據缺失、數據重復、幾乎恒定的特征、統計測試、距離指標和模型預測質量,等等。
以上,可以稱之為機器學習系統架構的10個要素。在我們的實踐中,整個工作流應該保持大致相同,但可能需要對其中某些要素進行調整和定制。
如何對機器學習的系統架構進行調整呢?
如何在產品設計之初精簡架構要素呢?
如何在引入機器學習系統系統時,保持原有系統架構的持續性呢?