Povolení odvozovacích tabulek v modelech obsluhujících koncové body pomocí rozhraní API

Důležité

Tato funkce je ve verzi Public Preview.

Tento článek vysvětluje, jak pomocí rozhraní Databricks API povolit odvozovací tabulky pro koncový bod obsluhy modelu. Obecné informace o používání odvozovacích tabulek, včetně toho, jak je povolit pomocí uživatelského rozhraní Databricks, najdete v tématu Odvozovací tabulky pro monitorování a ladění modelů.

Tabulky odvozování můžete povolit při vytváření nového koncového bodu nebo u existujícího koncového bodu. Databricks doporučuje, abyste vytvořili koncový bod s instančním objektem, aby na odvozovací tabulku neměl vliv, pokud se uživatel, který koncový bod vytvořil, odebere z pracovního prostoru.

Vlastníkem tabulek odvozování je uživatel, který koncový bod vytvořil. Všechny seznamy řízení přístupu (ACL) v tabulce se řídí standardními oprávněními katalogu Unity a může je upravit vlastník tabulky.

Požadavky

  • Váš pracovní prostor musí mít povolený katalog Unity.
  • Autor koncového bodu i modifikátor musí mít oprávnění Může spravovat koncový bod. Viz seznamy řízení přístupu.
  • Tvůrce koncového bodu i modifikátor musí mít v katalogu Unity následující oprávnění :
    • USE CATALOG oprávnění k zadanému katalogu.
    • USE SCHEMA oprávnění k zadanému schématu.
    • CREATE TABLE oprávnění ve schématu.

Povolení odvozovacích tabulek při vytváření koncového bodu pomocí rozhraní API

Tabulky odvozování pro koncový bod můžete povolit během vytváření koncového bodu pomocí rozhraní API. Pokyny k vytvoření koncového bodu najdete v tématu Vytvoření vlastního modelu obsluhující koncové body.

V rozhraní API musí auto_capture_config text požadavku zadat:

  • Katalog Unity: řetězec představující katalog pro uložení tabulky
  • Schéma katalogu Unity: řetězec představující schéma pro uložení tabulky
  • (volitelné) předpona tabulky: řetězec použitý jako předpona pro název tabulky odvozování. Pokud není zadaný, použije se název koncového bodu.
  • (volitelné) povoleno: logická hodnota použitá k povolení nebo zakázání odvozovacích tabulek. Tato hodnota je ve výchozím nastavení true.

Po zadání katalogu, schématu a volitelně předpony tabulky se vytvoří tabulka na adrese <catalog>.<schema>.<table_prefix>_payload. Tato tabulka automaticky vytvoří spravovanou tabulku katalogu Unity. Vlastníkem tabulky je uživatel, který vytvoří koncový bod.

Poznámka:

Zadání existující tabulky se nepodporuje, protože se při vytváření koncového bodu nebo aktualizacích koncových bodů vždy automaticky vytvoří tabulka odvozování.

Upozorňující

Tabulka odvozování může být poškozena, pokud provedete některou z následujících věcí:

  • Změňte schéma tabulky.
  • Změňte název tabulky.
  • Odstraňte tabulku.
  • Ztratí oprávnění ke katalogu nebo schématu Unity.

V tomto případě auto_capture_config stav koncového bodu zobrazuje FAILED stav tabulky datové části. Pokud k tomu dojde, musíte vytvořit nový koncový bod, abyste mohli dál používat odvozovací tabulky.

Následující příklad ukazuje, jak povolit odvozovací tabulky během vytváření koncového bodu.

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"
    }
  }
}

Odpověď vypadá takto:

{
  "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"
}

Po povolení protokolování k odvozování tabulek počkejte, až bude koncový bod připravený. Pak ho můžete začít volat.

Po vytvoření tabulky odvozování by systém měl zpracovat vývoj schématu a přidání dat.

Následující operace nemají vliv na integritu tabulky:

  • Spuštění funkce OPTIMIZE, ANALYZE a VACUUM v tabulce
  • Odstranění starých nepoužívaných dat

Pokud nezadáte auto_capture_config, ve výchozím nastavení se konfigurace nastavení z předchozí verze konfigurace znovu použije. Pokud jsou například tabulky odvozování již povolené, použijí se stejná nastavení při příští aktualizaci koncového bodu nebo pokud byly odvozovací tabulky zakázané, bude i nadále zakázána.

{
  "served_entities": [
    {
      "name":"current",
      "entity_name":"model-A",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    }
  ],
  "auto_capture_config": {
    "enabled": false
  }
}

Povolení odvozovacích tabulek na existujícím koncovém bodu pomocí rozhraní API

Pomocí rozhraní API můžete také povolit tabulky odvození u existujícího koncového bodu. Po povolení odvozování tabulek pokračujte zadáním stejného auto_capture_config textu v budoucích voláních rozhraní API koncového bodu aktualizace, abyste mohli dál používat tabulky odvozování.

Poznámka:

Změna umístění tabulky po povolení odvozovacích tabulek se nepodporuje.

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"
  }
}

Zakázání odvozovacích tabulek

Při zakázání odvozovacích tabulek nemusíte zadávat katalog, schéma ani předponu tabulky. Jediné povinné pole je 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
    }
  }
}

Pokud chcete znovu povolit zakázanou tabulku odvozování, postupujte podle pokynů v tématu Povolení tabulek odvozování v existujícím koncovém bodu. Můžete použít stejnou tabulku nebo zadat novou tabulku.

Další kroky

Po povolení odvozovacích tabulek můžete monitorovat obsluhované modely v modelu obsluhující koncový bod pomocí monitorování Databricks Lakehouse. Podrobnosti najdete v tématu Pracovní postup: Monitorování výkonu modelu pomocí odvozovacích tabulek.