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


Вызов конечных точек модели машинного обучения из потока данных 2-го поколения (предварительная версия)

Это важно

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

Microsoft Fabric Dataflow 2-го поколения может вызывать конечные точки модели машинного обучения для получения прогнозов в режиме реального времени во время преобразования данных. Эта интеграция позволяет обогатить данные, применяя обученные модели машинного обучения в рамках конвейера потока данных. Конечные точки модели можно вызывать с помощью проверки подлинности субъекта-службы с помощью функций запросов M.

Предпосылки

Прежде чем вызывать конечные точки модели машинного обучения из Dataflow 2-го поколения, убедитесь, что у вас есть следующие возможности:

Настройка разрешений служебного принципала

Чтобы разрешить субъекту-службе вызывать конечные точки модели машинного обучения, необходимо предоставить ему соответствующие разрешения:

  1. Перейдите в рабочую область, содержащую модель машинного обучения в Fabric.

  2. Выберите "Управление доступом" в меню рабочей области.

  3. Выберите " Добавить людей или группы".

  4. Найдите субъект-службу по имени приложения или идентификатору клиента.

  5. Назначьте служебному принципалу по крайней мере роль Участника для доступа к конечным точкам модели и вызова.

Получение URL-адреса конечной точки и сведений о проверке подлинности

Перед созданием функции запроса M соберите следующие сведения:

  1. URL-адрес конечной точки: перейдите к модели машинного обучения в Fabric и скопируйте URL-адрес конечной точки из раздела сведений о конечной точке .

    Снимок экрана: расположение URL-адреса конечной точки модели машинного обучения.

  2. Идентификатор клиента. Найдите идентификатор клиента на портале Azure в разделе Идентификатора Microsoft Entra.

  3. Идентификатор клиента: найдите идентификатор приложения (клиента) субъекта-службы на портале Azure.

  4. Секрет клиента: создайте или получите секрет клиента для служебного принципала в портале Azure.

Создание функции запроса M для вызова конечной точки

В Dataflow Gen2 можно создать пользовательскую функцию M-запроса, которая аутентифицируется с помощью учетной записи службы и обращается к конечной точке модели машинного обучения.

  1. В Dataflow Gen2 выберите Получить данные>Пустой запрос.

  2. Или получите данные, которые нужно дополнить, а затем откройте расширенный редактор на вкладке "Главная ".

  3. Замените запрос следующим кодом функции M:

    let
        CallMLEndpoint = (endpointUrl as text, tenantId as text, clientId as text, clientSecret as text, inputData as any) =>
        let
            // Get access token using service principal
            tokenUrl = "https://login.microsoftonline.com/" & tenantId & "/oauth2/v2.0/token",
            tokenBody = "client_id=" & clientId &
                        "&scope=https://api.fabric.microsoft.com/.default" &
                        "&client_secret=" & clientSecret &
                        "&grant_type=client_credentials",
            tokenResponse = Web.Contents(
                tokenUrl,
                [
                    Headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
                    Content = Text.ToBinary(tokenBody)
                ]
            ),
            tokenJson = Json.Document(tokenResponse),
            accessToken = tokenJson[access_token],
    
            // Call ML endpoint with bearer token
            requestBody = Json.FromValue(inputData),
            response = Web.Contents(
                endpointUrl,
                [
                    Headers = [
                        #"Content-Type" = "application/json",
                        #"Authorization" = "Bearer " & accessToken
                    ],
                    Content = requestBody
                ]
            ),
            result = Json.Document(response)
        in
            result
    in
        CallMLEndpoint
    
  4. Переименуйте запрос в CallMLEndpoint , щелкнув правой кнопкой мыши запрос на панели "Запросы ".

Использование функции в потоке данных

После создания функции его можно использовать для вызова конечной точки машинного обучения для каждой строки в данных:

  1. Загрузите или подключитесь к исходным данным в потоке данных.

  2. Добавьте пользовательский столбец, вызывающий конечную точку машинного обучения. Выберите Добавить столбец>Настраиваемый столбец.

  3. Используйте следующую формулу для вызова конечной точки (замените параметры фактическими значениями):

    CallMLEndpoint(
        "<your-machine-learning-endpoint-url>",
        "<your-tenant-id>",
        "<your-client-id>",
        "<your-client-secret>",
        [input1 = [Column1], input2 = [Column2]]
    )
    
  4. Функция возвращает результат прогнозирования из модели машинного обучения, которую можно развернуть и использовать в последующих шагах преобразования.

Лучшие практики

  • Безопасные учетные данные. Рекомендуется использовать параметры потока данных 2-го поколения или интеграцию библиотеки переменных для хранения конфиденциальных значений, таких как секреты клиента, а не жесткого ввода.

  • Обработка ошибок. Добавьте логику обработки ошибок в запрос M для корректной обработки сбоев конечных точек или сценариев времени ожидания.

  • Доступность конечной точки. Убедитесь, что конечная точка модели машинного обучения активна перед запуском потока данных. Неактивные конечные точки вызывают сбой обновления потока данных. Отключите функцию автоматического спящего режима, если вы хотите последовательно вызывать конечную точку.

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

Соображения и ограничения

  • Для вызова конечных точек машинного обучения из Dataflow Gen2 требуется проверка подлинности принципала службы.
  • Вызов конечных точек машинного обучения взимает затраты как на вычислительные ресурсы потока данных, так и на конечную точку машинного обучения. Отслеживайте использование емкости Fabric соответствующим образом.