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 cambien sus necesidades o aumenten los requisitos de automatización, administre áreas de trabajo con la CLI, Azure PowerShell o a través de la extensión de Visual Studio 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:
Instale azure-identity:
pip install azure-identity
. Si está en una celda del cuaderno, use%pip install azure-identity
.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>"
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 trabaja en las regiones de Azure Government: Estados Unidos o Azure China 21Vianet, es necesario especificar la nube en la que desea autenticarse. Especifique estas regiones 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, si crea un área de trabajo en la suscripción A que usa una cuenta de almacenamiento en la suscripción B, el espacio de nombres de Azure Machine Learning debe estar registrado en la suscripción B antes de que el área de trabajo pueda usar la cuenta de almacenamiento.
El proveedor de recursos para Azure Machine Learning es Microsoft.MachineLearningService. Para obtener información sobre cómo ver si está registrado o registrarlo, consulte Tipos y proveedores de recursos de Azure.
Importante
Esta información solo se aplica a los recursos proporcionados durante la creación del área de trabajo para cuentas de Azure Storage, Azure Container Registry, Azure Key Vault y Application Insights.
Para el aislamiento de red con puntos de conexión en línea, use 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, la única forma de volver a crearla es eliminar y volver a crear el área de trabajo.
Para obtener más información sobre el uso de la instancia de Application Insights, consulte Supervisión y recopilación de datos de los puntos de conexión del servicio web ML.
Creación de 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)
La configuración básica para empezar sin especificación, los recursos asociados y el grupo de recursos de Azure se crean automáticamente. Este código crea un área de trabajo denominada
myworkspace
, recursos de Azure dependientes (cuenta de almacenamiento, Key Vault, Container Registry y Application Insights) y un grupo de recursos denominadomyresourcegroup
eneastus2
.# 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. Para traer recursos de Azure existentes, haga referencia a ellos mediante 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, Key Vault, Application Insights y Container Registry 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)
(Versión preliminar) use el área de trabajo del centro de conectividad existente. En lugar de crear un área de trabajo predeterminada con su propia configuración de seguridad y recursos asociados, reutilice un entorno compartido del área de trabajo del centro. La nueva área de trabajo "proyecto" obtendrá la configuración de seguridad y las configuraciones compartidas del centro, incluyendo los procesos y las conexiones. En este ejemplo se da por supuesto que el área de trabajo del centro ya existe.
from azure.ai.ml.entities import Project my_project_name = "myexampleproject" my_location = "East US" my_display_name = "My Example Project" my_hub = Project(name=my_hub_name, location=my_location, display_name=my_display_name, hub_id=created_hub.id) created_project_workspace = ml_client.workspaces.begin_create(workspace=my_hub).result()
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. Al proporcionar su propia clave, 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.
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:
Seleccione el área de trabajo en Azure Studio.
En la parte superior derecha, seleccione el nombre del área de trabajo y, luego, seleccione 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:
- Desactivar los comentarios agregando el par "ADMIN_HIDE_SURVEY: TRUE"
- 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:
- Vaya al recurso del área de trabajo en Azure Portal
- Abra Etiquetas desde el panel de navegación izquierdo
- Desactivar los comentarios agregando el par "ADMIN_HIDE_SURVEY: TRUE"
- Desactivar las vistas previas agregando el par "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
- Seleccione Aplicar.
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 podrán acceder a la herramienta de vista previa antes de seleccionar un área de trabajo. Esta configuración resulta útil para los administradores que quieran asegurarse de que las características en vista previa (GB) no se usen en su organización.
Si la configuración de vista previa se deshabilita en el nivel de suscripción, se omitirá su establecimiento en áreas de trabajo individuales.
Para deshabilitar las característica en vista previa (GB) en el nivel de suscripción:
- Vaya al recurso de suscripción en Azure Portal
- Abra Etiquetas desde el panel de navegación izquierdo
- Desactive las vistas previas de todas las áreas de trabajo de la suscripción agregando el par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
- 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 asociados al área de trabajo. Establezca delete_dependent_resources
en True para eliminar también estos recursos.
- Container Registry
- Cuenta de almacenamiento
- almacén de claves
- Application Insights
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:
En Azure Portal, seleccione Grupos de recursos a la izquierda del todo.
En la lista, seleccione el grupo de recursos que creó.
Seleccione Eliminar grupo de recursos.
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
Una vez que se crea un Azure Container Registry para un área de trabajo, no lo elimine. Si lo hace, se interrumpe 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.
- Si necesita mover un área de trabajo a otra suscripción de Azure, visite Traslado de un área de trabajo.
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.