Поделиться через


Включение таблиц вывода для конечных точек обслуживания модели с помощью API

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

Внимание

В этой статье описываются разделы, применимые к таблицам вывода для пользовательских моделей. Для внешних моделей или заданий с предусмотренной пропускной способностью используйте таблицы вывода с поддержкой шлюза ИИ.

В этой статье объясняется, как использовать API Databricks для включения таблиц вывода для модели, обслуживающей конечную точку. Общую информацию об использовании таблиц вывода моделей, включая их активацию через пользовательский интерфейс Databricks, см. в разделе Таблицы вывода для мониторинга и отладки моделей.

Таблицы выводов можно включить при создании новой конечной точки или на существующей. Databricks рекомендует создать конечную точку с использованием служебного принципала, чтобы таблица вывода данных не пострадала, если пользователь, создавший конечную точку, будет удален из рабочей области.

Владелец таблиц вывода — это пользователь, создавший конечную точку. Все списки управления доступом (ACL) в таблице соответствуют стандартным разрешениям каталога Unity и могут быть изменены владельцем таблицы.

Требования

  • В вашей рабочей области должен быть включён каталог Unity.
  • Создатель конечной точки и модификатора должны иметь разрешение "Управление " на конечной точке. См. раздел Списки управления доступом.
  • Создатель конечной точки и модификатора должны иметь следующие разрешения в каталоге Unity:
    • разрешения USE CATALOG для указанного каталога.
    • USE SCHEMA разрешения на указанную схему.
    • CREATE TABLE разрешения в схеме.

Включение таблиц предсказаний при создании конечной точки с помощью API

Таблицы вывода для конечной точки можно включить во время создания конечной точки с помощью API. Инструкции по созданию конечной точки см. в статье "Создание пользовательских моделей", обслуживающих конечные точки.

В API текст запроса должен auto_capture_config указать:

  • Каталог Unity: строка, обозначающая каталог для хранения таблицы.
  • Схема каталога 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, АНАЛИЗ и 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. После включения таблиц инференции продолжайте указывать то же самое тело auto_capture_config в последующих вызовах API конца точки обновления, чтобы продолжать использовать таблицы инференции.

Примечание.

Изменение расположения таблицы после включения таблиц вывода не поддерживается.

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

Чтобы повторно включить отключенную таблицу вывода, следуйте инструкциям в Включить таблицы вывода в существующей конечной точке. Можно использовать одну и ту же таблицу или указать новую таблицу.

Следующие шаги

После включения таблиц вывода можно отслеживать обслуживаемую модель в конечной точке обслуживания модели с помощью Databricks Lakehouse Monitoring. Дополнительные сведения см. в разделе Рабочий процесс: мониторинг производительности модели с помощью таблиц вывода.