Udostępnij za pośrednictwem


Włączanie tabel wnioskowania w modelu obsługujących punkty końcowe przy użyciu interfejsu API

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W tym artykule wyjaśniono, jak używać interfejsu API usługi Databricks do włączania tabel wnioskowania dla punktu końcowego obsługującego model. Aby uzyskać ogólne informacje na temat używania tabel wnioskowania, w tym sposobu włączania ich przy użyciu interfejsu użytkownika usługi Databricks, zobacz Tabele wnioskowania dotyczące monitorowania i debugowania modeli.

Tabele wnioskowania można włączyć podczas tworzenia nowego punktu końcowego lub w istniejącym punkcie końcowym. Usługa Databricks zaleca utworzenie punktu końcowego za pomocą jednostki usługi, aby tabela wnioskowania nie miała wpływu, jeśli użytkownik, który utworzył punkt końcowy, zostanie usunięty z obszaru roboczego.

Właścicielem tabel wnioskowania jest użytkownik, który utworzył punkt końcowy. Wszystkie listy kontroli dostępu (ACL) w tabeli są zgodne ze standardowymi uprawnieniami wykazu aparatu Unity i mogą być modyfikowane przez właściciela tabeli.

Wymagania

  • Obszar roboczy musi mieć włączony katalog aparatu Unity.
  • Aby włączyć tabele wnioskowania w punkcie końcowym, zarówno twórca punktu końcowego, jak i modyfikator muszą mieć następujące uprawnienia:
    • MOŻE ZARZĄDZAĆ uprawnieniem w punkcie końcowym.
    • USE CATALOG uprawnienia do określonego wykazu.
    • USE SCHEMA uprawnienia do określonego schematu.
    • CREATE TABLE uprawnienia w schemacie.

Włączanie tabel wnioskowania podczas tworzenia punktu końcowego przy użyciu interfejsu API

Tabele wnioskowania dla punktu końcowego można włączyć podczas tworzenia punktu końcowego przy użyciu interfejsu API. Aby uzyskać instrukcje dotyczące tworzenia punktu końcowego, zobacz Tworzenie niestandardowych punktów końcowych obsługujących model.

W interfejsie API treść żądania musi auto_capture_config określać:

  • Wykaz wykazu aparatu Unity: ciąg reprezentujący wykaz do przechowywania tabeli
  • Schemat wykazu aparatu Unity: ciąg reprezentujący schemat do przechowywania tabeli
  • (opcjonalnie) prefiks tabeli: ciąg używany jako prefiks nazwy tabeli wnioskowania. Jeśli nie zostanie określona, zostanie użyta nazwa punktu końcowego.
  • (opcjonalnie) włączone: wartość logiczna używana do włączania lub wyłączania tabel wnioskowania. To prawda domyślnie.

Po określeniu katalogu, schematu i opcjonalnego prefiksu tabeli zostanie utworzona tabela pod adresem <catalog>.<schema>.<table_prefix>_payload. Ta tabela automatycznie tworzy tabelę zarządzaną wykazu aparatu Unity. Właścicielem tabeli jest użytkownik, który tworzy punkt końcowy.

Uwaga

Określanie istniejącej tabeli nie jest obsługiwane, ponieważ tabela wnioskowania jest zawsze tworzona automatycznie podczas tworzenia punktu końcowego lub aktualizacji punktu końcowego.

Ostrzeżenie

Tabela wnioskowania może zostać uszkodzona, jeśli wykonasz dowolną z następujących czynności:

  • Zmień schemat tabeli.
  • Zmień nazwę tabeli.
  • Usuń tabelę.
  • Utrac uprawnienia do wykazu lub schematu wykazu aparatu Unity.

W takim przypadku stan auto_capture_config punktu końcowego pokazuje FAILED stan tabeli ładunku. W takim przypadku należy utworzyć nowy punkt końcowy, aby nadal korzystać z tabel wnioskowania.

W poniższym przykładzie pokazano, jak włączyć tabele wnioskowania podczas tworzenia punktu końcowego.

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

Odpowiedź wygląda następująco:

{
  "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 włączeniu rejestrowania w tabelach wnioskowania poczekaj, aż punkt końcowy będzie gotowy. Następnie możesz zacząć go wywoływać.

Po utworzeniu tabeli wnioskowania ewolucja schematu i dodawanie danych powinny być obsługiwane przez system.

Następujące operacje nie mają wpływu na integralność tabeli:

  • Uruchamianie funkcji OPTIMIZE, ANALYZE i VACUUM względem tabeli.
  • Usuwanie starych nieużywanych danych.

Jeśli nie określisz auto_capture_configelementu , domyślnie konfiguracja ustawień z poprzedniej wersji konfiguracji zostanie ponownie użyta. Jeśli na przykład tabele wnioskowania zostały już włączone, te same ustawienia są używane w następnej aktualizacji punktu końcowego lub jeśli tabele wnioskowania zostały wyłączone, to nadal jest wyłączone.

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

Włączanie tabel wnioskowania w istniejącym punkcie końcowym przy użyciu interfejsu API

Tabele wnioskowania można również włączyć w istniejącym punkcie końcowym przy użyciu interfejsu API. Po włączeniu tabel wnioskowania kontynuuj określanie tej samej auto_capture_config treści w przyszłych wywołaniach interfejsu API aktualizacji, aby kontynuować korzystanie z tabel wnioskowania.

Uwaga

Zmiana lokalizacji tabeli po włączeniu tabel wnioskowania nie jest obsługiwana.

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

Wyłączanie tabel wnioskowania

Podczas wyłączania tabel wnioskowania nie trzeba określać katalogu, schematu ani prefiksu tabeli. Jedynym wymaganym polem jest 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
    }
  }
}

Aby ponownie włączyć wyłączoną tabelę wnioskowania, postępuj zgodnie z instrukcjami w temacie Włączanie tabel wnioskowania w istniejącym punkcie końcowym. Możesz użyć tej samej tabeli lub określić nową tabelę.

Następne kroki

Po włączeniu tabel wnioskowania można monitorować obsługiwane modele w modelu obsługującym punkt końcowy za pomocą funkcji Monitorowania usługi Databricks Lakehouse. Aby uzyskać szczegółowe informacje, zobacz Workflow: Monitor model performance using inference tables (Przepływ pracy: monitorowanie wydajności modelu przy użyciu tabel wnioskowania).