Как работает Машинное обучение Azure: ресурсы и ресурсы
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
Эта статья относится ко второй версии пакета SDK Машинное обучение Azure CLI и Python (версия 2). Сведения для версии 1 см. в статье Принцип работы Машинного обучения Azure: архитектура и основные понятия (версия 1)
Машинное обучение Azure включает несколько ресурсов и активов, позволяющих выполнять задачи машинного обучения. Эти ресурсы и активы необходимы для выполнения любого задания.
- Ресурсы: ресурсы для настройки или ресурсы инфраструктуры, необходимые для запуска рабочего процесса машинного обучения. К ресурсам относятся:
- Ресурсы: созданные с помощью команд Машинное обучение Azure или в рамках выполнения обучения или оценки. Ресурсы версии и могут быть зарегистрированы в рабочей области Машинное обучение Azure. К ним относятся:
В этом документе представлен краткий обзор этих ресурсов и активов.
Необходимые компоненты
Примеры кода пакета SDK для Python в этой статье:
Создайте подключение к подписке Машинное обучение Azure. Все примеры полагаются на
ml_client
. Чтобы создать рабочую область, подключение не требует имени рабочей области, так как у вас еще нет его. Все остальные примеры в этой статье требуют включения имени рабочей области в соединение.# import required libraries from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential # Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" # get a handle to the subscription (use this if you haven't created a workspace yet) ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group) # all other examples in this article require the connection to include workspace name workspace_name = "<WORKSPACE_NAME>" ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
Рабочая область
Рабочая область — это ресурс верхнего уровня для Машинного обучения Azure, который обеспечивает централизованное расположение для работы со всеми артефактами, созданными в Машинном обучении Azure. Она также хранит историю всех заданий, включая журналы, метрики, выходные данные и моментальный снимок скриптов. В рабочей области хранятся ссылки на ресурсы, такие как хранилища данных и вычислительные ресурсы. Он также содержит все ресурсы, такие как модели, среды, компоненты и ресурс данных.
Создание рабочей области
Чтобы создать рабочую область с помощью пакета SDK для Python версии 2, можно использовать следующий код:
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
tags=dict(purpose="demo"),
)
ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace
В этой записной книжке Jupyter показано больше способов создания рабочей области Машинное обучение Azure с помощью пакета SDK версии 2.
Дополнительные сведения о создании рабочей области см. в статье "Управление Машинное обучение Azure рабочими областями на портале" или с помощью пакета SDK для Python версии 2.
Службы вычислений
Вычисление — это выделенный вычислительный ресурс, где выполняется задание или размещена конечная точка. Машинное обучение Azure поддерживает следующие типы вычислений:
- Вычислительный экземпляр — полностью настроенная и управляемая среда разработки в облаке. Экземпляр можно использовать в качестве вычислений для обучения или вывода для разработки и тестирования. Он аналогичен виртуальной машине в облаке.
- Вычислительный кластер — управляемая вычислительная инфраструктура, которая позволяет с легкостью создавать кластер вычислительных узлов ЦП или GPU в облаке.
- Бессерверные вычисления — вычислительный кластер, к который вы обращаетесь на лету. При использовании бессерверных вычислений вам не нужно создавать собственный кластер. Все управление жизненным циклом вычислений загружается в Машинное обучение Azure.
- Кластер вывода — позволяет развернуть обученные модели машинного обучения в службе Azure Kubernetes. Вы можете создать кластер Служба Azure Kubernetes (AKS) из рабочей области Машинное обучение Azure или подключить существующий кластер AKS.
- Подключенное вычисление — можно подключить собственные вычислительные ресурсы к рабочей области и использовать их для обучения и вывода.
Создать вычислительную
Чтобы создать вычислительный кластер с помощью пакета SDK для Python версии 2, можно использовать следующий код:
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)
В этой записной книжке Jupyter показано больше способов создания вычислений с помощью пакета SDK версии 2.
Дополнительные сведения о создании вычислений см. в следующем разделе:
- Создание вычислительного экземпляра Машинное обучение Azure
- Создание вычислительного кластера Машинное обучение Azure
Хранилище данных
Машинное обучение Azure хранилища данных безопасно сохраняют информацию о подключении к хранилищу в Azure, поэтому вам не нужно кодировать их в своих сценариях. Можно зарегистрироваться и создать хранилище данных, чтобы с легкостью подключиться к учетной записи хранения и получить доступ к данным в базовой службе хранилища. The CLI версии 2 и пакет SDK версии 2 поддерживают следующие типы облачных служб хранилища:
- контейнер BLOB-объектов Azure;
- Общая папка Azure
- Azure Data Lake
- Azure Data Lake 2-го поколения
Создание хранилища данных
Чтобы создать хранилище данных с помощью пакета SDK для Python версии 2, можно использовать следующий код:
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
import AzureBlobDatastore
blob_datastore1 = AzureBlobDatastore(
name="blob_example",
description="Datastore pointing to a blob container.",
account_name="mytestblobstore",
container_name="data-container",
credentials={
"account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
},
)
ml_client.create_or_update(blob_datastore1)
В этой записной книжке Jupyter показано больше способов создания хранилищ данных с помощью пакета SDK версии 2.
Дополнительные сведения об использовании хранилища данных см. в статье "Создание ресурсов данных и управление ими".
Модель
Машинное обучение Azure модели состоят из одного или нескольких двоичных файлов, представляющих модель машинного обучения и любые соответствующие метаданные. Модели можно создавать из локального или удаленного файла или каталога. Для удаленных расположений поддерживаются расположения https
, wasbs
и azureml
. Созданная модель отслеживается в рабочей области под указанным именем и версией. Машинное обучение Azure поддерживает три типа формата хранилища для моделей:
custom_model
mlflow_model
triton_model
Создание модели в реестре моделей
Регистрация модели позволяет хранить модели и управлять версиями этих моделей в рабочей области облака Azure. Реестр моделей позволяет организовывать и отслеживать обученные модели.
Дополнительные сведения о создании моделей в реестре см. в статье "Работа с моделями в Машинное обучение Azure".
Среда
Среды Машинного обучения Azure представляют собой инкапсуляцию среды, в которой находится задача машинного обучения. Среды Машинного обучения Azure определяют пакеты программного обеспечения, переменные среды и настройки программного обеспечения, связанные с вашими сценариями обучения и оценок. Среды представляют собой управляемые сущности с возможностью управления версиями в рабочей области Машинного обучения. Среды обеспечивают воспроизводимые, проверяемые и переносимые рабочие процессы машинного обучения в различных вычислительных средах.
Типы среды
Машинное обучение Azure поддерживает два типа сред: курируемые и настраиваемые.
Проверенные среды предоставляются Машинным обучением Azure и доступны в рабочей области по умолчанию. Предназначен для использования как есть, они содержат коллекции пакетов и параметров Python, которые помогут приступить к работе с различными платформами машинного обучения. Эти предварительно созданные среды также позволяют ускорить развертывание. Полный список см. в статье о проверенных средах.
В пользовательских средах вы сами отвечаете за настройку среды и установку пакетов или любых других зависимостей, необходимых для обучения или оценки скрипта вычислений. Машинное обучение Azure позволяет создавать собственную среду с помощью
- образа Docker;
- базового образа Docker с conda YAML для дальнейшей настройки;
- контекста сборки Docker.
Создание пользовательской среды Машинное обучение Azure
Сведения о создании среды с помощью пакета SDK для Python версии 2 см. в статье "Создание среды".
В этой записной книжке Jupyter показано больше способов создания настраиваемых сред с помощью пакета SDK версии 2.
Дополнительные сведения о средах см. в разделе "Создание сред и управление ими" в Машинное обучение Azure.
Data
Машинное обучение Azure позволяет работать с различными типами данных.
- URI (расположение в локальном или облачном хранилище)
uri_folder
uri_file
- Таблицы (абстракция табличных данных)
mltable
- Примитивы
string
boolean
number
В большинстве сценариев используется URI (uri_folder
и uri_file
) — расположение в хранилище, которое можно легко сопоставить с файловой системой вычислительного узла в задании путем подключения или скачивания хранилища на узел.
mltable
— это абстракция для табличных данных, которые будут использоваться для заданий AutoML, параллельных заданий и в некоторых сложных сценариях. Если вы только начинаете использовать Машинное обучение Azure и не используете AutoML, настоятельно рекомендуем начать с URI.
Компонент
Компонент Машинного обучения Azure — это автономный фрагмент кода, выполняющий один шаг в конвейере машинного обучения. Компоненты — это стандартные блоки более сложных конвейеров машинного обучения. Компоненты могут выполнять такие задачи, как обработка данных, обучение модели, оценка модели и т. д. Компонент является аналогом функции — он имеет имя, параметры, ожидает входные данные и возвращает выходные данные.