Administración de áreas de trabajo de Azure Machine Learning en el portal o con el SDK de Python (v2)

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

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

A medida que cambian sus necesidades o aumentan los requisitos de automatización, puede administrar áreas de trabajo con la CLI, Azure PowerShello a través de la extensión de VS Code.

Requisitos previos

  • Suscripción a Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita antes de empezar. Pruebe hoy mismo la versión gratuita o de pago de Azure Machine Learning.
  • Con el SDK de Python:
    1. Instale el SDK v2.

    2. Instale azure-identity: pip install azure-identity. Si está en una celda del cuaderno, use %pip install azure-identity.

    3. Proporcione los detalles de la suscripción:

      SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    4. Obtenga un identificador para la suscripción. Todo el código de Python de este artículo usa 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)
      • (Opcional) Si tiene varias cuentas, agregue el identificador de inquilino de la instancia de Microsoft Entra ID que quiere usar en DefaultAzureCredential. Busque el id. de inquilino en Azure Portal en Microsoft Entra ID, Identidades externas.

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Opcional) Si está trabajando en una nube soberana, debe especificar la nube en la que desea autenticarse. Haga esto en DefaultAzureCredential.

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

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.

  • Para el aislamiento de red con puntos de conexión en línea, puede usar recursos asociados al área de trabajo (Azure Container Registry (ACR), la cuenta de almacenamiento, Key Vault y Application Insights) desde un grupo de recursos diferente al del área de trabajo. Sin embargo, estos recursos deben pertenecer a la misma suscripción e inquilino que el área de trabajo. Para obtener información sobre las limitaciones que se aplican a la protección de puntos de conexión en línea administrados, mediante la red virtual administrada de un área de trabajo, consulte Aislamiento de red con puntos de conexión en línea administrados.

  • La creación del área de trabajo también crea una instancia de Azure Container Registry (ACR) de forma predeterminada. Dado que ACR actualmente no admite caracteres Unicode en nombres de grupos de recursos, use un grupo de recursos que evite 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. También puede usar uno de estos métodos para obtener más control de las opciones:

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

  • 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.

    # 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)
  • 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.

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

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.

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

# 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()

Esta clase requiere una red virtual existente.

Cifrado

De forma predeterminada, una instancia de Azure Cosmos DB almacena los metadatos del área de trabajo. Microsoft mantiene esta instancia de Cosmos DB. Las claves administradas por Microsoft cifran estos datos.

Uso de una clave de cifrado de datos propia

El usuario puede proporcionar su propia clave para el cifrado de datos. Esto 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.

Siga estos pasos para proporcionar su propia clave:

Importante

Antes de seguir estos pasos, primero debe realizar estas 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

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)


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)

identidad

En el portal, use la página Identidad para configurar la identidad administrada, el acceso a la cuenta de almacenamiento y el impacto de los datos. Para el SDK de Python, consulte los vínculos de las secciones siguientes.

Identidad administrada

Un área de trabajo puede tener una identidad asignada por el sistema o por el usuario. Esta identidad se usa para acceder a los recursos de la suscripción. Para más información, consulte Configurar la autenticación entre Azure Machine Learning y otros servicios.

Acceso a las cuentas de almacenamiento

Elija entre Acceso basado en credenciales o Acceso basado en identidad cuando se conecte a la cuenta de almacenamiento predeterminada. Para la autenticación basada en identidades, debe concederse el rol de Colaborador de datos de blobs de almacenamiento a la identidad administrada del área de trabajo en la cuenta de almacenamiento.

Impacto de los datos

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 gran impacto empresarial solo puede producirse al crear un área de trabajo. Este valor no se puede cambiar tras la creación del área de trabajo.

Etiquetas

Las etiquetas son pares nombre-valor que permiten categorizar los recursos y ver una facturación consolidada mediante la aplicación de la misma etiqueta en varios recursos y grupos de recursos.

Para asignar etiquetas para el área de trabajo, escriba los pares nombre-valor. Para más información, consulte Uso de etiquetas para organizar los recursos de Azure.

Use también etiquetas para [aplicar directivas de área de trabajo)(#enforce-policies).

Descarga de un archivo de configuración

Si ejecuta el código en una instancia de proceso, omita este paso. La instancia de proceso creará y almacenará automáticamente una copia de este archivo.

Para usar código en el entorno local que haga referencia a esta área de trabajo, descargue el archivo:

  1. Seleccione el área de trabajo en Azure Studio.

  2. En la parte superior derecha, seleccione el nombre del área de trabajo y, luego, seleccione Descargar config.json.

    Descargar config.json

Coloque el archivo en la estructura de directorios que contiene los scripts de Python o Jupyter Notebooks. El mismo directorio, un subdirectorio denominado .azuremlo un directorio primario puede contener este archivo. Al crear una instancia de proceso, este archivo se agrega automáticamente al directorio correcto de la máquina virtual.

Aplicación de directivas

Puede activar o desactivar estas características de un área de trabajo:

  • Oportunidades de comentarios en el área de trabajo. Las oportunidades incluyen encuestas ocasionales en el producto y la herramienta de comentarios de desaprobación de sonrisas en el banner del área de trabajo.
  • Capacidad de probar las Característica en vista previa (GB) en el área de trabajo.

Estas características están activadas de manera predeterminada. Para desactivarlos:

  • Al crear el área de trabajo, desactive las características de la sección Etiquetas:

    1. Desactivar los comentarios agregando el par "ADMIN_HIDE_SURVEY: TRUE"
    2. Desactivar las vistas previas agregando el par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  • Para un área de trabajo existente, desactive las características de la sección Etiquetas:

    1. Vaya al recurso del área de trabajo en Azure Portal
    2. Abra Etiquetas desde el panel de navegación izquierdo
    3. Desactivar los comentarios agregando el par "ADMIN_HIDE_SURVEY: TRUE"
    4. Desactivar las vistas previas agregando el par "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
    5. Seleccione Aplicar.

Captura de pantalla que muestra las etiquetas para evitar que haya comentarios en el área de trabajo.

Puede desactivar las vistas previas en un nivel de suscripción, asegurándose de que está desactivada para todas las áreas de trabajo de la suscripción. En este caso, los usuarios de la suscripción tampoco pueden acceder a la herramienta de vista previa antes de seleccionar un área de trabajo. Esta configuración es útil para los administradores que quieran asegurarse de que las característica en vista previa (GB) no se usan en su organización.

La configuración de versión preliminar se omite en áreas de trabajo individuales si está desactivada en el nivel de suscripción de esa área de trabajo.

Para deshabilitar las característica en vista previa (GB) en el nivel de suscripción:

  1. Vaya al recurso de suscripción en Azure Portal
  2. Abra Etiquetas desde el panel de navegación izquierdo
  3. Desactive las vistas previas de todas las áreas de trabajo de la suscripción agregando el par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  4. Seleccione Aplicar.

Conexión a un área de trabajo

Al ejecutar tareas de aprendizaje automático con el SDK, necesita un objeto MLClient que especifique la conexión al área de trabajo. Puede crear un objeto MLClient a partir de parámetros o con un archivo de configuración.

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

  • Con un archivo de configuración: este código leerá el contenido del archivo de configuración para buscar el área de trabajo. Se abre un mensaje para iniciar sesión si aún no se ha autenticado.

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
    
  • Desde parámetros: si usa este enfoque, no es necesario que haya disponible un archivo 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)

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

Consulte una lista de todas las áreas de trabajo que tiene disponibles. También puede buscar un área de trabajo dentro de Studio. Consulte Búsqueda de recursos de Azure Machine Learning (versión preliminar).

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

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)

Para obtener detalles específicos del área de trabajo:

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

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.

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

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

La acción predeterminada no elimina automáticamente los recursos

  • Container Registry
  • Cuenta de almacenamiento
  • almacén de claves
  • Application Insights

asociados al área de trabajo. 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.

    Captura de pantalla de las selecciones para eliminar un grupo de recursos en Azure Portal.

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

Solución de problemas

  • Exploradores admitidos en Estudio de Azure Machine Learning: se recomienda usar el explorador más actualizado compatible con el sistema operativo. Estos exploradores son compatibles:

    • Microsoft Edge (el nuevo Microsoft Edge, la versión más reciente. Nota: no se admite la herencia de Microsoft Edge)
    • 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. Además, en este escenario, no 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 Estudio de Azure Machine Learning. Azure Portal no los ofrece.
    • Si intenta exportar una plantilla para un área de trabajo desde Azure Portal, podría devolver un error similar al texto siguiente: 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.

Ejemplos

Los ejemplos de este artículo provienen de workspace.ipynb.

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, visite 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, visite Administración de vulnerabilidades.