模型監控總覽

本文件說明 BigQuery ML 如何透過評估及比較模型使用的資料,支援機器學習 (ML) 模型監控功能。包括比較模型的服務資料與訓練資料,以及比較新的服務資料與先前使用的服務資料。

瞭解模型使用的資料是機器學習的關鍵要素,因為這類資料會影響模型效能。瞭解訓練資料和服務資料之間的差異,對於確保模型長期保持準確性尤其重要。模型在提供與訓練資料相似的資料時,成效最佳。如果應用資料與模型訓練資料不同,即使模型本身沒有變動,效能也可能會降低。

BigQuery ML 提供的函式可協助您分析訓練資料和服務資料,以找出資料偏差資料漂移

  • 當訓練資料的特徵值分布與正式環境中的提供資料有顯著差異時,就會發生資料偏差。模型訓練期間會儲存模型的訓練統計資料,因此您不必使用原始訓練資料,也能使用偏差偵測功能。
  • 當正式環境中的特徵資料分布情況隨時間大幅變動時,就會發生資料偏移。系統支援連續資料區間的漂移偵測,例如不同日期之間的服務資料。這樣一來,如果服務資料隨時間變化,您就能在資料集差異過大而需要重新訓練模型之前收到通知。

使用下列函式監控 BigQuery ML 中的模型:

  • ML.DESCRIBE_DATA:針對一組訓練或服務資料計算描述性統計資料。
  • ML.VALIDATE_DATA_SKEW:計算一組服務資料的統計資料,然後與 BigQuery ML 模型訓練時計算的訓練資料統計資料進行比較,以便找出兩個資料集之間的異常差異。系統只會針對符合訓練資料中特徵欄的服務資料中特徵欄計算統計資料,以便提高效能並降低成本。
  • ML.VALIDATE_DATA_DRIFT:計算並比較兩組服務資料的統計資料,以便找出兩個資料集之間的異常差異。
  • ML.TFDV_DESCRIBE:針對一組訓練或服務資料,計算精細的描述性統計資料。這個函式提供的行為與 TensorFlow tfdv.generate_statistics_from_csv API 相同。
  • ML.TFDV_VALIDATE:比較訓練和應用資料統計資料的統計資料,或兩組應用資料統計資料,以便找出兩個資料集之間的異常差異。這個函式提供的行為與 TensorFlow validate_statistics API 相同。

監控用途

本節將說明如何在常見監控用途中使用 BigQuery ML 模型監控函式。

基本資料偏差監控

如果您想快速開發及監控資料偏差的模型,且不需要精細的偏差統計資料來整合現有的監控解決方案,這類用途就很適合使用。

這個用途的常見步驟如下:

  1. 在訓練資料和服務資料上執行 ML.DESCRIBE_DATA 函式,確保兩個資料集彼此相較時的結果正確,且符合預期的參數。
  2. 建立 BigQuery ML 模型,並使用訓練資料進行訓練。
  3. 執行 ML.VALIDATE_DATA_SKEW 函式,比較服務資料統計資料與模型建立期間計算的訓練資料統計資料,以便查看是否有任何資料偏差。
  4. 如果出現資料偏差,請調查根本原因、適當調整訓練資料,然後重新訓練模型。

基本資料偏差監控

如要快速開發及監控資料偏差模型,且不需要精細的偏差統計資料來整合現有的監控解決方案,這類用途就很適合使用。

這個用途的常見步驟如下:

  1. 請在訓練和服務資料上執行 ML.DESCRIBE_DATA 函式,確保兩個資料集彼此相較時的結果正確,且符合預期的參數。
  2. 建立 BigQuery ML 模型,並使用訓練資料進行訓練。
  3. 執行 ML.VALIDATE_DATA_DRIFT 函式,比較兩個不同服務資料集的統計資料,以便查看是否有任何資料偏移。舉例來說,您可能想將目前的放送資料與資料表快照中的歷來放送資料,或是特定時間點放送的功能進行比較。您可以使用 ML.FEATURES_AT_TIME 函式取得這些資料。
  4. 如果發生資料偏移,請調查根本原因、適當調整訓練資料,然後重新訓練模型。

進階資料偏差或偏移監控

如果您想將精細的偏差或偏移統計資料整合至現有監控解決方案或其他用途,這類用途就很適合。

這個用途的常見步驟如下:

  1. 請根據監控解決方案的適當間隔,在訓練和服務資料上執行 ML.TFDV_DESCRIBE 函式,並儲存查詢結果。這個步驟可讓您比較未來的放送資料,以及過去某個時間點的訓練和放送資料。
  2. 您可以對訓練和服務資料統計資料,或兩組服務資料統計資料,執行 ML.TFDV_VALIDATE 函式,分別評估資料偏差或特徵偏移。訓練和服務資料必須以 JSON 格式的 TensorFlow DatasetFeatureStatisticsList 通訊協定緩衝區提供。您可以執行 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;
  3. 如果出現資料偏差或資料漂移,請調查根本原因、適當調整訓練資料,然後重新訓練模型。

監控圖表

部分監控函式可與 Vertex AI 模型監控整合,讓您使用圖表來分析模型監控函式輸出內容

使用 Vertex AI 可視化資料可帶來下列好處:

  • 互動式視覺化資料:使用 Vertex AI 控制台中的圖表和折線圖,探索資料分布、偏差指標和偏移指標。
  • 歷史資料分析:使用 Vertex AI 圖表追蹤模型監控結果的變化。這可讓您找出資料變更的趨勢和模式,進而主動更新及維護模型。
  • 集中管理:在統一的 Vertex AI 資訊主頁中管理所有 BigQuery ML 和 Vertex AI 模型的監控作業。

您可以使用該函式的 MODEL 引數,啟用 ML.VALIDATE_DATA_DRIFT 函式輸出的視覺化功能。您可以使用該函式的 enable_visualization_link 引數,啟用 ML.VALIDATE_DATA_SKEW 函式輸出的視覺化功能。

您只能針對已在 Vertex AI 中註冊的模型使用監控圖表。您可以使用 ALTER MODEL 陳述式註冊現有模型。

監控自動化

您可以使用排程查詢執行監控函式、評估輸出內容,並在偵測到異常時重新訓練模型,藉此自動化監控作業。您必須在設定排定查詢時啟用電子郵件通知。

如需自動化 ML.VALIDATE_DATA_SKEW 函式的範例,請參閱「自動偵測偏差」。