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

語言: CN / TW / HK

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

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

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

💡 日誌系統&模型監控

💦 環境配置

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

python pip install "whylogs[whylabs]"

接下來,導入所用的工具庫whylogspandasos。我們也創建一份 Dataframe 數據集進行分析。

```python 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 創建的數據配置文件可以單獨用於數據驗證和數據漂移可視化,簡單的示例如下:

```python 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,以將它們設置為項目中的環境變量。

```python

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,整個操作過程如下圖所示:

💦 獲取組織 ID 和訪問 Key

菜單 > 設置 > 訪問令牌 > 創建訪問令牌,如下圖所示:

經過這個配置,接下來就可以將數據配置文件寫入 WhyLabs。

💦 將配置文件寫入 WhyLabs 以進行 ML 監控

設置訪問密鑰後,可以輕鬆創建數據集的配置文件並將其寫入 WhyLabs。這使我們只需幾行代碼即可監控輸入數據和模型預測!

```python

initial WhyLabs writer, Create whylogs profile, write profile to WhyLabs

writer = WhyLabsWriter() profile= why.log(dataset) writer.write(file=profile.view()) ```

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

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

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

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

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

💦 監控模型性能指標

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

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

```python 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() ```

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

在下面的示例筆記本中查看用於性能監控的數據示例。

大家想獲得更多關於監控的示例 notebook 筆記本,可以查看官方 GitHub 關於 📘分類和 📘迴歸的代碼。

參考資料

本文正在參加「金石計劃 . 瓜分6萬現金大獎」

「其他文章」