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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

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

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

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

Ограничения

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

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

    Важно!

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

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

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

Совет

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

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

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

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

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

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

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

  • Использование нескольких клиентов. Если у вас несколько учетных записей, добавьте идентификатор клиента идентификатора Microsoft Entra, который вы хотите использовать. Найдите идентификатор клиента из портал Azure в разделе "Идентификатор Microsoft Entra", "Внешние удостоверения".

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Национальное облако. Вам потребуется дополнительный код для проверки подлинности в Azure, если вы работаете в национальном облаке.

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Использование существующих ресурсов Azure. Вы также можете создать рабочую область, которая использует существующие ресурсы Azure, в формате идентификатора ресурса Azure. Найдите конкретные идентификаторы ресурсов Azure на портале Azure или с помощью пакета SDK. В этом примере предполагается, что группа ресурсов, учетная запись хранения, хранилище ключей, App Insights и реестр контейнеров уже существуют.

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

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

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

Сеть

Важно!

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

Пакет SDK для Python для службы Машинного обучения Azure предоставляет класс PrivateEndpointConfig, который можно использовать с Workspace.create() для создания рабочей области с частной конечной точкой. Для этого класса требуется существующая виртуальная сеть.

Продвинутый уровень

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

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

Важно!

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

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

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

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

Важно!

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

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

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

Чтобы указать ключ, управляемый клиентом, используйте cmk_keyvault и resource_cmk_uri.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

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

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

Если вы планируете использовать код в локальной среде, которая ссылается на эту рабочую область (ws), напишите файл конфигурации:

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

ws.write_config()

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

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

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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Использование нескольких клиентов. Если у вас несколько учетных записей, добавьте идентификатор клиента идентификатора Microsoft Entra, который вы хотите использовать. Найдите идентификатор клиента из портал Azure в разделе "Идентификатор Microsoft Entra", "Внешние удостоверения".

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Национальное облако. Вам потребуется дополнительный код для проверки подлинности в Azure, если вы работаете в национальном облаке.

    ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

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

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

Просмотрите список всех рабочих областей, которые можно использовать.

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

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

Метод Workspace.list(.) не возвращает полный объект рабочей области. Он возвращает только основные сведения о существующих рабочих областях в подписке. Чтобы получить полный объект определенной рабочей области, используйте метод Workspace.get(..).

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

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

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

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

Совет

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

Удалите рабочую область ws:

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

ws.delete(delete_dependent_resources=False, no_wait=False)

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

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

Важно!

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

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

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

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

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

    Screenshot of the selections to delete a resource group in the Azure portal.

  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.

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

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

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

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