使用 AI 閘道啟用的推理表來監控已服務的模型
重要
這項功能目前處於 公開預覽版。
重要
本文說明適用於外部模型、布建輸送量工作負載或代理程式模型的推斷數據表的主題。 如需 自訂模型,請參閱 推斷數據表,以監視和偵錯模型。
本文說明支援 AI 閘道的推斷數據表,以監視服務模型。 推論表會自動擷取端點的連入要求和傳出回應,並將其記錄為 Unity Catalog Delta 表。 您可以使用此資料表中的數據來監視、評估、比較和微調機器學習模型。
什麼是已啟用 AI 閘道的推斷數據表?
已啟用 AI 閘道的推斷數據表會持續記錄來自馬賽克 AI 模型服務端點的要求輸入和回應,並將其儲存至 Unity 目錄中的 Delta 數據表,藉此簡化模型的監視和診斷。 然後,您可以使用 Databricks 平臺的所有功能,例如 Databricks SQL 查詢和筆記本來監視、偵錯和優化您的模型。
您可以在現有或新建立的模型服務端點啟用推論表,然後會自動將該端點的請求記錄到 Unity Catalog 中的表格中。
推斷資料表的一些常見應用程式如下:
- 建立訓練語料庫。 藉由將推理表與真實標籤結合,您可以建立一個訓練語料庫,藉此重新訓練或微調以改善模型。 使用 Databricks 作業,您可以設定連續的回饋迴圈,並自動重新訓練。
- 監視數據和模型品質。 您可以使用 Lakehouse 監視器持續監控您的模型效能和數據漂移。 Lakehouse Monitoring 會自動產生您可以與專案關係人共用的數據和模型品質儀錶板。 此外,您可以啟用提醒,了解何時需要根據傳入數據的變動重新訓練您的模型,或因模型效能下降而進行調整。
- 偵錯生產問題。 推斷表格記錄數據,例如 HTTP 狀態代碼、請求和回應的 JSON 代碼、模型運行時間,以及 在模型運行時間內追蹤輸出。 您可以使用此效能資料進行偵錯。 您也可以使用歷史數據在推論表中比較模型在歷史請求上的效能。
要求
可選擇的 Databricks 工作區:
針對在 Unity Catalog 儲存帳戶上設定私人連線的工作區,請遵循 中從無伺服器計算進行私人連線設定的步驟。
Databricks 建議您 啟用預測優化,以優化推斷數據表的效能。
您的工作區必須已啟用 Unity Catalog。
端點和修飾詞的建立者都必須具有端點 可以管理 許可權。 請參閱 訪問控制清單。
端點的建立者和修改者都必須在 Unity Catalog 中具有下列 許可權:
-
USE CATALOG
指定目錄的權限。 -
USE SCHEMA
指定的架構權限。 -
CREATE TABLE
架構中的權限。
-
警告
如果您執行下列任何動作,推斷資料表可能會停止記錄資料或損毀:
- 變更數據表架構。
- 變更數據表名稱。
- 刪除資料表。
- 失去 Unity Catalog 目錄或結構的許可權。
啟用和停用推斷數據表
本節說明如何使用服務 UI 來啟用或停用推斷數據表。 推斷數據表的擁有者是建立端點的使用者。 數據表上的所有訪問控制清單 (ACL) 都遵循標準 Unity 目錄許可權,而且可由數據表擁有者修改。
若要在端點建立期間啟用推斷數據表,請使用下列步驟:
- 在 Databricks 馬賽克 AI UI 中,點擊 服務。
- 點選 [建立服務端點]。
- 在 [AI 閘道] 區段中,選取 [啟用推斷數據表]。
您也可以在現有的端點上啟用推斷數據表。 若要編輯現有的端點組態,請執行下列動作:
- 在 [AI 閘道] 區段中,按一下 [編輯 AI 閘道]。
- 選擇 開啟推斷資料表。
請遵循下列指示來停用推斷資料表:
- 導航至您的端點頁面。
- 點擊 編輯 AI 閘道。
- 按一下 [啟用推斷資料表] 以移除 複選標記。
- 確認 AI 閘道規格滿意後,請按一下 更新。
在推斷數據表中查詢和分析結果
服務模型準備就緒之後,所有對模型的請求和相應的回應都會自動記錄至推理表。 您可以在UI中檢視數據表、從 Databricks SQL 或筆記本查詢數據表,或使用 REST API 查詢數據表。
若要在UI中檢視數據表: 在端點頁面上,按兩下推斷數據表的名稱,以在目錄總管中開啟資料表。
若要從 Databricks SQL 或 Databricks 筆記本查詢數據表: 您可以執行類似下列的程式碼來查詢推斷數據表。
SELECT * FROM <catalog>.<schema>.<payload_table>
** 若要將推斷數據表數據與端點上提供的基礎模型詳細數據聯結:** 基礎模型詳細數據會擷取到 system.serving.served_entities 系統數據表中。
SELECT * FROM <catalog>.<schema>.<payload_table> payload
JOIN system.serving.served_entities se on payload.served_entity_id = se.served_entity_id
已啟用 AI 閘道的推斷資料表架構
使用 AI 閘道開啟的推斷資料表具有下列架構:
欄名稱 | 描述 | 類型 |
---|---|---|
request_date |
接收模型服務請求的 UTC 日期。 | 日期 |
databricks_request_id |
Azure Databricks 產生的請求標識符附加至所有模型服務請求。 | 字串 |
request_time |
接收要求的時間戳。 | 時間戳 |
status_code |
從模型傳回的 HTTP 狀態代碼。 | INT |
sampling_fraction |
在要求被向下取樣時使用的取樣分數。 此值介於 0 到 1 之間,其中 1 代表包含了所有傳入要求的 100%。 | 雙 |
execution_duration_ms |
模型執行推斷的毫秒數。 這不包括額外的網路等待時間,而且只代表模型產生預測所花費的時間。 | BIGINT |
request |
傳送至模型服務端點的原始要求 JSON 主體。 | 字串 |
response |
模型服務端點所傳回的原始回應 JSON 主體。 | 字串 |
served_entity_id |
服務實體的唯一標識碼。 | 字串 |
logging_error_codes |
無法記錄數據時所發生的錯誤。 錯誤碼包括 MAX_REQUEST_SIZE_EXCEEDED 和 MAX_RESPONSE_SIZE_EXCEEDED 。 |
陣列 |
requester |
用戶或服務主體的標識碼,其許可權會用於服務端點的調用要求。 | 字串 |
限制
設定的吞吐量工作負載:
- 如果您建立新的模型服務端點,並使用預配置的吞吐量,則僅支援已啟用 AI 閘道的推論表格。
- 如果您有一個使用布建輸送量的現有模型,而且它 先前從未設定過推斷數據表,您可以更新它以使用已啟用 AI 閘道的推斷數據表。
- 如果您有使用布建輸送量的現有模型,且其 目前或先前設定的推斷數據表,則可以 不要 更新它以使用已啟用 AI 閘道的推斷數據表。
- 針對串流 AI 代理程式回應記錄,只會匯總與 ChatCompletion 相容的欄位和追蹤。
推理表記錄傳遞目前為盡力而為,但您可以預期在請求後1小時內可獲得記錄。 請連絡 Databricks 帳戶小組以取得詳細資訊。
記錄的要求和回應大小上限為 1 MiB(1,048,576 個字節)。 超過此限制的請求和響應負載會記錄為
null
,且logging_error_codes
會填入MAX_REQUEST_SIZE_EXCEEDED
或MAX_RESPONSE_SIZE_EXCEEDED
。