Интеграция Студии машинного обучения (классическая версия) в Stream Analytics

Внимание

Поддержка Машинное обучение Azure Studio (классическая) завершится 31 августа 2024 г. Мы рекомендуем перейти на Машинное обучение Azure по этой дате.

По состоянию на 1 декабря 2021 г. нельзя создавать новые ресурсы Машинное обучение Studio (классический) (рабочая область и план веб-службы). До 31 августа 2024 г. вы можете продолжать использовать существующие эксперименты Машинное обучение Studio (классические) и веб-службы. Дополнительные сведения см. в разделе:

Машинное обучение Studio (классическая) документация не обновляется и может не обновляться в будущем.

Azure Stream Analytics поддерживает определяемые пользователем функции ,которые вызывают конечные точки Машинное обучение Azure Studio (классическая модель). Библиотека REST API Stream Analytics описывает поддержку REST API для этой функции.

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

Общие сведения. Терминология Студии машинного обучения (классическая версия)

Машинное обучение Studio (классическая модель) предоставляет средство совместной работы, перетаскивания, которое можно использовать для создания, тестирования и развертывания решений прогнозной аналитики в данных. Для взаимодействия с этими ресурсами машинного обучения можно использовать Машинное обучение Studio (классическая модель):

  • Рабочая область: контейнер, содержащий все другие ресурсы машинного обучения вместе для управления и управления.
  • Эксперимент. Проверка того, что специалисты по обработке и анализу данных создаются для использования наборов данных и обучения модели машинного обучения.
  • Конечная точка: объект, который используется для ввода функций, применяет указанную модель машинного обучения и возвращает результат оценки.
  • Веб-служба оценки: коллекция конечных точек.

Каждая конечная точка имеет API для пакетного выполнения и синхронного выполнения. В Stream Analytics используется синхронное выполнение. Конкретная служба называется службой запроса и ответа в Машинное обучение Studio (классическая).

ресурсы Машинное обучение Studio (классическая версия), необходимые для заданий Stream Analytics

Для обработки заданий Stream Analytics, конечной точки запроса и ответа, ключа API и определения Swagger все необходимы для успешного выполнения. Stream Analytics имеет дополнительную конечную точку, которая создает URL-адрес для конечной точки Swagger, ищет интерфейс и возвращает определение UDF по умолчанию пользователю.

Настройка Stream Analytics и Машинное обучение Studio (классической) UDF с помощью REST API

С помощью REST API можно настроить задание для вызова функций Машинное обучение Studio (классическая модель):

  1. Создание задания Stream Analytics.
  2. Определите входные данные.
  3. Определите выходные данные.
  4. Создайте UDF.
  5. Напишите преобразование Stream Analytics, которое вызывает UDF.
  6. Запустите задание.

Создание UDF с основными свойствами

Например, в следующем примере кода создается скалярный UDF с именем newudf, который привязывается к конечной точке Машинное обучение Studio (классической). Вы можете найти endpoint значение (URI службы) на странице справки API для выбранной службы. Значение можно найти apiKey на главной странице службы.

PUT : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Пример тела запроса:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77fb4b46bf2a30c63c078dca/services/b7be5e40fd194258796fb402c1958eaf/execute ",
                        "apiKey": "replacekeyhere"
                    }
                }
            }
        }
    }

Вызов конечной точки RetrieveDefaultDefinition для UDF по умолчанию

После создания скелета UDF вам потребуется полное определение UDF. Конечная RetrieveDefaultDefinition точка помогает получить определение по умолчанию для скалярной функции, привязанной к конечной точке Машинное обучение Studio (классической).

Для следующей полезных данных необходимо получить определение UDF по умолчанию для скалярной функции, привязанной к конечной точке Студии (классической). Он не указывает фактическую конечную точку, так как PUT запрос уже предоставил его.

Stream Analytics вызывает конечную точку из запроса, если запрос явно предоставил конечную точку. В противном случае Stream Analytics использует конечную точку, на которую первоначально ссылается ссылка. Здесь UDF принимает один строковый параметр (предложение) и возвращает один выход типа string , указывающий Sentiment метку для этого предложения.

POST : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>/RetrieveDefaultDefinition?api-version=<apiVersion>

Пример тела запроса:

    {
        "bindingType": "Microsoft.MachineLearning/WebService",
        "bindingRetrievalProperties": {
            "executeEndpoint": null,
            "udfType": "Scalar"
        }
    }

Выходные данные этого запроса выглядят примерно так:

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Исправление UDF с ответом

Теперь необходимо исправить UDF с предыдущим ответом.

PATCH : /subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.StreamAnalytics/streamingjobs/<streamingjobName>/functions/<udfName>?api-version=<apiVersion>

Текст запроса (выходные данные из RetrieveDefaultDefinition):

    {
        "name": "newudf",
        "properties": {
            "type": "Scalar",
            "properties": {
                "inputs": [{
                    "dataType": "nvarchar(max)",
                    "isConfigurationParameter": null
                }],
                "output": {
                    "dataType": "nvarchar(max)"
                },
                "binding": {
                    "type": "Microsoft.MachineLearning/WebService",
                    "properties": {
                        "endpoint": "https://ussouthcentral.services.azureml.net/workspaces/f80d5d7a77ga4a4bbf2a30c63c078dca/services/b7be5e40fd194258896fb602c1858eaf/execute",
                        "apiKey": null,
                        "inputs": {
                            "name": "input1",
                            "columnNames": [{
                                "name": "tweet",
                                "dataType": "string",
                                "mapTo": 0
                            }]
                        },
                        "outputs": [{
                            "name": "Sentiment",
                            "dataType": "string"
                        }],
                        "batchSize": 10
                    }
                }
            }
        }
    }

Реализация преобразования Stream Analytics для вызова UDF

Запросите UDF (здесь с именем scoreTweet) для каждого входного события и напишите ответ для этого события в выходные данные:

    {
        "name": "transformation",
        "properties": {
            "streamingUnits": null,
            "query": "select *,scoreTweet(Tweet) TweetSentiment into blobOutput from blobInput"
        }
    }

Получить помощь

Дополнительные сведения см. на странице Microsoft Q&A для Azure Stream Analytics.

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