Как работает Машинное обучение 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 в этой статье:

  1. Установка пакета SDK для Python версии 2

  2. Создайте подключение к подписке Машинное обучение 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 поддерживает следующие типы вычислений:

  • Вычислительный экземпляр — полностью настроенная и управляемая среда разработки в облаке. Экземпляр можно использовать в качестве вычислений для обучения или вывода для разработки и тестирования. Он аналогичен виртуальной машине в облаке.
  • Вычислительный кластер — управляемая вычислительная инфраструктура, которая позволяет с легкостью создавать кластер вычислительных узлов ЦП или 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, поэтому вам не нужно кодировать их в своих сценариях. Можно зарегистрироваться и создать хранилище данных, чтобы с легкостью подключиться к учетной записи хранения и получить доступ к данным в базовой службе хранилища. 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.

Data

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

  • URI (расположение в локальном или облачном хранилище)
    • uri_folder
    • uri_file
  • Таблицы (абстракция табличных данных)
    • mltable
  • Примитивы
    • string
    • boolean
    • number

В большинстве сценариев вы будете использовать URI (uri_folder и uri_file) — расположение в хранилище, которое можно с легкостью сопоставить с файловой системой вычислительного узла в задании путем подключения или скачивания хранилища на узел.

mltable — это абстракция для табличных данных, которые будут использоваться для заданий AutoML, параллельных заданий и в некоторых сложных сценариях. Если вы только начинаете использовать Машинное обучение Azure и не используете AutoML, настоятельно рекомендуем начать с URI.

Компонент

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

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