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