?? 作者:韓信子@ShowMeAI
?? 機器學習實戰系列:https://www.showmeai.tech/tutorials/41
?? 本文地址:https://www.showmeai.tech/article-detail/395
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容
完整的機器學習應用程序,除了資料處理、建模優化及模型部署,也需要進行后續的效果驗證跟蹤和ML模型監控——它能保證模型和場景是保持匹配且有優異效果的,
![]()
模型上線后,可能會存在效果下降等問題,面臨資料漂移等問題,詳見ShowMeAI的文章 ??機器學習資料漂移問題與解決方案,
ShowMeAI在這篇文章中,將給大家展示如何使用開源工具庫 whylogs 構建詳盡的 AI 日志平臺并監控 ML 模型,
?? 日志系統&模型監控
?? 環境配置
要構建日志系統并進行模型監控,會使用到開源資料日志庫??whylogs,它可以用于捕獲資料的關鍵統計屬性,安裝方式很簡單,執行下列 pip 命令即可
pip install "whylogs[whylabs]"
接下來,匯入所用的工具庫whylogs、pandas和os,我們也創建一份 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,整個操作程序如下圖所示:
?? 獲取組織 ID 和訪問 Key
選單 > 設定 > 訪問令牌 > 創建訪問令牌,如下圖所示:
經過這個配置,接下來就可以將資料組態檔寫入 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,就可以檢查、比較和監控資料質量和資料漂移,
上述步驟過后,只需單擊一下(或創建自定義監視器)即可啟用預配置的監視器,檢測資料組態檔中的例外情況,設定常見的監控任務是非常容易的,也可以很清晰快捷地檢測資料漂移、資料質量問題和模型性能,
配置監視器后,可以在檢查輸入功能時對其進行預覽,
當檢測到例外時,可以通過電子郵件、Slack 或 PagerDuty 發送通知,在設定 > 通知和摘要設定中設定通知首選項,
上述這些簡單的步驟,我們已經完成了從 ML 管道中的任何步驟提取資料、構建日志和監控分析,并在發生例外時得到通知,
?? 監控模型性能指標
前面看到了如何監控模型輸入和輸出資料,我們還可以通過在預測結果來監控性能指標,例如準確度、精確度等,
要記錄用于監控的性能指標,可以使用why.log_classification_metrics或why.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()
注意:確保您的專案在設定中配置為分類或回歸模型,
在下面的示例筆記本中查看用于性能監控的資料示例,
大家想獲得更多關于監控的示例 notebook 筆記本,可以查看官方 GitHub 關于 ??分類和 ??回歸的代碼,
參考資料
- ?? 機器學習資料漂移問題與解決方案:https://www.showmeai.tech/article-detail/331
- ?? whylogs:https://github.com/whylabs/whylogs
推薦閱讀
- ?? 資料分析實戰系列 :https://www.showmeai.tech/tutorials/40
- ?? 機器學習資料分析實戰系列:https://www.showmeai.tech/tutorials/41
- ?? 深度學習資料分析實戰系列:https://www.showmeai.tech/tutorials/42
- ?? TensorFlow資料分析實戰系列:https://www.showmeai.tech/tutorials/43
- ?? PyTorch資料分析實戰系列:https://www.showmeai.tech/tutorials/44
- ?? NLP實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/45
- ?? CV實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/46
- ?? AI 面試題庫系列:https://www.showmeai.tech/tutorials/48
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538620.html
標籤:其他
