Управление рабочими областями Машинное обучение Azure на портале или с помощью пакета SDK для Python (версия 2)

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

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

По мере изменения потребностей или увеличения требований к автоматизации вы можете управлять рабочими областями с помощью интерфейса командной строки, Azure PowerShell или с помощью расширения VS Code.

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

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу. Опробуйте бесплатную или платную версию Машинного обучения Azure уже сегодня.
  • С помощью пакета SDK для Python:
    1. Установите пакет SDK версии 2.

    2. Установите azure-identity: pip install azure-identity. Если в ячейке записной книжки, используйте %pip install azure-identity.

    3. Укажите сведения о подписке:

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

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    4. Получите дескриптор подписки. Весь код Python в этой статье использует ml_client:

      # get a handle to the subscription
      
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
      • (Необязательно) Если у вас несколько учетных записей, добавьте идентификатор клиента идентификатора Microsoft Entra, который вы хотите использовать в DefaultAzureCredential. Найдите идентификатор клиента из портал Azure в разделе "Идентификатор Microsoft Entra", "Внешние удостоверения".

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Необязательно) Если вы работаете в суверенном облаке, необходимо указать облако, в которое требуется пройти проверку подлинности. Выполните это в DefaultAzureCredential.

        from azure.identity import AzureAuthorityHosts
        DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
        

Ограничения

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

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

    Внимание

    Это относится только к ресурсам, предоставленным при создании рабочей области: учетные записи хранения Azure, реестр контейнеров Azure, Azure Key Vault и Application Insights.

  • Для сетевой изоляции с сетевыми конечными точками можно использовать связанные с рабочей областью ресурсы (Реестр контейнеров Azure (ACR), служба хранилища учетную запись, Key Vault и приложение Аналитика) из группы ресурсов, отличной от рабочей области. Однако эти ресурсы должны принадлежать той же подписке и клиенту, что и ваша рабочая область. Сведения об ограничениях, применяемых к защите управляемых сетевых конечных точек с помощью управляемой виртуальной сети рабочей области, см. в статье "Сетевая изоляция с управляемыми сетевыми конечными точками".

  • Создание рабочей области также создает Реестр контейнеров Azure (ACR) по умолчанию. Так как ACR в настоящее время не поддерживает символы юникода в именах групп ресурсов, используйте группу ресурсов, которая избегает этих символов.

  • Машинное обучение Azure не поддерживает иерархическое пространство имен (Azure Data Lake Storage 2-го поколения функцию) для учетной записи хранения по умолчанию рабочей области.

Совет

Экземпляр Azure Application Insights создается при создании рабочей области. При необходимости экземпляр Application Insights можно удалить после создания кластера. При его удалении будут ограничены сведения, собираемые из рабочей области. Это также может усложнить устранение неполадок. При удалении экземпляра Application Insights, созданного рабочей областью, его будет невозможно создать повторно без удаления и повторного создания рабочей области.

Дополнительные сведения об использовании этого экземпляра Application Insights см. в разделе Мониторинг и получение данных из конечных точек службы Машинного обучения.

Создание рабочей области

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

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

  • Спецификация по умолчанию. По умолчанию зависимые ресурсы и группа ресурсов создаются автоматически. Этот код создает рабочую область с именем myworkspaceи группу ресурсов с именем myresourcegroupeastus2.

    # Creating a unique workspace name with current datetime to avoid conflicts
    from azure.ai.ml.entities import Workspace
    import datetime
    
    basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    ws_basic = Workspace(
        name=basic_workspace_name,
        location="eastus",
        display_name="Basic workspace-example",
        description="This example shows how to create a basic workspace",
        hbi_workspace=False,
        tags=dict(purpose="demo"),
    )
    
    ws_basic = ml_client.workspaces.begin_create(ws_basic).result()
    print(ws_basic)
  • Использование существующих ресурсов Azure. Вы также можете создать рабочую область, которая использует существующие ресурсы Azure, в формате идентификатора ресурса Azure. Найдите определенные идентификаторы ресурсов Azure в портал Azure или с помощью пакета SDK. В этом примере предполагается, что группа ресурсов, учетная запись хранения, хранилище ключей, App Insights и реестр контейнеров уже существуют.

    # Creating a unique workspace name with current datetime to avoid conflicts
    import datetime
    from azure.ai.ml.entities import Workspace
    
    basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    # Change the following variables to resource ids of your existing storage account, key vault, application insights
    # and container registry. Here we reuse the ones we just created for the basic workspace
    existing_storage_account = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>"
        ws_basic.storage_account
    )
    existing_container_registry = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>"
        ws_basic.container_registry
    )
    existing_key_vault = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>"
        ws_basic.key_vault
    )
    existing_application_insights = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>"
        ws_basic.application_insights
    )
    
    ws_with_existing_resources = Workspace(
        name=basic_ex_workspace_name,
        location="eastus",
        display_name="Bring your own dependent resources-example",
        description="This sample specifies a workspace configuration with existing dependent resources",
        storage_account=existing_storage_account,
        container_registry=existing_container_registry,
        key_vault=existing_key_vault,
        application_insights=existing_application_insights,
        tags=dict(purpose="demonstration"),
    )
    
    ws_with_existing_resources = ml_client.begin_create_or_update(
        ws_with_existing_resources
    ).result()
    
    print(ws_with_existing_resources)

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

Если у вас возникли проблемы с доступом к подписке, ознакомьтесь с разделом "Настройка проверки подлинности для Машинное обучение Azure ресурсов и рабочих процессов" и "Проверка подлинности" в записной книжке Машинное обучение Azure.

Сеть

Внимание

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

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

# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace

basic_private_link_workspace_name = (
    "mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)

ws_private = Workspace(
    name=basic_private_link_workspace_name,
    location="eastus",
    display_name="Private Link endpoint workspace-example",
    description="When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.",
    image_build_compute="cpu-compute",
    public_network_access="Disabled",
    tags=dict(purpose="demonstration"),
)

ml_client.workspaces.begin_create(ws_private).result()

Для этого класса требуется существующая виртуальная сеть.

Шифрование

По умолчанию экземпляр Azure Cosmos DB сохраняет метаданные рабочей области. Корпорация Майкрософт поддерживает этот экземпляр Cosmos DB. Управляемые корпорацией Майкрософт ключи шифруют эти данные.

Использование собственного ключа шифрования данных

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

Выполните следующие действия, чтобы предоставить собственный ключ:

Внимание

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

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

  • зарегистрировать поставщик ресурсов Azure Cosmos DB;
  • Создание и настройка Azure Key Vault
  • создать ключ.

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


from azure.ai.ml.entities import Workspace, CustomerManagedKey

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    customer_managed_key=CustomerManagedKey(
        key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
        key_uri="<KEY-IDENTIFIER>"
    )
    tags=dict(purpose="demo")
)

ml_client.workspaces.begin_create(ws)

Идентификация

На портале используйте страницу удостоверений для настройки управляемого удостоверения, доступа к учетной записи хранения и влияния на данные. Сведения о пакете SDK для Python см. в следующих разделах.

Управляемое удостоверение

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

доступ к учетной записи служба хранилища

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

Влияние данных

Чтобы ограничить данные, собираемые Майкрософт в вашей рабочей области, выберите на портале параметр High business impact workspace (Рабочая область с сильным влиянием на организацию) или установите hbi_workspace=true в Python. Дополнительные сведения об этом параметре см. в разделе Шифрование данных при хранении.

Внимание

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

Теги

Теги — это пары "имя-значение", которые можно назначать ресурсам и группам ресурсов для их категоризации, а также консолидированного отображения данных для выставления счетов.

Назначьте теги рабочей области, введя пары "имя-значение". Дополнительные сведения см. в статье Использование тегов для организации ресурсов в Azure.

Также используйте теги для [принудительного применения политик рабочей области)(#enforce-policies).

Скачивание файла конфигурации.

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

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

  1. Выбор рабочей области в Студии Azure

  2. В правом верхнем углу выберите имя рабочей области, а затем нажмите кнопку "Скачать config.json

    Скачивание config.json

Поместите файл в структуру каталогов, в которой хранятся скрипты Python или Jupyter Notebook. Тот же каталог, подкаталог с именем .azureml или родительский каталог может содержать этот файл. При создании вычислительного экземпляра этот файл автоматически добавляется в нужный каталог на виртуальной машине.

Принудительное применение политик

Вы можете включить или отключить эти функции рабочей области:

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

Эти функции включены по умолчанию. Чтобы отключить их, выполните приведенные действия.

  • При создании рабочей области отключите функции из раздела "Теги ":

    1. Отключите отзыв, добавив пару "ADMIN_HIDE_SURVEY: TRUE"
    2. Отключите предварительные версии, добавив пару "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  • Для существующей рабочей области отключите функции из раздела "Теги" :

    1. Перейдите к ресурсу рабочей области в портал Azure
    2. Открытие тегов на панели навигации слева
    3. Отключите отзыв, добавив пару "ADMIN_HIDE_SURVEY: TRUE"
    4. Отключите предварительные версии, добавив пару "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
    5. Выберите Применить.

Снимок экрана: настройка тегов для предотвращения обратной связи в рабочей области.

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

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

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

  1. Перейдите к ресурсу подписки в портал Azure
  2. Открытие тегов на панели навигации слева
  3. Отключите предварительные версии для всех рабочих областей в подписке, добавив пару "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  4. Выберите Применить.

Подключение к рабочей области

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

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

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

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
    
  • Из параметров: нет необходимости использовать файл config.json, если вы используете этот подход.

    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    ws = MLClient(
        DefaultAzureCredential(),
        subscription_id="<SUBSCRIPTION_ID>",
        resource_group_name="<RESOURCE_GROUP>",
        workspace_name="<AML_WORKSPACE_NAME>",
    )
    print(ws)

Если у вас возникли проблемы с доступом к подписке, ознакомьтесь с разделом "Настройка проверки подлинности для Машинное обучение Azure ресурсов и рабочих процессов" и "Проверка подлинности" в записной книжке Машинное обучение Azure.

Поиск рабочей области

Просмотрите список всех доступных рабочих областей. Вы также можете найти рабочую область в Студии. См. статью "Поиск Машинное обучение Azure ресурсов (предварительная версия)".

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

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>"

my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
    print(ws.name, ":", ws.location, ":", ws.description)

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

ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)

Удаление рабочей области

Если эта рабочая область больше не нужна, удалите ее.

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

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

Совет

Поведение по умолчанию для Машинное обучение Azure заключается в обратимом удалении рабочей области. Это означает, что рабочая область не сразу удаляется, но вместо этого помечается для удаления. Дополнительные сведения см. в статье "Обратимое удаление".

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

ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)

Действие по умолчанию не удаляет ресурсы автоматически

  • Реестр контейнеров
  • учетная запись хранения
  • хранилище ключей
  • Application Insights

связанная с рабочей областью. Задайте для delete_dependent_resources значение true, чтобы удалить также и эти ресурсы.

Очистка ресурсов

Внимание

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

Если вы не планируете использовать созданные вами ресурсы, удалите их, чтобы с вас не взималась плата:

  1. На портале Azure выберите Группы ресурсов в левой части окна.

  2. Выберите созданную группу ресурсов из списка.

  3. Выберите команду Удалить группу ресурсов.

    Снимок экрана с выбранными параметрами для удаления группы ресурсов на портале Azure.

  4. Введите имя группы ресурсов. Затем выберите Удалить.

Устранение неполадок

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

    • Microsoft Edge (новая версия Microsoft Edge, последняя версия. Примечание. Устаревшая версия Microsoft Edge не поддерживается)
    • Safari (последняя версия, только для Mac);
    • Chrome (последняя версия);
    • Firefox (последняя версия).
  • Портал Azure:

    • Если вы перейдете непосредственно в рабочую область по общей ссылке из пакета SDK или на портале Azure, то не сможете увидеть стандартную страницу обзора со сведениями о подписке в расширении. Кроме того, в этом сценарии невозможно переключиться на другую рабочую область. Чтобы просмотреть другую рабочую область, перейдите непосредственно в студию машинного обучения Azure и найдите имя рабочей области.
    • Все ресурсы (данные, эксперименты, вычисления и т. д.) доступны только в Студия машинного обучения Azure. Портал Azure не предлагает их.
    • При попытке экспортировать шаблон для рабочей области из портал Azure может вернуться ошибка, аналогичная этому тексту: Could not get resource of the type <type>. Resources of this type will not be exported. в качестве обходного решения используйте один из шаблонов, предоставленных в https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices качестве основы для шаблона.

Диагностика рабочей области

Из Студии машинного обучения Azure или пакета SDK Python можно запустить диагностику в рабочей области. После выполнения диагностики возвращается список всех обнаруженных проблем. Этот список содержит ссылки на возможные решения. Дополнительные сведения см. в статье Как использовать диагностику рабочей области.

Ошибки поставщика ресурсов

При создании рабочей области машинного обучения Azure или ресурса, используемого рабочей областью, может появиться сообщение об ошибке, аналогичное приведенному ниже.

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

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

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

Поставщик ресурсов Роль
Microsoft.MachineLearningServices Создание рабочей области машинного обучения Azure.
Microsoft.Storage Учетная запись службы хранилища Azure используется в качестве хранилища данных по умолчанию для рабочей области.
Microsoft.ContainerRegistry Реестр контейнеров Azure используется рабочей областью для создания образов Docker.
Microsoft.KeyVault Azure Key Vault используется рабочей областью для хранения секретов.
Microsoft.Notebooks Интегрированные записные книжки в вычислительном экземпляре машинного обучения Azure.
Microsoft.ContainerService Если вы планируете развертывать обученные модели в службах Azure Kubernetes.

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

Поставщик ресурсов Роль
Microsoft.DocumentDB Экземпляр Azure CosmosDB, который регистрирует метаданные для рабочей области.
Microsoft.Search Служба "Поиск Azure" предоставляет возможности индексирования для рабочей области.

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

Сведения о регистрации поставщиков ресурсов см. в статье Устранение ошибок регистрации поставщика ресурсов.

Удаление Реестра контейнеров Azure

В рабочей области Машинное обучение Azure для некоторых операций используется Реестр контейнеров Azure (ACR). Он автоматически создает экземпляр ACR при первом необходимости.

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

После создания реестра контейнеров Azure для рабочей области не удаляйте его. В противном случае будет нарушена функциональность рабочей области машинного обучения Azure.

Примеры

Примеры в этой статье приведены из workspace.ipynb.

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

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

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

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