Запуск моделей Машинное обучение Azure из Fabric с помощью конечных точек пакетной службы (предварительная версия)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Из этой статьи вы узнаете, как использовать Машинное обучение Azure пакетные развертывания из Microsoft Fabric. Хотя рабочий процесс использует модели, развернутые в конечных точках пакетной службы, он также поддерживает использование развертываний пакетного конвейера из Fabric.

Важно!

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

Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Необходимые компоненты

  • Получение подписки Microsoft Fabric. Или зарегистрируйте бесплатную пробную версию Microsoft Fabric.
  • Войдите в Microsoft Fabric.
  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу. Попробуйте бесплатную или платную версию Машинного обучения Azure.
  • Рабочая область Машинного обучения Azure. Если у вас нет одного, выполните действия, описанные в разделе "Управление рабочими областями для создания рабочей области".
    • Убедитесь, что в рабочей области есть следующие разрешения:
      • Создание и управление конечными точками пакетной службы и развертываниями: использование ролей владельца, участник или настраиваемой ролиMicrosoft.MachineLearningServices/workspaces/batchEndpoints/*.
      • Создайте развертывания ARM в группе ресурсов рабочей области: используйте роли владельца, участник или настраиваемую роль, разрешающую Microsoft.Resources/deployments/write в группе ресурсов, в которой развернута рабочая область.
  • Модель, развернутая в конечной точке пакетной службы. Если у вас нет одного, выполните действия, описанные в статье "Развертывание моделей для оценки в конечных точках пакетной службы", чтобы создать его.
  • Скачайте образец набора данных heart-unlabeled.csv, который будет использоваться для оценки.

Архитектура

Машинное обучение Azure не может напрямую получить доступ к данным, хранящимся в Fabric OneLake. Однако вы можете использовать возможность OneLake для создания ярлыков в Lakehouse для чтения и записи данных, хранящихся в Azure Data Lake 2-го поколения. Так как Машинное обучение Azure поддерживает хранилище Azure Data Lake 2-го поколения, эта настройка позволяет совместно использовать Fabric и Машинное обучение Azure. Архитектура данных выглядит следующим образом:

A diagram showing how Azure Storage accounts are used to connect Fabric with Azure Machine Learning.

Настройка доступа к данным

Чтобы позволить Fabric и Машинное обучение Azure читать и записывать те же данные без необходимости копировать их, вы можете воспользоваться сочетаниями клавиш OneLake и Машинное обучение Azure хранилищами данных. Указав ярлык OneLake и хранилище данных в одну и ту же учетную запись хранения, вы можете убедиться, что как Fabric, так и Машинное обучение Azure считывать и записывать данные в одни и те же базовые данные.

В этом разделе описано, как создать или определить учетную запись хранения, используемую для хранения сведений о том, что конечная точка пакетной службы будет использовать, и пользователи Fabric будут видеть в OneLake. Fabric поддерживает только учетные записи хранения с включенными иерархическими именами, например Azure Data Lake 2-го поколения.

Создание ярлыка OneLake для учетной записи хранения

  1. Откройте интерфейс Synapse Инжиниринг данных в Fabric.

  2. На левой панели выберите рабочую область Fabric, чтобы открыть ее.

  3. Откройте lakehouse, который будет использоваться для настройки подключения. Если у вас еще нет озера, перейдите в Инжиниринг данных опыт, чтобы создать озеро. В этом примере используется lakehouse с именем доверенного.

  4. В левой панели навигации откройте дополнительные параметры файлов и выберите команду "Создать ярлык", чтобы открыть мастер.

    A screenshot showing how to create a new shortcut in a lakehouse.

  5. Выберите параметр Azure Data Lake Storage 2-го поколения.

    A screenshot showing how to create an Azure Data Lake Storage Gen2 shortcut.

  6. В разделе параметров Подключение вставьте URL-адрес, связанный с учетной записью хранения Azure Data Lake 2-го поколения.

    A screenshot showing how to configure the URL of the shortcut.

  7. В разделе учетных данных Подключение ion:

    1. Чтобы Подключение ion, нажмите кнопку "Создать новое подключение".
    2. Для имени Подключение ion сохраните заполненное значение по умолчанию.
    3. Для проверки подлинности выберите учетную запись организации, чтобы использовать учетные данные подключенного пользователя через OAuth 2.0.
    4. Нажмите кнопку "Войти" , чтобы войти.
  8. Выберите Далее.

  9. При необходимости настройте путь к ярлыку относительно учетной записи хранения. Используйте этот параметр, чтобы настроить папку, на которую будет указывать ярлык.

  10. Настройте имя ярлыка. Это имя будет путь внутри озера. В этом примере назовите сочетания наборов данных.

  11. Сохраните изменения.

Создание хранилища данных, указывающего на учетную запись хранения

  1. Откройте Студия машинного обучения Azure.

  2. Перейдите в рабочую область Машинного обучения Azure.

  3. Перейдите в раздел "Данные ".

  4. Перейдите на вкладку хранилища данных.

  5. Выберите Создать.

  6. Настройте хранилище данных следующим образом:

    1. В поле "Имя хранилища данных" введите trusted_blob.

    2. Для типа хранилища данных выберите Хранилище BLOB-объектов Azure.

      Совет

      Зачем настраивать Хранилище BLOB-объектов Azure вместо Azure Data Lake 2-го поколения? Конечные точки пакетной службы могут записывать прогнозы только в учетные записи BLOB-объектов служба хранилища. Однако каждая учетная запись хранения Azure Data Lake 2-го поколения также является учетной записью хранения BLOB-объектов; поэтому их можно использовать взаимозаменяемо.

    3. Выберите учетную запись хранения из мастера, используя идентификатор подписки, служба хранилища учетную запись и контейнер BLOB-объектов (файловая система).

      A screenshot showing how to configure the Azure Machine Learning data store.

    4. Выберите Создать.

  7. Убедитесь, что вычислительные ресурсы, на которых выполняется конечная точка пакетной службы, имеют разрешение на подключение данных в этой учетной записи хранения. Хотя доступ по-прежнему предоставляется удостоверением, которое вызывает конечную точку, вычислительные ресурсы, на которых выполняется пакетная конечная точка, должны иметь разрешение на подключение предоставленной учетной записи хранения. Дополнительные сведения см. в разделе "Доступ к службам хранилища".

Отправка примера набора данных

Отправьте некоторые примеры данных для конечной точки, используемой в качестве входных данных:

  1. Перейдите в рабочую область Fabric.

  2. Выберите лейкхаус, в котором вы создали ярлык.

  3. Перейдите к ярлыку наборов данных.

  4. Создайте папку для хранения примера набора данных, который требуется оценить. Назовите папку uci-heart-unlabeled.

  5. Используйте параметр "Получить данные" и выберите "Отправить файлы", чтобы отправить образец набора данных heart-unlabeled.csv.

    A screenshot showing how to upload data to an existing folder in OneLake.

  6. Отправьте пример набора данных.

    A screenshot showing how to upload a file to OneLake.

  7. Пример файла готов к использованию. Запишите путь к расположению, в котором вы сохранили его.

Создание структуры для пакетного конвейера вывода

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

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

  2. Откройте рабочую область Fabric.

  3. В разделе "Создать" домашней страницы выберите конвейер данных.

  4. Назовите конвейер и нажмите кнопку "Создать".

    A screenshot showing where to select the data pipeline option.

  5. Выберите вкладку "Действия" на панели инструментов на холсте конструктора.

  6. Выберите дополнительные параметры в конце вкладки и выберите Машинное обучение Azure.

    A screenshot showing how to add the Azure Machine Learning activity to a pipeline.

  7. Перейдите на вкладку Параметры и настройте действие следующим образом:

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

      A screenshot of the configuration section of the activity showing how to create a new connection.

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

      A screenshot showing examples of the values for subscription ID, resource group name, and workspace name.

    3. В разделе учетных данных Подключение ion выберите учетную запись организации в качестве значения типа проверки подлинности для подключения. Учетная запись организации использует учетные данные подключенного пользователя. Кроме того, можно использовать субъект-службу. В рабочих параметрах рекомендуется использовать субъект-службу. Независимо от типа проверки подлинности убедитесь, что удостоверение, связанное с подключением, имеет права на вызов развернутой пакетной конечной точки.

      A screenshot showing how to configure the authentication mechanism in the connection.

    4. Сохраните подключение. После выбора подключения Fabric автоматически заполняет доступные конечные точки пакетной службы в выбранной рабочей области.

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

    A screenshot showing how to select an endpoint once a connection is configured.

    Раздел развертывания пакетной службы автоматически заполняется доступными развертываниями в конечной точке.

  9. При необходимости выберите конкретное развертывание из списка. Если вы не выберете развертывание, Fabric вызывает развертывание по умолчанию в конечной точке, позволяя создателю пакетной конечной точки решить, какое развертывание вызывается. В большинстве сценариев вы хотите сохранить это поведение по умолчанию.

    A screenshot showing how to configure the endpoint to use the default deployment.

Настройка входных и выходных данных для конечной точки пакетной службы

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

Дополнительные сведения о входных и выходных данных пакетной конечной точки см. в разделе "Общие сведения о входных и выходных данных" в конечных точках пакетной службы.

Настройка раздела ввода

Настройте раздел входных данных задания следующим образом:

  1. Разверните раздел входных данных задания.

  2. Выберите "Создать" , чтобы добавить новые входные данные в конечную точку.

  3. Назовите входные данные input_data. Так как вы используете развертывание модели, вы можете использовать любое имя. Однако для развертываний конвейеров необходимо указать точное имя входных данных, которые ожидает модель.

  4. Выберите раскрывающееся меню рядом с входными данными, которые вы только что добавили, чтобы открыть свойство входных данных (поле имени и значения).

  5. Введите JobInputType в поле "Имя" , чтобы указать тип создаваемого входного ввода.

  6. Введите UriFolder поле "Значение" , чтобы указать, что входные данные — путь к папке. Другие поддерживаемые значения этого поля : UriFile (путь к файлу) или Литерал (любое литеральное значение, например строка или целое число). Необходимо использовать правильный тип, который ожидает развертывание.

  7. Выберите знак плюса рядом со свойством, чтобы добавить другое свойство для этого входного ввода.

  8. Введите Uri в поле "Имя" , чтобы указать путь к данным.

  9. Введите azureml://datastores/trusted_blob/datasets/uci-heart-unlabeledпуть для поиска данных в поле "Значение ". Здесь вы используете путь, который ведет к учетной записи хранения, связанной как с OneLake в Fabric, так и с Машинное обучение Azure. azureml://datastores/trusted_blob/datasets/uci-heart-unlabeled — это путь к CSV-файлам с ожидаемыми входными данными для модели, развернутой в конечной точке пакетной службы. Вы также можете использовать прямой путь к учетной записи хранения, например https://<storage-account>.dfs.azure.com.

    A screenshot showing how to configure inputs in the endpoint.

    Совет

    Если входные данные имеют тип Литерал, замените свойство Uri значением Value.

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

Настройка раздела вывода

Настройте раздел выходных данных задания следующим образом:

  1. Разверните раздел выходных данных задания.

  2. Выберите "Создать" , чтобы добавить новые выходные данные в конечную точку.

  3. Присвойте выходным данным имя output_data. Так как вы используете развертывание модели, вы можете использовать любое имя. Однако для развертываний конвейеров необходимо указать точное имя выходных данных, создаваемых моделью.

  4. Выберите раскрывающееся меню рядом с выходными данными, которые вы только что добавили, чтобы открыть свойство выходных данных (поле имени и значения).

  5. Введите JobOutputType в поле "Имя" , чтобы указать тип создаваемого выходных данных.

  6. Введите UriFile в поле "Значение" , чтобы указать, что выходные данные — это путь к файлу. Другое поддерживаемое значение для этого поля — UriFolder (путь к папке). В отличие от раздела входных данных задания, литерал (любое литеральное значение, например строка или целое число), не поддерживается в качестве выходных данных.

  7. Выберите знак плюса рядом с свойством, чтобы добавить другое свойство для этого выходных данных.

  8. Введите Uri в поле "Имя" , чтобы указать путь к данным.

  9. Введите @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')путь к расположению выходных данных в поле "Значение ". Машинное обучение Azure конечные точки пакетной службы поддерживают только использование путей хранилища данных в качестве выходных данных. Так как выходные данные должны быть уникальными, чтобы избежать конфликтов, вы использовали динамическое выражение, @concat(@concat('azureml://datastores/trusted_blob/paths/endpoints', pipeline().RunId, 'predictions.csv')чтобы создать путь.

    A screenshot showing how to configure outputs in the endpoint

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

(Необязательно) Настройка параметров задания

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

Для развертываний моделей:

Параметр Description
MiniBatchSize Размер пакета.
ComputeInstanceCount Количество вычислительных экземпляров, запрашиваемых из развертывания.

Для развертываний конвейеров:

Параметр Description
ContinueOnStepFailure Указывает, должен ли конвейер прекратить обработку узлов после сбоя.
DefaultDatastore Указывает хранилище данных по умолчанию, используемое для выходных данных.
ForceRun Указывает, должен ли конвейер принудительно запускать все компоненты, даже если выходные данные можно вывести из предыдущего запуска.

После настройки конвейер можно протестировать.