重要
這項功能處於公開預覽狀態。
重要
本文說明舊版推斷數據表體驗,這隻與特定布建的輸送量和自定義模型端點相關。 不建議使用此體驗。 Databricks 建議使用 啟用 AI 閘道的推理表,以提供自定義模型、基礎模型和代理程式端點的可用性。
本文說明如何使用 Databricks API 為提供端點的
您可以在建立新的端點或現有端點時啟用推斷數據表。 Databricks 建議您使用服務主體建立端點,以便在建立端點的使用者從工作區移除時,不會影響推斷數據表。
推斷數據表的擁有者是建立端點的使用者。 數據表上的所有訪問控制清單 (ACL) 都遵循標準 Unity 目錄許可權,而且可由數據表擁有者修改。
需求
- 您的工作區必須已啟用 Unity Catalog。
- 端點和修飾元的建立者都必須擁有端點的 Can Manage 權限。 請參閱存取控制清單。
- 端點的建立者和修改者都必須在 Unity 目錄中具有下列許可權:
-
USE CATALOG指定目錄的權限。 -
USE SCHEMA指定架構的許可權。 -
CREATE TABLE架構中的權限。
-
使用 API 在端點建立時啟用推斷數據表
您可以在使用 API 建立端點時啟用端點的推理表格。 如需建立端點的指示,請參閱 建立提供端點的自定義模型。
在 API 中,要求主體必須 auto_capture_config 指定:
- Unity Catalog 目錄:字串,代表要儲存表格的目錄
- Unity 目錄架構:字串,表示要儲存數據表的架構
- (選擇性) 數據表前置詞:做為推斷數據表名稱前置詞的字串。 如果未指定,則會使用端點名稱。
- 已啟用 (選擇性) :用來啟用或停用推斷數據表的布爾值。 根據預設,這是 true。
指定目錄、架構和選擇性數據表前置詞之後,會在 <catalog>.<schema>.<table_prefix>_payload建立數據表。 此資料表會自動建立 Unity 目錄受控資料表。 數據表的擁有者是建立端點的使用者。
注意
不支援指定現有的數據表,因為推斷數據表一律會在端點建立或端點更新時自動建立。
警告
如果您執行下列任何動作,推斷數據表可能會損毀:
- 變更數據表架構。
- 變更數據表名稱。
- 刪除資料表。
- 失去 Unity Catalog 目錄或配置架構的許可權。
在此情況下,端點狀態 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
}
}
}
若要重新啟用已停用的推斷資料表,請遵循 在現有端點上啟用推斷數據表中的指示。 您可以使用相同的資料表或指定新的資料表。
下一步
啟用推論資料表之後,您可以使用資料分析來監控模型服務端點中的服務模型。 如需詳細資訊,請參閱 工作流程:使用推斷數據表監視模型效能。