whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

ShowMeAI發表於2022-11-28
whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

? 作者:韓信子@ShowMeAI
? 機器學習實戰系列https://www.showmeai.tech/tutorials/41
? 本文地址https://www.showmeai.tech/article-detail/395
? 宣告:版權所有,轉載請聯絡平臺與作者並註明出處
? 收藏ShowMeAI檢視更多精彩內容

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

完整的機器學習應用過程,除了資料處理、建模最佳化及模型部署,也需要進行後續的效果驗證跟蹤和ML模型監控——它能保證模型和場景是保持匹配且有優異效果的。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

模型上線後,可能會存在效果下降等問題,面臨資料漂移等問題。詳見ShowMeAI的文章 ?機器學習資料漂移問題與解決方案

ShowMeAI在這篇文章中,將給大家展示如何使用開源工具庫 whylogs 構建詳盡的 AI 日誌平臺並監控 ML 模型。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

? 日誌系統&模型監控

? 環境配置

要構建日誌系統並進行模型監控,會使用到開源資料日誌庫?whylogs,它可以用於捕獲資料的關鍵統計屬性。安裝方式很簡單,執行下列 pip 命令即可

pip install "whylogs[whylabs]"

接下來,匯入所用的工具庫whylogspandasos。我們也建立一份 Dataframe 資料集進行分析。

import whylogs as why
import pandas as pd
import os
# create dataframe with dataset
dataset = pd.read_csv("https://whylabs-public.s3.us-west-2.amazonaws.com/datasets/tour/current.csv")

使用 whylogs 建立的資料配置檔案可以單獨用於資料驗證和資料漂移視覺化,簡單的示例如下:

import whylogs as why
import pandas as pd

#dataframe
df = pd.read_csv("path/to/file.csv")
results = why.log(df)

這裡也講解一下雲端環境,即把配置檔案寫入 WhyLabs Observatory 以執行 ML 監控。

為了向 WhyLabs 寫入配置檔案,我們將 ?建立一個帳戶(免費)並獲取組織 ID、Key和專案 ID,以將它們設定為專案中的環境變數。

# Set WhyLabs access keys
os.environ["WHYLABS_DEFAULT_ORG_ID"] = 'YOURORGID'
os.environ["WHYLABS_API_KEY"] = 'YOURACCESSTOKEN'
os.environ["WHYLABS_DEFAULT_DATASET_ID"] = 'PROJECTID'

? 新建專案並獲取 ID

Create Project > Set up model > Create Project,整個操作過程如下圖所示:

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

? 獲取組織 ID 和訪問 Key

選單 > 設定 > 訪問令牌 > 建立訪問令牌,如下圖所示:

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

經過這個配置,接下來就可以將資料配置檔案寫入 WhyLabs。

? 將配置檔案寫入 WhyLabs 以進行 ML 監控

設定訪問金鑰後,可以輕鬆建立資料集的配置檔案並將其寫入 WhyLabs。這使我們只需幾行程式碼即可監控輸入資料和模型預測!

# initial WhyLabs writer, Create whylogs profile, write profile to WhyLabs
writer = WhyLabsWriter()
profile= why.log(dataset)
writer.write(file=profile.view())

我們可以在 pipeline 管道的任何階段建立配置檔案,也就是說可以對每個步驟的資料進行監控。一旦完成將配置檔案寫入 WhyLabs,就可以檢查、比較和監控資料質量和資料漂移。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

上述步驟過後,只需單擊一下(或建立自定義監視器)即可啟用預配置的監視器,檢測資料配置檔案中的異常情況。設定常見的監控任務是非常容易的,也可以很清晰快捷地檢測資料漂移、資料質量問題和模型效能。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

配置監視器後,可以在檢查輸入功能時對其進行預覽。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

當檢測到異常時,可以透過電子郵件、Slack 或 PagerDuty 傳送通知。在設定 > 通知和摘要設定中設定通知首選項。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

上述這些簡單的步驟,我們已經完成了從 ML 管道中的任何步驟提取資料、構建日誌和監控分析,並在發生異常時得到通知。

? 監控模型效能指標

前面看到了如何監控模型輸入和輸出資料,我們還可以透過在預測結果來監控效能指標,例如準確度、精確度等。

要記錄用於監控的效能指標,可以使用why.log_classification_metricswhy.log_regression_metrics並傳入包含模型輸出結果的 Dataframe。

results = why.log_classification_metrics(
         df,
         target_column = "ground_truth",
         prediction_column = "cls_output",
         score_column="prob_output"
     )
 
 profile = results.profile() 
 results.writer("whylabs").write()

注意:確保您的專案在設定中配置為分類或迴歸模型。

在下面的示例筆記本中檢視用於效能監控的資料示例。

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

大家想獲得更多關於監控的示例 notebook 筆記本,可以檢視官方 GitHub 關於 ?分類和 ?迴歸的程式碼。

參考資料

推薦閱讀

whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵

相關文章