iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
AI & Data

一起學習 Azure Machine Learning 系列 第 29

[DAY29] 用 Application Insights 來監視部署的模型

DAY29 用 Application Insights 來監視部署的模型

我們已經把大部份的 Azure Machine Learning SDK 講完了,我們先來講怎麼來監控我們的部署吧!模型在部署上去之後,我們要持續監控這個服務的狀況。在微軟 Azure 上提供的解決方案是 Application Insights。Application Insights 是一款 APM(Application Performance Management),可以來監控應用程式的效能,並且提供分析工具。一般我們在 Web 服務上,都會安裝這類的 APM 工具。

啟用 Application Insights

還記得我們在第 8 天,第一次談部署時,有個選項要叫大家勾起來嗎?下面這張圖片,我們當時請大家點開 Advance,然後把那個 Enable Application Insights 選項給勾起來。如果有勾起來,就有安裝成功 Application Insights 囉!

Deploy Model with Design in Azure machine learning

  1. 確認是否有啟用 Application Insights,可以參考下面程式碼:
from azureml.core import Workspace

ws = Workspace.from_config()
ws.get_details()['applicationInsights']

如果有印出像下圖一樣的資訊,就是有安裝成功了。
monitor in Azure machine learning

  1. 如果已經建好的服務,要啟用 Application Insights 的話,可以用 SDK 這樣子啟用。
from azureml.core import Workspace
from azureml.core.webservice import Webservice

ws = Workspace.from_config()
aks_service= Webservice(ws, "titanic") # 你的 service 的名稱
aks_service.update(enable_app_insights=True)
  1. 接著我們可以去以前在 AutoML 建立的 Endpoints 裡,進到 Test 分頁,來直接打幾筆資料。
    Deploy AutoML in Azure machine learning

  2. 接著我們進到剛剛建立的 Application Insights 資源裡,在 Overview 的頁面,就可以看到我們剛剛打的紀錄呢!可以參考下圖。
    monitor in Azure machine learning

  3. 接首我們來發幾筆有問題的資料,故意讓程式出錯。再進到 Application Insights 的頁面裡,可以看到在 Failed requests 的 panel,看到好幾筆錯誤訊息了。
    monitor in Azure machine learning

  4. 我們可以點進去 Failed requests 的 panel 裡,可以更進一步看錯誤的資訊是什麼。
    monitor in Azure machine learning

客製化 Application Insights 資訊

  1. 當然紀錄的資訊也是可以客製化的,不過我們就要自己寫在 score.py 裡面了。忘記這是什麼東西的話可以去參考 DAY25 的內容。我們只要簡單使用 print() 加上要紀錄下來的內容就可以囉!我這裡就把 DAY25 的score.py,單純 print 出模型的路徑。

  2. 接著我們再回到 Application Insights 裡,在 Blade 選單裡,找到 Logs。這個是我們可以用類似 SQL 的語法查詢 Log 的地方。我們輸入下面的語句來搜尋。

traces
|where message == "STDOUT" // print 的資料會出現在 STDOUT
  and customDimensions.["Service Name"] == "mnist-classification-insight" //這裡放這個 web service 的名稱
| project  timestamp, customDimensions.Content // 出現時間和印出來的內容
  1. 搜尋到的結果會如下圖。我們可以看到模型的路徑就被紀錄起來囉!
    monitor in Azure machine learning

今天我們就學完監控部署模型的操作啦!需注意在實務上,我們在score.py裡會紀錄更多的東西,例如該次 inference 的 confidence 等等的資料哦!明天最後一天,我們就來談 MLOps 吧!


上一篇
[DAY28] 用 hyperdrive 來微調超參數
下一篇
[DAY30] 淺談 Azure Machine Learning 的 MLOps 做法
系列文
一起學習 Azure Machine Learning 30

尚未有邦友留言

立即登入留言