Aktivera slutsatsdragningstabeller för modell som betjänar slutpunkter med hjälp av API:et
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Den här artikeln beskriver hur du använder Databricks API för att aktivera slutsatsdragningstabeller för en modell som betjänar slutpunkten. Allmän information om hur du använder slutsatsdragningstabeller, inklusive hur du aktiverar dem med hjälp av Databricks-användargränssnittet, finns i Slutsatsdragningstabeller för övervakning och felsökning av modeller.
Du kan aktivera slutsatsdragningstabeller när du skapar en ny slutpunkt eller på en befintlig slutpunkt. Databricks rekommenderar att du skapar slutpunkten med tjänstens huvudnamn så att slutsatsdragningstabellen inte påverkas om användaren som skapade slutpunkten tas bort från arbetsytan.
Ägaren till slutsatsdragningstabellerna är den användare som skapade slutpunkten. Alla åtkomstkontrollistor (ACL: er) i tabellen följer standardbehörigheterna för Unity-katalogen och kan ändras av tabellägaren.
Krav
- Unity Catalog måste vara aktiverat på arbetsytan.
- Både skaparen av slutpunkten och modifieraren måste ha behörigheten Kan hantera på slutpunkten. Se Åtkomstkontrollistor.
- Både skaparen av slutpunkten och modifieraren måste ha följande behörigheter i Unity Catalog:
USE CATALOG
behörigheter för den angivna katalogen.USE SCHEMA
behörigheter för det angivna schemat.CREATE TABLE
behörigheter i schemat.
Aktivera slutsatsdragningstabeller när slutpunkten skapas med hjälp av API:et
Du kan aktivera slutsatsdragningstabeller för en slutpunkt när slutpunkten skapas med hjälp av API:et. Anvisningar om hur du skapar en slutpunkt finns i Skapa anpassade modell som betjänar slutpunkter.
I API:et har begärandetexten en auto_capture_config
att ange:
- Unity Catalog-katalogen: sträng som representerar katalogen för att lagra tabellen
- Unity Catalog-schemat: sträng som representerar schemat för att lagra tabellen
- (valfritt) tabellprefix: sträng som används som prefix för inferenstabellens namn. Om detta inte anges används slutpunktsnamnet.
- (valfritt) aktiverat: booleskt värde som används för att aktivera eller inaktivera slutsatsdragningstabeller. Detta är sant som standard.
När du har angett en katalog, ett schema och valfritt tabellprefix skapas en tabell på <catalog>.<schema>.<table_prefix>_payload
. Den här tabellen skapar automatiskt en hanterad Unity Catalog-tabell. Tabellens ägare är den användare som skapar slutpunkten.
Kommentar
Det går inte att ange en befintlig tabell eftersom slutsatsdragningstabellen alltid skapas automatiskt när slutpunkten skapas eller slutpunktsuppdateringar skapas.
Varning
Slutsatsdragningstabellen kan skadas om du gör något av följande:
- Ändra tabellschemat.
- Ändra tabellnamnet.
- Ta bort tabellen.
- Förlora behörigheter till Unity Catalog-katalogen eller schemat.
I det här fallet auto_capture_config
visar slutpunktsstatusen ett FAILED
tillstånd för nyttolasttabellen. Om detta händer måste du skapa en ny slutpunkt för att fortsätta använda slutsatsdragningstabeller.
I följande exempel visas hur du aktiverar slutsatsdragningstabeller när slutpunkten skapas.
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"
}
}
}
Svaret ser ut så här:
{
"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"
}
När loggning till slutsatsdragningstabeller har aktiverats väntar du tills slutpunkten är klar. Sedan kan du börja anropa den.
När du har skapat en slutsatsdragningstabell ska schemautveckling och tillägg av data hanteras av systemet.
Följande åtgärder påverkar inte tabellens integritet:
- Köra OPTIMIZE, ANALYZE och VACUUM mot tabellen.
- Tar bort gamla oanvända data.
Om du inte anger en auto_capture_config
används som standard konfigurationen av inställningarna från den tidigare konfigurationsversionen på nytt. Om inferenstabeller till exempel redan har aktiverats används samma inställningar vid nästa slutpunktsuppdatering eller om slutsatsdragningstabeller inaktiverades fortsätter de att inaktiveras.
{
"served_entities": [
{
"name":"current",
"entity_name":"model-A",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
}
],
"auto_capture_config": {
"enabled": false
}
}
Aktivera slutsatsdragningstabeller på en befintlig slutpunkt med hjälp av API:et
Du kan också aktivera slutsatsdragningstabeller på en befintlig slutpunkt med hjälp av API:et. När inferenstabeller har aktiverats fortsätter du att ange samma auto_capture_config
brödtext i framtida API-anrop för uppdateringsslutpunkter för att fortsätta använda slutsatsdragningstabeller.
Kommentar
Det går inte att ändra tabellplatsen efter aktivering av slutsatsdragningstabeller.
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"
}
}
Inaktivera slutsatsdragningstabeller
När du inaktiverar slutsatsdragningstabeller behöver du inte ange katalog-, schema- eller tabellprefix. Det enda obligatoriska fältet är 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
}
}
}
Om du vill återaktivera en inaktiverad slutsatsdragningstabell följer du anvisningarna i Aktivera slutsatsdragningstabeller på en befintlig slutpunkt. Du kan använda antingen samma tabell eller ange en ny tabell.
Nästa steg
När du har aktiverat slutsatsdragningstabeller kan du övervaka de hanterade modellerna i din modell som betjänar slutpunkten med Databricks Lakehouse Monitoring. Mer information finns i Arbetsflöde: Övervaka modellprestanda med hjälp av slutsatsdragningstabeller.