Administración de áreas de trabajo de Azure Machine Learning con el SDK de Python (v1)

SE APLICA A:Azure ML del SDK de Python v1

En este artículo creará, verá y eliminará áreas de trabajo de Azure Machine Learning para Azure Machine Learning con el SDK de Python.

A medida que cambian las necesidades o aumentan los requisitos de automatización, también puede administrar áreas de trabajo con la CLI o mediante la extensión de VS Code.

Requisitos previos

Limitaciones

  • Al crear una nueva área de trabajo, puede crear automáticamente los servicios necesarios para esa área de trabajo o usar los servicios ya existentes. Si quiere usar los servicios ya existentes de una suscripción de Azure diferente al área de trabajo, debe registrar el espacio de nombres de Azure Machine Learning en la suscripción que contiene esos servicios. Por ejemplo, al crear un área de trabajo en la suscripción A que usa una cuenta de almacenamiento de la suscripción B, el espacio de nombres de Azure Machine Learning debe estar registrado en la suscripción B para poder usar la cuenta de almacenamiento con el área de trabajo.

    El proveedor de recursos para Azure Machine Learning es Microsoft.MachineLearningService. Para obtener información sobre cómo comprobar si está registrado y cómo realizar el registro, vea el artículo Tipos y proveedores de recursos de Azure.

    Importante

    Esta opción solo se aplica a los recursos proporcionados durante la creación del área de trabajo para cuentas de Azure Storage, el registro de contenedores de Azure, Azure Key Vault y Application Insights.

  • De forma predeterminada, al crear un área de trabajo también se crea una instancia de Azure Container Registry (ACR). Dado que ACR actualmente no admite caracteres Unicode en nombres de grupos de recursos, use un grupo de recursos que no contenga estos caracteres.

  • Azure Machine Learning no admite el espacio de nombres jerárquico (característica Azure Data Lake Storage Gen2) para la cuenta de almacenamiento predeterminada del área de trabajo.

Sugerencia

Se crea una instancia de Azure Application Insights al crear el área de trabajo. Si quiere, puede eliminar la instancia de Application Insights después de la creación del clúster. Si la elimina, se limita la información que se recopila del área de trabajo y la solución de problemas puede volverse más difícil. Si elimina la instancia de Application Insights que crea el área de trabajo, no podrá volver a crearla sin eliminar y volver a crear el área de trabajo.

Para obtener más información sobre el uso de esta instancia de Application Insights, consulte Supervisión y recopilación de datos de los puntos de conexión del servicio web ML.

Crear un área de trabajo

Puede crear un área de trabajo directamente en Estudio de Azure Machine Learning, con las opciones limitadas disponibles. O bien, usar uno de los métodos siguientes para un mejor control de las opciones.

  • Especificación predeterminada. De manera predeterminada, los recursos dependientes y el grupo de recursos se crearán automáticamente. Este código crea un área de trabajo llamada myworkspace y un grupo de recursos denominado myresourcegroup en eastus2.

    SE APLICA A:Azure ML del SDK de Python v1

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

    Establezca create_resource_group en False si tiene un grupo de recursos de Azure existente que quiera usar para el área de trabajo.

  • Varios inquilinos. Si tiene varias cuentas, agregue el identificador de inquilino de la instancia de Microsoft Entra ID que quiere usar. Busque el id. de inquilino en Azure Portal en Microsoft Entra ID, Identidades externas.

    SE APLICA A:SDK de Python azureml v1

    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
                )
    
  • Nube soberana . Necesitará código adicional para autenticarse en Azure si está trabajando en una nube soberana.

    SE APLICA A:Azure ML del SDK de Python v1

    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
                )
    
  • Uso de recursos de Azure existentes. También puede crear un área de trabajo que use los recursos de Azure existentes con el formato de identificador de recursos de Azure. Busque los identificadores de recursos de Azure específicos en Azure Portal o con el SDK. En este ejemplo se da por supuesto que el grupo de recursos, la cuenta de almacenamiento, el almacén de claves, App Insights y el registro de contenedor ya existen.

    SE APLICA A:Azure ML del SDK de Python v1

    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)
    

Para más información, vea Referencia del SDK del área de trabajo.

Si tiene problemas para obtener acceso a su suscripción, consulte Configuración de la autenticación para recursos y flujos de trabajo de Azure Machine Learning, así como el cuaderno de Autenticación en Azure Machine Learning.

Redes

Importante

Para obtener más información sobre el uso de un punto de conexión privado y una red virtual con el área de trabajo, vea Aislamiento de red y privacidad.

El SDK de Azure Machine Learning para Python proporciona la clase PrivateEndpointConfig, que se puede usar con Workspace.create() para crear un área de trabajo con un punto de conexión privado. Esta clase requiere una red virtual existente.

Avanzado

De manera predeterminada, los metadatos del área de trabajo se almacenan en una instancia de Azure Cosmos DB que Microsoft mantiene. Estos datos se cifran con claves administradas por Microsoft.

Para limitar los datos que Microsoft recopila sobre el área de trabajo, seleccione Área de trabajo de alto impacto de negocio en el portal o establezca hbi_workspace=true en Python. Para más información sobre esta configuración, consulte Cifrado en reposo.

Importante

La selección de un alto impacto de negocio solo puede realizarse al crear un área de trabajo. Este valor no se puede cambiar tras la creación del área de trabajo.

Uso de una clave de cifrado de datos propia

El usuario puede proporcionar su propia clave para el cifrado de datos. Así, se crea la instancia de Azure Cosmos DB que almacena metadatos en la suscripción de Azure. Para obtener más información, consulte Claves administradas por el cliente para Azure Machine Learning.

Siga estos pasos para proporcionar su propia clave:

Importante

Antes de seguir estos pasos, debe completar las siguientes acciones:

Siga los pasos de Configuración de claves administradas por el cliente para:

  • Registrar el proveedor de Azure Cosmos DB
  • Creación y configuración de una instancia de Azure Key Vault
  • Generar una clave

Use cmk_keyvault y resource_cmk_uri para especificar la clave administrada por el cliente.

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>'
               )

Descarga de un archivo de configuración

Si va a usar una instancia de proceso en el área de trabajo para ejecutar el código, omita este paso. La instancia de proceso creará y almacenará automáticamente una copia de este archivo.

Si tiene previsto usar código en el entorno local que haga referencia a esta área de trabajo (ws), escriba el archivo de configuración:

SE APLICA A:Azure ML del SDK de Python v1

ws.write_config()

Coloque el archivo en la estructura de directorios que contiene los scripts de Python o las instancias de Jupyter Notebook. Puede estar en el mismo directorio, en un subdirectorio denominado .azureml o en un directorio principal. Al crear una instancia de proceso, este archivo se agrega automáticamente al directorio correcto de la máquina virtual.

Conexión a un área de trabajo

En el código de Python, cree un objeto de área de trabajo para conectarse al área de trabajo. Este código leerá el contenido del archivo de configuración para encontrar el área de trabajo. Si aún no se autenticó, recibirá un mensaje para iniciar sesión.

SE APLICA A:Azure ML del SDK de Python v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Varios inquilinos. Si tiene varias cuentas, agregue el identificador de inquilino de la instancia de Microsoft Entra ID que quiere usar. Busque el id. de inquilino en Azure Portal en Microsoft Entra ID, Identidades externas.

    SE APLICA A:SDK de Python azureml v1

    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)
    
  • Nube soberana . Necesitará código adicional para autenticarse en Azure si está trabajando en una nube soberana.

    SE APLICA A:Azure ML del SDK de Python v1

    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)
    

Si tiene problemas para obtener acceso a su suscripción, consulte Configuración de la autenticación para recursos y flujos de trabajo de Azure Machine Learning, así como el cuaderno de Autenticación en Azure Machine Learning.

Buscar un área de trabajo

Vea una lista de todas las áreas de trabajo que puede usar.

Busque las suscripciones en la página Suscripciones de Azure Portal. Copie el identificador y úselo en el código siguiente para ver todas las áreas de trabajo disponibles para esa suscripción.

SE APLICA A:Azure ML del SDK de Python v1

from azureml.core import Workspace

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

El método Workspace.list(..) no devuelve el objeto de área de trabajo completo. Solo incluye información básica sobre las áreas de trabajo existentes en la suscripción. Para obtener un objeto completo para un área de trabajo específica, use Workspace.get(..).

Eliminar un área de trabajo

Cuando ya no necesite un área de trabajo, elimínela.

Advertencia

Si la eliminación temporal está habilitada para el área de trabajo, se puede recuperar después de la eliminación. Si la eliminación temporal no está habilitada o selecciona la opción para eliminar permanentemente el área de trabajo, no se puede recuperar. Para más información, consulte Recuperación de un área de trabajo eliminada.

Sugerencia

El comportamiento predeterminado de Azure Machine Learning es eliminar temporalmente el área de trabajo. Esto significa que el área de trabajo no se elimina inmediatamente, sino que se marca para su eliminación. Para más información, consulte Eliminación temporal.

Elimine el área de trabajo ws:

SE APLICA A:Azure ML del SDK de Python v1

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

La acción predeterminada no es eliminar los recursos asociados con el área de trabajo; es decir, el registro de contenedor, la cuenta de almacenamiento, el almacén de claves y Application Insights. Establezca delete_dependent_resources en True para eliminar también estos recursos.

Limpieza de recursos

Importante

Los recursos que creó pueden usarse como requisitos previos para otros tutoriales y artículos de procedimientos de Azure Machine Learning.

Si no va a usar ninguno de los recursos que ha creado, elimínelos para no incurrir en cargos:

  1. En Azure Portal, seleccione Grupos de recursos a la izquierda del todo.

  2. En la lista, seleccione el grupo de recursos que creó.

  3. Seleccione Eliminar grupo de recursos.

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

  4. Escriba el nombre del grupo de recursos. A continuación, seleccione Eliminar.

Solución de problemas

  • Exploradores admitidos en Azure Machine Learning Studio: Se recomienda usar el explorador más actualizado compatible con el sistema operativo. Se admiten los siguientes exploradores:

    • Microsoft Edge (la nueva Microsoft Edge, la versión más reciente. No Microsoft Edge heredado)
    • Safari (versión más reciente, solo Mac)
    • Chrome (versión más reciente)
    • Firefox (versión más reciente)
  • Portal de Azure:

    • Si va directamente al área de trabajo desde un vínculo de recurso compartido del SDK o Azure Portal, no puede ver la página Información general estándar que contiene información sobre la suscripción en la extensión. En este escenario, tampoco se puede cambiar a otra área de trabajo. Para ver otra área de trabajo, vaya directamente a Azure Machine Learning Studio y busque el nombre del área de trabajo.
    • Todos los activos (datos, experimentos, procesos, entre otros) solo están disponibles en Azure Machine Learning Studio. No están disponibles en Azure Portal.
    • Si intenta exportar una plantilla para un área de trabajo desde Azure Portal, es posible que se devuelva un error similar al siguiente texto: Could not get resource of the type <type>. Resources of this type will not be exported. Como solución alternativa, use una de las plantillas proporcionadas en https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices como base para la plantilla.

Diagnóstico del área de trabajo

Puede ejecutar diagnósticos en el área de trabajo desde Azure Machine Learning Studio o el SDK de Python. Después de ejecutar el diagnóstico, se devuelve una lista de los problemas detectados. Esta lista incluye vínculos a posibles soluciones. Para más información, consulte Uso de diagnósticos del área de trabajo.

Errores del proveedor de recursos

Al crear un área de trabajo de Azure Machine Learning o un recurso usado por el área de trabajo, puede recibir un mensaje de error similar a los siguientes:

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

Muchos proveedores de recursos se registran automáticamente, aunque no todos. Si recibe este mensaje, debe registrar el proveedor mencionado.

En la tabla siguiente se muestra una lista de los proveedores de recursos requeridos por Azure Machine Learning:

Proveedor de recursos Por qué se necesita
Microsoft.MachineLearningServices Creación del área de trabajo de Azure Machine Learning.
Microsoft.Storage La cuenta de Azure Storage se usa como el almacenamiento predeterminado del área de trabajo.
Microsoft.ContainerRegistry Azure Container Registry usa el área de trabajo para crear imágenes de Docker.
Microsoft.KeyVault El área de trabajo usa Azure Key Vault para almacenar secretos.
Microsoft.Notebooks Cuadernos integrados en la instancia de proceso de Azure Machine Learning.
Microsoft.ContainerService Si planea implementar modelos entrenados en Azure Kubernetes Services.

Si planea usar una clave administrada por el cliente con Azure Machine Learning, se deben registrar estos proveedores de servicios:

Proveedor de recursos Por qué se necesita
Microsoft.DocumentDB Instancia de Azure Cosmos DB que registra los metadatos del área de trabajo.
Microsoft.Search Azure Search proporciona funcionalidades de indexación para el área de trabajo.

Si planea usar una red virtual administrada con Azure Machine Learning, el proveedor de recursos de Microsoft.Network debe registrarse. El área de trabajo usa este proveedor de recursos al crear puntos de conexión privados para la red virtual administrada.

Para obtener más información sobre cómo registrar un proveedor de recursos, consulte Registro del proveedor de recursos.

Eliminación de la instancia de Azure Container Registry

El área de trabajo de Azure Machine Learning usa Azure Container Registry (ACR) para algunas operaciones. La primera vez que se necesite una instancia de ACR, se creará automáticamente.

Advertencia

Cuando se ha creado una instancia de Azure Container Registry para un área de trabajo, no la elimine. Si lo hace, se interrumpirá el área de trabajo de Azure Machine Learning.

Pasos siguientes

Una vez que tenga un área de trabajo, obtenga información sobre cómo entrenar e implementar un modelo.

Para más información sobre cómo planear un área de trabajo para los requisitos de su organización, consulte Organización y configuración de entornos de Azure Machine Learning.

Para obtener información sobre cómo mantener Azure Machine Learning actualizado con las actualizaciones de seguridad más recientes, consulte Administración de vulnerabilidades.