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


Совместное использование данных между рабочими областями с помощью реестров (предварительная версия)

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

  • Создайте ресурс данных в реестре.
  • Предоставление общего доступа к существующему ресурсу данных из рабочей области в реестр
  • Используйте ресурс данных из реестра в качестве входных данных для задания обучения модели в рабочей области.

Внимание

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

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

Основной сценарий, адресованный совместному использованию данных с помощью реестра Машинное обучение Azure

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

Вот некоторые примеры.

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

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

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

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

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

Типы ресурсов данных, поддерживаемые реестром Машинное обучение Azure

Совет

Ознакомьтесь со следующими каноническими сценариями при выборе необходимости использования uri_fileили uri_foldermltable сценария.

Можно создать три типа ресурсов данных:

Тип API версии 2 Канонический сценарий
Файл: ссылка на один файл uri_file Чтение и запись одного файла — файл может иметь любой формат.
Папка: ссылка на одну папку uri_folder Необходимо прочитать и записать каталог parquet/CSV-файлов в Pandas/Spark. Глубокое обучение изображениями, текстом, аудио, видеофайлами, расположенными в каталоге.
Таблица: ссылка на таблицу данных mltable У вас есть сложная схема с частыми изменениями или требуется подмножество больших табличных данных.

Пути, поддерживаемые реестром Машинное обучение Azure

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

Совет

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

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

Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:

  • Знакомство с Машинное обучение Azure реестрами и понятиями данных в Машинное обучение Azure.

  • Реестр Машинное обучение Azure для совместного использования данных. Сведения о создании реестра см. в статье "Сведения о создании реестра".

  • Рабочая область Машинного обучения Azure. Если у вас ее нет, создайте ее по инструкциям, приведенным в кратком руководстве по созданию ресурсов рабочей области.

    Внимание

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

  • Среда и компонент, созданные из статьи о совместном доступе к моделям, компонентам и средам.

  • Azure CLI и ml расширение или пакет SDK для Python версии 2 Машинное обучение Azure:

    Чтобы установить Azure CLI и расширение, см. статью "Установка,настройка" и использование интерфейса командной строки (версии 2).

    Внимание

    • В примерах CLI в этой статье предполагается, что вы используете оболочку Bash (или совместимый вариант). Например, из системы Linux или подсистемы Windows для Linux.

    • В примерах также предполагается, что вы настроили значения по умолчанию для Azure CLI, чтобы вам не нужно указывать параметры подписки, рабочей области, группы ресурсов или расположения. Чтобы задать параметры по умолчанию, используйте следующие команды. Замените следующие параметры значениями конфигурации:

      • Замените <subscription> идентификатором своей подписки Azure.
      • Заменить <workspace> рабочей областью машинного обучения Azure.
      • Замените <resource-group> группой ресурсов Azure, содержащей вашу рабочую область.
      • Замените <location> регионом Azure, содержащим вашу рабочую область.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      Для просмотра текущих значений по умолчанию используйте команду az configure -l.

Клонирование репозитория примеров

Примеры кода в этой статье основаны на nyc_taxi_data_regression примере в репозитории примеров. Чтобы использовать эти файлы в среде разработки, используйте следующие команды, чтобы клонировать репозиторий и изменить каталоги в примере:

git clone https://github.com/Azure/azureml-examples
cd azureml-examples

В примере CLI измените каталоги cli/jobs/pipelines-with-components/nyc_taxi_data_regression на локальный клон репозитория примеров.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

Создание подключения к пакету SDK

Совет

Этот шаг необходим только при использовании пакета SDK для Python.

Создайте подключение клиента как к рабочей области Машинное обучение Azure, так и к реестру. В следующем примере замените <...> значения заполнителей значениями, соответствующими конфигурации. Например, идентификатор подписки Azure, имя рабочей области, имя реестра и т. д.:

ml_client_workspace = MLClient( credential=credential,
    subscription_id = "<workspace-subscription>",
    resource_group_name = "<workspace-resource-group",
    workspace_name = "<workspace-name>")
print(ml_client_workspace)

ml_client_registry = MLClient(credential=credential,
                        registry_name="<REGISTRY_NAME>",
                        registry_location="<REGISTRY_REGION>")
print(ml_client_registry)

Создание данных в реестре

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

Совет

Ту же команду az ml data create CLI можно использовать для создания данных в рабочей области или реестре. При выполнении команды создаются данные в рабочей области, а при выполнении команды --workspace-name --registry-name создаются данные в реестре.

Источник данных находится в репозитории примеров , клонированных ранее. В локальном клоне перейдите по следующему пути к каталогу: cli/jobs/pipelines-with-components/nyc_taxi_data_regression В этом каталоге создайте файл YAML с именем data-registry.yml и используйте следующий YAML в качестве содержимого файла:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: transformed-nyc-taxt-data
description: Transformed NYC Taxi data created from local folder.
version: 1
type: uri_folder
path: data_transformed/

Значение path указывает на data_transformed подкаталог, содержащий данные, которые используются в реестре.

Чтобы создать данные в реестре, используйте параметр az ml data create. В следующих примерах замените <registry-name> имя реестра.

az ml data create --file data-registry.yml --registry-name <registry-name>

Если в реестре уже есть данные с этим именем и версией, можно изменить version поле в data-registry.yml или указать другую версию в CLI, которая переопределяет значение версии.data-registry.yml

# use shell epoch time as the version
version=$(date +%s)
az ml data create --file data-registry.yml --registry-name <registry-name> --set version=$version

Совет

version=$(date +%s) Если команда не задает $version переменную в вашей среде, замените $version случайным числом.

Сохраните name данные version из выходных данных az ml data create команды и используйте их с az ml data show командой для просмотра сведений о ресурсе.

az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>

Совет

Если вы использовали другое имя или версию данных, замените --name --version их соответствующим образом.

Вы также az ml data list --registry-name <registry-name> можете использовать для перечисления всех ресурсов данных в реестре.

Создание среды и компонента в реестре

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

Совет

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

Запуск задания конвейера в рабочей области с помощью компонента из реестра

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

Примечание.

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

Убедитесь, что вы находитесь в каталоге cli/jobs/pipelines-with-components/nyc_taxi_data_regression . Измените component раздел в разделе train_job single-job-pipeline.yml файла, чтобы обратиться к компоненту обучения и path разделу training_data , чтобы ссылаться на ресурс данных, созданный в предыдущих разделах. В следующем примере показано, как single-job-pipeline.yml выглядит после редактирования. Замените <registry_name> имя реестра:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset

jobs:
  train_job:
    type: command
    component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
    compute: azureml:cpu-cluster
    inputs:
      training_data: 
        type: uri_folder
        path: azureml://registries/<registry-name>/data/transformed-nyc-taxt-data/versions/1
    outputs:
      model_output: 
        type: mlflow_model
      test_data: 

Предупреждение

  • Перед выполнением задания конвейера убедитесь, что рабочая область, в которой будет выполняться задание, находится в регионе Azure, поддерживаемом реестром, в котором были созданы данные.
  • Убедитесь, что рабочая область имеет вычислительный кластер с именем cpu-cluster или измените compute поле под jobs.train_job.compute именем вычисления.

Запустите задание конвейера az ml job create с помощью команды.

az ml job create --file single-job-pipeline.yml 

Совет

Если вы не настроили рабочую область по умолчанию и группу ресурсов, как описано в разделе предварительных требований, необходимо указать --workspace-name --resource-group параметры и параметры для az ml job create работы.

Дополнительные сведения о выполнении заданий см. в следующих статьях:

Предоставление общего доступа к данным из рабочей области в реестр

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

Сначала создайте ресурс данных в рабочей области. Убедитесь, что вы находитесь в каталоге cli/assets/data . Расположенная local-folder.yml в этом каталоге используется для создания ресурса данных в рабочей области. Данные, указанные в этом файле, доступны в каталоге cli/assets/data/sample-data . Следующий YAML — это содержимое local-folder.yml файла:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: local-folder-example-titanic
description: Dataset created from local folder.
type: uri_folder
path: sample-data/

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

az ml data create -f local-folder.yml

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

Ресурс данных, созданный в рабочей области, можно предоставить реестру. В реестре его можно использовать в нескольких рабочих областях. Обратите внимание, что мы передаваем --share_with_name и --share_with_version параметр в функции общего доступа. Эти параметры являются необязательными, и если эти данные не передаются с тем же именем и версией, что и в рабочей области.

В следующем примере показано использование команды share для общего доступа к ресурсу данных. Замените <registry-name> именем реестра, которому будут предоставляться данные.

az ml data share --name local-folder-example-titanic --version <version-in-workspace> --share-with-name <name-in-registry> --share-with-version <version-in-registry> --registry-name <registry-name>

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