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