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