Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Машинное обучение Azure реестр позволяет совместно работать между рабочими областями в организации. С помощью реестров можно совместно использовать модели, компоненты, среды и данные. Вы узнаете, как выполнять следующие задачи:
- Создайте ресурс данных в реестре.
- Предоставление общего доступа к существующему ресурсу данных из рабочей области в реестр
- Используйте ресурс данных из реестра в качестве входных данных для задания обучения модели в рабочей области.
Основной сценарий, рассматриваемый совместным использованием данных с помощью реестра Azure Машинное обучение
Может потребоваться предоставить общий доступ к данным в нескольких командах, проектах или рабочих областях в центральном расположении. Такие данные не имеют конфиденциальных элементов управления доступом и могут быть широко использованы в организации.
Вот некоторые примеры.
- Команда хочет предоставить общий доступ к общедоступному набору данных, который предварительно обработан и готов к использованию в экспериментах.
- Ваша организация приобрела определенный набор данных для проекта от внешнего поставщика и хочет сделать его доступным для всех команд, работающих над проектом.
- Команда хочет предоставить общий доступ к ресурсам данных в разных регионах.
В этих сценариях можно создать ресурс данных в реестре или предоставить общий доступ к существующему ресурсу данных из рабочей области в реестр. Затем этот ресурс данных можно использовать в нескольких рабочих областях.
Сценарии, не охватываемые совместным использованием данных с помощью реестра Azure Machine Learning
Общий доступ к конфиденциальным данным, требующим детального контроля доступа. Невозможно создать ресурс данных в реестре для совместного использования с небольшим подмножеством пользователей или рабочих областей, а реестр доступен многим другим пользователям в организации.
Совместное использование данных, доступных в существующем хранилище, которое не должно быть скопировано или слишком большое или слишком дорогое для копирования. Каждый раз, когда ресурсы данных создаются в реестре, копия данных записывается в хранилище реестра, чтобы её можно было реплицировать.
Типы ресурсов данных, поддерживаемые реестром Машинное обучение Azure
Совет
Ознакомьтесь со следующими каноническими сценариями, когда решаете, хотите ли вы использовать uri_file
, uri_folder
или mltable
для вашего сценария.
Можно создать три типа ресурсов данных:
Тип | API версии 2 | Канонический сценарий |
---|---|---|
Файл: ссылка на один файл | uri_file |
Чтение и запись одного файла — файл может иметь любой формат. |
Папка: ссылка на одну папку | uri_folder |
Необходимо прочитать и записать файлы каталога в формате parquet/CSV в Pandas/Spark. Глубокое обучение изображениями, текстом, аудио, видеофайлами, расположенными в каталоге. |
Таблица: ссылка на таблицу данных | mltable |
У вас сложная схема с частыми изменениями или требуется подмножество больших табличных данных. |
Пути, поддерживаемые регистром Azure Machine Learning
При создании ресурса данных необходимо указать параметр пути, указывающий на расположение данных. В настоящее время единственные поддерживаемые пути — это папки или файлы на вашем локальном компьютере.
Совет
"Локальный" означает локальное хранилище для используемого компьютера. Например, если вы используете ноутбук, локальный диск. Если вы используете вычислительный экземпляр Машинного обучения Azure, то локальный диск вычислительного экземпляра.
Предварительные условия
Перед выполнением действий, описанных в этой статье, убедитесь, что выполнены следующие необходимые условия:
Знакомство с реестрами Машинного обучения Azure и понятиями данных в Машинном обучении Azure.
Реестр Azure Machine Learning для обмена данными. Сведения о создании реестра см. в статье "Сведения о создании реестра".
Рабочая область Машинного обучения Azure. Если у вас ее нет, создайте ее по инструкциям, приведенным в кратком руководстве по созданию ресурсов рабочей области.
Внимание
Регион Azure, в котором создается рабочая область, должен находиться в списке поддерживаемых регионов для реестра Машинного обучения Azure.
Среда и компонент, созданные из статьи о том, как делиться моделями, компонентами и средами.
Azure CLI и
ml
расширение или пакет SDK версии 2 для Python для Azure Machine Learning:Чтобы установить Azure CLI и расширение, см. статью "Установка,настройка" и использование интерфейса командной строки (версии 2).
Внимание
В примерах интерфейса командной строки в этой статье предполагается, что вы используете оболочку 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>