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


Как работает Машинное обучение Azure: ресурсы и ресурсы

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

Эта статья относится ко второй версии интерфейса командной строки машинного обучения Azure и пакета SDK для Python версии 2. Сведения о версии 1 см. в статье о работе машинного обучения Azure: архитектура и основные понятия (версия 1).

Машинное обучение 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
    from azure.ai.ml.entities import AmlCompute
    
    # 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 that the connection include a 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"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws) 

Дополнительные способы создания рабочей области Машинного обучения Azure с помощью пакета SDK версии 2 см. в этой записной книжке Jupyter.

Дополнительные сведения о создании рабочей области см. в статье "Управление Машинное обучение Azure рабочими областями на портале" или с помощью пакета SDK для Python версии 2.

Службы вычислений

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

  • Вычислительная инстанция. Полностью настроенная и управляемая среда разработки в облаке. Экземпляр можно использовать в качестве вычислений для обучения или вывода для разработки и тестирования. Это похоже на виртуальную машину в облаке.
  • Вычислительный кластер. Инфраструктура управляемых вычислений, которая позволяет легко создавать кластер вычислительных узлов ЦП или GPU в облаке.
  • Бессерверные вычисления. Вычислительный кластер, к который вы обращаетесь на лету. При использовании бессерверных вычислений вам не нужно создавать собственный кластер. Все управление жизненным циклом вычислений загружается в Машинное обучение Azure.
  • Кластер инференса. Используется для развертывания обученных моделей машинного обучения в службе Azure Kubernetes (AKS). Вы можете создать кластер службы Azure Kubernetes из рабочей области Машинного обучения Azure или подключить существующий кластер AKS.
  • Подключенные вычислительные ресурсы. Вы можете подключить собственные вычислительные ресурсы к рабочей области и использовать их для обучения и вывода.

Создание вычислительного ресурса

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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)

from azure.ai.ml.entities import AmlCompute
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)

Дополнительные способы создания вычислений с помощью пакета SDK версии 2 см. в этой записной книжке Jupyter.

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

Хранилище данных

Хранилища данных машинного обучения Azure безопасно сохраняют сведения о подключении для хранилища данных в Azure, поэтому вам не нужно кодировать его в скриптах. Можно зарегистрироваться и создать хранилище данных, чтобы с легкостью подключиться к учетной записи хранения и получить доступ к данным в базовой службе хранилища. CLI версии 2 и пакет SDK версии 2 поддерживают следующие типы облачных служб хранилища:

  • Контейнер блоб-объектов Azure
  • Общая папка Azure
  • Azure Data Lake Storage
  • Azure Data Lake Storage 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)

Дополнительные способы создания хранилищ данных с помощью пакета SDK версии 2 см. в этой записной книжке Jupyter.

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

Модель

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

  • custom_model
  • mlflow_model
  • triton_model

Создание модели в реестре моделей

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

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

Среда

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

Типы сред

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

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

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

  • Образ Docker.
  • Базовый образ Docker с файлом Conda YAML для дальнейших настроек.
  • Контекст сборки Docker.

Создание пользовательской среды Машинное обучение Azure

Сведения о создании среды с помощью пакета SDK для Python версии 2 см. в статье "Создание среды".

Дополнительные способы создания пользовательских сред с помощью пакета SDK версии 2 см. в этой записной книжке Jupyter.

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

Данные

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

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

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

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

Компонент

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