Sdílet prostřednictvím


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

Důležité

Tato funkce je ve verzi Public Preview.

Důležité

Tento článek popisuje zkušenost s tabulkou dedukce ve starším režimu, která je relevantní pouze pro určité zřízené propustnosti a koncové body vlastních modelů. Nedoporučuje se tato zkušenost. Databricks doporučuje tabulky odvozování s podporou brány AI díky své dostupnosti u vlastního modelu, základového modelu a agenta, který obsluhuje koncové body.

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 upravovatel musí mít oprávnění ke správě koncového bodu. 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 sloužící jako předpona pro název inferenční tabulky. 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 v <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íte oprávnění ke katalogu nebo schématu Unity Catalog.

V tomto případě stav auto_capture_config koncového bodu ukazuje stav FAILED pro tabulku 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í pro tabulky s odvozením počkejte, až bude váš 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í OPTIMIZE, ANALYZE a VACUUM pro tabulku.
  • 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 v 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 textu auto_capture_config v budoucích voláních rozhraní API koncového bodu aktualizace, aby se dál používaly 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 na koncovém bodu pro obsluhu modelů pomocí profilování dat. Podrobnosti najdete v tématu Pracovní postup: Monitorování výkonu modelu pomocí odvozovacích tabulek.