模型監控總覽
本文說明 BigQuery ML 如何透過評估及比較模型使用的資料,支援監控機器學習 (ML) 模型。包括比較模型的提供資料與訓練資料,以及比較新的提供資料與先前使用的提供資料。
瞭解模型使用的資料是機器學習的重要環節,因為這些資料會影響模型效能。瞭解訓練和服務資料之間的差異,對於確保模型長期維持準確度特別重要。模型在處理與訓練資料相似的服務資料時,成效最佳。如果應用資料與模型訓練資料不同,就算模型本身沒有變動,效能也可能會降低。
BigQuery ML 提供多項函式,可協助您分析訓練和服務資料的資料偏斜和資料漂移:
- 當訓練資料的特徵值分布與正式環境中的服務資料顯著不同時,就會發生資料偏移。模型訓練期間會儲存模型訓練統計資料,因此您不需要原始訓練資料,就能使用偏差偵測功能。
- 資料偏移是指正式環境中的特徵資料分布情況隨時間大幅變動。系統支援偵測連續資料跨度之間的偏移,例如不同服務資料日期之間的偏移。這樣一來,如果服務資料隨時間變化,您就能在資料集差異過大而需要重新訓練模型前收到通知。
使用下列函式監控 BigQuery ML 中的模型:
ML.DESCRIBE_DATA
:計算一組訓練或服務資料的描述性統計資料。ML.VALIDATE_DATA_SKEW
:計算一組服務資料的統計資料,然後與訓練 BigQuery ML 模型時計算的訓練資料統計資料進行比較,找出這兩組資料之間的異常差異。系統只會計算服務資料中與訓練資料特徵資料欄相符的特徵資料欄統計資料,以提升效能並降低成本。ML.VALIDATE_DATA_DRIFT
:計算及比較兩組應用資料的統計資料,找出兩組資料之間的異常差異。ML.TFDV_DESCRIBE
:計算一組訓練或服務資料的精細描述性統計資料。這個函式的行為與 TensorFlowtfdv.generate_statistics_from_csv
API 相同。ML.TFDV_VALIDATE
:比較訓練和應用資料的統計資料,或兩組應用資料的統計資料,找出兩組資料之間的異常差異。這個函式的行為與 TensorFlowvalidate_statistics
API 相同。
監控用途
本節說明如何在常見的監控用途中,使用 BigQuery ML 模型監控函式。
基本資料偏差監控
如果您想快速開發及監控資料偏斜模型,且不需要精細的偏斜統計資料來整合現有的監控解決方案,就適合使用這個用途。
這個用途的典型步驟如下:
- 在訓練和服務資料上執行
ML.DESCRIBE_DATA
函式,確保兩個資料集可適當比較,且符合預期參數。 - 建立 BigQuery ML 模型,並使用訓練資料訓練模型。
- 執行
ML.VALIDATE_DATA_SKEW
函式,比較服務資料統計資料與模型建立期間計算出的訓練資料統計資料,查看是否有任何資料偏差。 - 如果出現資料偏差,請調查根本原因、適當調整訓練資料,然後重新訓練模型。
基本資料漂移監控
如果您想快速開發及監控資料偏移模型,且不需要精細的偏移統計資料來整合現有的監控解決方案,就適合使用這個應用實例。
這個用途的典型步驟如下:
- 在訓練和服務資料上執行
ML.DESCRIBE_DATA
函式,確保兩個資料集彼此適當比較,且在預期參數範圍內。 - 建立 BigQuery ML 模型,並使用訓練資料訓練模型。
- 執行
ML.VALIDATE_DATA_DRIFT
函式,比較兩個不同服務資料集的統計資料,查看是否有任何資料漂移。舉例來說,您可能想比較目前的放送資料與表格快照中的歷史放送資料,或是與特定時間點放送的功能,這可透過ML.FEATURES_AT_TIME
函式取得。 - 如果發生資料漂移,請調查根本原因、適當調整訓練資料,然後重新訓練模型。
進階資料偏差或偏移監控
如果您想取得精細的偏斜或漂移統計資料,以便與現有的監控解決方案整合,或用於其他用途,就適合採用這個應用實例。
這個用途的典型步驟如下:
- 在訓練和服務資料上以適當間隔執行
ML.TFDV_DESCRIBE
函式,並儲存查詢結果。這個步驟可讓您比較未來的服務資料與過去時間點的訓練和服務資料。 在訓練和提供資料的統計資料,或兩組提供資料的統計資料上執行
ML.TFDV_VALIDATE
函式,分別評估資料偏斜或特徵漂移。訓練和服務資料必須以 JSON 格式提供,並採用 TensorFlowDatasetFeatureStatisticsList
Protocol Buffers。您可以執行ML.TFDV_DESCRIBE
函式,以正確格式產生通訊協定緩衝區,也可以從 BigQuery 外部載入。以下範例說明如何評估特徵偏斜:DECLARE stats1 JSON; DECLARE stats2 JSON; SET stats1 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`) ); SET stats2 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`) ); SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW'); INSERT `myproject.mydataset.serve_stats` (t, dataset_feature_statistics_list) SELECT CURRENT_TIMESTAMP() AS t, stats1;
如果出現資料偏斜或資料漂移,請調查根本原因、適當調整訓練資料,然後重新訓練模型。
監控資料視覺化
部分監控功能可與 Vertex AI 模型監控整合,方便您使用圖表分析模型監控功能輸出內容。
使用 Vertex AI 視覺化功能有以下好處:
- 互動式視覺化:在 Vertex AI 控制台使用圖表,探索資料分布、偏斜指標和漂移指標。
- 歷史分析:使用 Vertex AI 視覺化功能,追蹤模型監控結果的變化。這有助於找出資料變更的趨勢和模式,以便主動更新及維護模型。
- 集中管理:在統一的 Vertex AI 資訊主頁中,管理所有 BigQuery ML 和 Vertex AI 模型的監控作業。
您可以使用 ML.VALIDATE_DATA_DRIFT
函式的 MODEL
引數,啟用該函式輸出的視覺化功能。您可以使用 ML.VALIDATE_DATA_SKEW
函式的 enable_visualization_link
引數,啟用該函式輸出的視覺化功能。
只有註冊至 Vertex AI 的模型,才能使用監控視覺化功能。您可以使用 ALTER MODEL
陳述式註冊現有模型。
監控自動化
您可以使用排程查詢執行監控函式、評估輸出內容,並在偵測到異常情形時重新訓練模型,自動執行監控作業。您必須在設定排定查詢時啟用電子郵件通知。
如需自動執行 ML.VALIDATE_DATA_SKEW
函式的範例,請參閱「自動偵測偏斜」。