機器學習模型監控(Aporia)

語言: CN / TW / HK

持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第12天,點選檢視活動詳情

機器學習模型監控

什麼是機器學習 (ML) 模型監控?

機器學習監控是一組用於觀察生產中的 ML 模型並確保其效能可靠性的技術。 ML模型通過觀察資料集中的示例進行訓練,並將代表模型在訓練任務中表現的好壞的錯誤最小化。

生產 ML 模型在對開發中的靜態樣例集進行訓練後,對來自不斷變化的世界的變化資料進行推理。 開發中的靜態訓練資料與生產中的動態資料之間的這種差異導致生產模型的效能隨著時間的推移而下降。

image.png

示例:

假設您根據 COVID 之前的使用者資料檢測信用卡欺詐訓練了模型。 在大流行病期間,信用卡使用和購買習慣會發生變化。 此類更改可能會使您的模型暴露於模型未訓練的分佈中的資料。 這是資料漂移的一個例子,是模型退化的幾個來源之一。 如果沒有 ML 監控,您的模型將輸出不正確的預測而沒有警告訊號,從長遠來看,這將對您的客戶和您的組織產生負面影響。

機器學習模型監控旨在使用資料科學和統計技術來持續評估生產中機器學習模型的質量。

監控可以服務於不同的目的:

  1. 早期發現不穩定性
  2. 瞭解模型效能下降的方式和原因
  3. 診斷具體的故障案例

此外,一些 ML 監控平臺,如 Aporia,不僅可用於跟蹤和評估模型效能,還可用於審查和除錯、解釋模型預測並提高生產中的模型效能。

如何監控機器學習

工程師監控軟體是因為當今構建的系統在實際部署場景中容易受到不確定性的影響。同樣,ML 模型是軟體系統,但本質上,ML 模型只與我們提供給它們的資料差不多。因此,傳統的軟體監控技術在應用於 ML 模型時是無效的。

有效的機器學習監控系統必須檢測資料的變化。未能主動檢視這些更改可能會導致模型靜默失敗。此類故障將對終端使用者的業務績效和信譽造成重大負面影響。找出您的 ML 模型在生產中可能表現不佳的 5 個最常見原因

模型監控可以幫助維護和改進 ML 模型在生產中的效能,確保模型按預期執行。部署的 ML 模型與現實世界進行互動。因此,模型在生產中看到的資料是不斷變化的。一旦部署到生產環境中,模型的效能通常會開始下降。

監控效能下降將幫助您快速檢測模型何時表現不佳。效能指標特定於模型和學習任務。例如,準確率、精確度和 F1 分數將用於分類任務,而均方根誤差將用於預測任務。除了觀察真實世界資料的效能指標外,資料科學團隊還可以對輸入資料進行檢查,以進一步瞭解效能下降。

此外,測量模型漂移是 ML 監控系統的重要組成部分。模型輸入、輸出和實際值會隨時間發生漂移,通過分佈變化來衡量。檢查您的模型是否存在偏差,以確定它們是否過時、是否存在資料質量問題,或者它們是否包含對抗性輸入。您可以通過使用 ML 監控檢測漂移來更好地瞭解如何解決這些問題。

全面的模型監控解決方案應包括: 1. 資料漂移檢測:跟蹤每個輸入特徵的分佈有助於揭示輸入資料隨時間的變化。您可以將此跟蹤擴充套件到聯合分佈。 2. 資料完整性檢測:要檢測輸入資料結構的變化,請檢查特徵名稱是否與您的訓練集中的特徵名稱相同。 掃描輸入中的缺失值將揭示資料收集流水線中的變化或問題。 3. 概念漂移檢測:瞭解輸入資料中每個特徵相對於輸出的重要性是一種簡單而有效的防止概念漂移的方法。 特徵相關性的變化表明概念漂移。 我們可以評估特定特徵的模型或隨著時間的推移執行相關性研究。 這些技術還有助於瞭解模型效能的變化。 例如,您可能會發現某些特徵的重要性與一年中的時間之間的關係。

image.png

檢查輸入資料會建立一個簡短的反饋迴圈,以快速檢測生產模型何時開始表現不佳。

除了效能下降之外,生產模型還可能由於資料偏差或異常而表現不佳。

  1. 資料偏差:在有偏差的資料上訓練你的模型將在生產中實現這種偏差。考慮訓練一個模型來對貓和狗的影象進行分類。假設您的訓練集的貓影象比狗影象多得多。在這種情況下,您的模型可能會通過學習將大多數影象分類為貓而不是學習貓和狗之間的實際邊界來獲得良好的準確性。為了防止生產中的模型輸出有偏差,我們可以分析訓練資料中目標變數和輸入特徵中的不平衡表示或偏差。
  2. 異常:異常是相對於訓練樣本分佈的異常值的輸入樣本。對異常值進行推理幾乎可以保證結果不準確。為了防止由於異常導致模型效能不佳,我們可以首先評估每個輸入樣本以確保它屬於我們的訓練資料的分佈。

機器學習模型中的漂移檢測

如何檢測機器學習模型中的模型漂移

檢測模型漂移的一個明顯方法是通過 ML 監控技術和 Aporia 等解決方案,它確保模型效能不會下降超過某個點。

由於資料漂移和概念漂移是模型漂移的主要來源,因此需要具備檢測資料和概念漂移的能力。

如何檢測機器學習模型中的資料漂移

資料漂移是由於輸入資料的變化而發生的。因此,要檢測資料漂移,您必須在生產中觀察模型的輸入資料,並將其與訓練資料進行比較。注意到生產輸入資料和訓練資料的格式或分佈不同,這表明您正在經歷資料漂移。例如,在資料格式發生變化的情況下,假設您訓練了一個用於房價預測的模型。在生產中,確保輸入矩陣與您在訓練期間使用的資料具有相同的列。輸入資料相對於訓練資料的分佈變化需要統計技術來檢測。

以下測試可用於檢測輸入資料分佈的變化

  1. Kolmogorov-Smirnov (K-S) 測試:您可以使用 K-S 測試來比較您的訓練集的分佈與您在生產中的輸入。如果分佈不同,則拒絕原假設,表明資料漂移。在我們的概念漂移檢測方法指南中瞭解有關此檢測方法和其他方法的更多資訊。
  2. 群體穩定性指標(PSI):隨機變數的 PSI 是衡量變數分佈隨時間變化的指標。在房價預測系統的示例中,您可以測量感興趣特徵的 PSI,例如:平方英尺或平均鄰里收入,以觀察這些特徵的分佈如何隨時間變化。較大的變化可能表明資料漂移。
  3. Z-score:z-core可以比較訓練資料和生產資料之間的特徵分佈。如果計算的 z-score的絕對值很高,您可能會遇到資料漂移。

如何檢測機器學習模型中的概念漂移

您可以通過檢測給定輸入的預測概率變化來檢測概念漂移。

在給定生產輸入的情況下檢測模型輸出的變化可能表明您未操作的分析級別的變化。

例如,如果您的房價分類模型沒有考慮通貨膨脹,您的模型將開始低估房價。 您還可以通過 ML 監控技術(例如:效能監控)檢測概念漂移。 觀察模型準確性或分類置信度的變化可能表明概念漂移

image.png

如何防止機器學習模型中的概念漂移

您可以通過 ML 模型監控來防止概念漂移。 ML 監控將揭示模型效能的下降,這可能表明概念漂移,從而促使 ML 開發人員更新模型。

除了這種基於觀察的預防方法外,您還可以利用基於時間的方法,其中, ML 模型在給定退化時間範圍內定期重新訓練。 例如,如果模型的效能每四個月變得不可接受,則每三個月重新訓練一次。

最後,您可以通過線上學習防止概念漂移。 在線上學習中,您的模型將在每次有新資料可用時進行訓練,而不是等待積累大資料集,然後重新訓練模型。

機器學習效能監控

如何監控機器學習效能

效能監控可幫助我們檢測生產 ML 模型表現不佳並瞭解其表現不佳的原因。監控 ML 效能通常包括監控模型活動指標變化模型陳舊(或新鮮)和效能下降。通過 ML 效能監控獲得的洞悉將建議進行更改以提高效能,例如:超引數調優、遷移學習、模型再訓練、開發新模型等。

監控效能取決於模型的任務。影象分類模型將使用準確性作為效能指標,但均方誤差 (MSE) 更適合迴歸模型。重要的是要了解效能不佳,這並不意味著模型效能正在下降。例如,當使用 MSE 時,我們可以預期對異常值的敏感性會降低模型在給定批次上的效能。然而,觀察到這種退化並不表明模型的效能越來越差。它只是在輸入資料中有一個離群值,同時使用MSE作為度量的一個製品。評估輸入資料是一種很好的 ML 效能監控實踐,並將揭示此類效能下降的例項。

在監控 ML 模型的效能時,我們需要清楚地定義什麼是不良效能。這通常意味著將準確度分數或錯誤指定為預期值,並觀察隨時間推移與預期效能的任何偏差。在實踐中,資料科學家明白模型在現實世界資料上的表現可能不如開發期間使用的測試資料。此外,現實世界的資料很可能會隨著時間而變化。由於這些原因,一旦部署模型,我們可以預期並容忍一定程度的效能下降。為此,我們對模型的預期效能使用上限和下限。資料科學團隊應與主題專家合作,仔細選擇定義預期效能的引數。

根據用例,效能衰減會產生非常不同的後果。因此,可接受的效能衰減水平取決於模型的具體應用場景。例如,我們可以容忍動物聲音分類應用程式的 3% 準確度下降,但 3% 的準確度下降對於腦腫瘤檢測系統來說是不可接受的。

ML 效能監控是一種有價值的工具,可以檢測生產模型何時表現不佳以及我們可以做些什麼來改進。以下幾點對於要修復表現不佳的模型中的問題非常有幫助:

  1. 將資料預處理和 ML 模型放在不同的模組中。當預處理流水線的更改足夠時,將資料預處理和 ML 模型作為單獨的模組可以幫助您更有效地修復退化模型。假設您構建了一個模型,該模型對美國郵局的郵件執行手寫分類。在生產中,郵局決定使用低強度燈泡以節省能源。您的模型現在在更暗的影象上執行。在這種情況下,改變資料預處理模組以增加畫素強度和增強邊界就足以提高模型效能。與重新訓練模型相比,它也大大降低了成本和耗時。

  2. 使用基線(baseline)。基線模型是一種更簡單、更易解釋的模型,可以得到很好的結果。您使用基線模型作為大型花式生產模型的健全性檢查。例如,時間序列資料的 LSTM 的基線可以是邏輯迴歸模型。觀察到生產模型的效能下降而基線模型具有良好的效能可能表明您的生產模型在訓練資料上過擬合。在這種情況下,對正則化超引數的調整將提高模型效能。如果沒有基線模型,您可能會得出結論,該模型由於資料或概念漂移而表現不佳,並重新訓練或構建新模型。

  3. 選擇易於重新訓練的模型架構。神經網路是強大的 ML 演算法,因為它們能夠逼近任何複雜的函式。此外,它們特別適合生產,因為它只能訓練神經網路的一部分。例如,遇到來自新類別的影象的影象分類模型不需要完整的端到端再訓練。相反,我們可以遷移學習(僅重新訓練網路的分類部分),使用額外的類並重新部署。

為了從監控模型效能中獲得進一步的洞察力,視覺化與訓練資料相關的生產輸入資料並檢測異常是很有用的,如“如何監控機器學習?”一節中所述。

如何提高模型效能

即使概念漂移和資料漂移得到控制,隨著時間的推移,ML 模型的效能仍然可能會下降。資料科學家需要不斷地在新的和更新的資料上訓練 ML 模型來對抗這種現象(導致 ML 模型的效能再次下降),除非模型效能得到定期改進。

以下是一些可用於提高模型效能的技術: 1. 使用更先進的工具:更好的工具可能會提供更多功能來提高 ML 模型的效能,但必須考慮將這些新的 ML 模型工具實施到現有的 ML 系統中所需的時間。 2. 使用更多資料:增加用於訓練模型的資料量將有助於模型更好地泛化,從而保持更長時間的相關性。如果 ML 系統需要大量資料進行訓練,這種解決方案可能變得不切實際。 3. 使用 ML 模型整合方法:眾所周知,ML 模型整合可以提高 ML 模型的效能,因為整合根據幾個不同模型的預測來預測最可能的標籤。整合可以幫助 ML 系統避免概念漂移,因為如果整合中的一個模型正在經歷漂移,那麼它對整合預測的貢獻就會被整合中的其他模型所掩蓋。這種方法是以維護整合(ensemble)本身為代價的。整合(ensemble)需要仔細監控,以免造成比效能改進更大的危害。 4. 使用具有更高預測能力的 ML 模型:那些想要構建利用概念漂移和資料漂移的 ML 系統的人可以考慮使用通常更強大的 ML 模型,例如:隨機森林或廣義線性模型 (glm)。 ML 模型整合也可以使用高效能 ML 模型建立。模型特徵選擇可以被認為是提高模型效能的一種方法,儘管概念漂移會導致這種方法失敗,從而導致 ML 開發人員使用更復雜的 ML 模型演算法。

機器學習模型管理

什麼是機器學習模型管理?

模型管理是 MLOps 的一個子集,專注於實驗跟蹤、模型版本控制、部署和監控。在開發 ML 模型時,資料科學家通常會進行多次實驗以找到最優模型。這些實驗包括資料預處理、超引數調優和模型架構本身的變化。測試的目的是為特定用例找到最佳模型。在未來對次優配置進行實驗之前,資料科學家通常不知道當前配置是否最優。因此,跟蹤實驗對於開發 ML 模型至關重要。

在典型場景中,模型開發是一項協作工作。資料科學家經常使用同行的現有notebooks作為起點或進行實驗。這種合作增加了重現預期結果的難度。

模型管理通過以下方式解決這些挑戰:

  • 跟蹤指標、損失、程式碼和資料版本以促進實驗可複製性
  • 通過以可重複配置交付模型來實現可重用性
  • 確保遵守業務和監管要求的變化

版本控制系統用於 ML 模型管理,但僅提供部分必要功能。版本控制系統只跟蹤系統原始碼隨時間的變化。一個實用的 ML 模型管理框架還必須利用以下內容:

  • ML 模型監控:一種系統,可讓生產中的 ML 模型可見,並能夠檢測資料漂移、意外偏差、資料完整性問題等問題,這些問題會影響模型的預測和效能。
  • 可解釋性:理解輸入資料中的特徵與模型預測之間關係的能力。
  • 資料版本控制系統:資料版本控制跟蹤對資料集所做的更改,以進行試驗、訓練和部署。不同資料版本的原因包括資料預處理的變化和資料來源的變化。有關資料版本控制的更多資訊,請閱讀我們的 MLOps 最佳資料版本控制工具帖子。
  • 實驗跟蹤:實驗跟蹤器記錄每個訓練或驗證實驗的結果以及產生這些結果的配置。記錄的配置包括超引數,例如:學習率、批量大小或正則化等。
  • 模型登錄檔:部署中所有模型的登錄檔。

除了在研究中開發 ML 模型之外,為生產構建機器學習系統是一門手藝。因此,生產 ML 需要自己的一套工具和實踐來成功地大規模交付解決方案。從一開始就整合 ML 管理可確保您使用正確的工具來完成工作。

請參閱有關從頭開始構建 ML 平臺的動手教程。

image.png

為什麼在部署後管理和監視您的ML模型

部署的模型暴露在不斷變化的真實資料中。因此,部署模型後的 ML 管理對於確保模型繼續按預期執行至關重要。 ML 管理的一個子集是 ML 監控,這是一組用於觀察生產中 ML 模型的質量和效能的工具。擁有用於已部署模型的 ML 管理框架有助於團隊跟蹤效能指標、監控資料變化,並獲得關於模型效能不佳原因的寶貴見解,這將為改進效能提供資訊。例如,視覺化生產中相對於模型訓練資料的輸入資料可以展示資料漂移,促使您的團隊根據更新的資料重新訓練部署的模型。

ML 管理還可以幫助您跟蹤部署中的所有模型。 ML 管理包括儲存所有已部署模型的模型登錄檔和使用模型版本控制系統。模型登錄檔和版本控制與效能監控相結合,為生產中的 ML 模型提供了一個方便的全域性健康儀表板。藉助模型註冊和版本控制系統,團隊可以更好地查明哪些特性導致給定模型版本在某些設定中表現不佳。這使得改進部署的模型更加有效。

最後,在部署後管理 ML 模型將有助於跟蹤生產中的退化模型,並更好地安排診斷測試,以進一步瞭解不良效能。

image.png

可解釋性 (XAI)

什麼是機器學習的可解釋性?

使 ML 模型可解釋是關於建立理解輸入資料中的特徵與模型預測之間的關係的能力。 機器學習通常採用具有數千個可學習引數的架構,用於估計一個複雜的函式。 這使得很難描述模型內部發生的事情以輕鬆產生其輸出。 這個問題為 ML 模型贏得了“黑匣子”的稱號。

確保 ML 模型可解釋在現實世界中很複雜,因為: - 演算法結果的解釋取決於你有多少可用資料 - 機器學習演算法可能出錯的方式有很多

我們通過檢視幾個不同的方面來衡量模型的可解釋性

  1. 決策過程是否可解釋
  2. 模型預測結果的準確度(即準確率)
  3. 分類器的決定有多可靠

試圖瞭解機器學習演算法出了什麼問題需要大量調查,這可能具有挑戰性。 特別是,如果用於訓練模型的資料中存在偏差,我們無法判斷這些偏差是由於訓練中的錯誤造成的,還是僅僅是由於資料中固有的缺陷造成的。

使 ML 模型可解釋對於防止生產中的模型漂移至關重要,因為它消除了對效能不佳的模型進行故障排除所涉及的大量猜測。

有關實現可解釋 AI 的實踐指南,請參閱 Aporia 關於可解釋性的文件。

機器學習實驗跟蹤

什麼是機器學習實驗跟蹤?

ML 實驗跟蹤是儲存所有實驗結果和配置以實現這些實驗的可重複性的過程。

ML 研究人員進行了多次實驗以找到最佳模型,並且很難跟蹤所有實驗及其相關結果。為了找到一個最佳模型,ML 研究人員對各種資料集、超引數、模型架構、包版本等進行了多次實驗。

實驗跟蹤很重要,因為它將幫助您和您的團隊:

  1. 在一個地方組織所有 ML 實驗。您可以在您的本地機器上執行實驗,而隊友在雲端或使用 google colab 執行他們的實驗。 ML 實驗跟蹤系統將記錄來自任何系統或機器的實驗元資料和結果。
  2. 比較和分析實驗結果。實驗跟蹤系統可確保使用相同格式記錄所有實驗,從而可以在不增加成本的情況下比較不同的實驗配置和結果。
  3. 加強與團隊的協作。實驗跟蹤系統會記錄每個實驗的執行者。所有團隊成員都可以看到其他成員已經嘗試過的內容。他們還可以拉取其他人執行的實驗,複製它,然後從那裡繼續構建。
  4. 實時觀看您的實驗。實驗跟蹤系統使開始實驗並從儀表板遠端觀察它的執行變得簡單。在實驗執行期間,您將能夠看到損失、epoch時間和 CPU/GPU 使用率等指標。這對於在難以視覺化的環境中執行實驗尤其有用,例如在遠端機器上的雲中。

為了有效地跟蹤 ML 實驗,您需要跟蹤: - 程式碼:這包括用於執行實驗的指令碼和notebooks - 環境:環境配置檔案。 - 資料:使用資料版本來跟蹤實驗中使用的資料版本 - 引數:引數配置包括模型本身的超引數,例如學習率,還包括任何可編輯的實驗選項;例如,資料載入器使用的執行緒數 - 指標:訓練、驗證和測試損失是要跟蹤的一般指標的示例。您可以跟蹤特定於您正在訓練的模型的指標。例如,您可能還想在使用深度神經網路時跟蹤梯度範數。

ML 模型監控與跟蹤

ML 模型監控和 ML 實驗跟蹤之間的根本區別在於,模型監控主要是在模型部署到生產環境之後進行的。 相比之下,跟蹤在部署之前最為相關

一旦模型投入生產,我們就會實施 ML 監控來維護和改進模型效能。 一旦模型投入生產,我們就可以對其進行監控,以觀察真實世界資料的效能指標,並在它發生時注意到效能下降。

另一方面,ML 實驗跟蹤涉及在 ML 系統投入生產之前將其研究和開發付諸實施。 ML 跟蹤可幫助 ML 研究人員跟蹤在 ML 模型開發週期中執行的所有實驗的程式碼、環境配置、資料版本、引數和指標,以找到最佳配置。 ML 跟蹤與僅進行 ML 研究而不進行部署的環境相關,例如:為了研究論文的目的。

機器學習模型登錄檔

什麼是模型登錄檔?

模型登錄檔是生產中所有模型的儲存庫。它提供了一個訪問所有經過訓練和可用的 ML 模型的中心點。這種方法的目的是通過提供一種訪問、搜尋和管理每個已部署模型的統一方式來提高模型的可重用性。與 ML 相關的生態系統(例如:OpenML、ModelZoo 和 MODL-Wiki)是社群努力開發此類模型登錄檔的例子。

模型登錄檔的一個重要方面是所有模型都儲存在一箇中心位置,這意味著每個人都檢視相同的模型。在一個專案上協作的人對每個模型都有一個引用。模型登錄檔繞過了本地計算機上版本略有不同的問題。

模型登錄檔通過以下方式使 ML 專案的協作變得更加容易:

  1. 連線實驗和生產生命週期:模型登錄檔提供了一種從開發生命週期中獲取模型並將其分階段用於生產部署的標準化方法。模型登錄檔通過 ML 模型的持續整合、交付和訓練 (CI/CD/CT) 促進研究人員和 MLOps 工程師之間的互動。
  2. 為團隊提供一箇中央儀表板來處理模型。訪問模型的集中位置使團隊可以輕鬆搜尋模型和檢查模型的狀態,例如暫存、部署或退役。在中央儀表板中,團隊還可以通過實驗跟蹤器參考訓練和實驗結果,並通過 ML 監控檢視模型在生產中的實時效能。
  3. 為其他系統呈現一個介面以使用模型。模型登錄檔可以提供用於與其他應用程式或系統整合的 API,從而可以將 ML 模型提供給第三方客戶端應用程式。客戶端應用程式可以拉取模型的最新版本,並自動了解由於模型退化而對模型所做的更改。

原文連結:Machine Learning Model Monitoring 101