Изучение схемы Машинного обучения Azure

Завершено

Схема azure_ml расширения azure_ai позволяет базе данных взаимодействовать с возможностями пользовательских моделей машинного обучения. Используя схему azure_ml, вы можете легко интегрировать базу данных PostgreSQL со службами машинного обучения Azure. Эта интеграция позволяет развертывать и обслуживать модели машинного обучения непосредственно из базы данных, делая вывод в режиме реального времени эффективным и масштабируемым.

Вывод в режиме реального времени с помощью схемы azure_ml

машинное обучение Azure — это облачная платформа, упрощающая комплексные рабочие процессы машинного обучения. В Машинном обучении Azure модели разрабатываются с помощью популярных платформ, таких как PyTorch и TensorFlow. После обучения эти модели развертываются как конечные точки, стабильные URL-адреса, в которых можно запрашивать прогнозы.

Благодаря сетевым конечным точкам, предоставляющим вывод в режиме реального времени, машинное обучение Azure, интегрированное с расширением azure_ai, позволяет выполнять точные прогнозы непосредственно из базы данных. Функция inference в этой схеме предназначена для упрощения прогнозирования или создания выходных данных с помощью обученной модели машинного обучения Azure. При развертывании модели функция вывода позволяет вызывать модель и получать прогнозы по новым данным.

  • azure_ml.inference(jsonb,integer,boolean,text)

Функция inference() ожидает следующие входные параметры:

Параметр Тип По умолчанию Описание
input_data jsonb Объект JSON, содержащий объект input_data, необходимый для взаимодействия с моделями машинного обучения Azure.
deployment_name text NULL::text (Необязательно) Имя развертывания модели для целевого объекта в указанной конечной точке Машинного обучения Azure.
timeout_ms integer NULL::integer Задает максимальное время (в миллисекундах), чтобы ждать операции вывода до истечения времени ожидания.
throw_on_error boolean true Определяет, следует ли вызывать ошибку, если операция вывода сталкивается с проблемой.
max_attempts integer 1 Количество попыток повторного вызова службы Azure OpenAI в случае сбоя.
retry_delay_ms integer 1000 Время ожидания в миллисекундах перед попыткой повторить вызов конечной точки службы Azure OpenAI.

Конечные точки вывода машинного обучения Azure ожидают объект нотации объектов JavaScript (JSON) в качестве входных данных. Однако структура этого объекта зависит от базовой модели. Например, модель регрессии, обученная прогнозировать ежедневные цены на аренду жилья для краткосрочной аренды жилья в Сиэтле, штат Вашингтон, учитывая конкретные входные данные, такие как район, ZIP-код, количество спальней, количество ванных комнат и многое другое, имеет следующую форму:

{
  "input_data": {
    "columns": [
      "host_is_superhost",
      "host_has_profile_pic",
      "host_identity_verified",
      "neighbourhood_group_cleansed",
      "zipcode",
      "property_type",
      "room_type",
      "accommodates",
      "bathrooms",
      "bedrooms",
      "beds"
    ],
    "index": [0],
    "data": [["False", "False", "False", "Central Area", "98122", "House", "Entire home/apt", 4, 1.5, 3, 3]]
  }
}

Ожидаемая структура входных объектов может быть извлечена, проверив определение Swagger, связанное с развернутой конечной точкой. Это определение указывает структуры ServiceInput и ServiceOutput, которые можно использовать для определения входных и выходных данных.

Настройка подключения к Машинному обучению Azure

Прежде чем использовать функцию azure_ml.inference() для вывода в режиме реального времени, необходимо настроить расширение с помощью конечной точки и ключа оценки машинного обучения Azure. Значением azure_ml.scoring_endpoint является конечная точка REST для развернутой модели. Значением для azure_ml.endpoint_key может быть первичный или вторичный ключ для этой конечной точки.

SELECT azure_ai.set_setting('azure_ml.scoring_endpoint', '{endpoint}');
SELECT azure_ai.set_setting('azure_ml.endpoint_key', '{api-key}');