使用 API 在提供端點的模型上啟用推斷數據表
重要
這項功能處於公開預覽狀態。
本文說明如何使用 Databricks API 來啟用模型服務端點的推斷數據表。 如需使用推斷數據表的一般資訊,包括如何使用 Databricks UI 加以啟用,請參閱 用於監視和偵錯模型的推斷數據表。
您可以在建立新的端點或現有端點時啟用推斷數據表。 Databricks 建議您使用服務主體建立端點,以便在建立端點的使用者從工作區移除時,不會影響推斷數據表。
推斷數據表的擁有者是建立端點的使用者。 數據表上的所有訪問控制清單 (ACL) 都遵循標準 Unity 目錄許可權,而且可由數據表擁有者修改。
需求
- 您的工作區必須已啟用 Unity 目錄。
- 端點和修飾詞的建立者都必須具有 端點的 Can Manage 許可權。 請參閱存取控制清單。
- 端點和修飾詞的建立者都必須在 Unity 目錄中具有下列 許可權 :
USE CATALOG
指定之目錄的許可權。USE SCHEMA
指定架構的許可權。CREATE TABLE
架構中的許可權。
使用 API 在端點建立時啟用推斷數據表
您可以在使用 API 建立端點期間啟用端點的推斷資料表。 如需建立端點的指示,請參閱 建立提供端點的自定義模型。
在 API 中,要求主體必須 auto_capture_config
指定:
- Unity 目錄目錄:字串,代表要儲存數據表的目錄
- Unity 目錄架構:字串,表示要儲存數據表的架構
- (選擇性) 數據表前置詞:做為推斷數據表名稱前置詞的字串。 如果未指定此專案,則會使用端點名稱。
- 已啟用 (選擇性) :用來啟用或停用推斷數據表的布爾值。 根據預設,這是 true。
指定目錄、架構和選擇性數據表前置詞之後,會在 建立 <catalog>.<schema>.<table_prefix>_payload
數據表。 此數據表會自動建立 Unity 目錄受控數據表。 數據表的擁有者是建立端點的使用者。
注意
不支援指定現有的數據表,因為推斷數據表一律會在端點建立或端點更新時自動建立。
警告
如果您執行下列任何動作,推斷數據表可能會損毀:
- 變更數據表架構。
- 變更數據表名稱。
- 刪除資料表。
- 失去 Unity 目錄目錄或架構的許可權。
在此情況下, auto_capture_config
端點狀態的 會顯示 FAILED
承載數據表的狀態。 如果發生這種情況,您必須建立新的端點,才能繼續使用推斷數據表。
下列範例示範如何在端點建立期間啟用推斷數據表。
POST /api/2.0/serving-endpoints
{
"name": "feed-ads",
"config":{
"served_entities": [
{
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"auto_capture_config":{
"catalog_name": "ml",
"schema_name": "ads",
"table_name_prefix": "feed-ads-prod"
}
}
}
回應如下所示:
{
"name": "feed-ads",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "NOT_READY",
"config_update": "IN_PROGRESS"
},
"pending_config": {
"start_time": 1666718879000,
"served_entities": [
{
"name": "ads1-1",
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true,
"state": {
"deployment": "DEPLOYMENT_CREATING",
"deployment_state_message": "Creating"
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"config_version": 1,
"traffic_config": {
"routes": [
{
"served_model_name": "ads1-1",
"traffic_percentage": 100
}
]
},
"auto_capture_config": {
"catalog_name": "ml",
"schema_name": "ads",
"table_name_prefix": "feed-ads-prod",
"state": {
"payload_table": {
"name": "feed-ads-prod_payload"
}
},
"enabled": true
}
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
一旦啟用登入推斷數據表之後,請等候端點準備就緒。 然後,您可以開始呼叫它。
建立推斷數據表之後,系統應該處理架構演進和新增數據。
下列作業不會影響資料表的完整性:
- 針對數據表執行 OPTIMIZE、ANALYZE 和 VACUUM。
- 刪除舊的未使用數據。
如果您未指定 auto_capture_config
,預設會重複使用先前組態版本的設定組態。 例如,如果推斷數據表已啟用,則會在下一個端點更新上使用相同的設定,或如果推斷數據表已停用,則會繼續停用。
{
"served_entities": [
{
"name":"current",
"entity_name":"model-A",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
}
],
"auto_capture_config": {
"enabled": false
}
}
使用 API 在現有端點上啟用推斷數據表
您也可以使用 API 在現有的端點上啟用推斷資料表。 啟用推斷數據表之後,請在未來的更新端點 API 呼叫中繼續指定相同的 auto_capture_config
主體,以繼續使用推斷數據表。
注意
不支援啟用推斷數據表之後變更數據表位置。
PUT /api/2.0/serving-endpoints/{name}/config
{
"served_entities": [
{
"name":"current",
"entity_name":"model-A",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
},
{
"name":"challenger",
"entity_name":"model-B",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
}
],
"traffic_config":{
"routes": [
{
"served_model_name":"current",
"traffic_percentage":"50"
},
{
"served_model_name":"challenger",
"traffic_percentage":"50"
}
]
},
"auto_capture_config":{
"catalog_name": "catalog",
"schema_name": "schema",
"table_name_prefix": "my-endpoint"
}
}
停用推斷數據表
停用推斷數據表時,您不需要指定目錄、架構或數據表前置詞。 唯一的必要欄位是 enabled: false
。
POST /api/2.0/serving-endpoints
{
"name": "feed-ads",
"config":{
"served_entities": [
{
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"auto_capture_config":{
"enabled": false
}
}
}
若要重新啟用已停用的推斷數據表,請遵循在現有端點上啟用推斷數據表中的指示。 您可以使用相同的資料表或指定新的資料表。
下一步
啟用推斷數據表之後,您可以使用 Databricks Lakehouse Monitoring 來監視模型服務端點中的服務模型。 如需詳細資訊,請參閱 工作流程:使用推斷數據表監視模型效能。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應