Compartir a través de


Creación de un centro mediante el SDK y la CLI de Azure Machine Learning

Nota:

Este documento hace referencia al portal de Microsoft Foundry (clásico).

🔍 Consulte la documentación de Microsoft Foundry (nuevo) para obtener información sobre el nuevo portal.

En este artículo, aprenderá a crear los siguientes recursos de Microsoft Foundry mediante el SDK de Azure Machine Learning y la CLI de Azure (con la extensión de aprendizaje automático):

  • Un centro de fabricación
  • Una conexión de fundición

Nota:

Se utiliza un concentrador únicamente para un proyecto basado en concentrador. Un proyecto de Foundry no utiliza un centro o infraestructura de control. Para más información, vea Tipos de proyectos.

Prerrequisitos

Configuración del entorno

Use las pestañas siguientes para seleccionar si usa el SDK de Python o la CLI de Azure:

  1. Instalar paquetes. (Si está en una celda del cuaderno, use %pip install en su lugar).

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Proporcione los detalles de la suscripción:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. 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)
  4. (Opcional) Si tiene varias cuentas, añada el ID de inquilino de Microsoft Entra ID que desea usar en DefaultAzureCredential. Busque el id. de inquilino en Azure Portal en Microsoft Entra ID, Identidades externas.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Opcional) Si va a trabajar en las regiones de Azure Government: Estados Unidos o Azure China 21Vianet, especifique la región en la que se quiere autenticar. Puede especificar la región con DefaultAzureCredential. En el ejemplo siguiente se realiza la autenticación en la región Azure Government - EE. UU.:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Compruebe la conexión.

    for hub in ml_client.workspaces.list():
        print(f"  - {hub.name}")
    

Si recibe un error de autenticación, asegúrese de que las credenciales de Azure están configuradas (ejecute az login o configure las credenciales a través del SDK de identidad de Azure). Si recibe un error de permiso, compruebe que tiene el rol Colaborador en la suscripción o el grupo de recursos.

Referencias: MLClient, DefaultAzureCredential

Creación de la conexión de Foundry Hub y Microsoft Foundry

Use los ejemplos siguientes para crear un centro. Reemplace los valores de cadena de ejemplo por valores propios:

from azure.ai.ml.entities import Hub

my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"

# Construct a basic hub
my_hub = Hub(
    name=my_hub_name,
    location=my_location,
    display_name=my_display_name
)

# Create the hub and wait for completion
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub: {created_hub.name}")

Este código crea un nuevo centro con el nombre especificado, la ubicación y el nombre de visualización. Azure aprovisiona automáticamente los recursos asociados de Azure Storage y Azure Key Vault.

Referencias: Hub, MLClient.workspaces.begin_create

Creación de una conexión de Foundry

Después de crear su propio recurso Foundry o recurso de Azure OpenAI en el mismo grupo de recursos, puede conectarlo a su centro. También puede conectar Azure AI Search desde cualquier grupo de recursos de la misma suscripción.

  1. Incluya su hub en su ml_client conexión:

    • Escriba los detalles de la suscripción. En <AML_WORKSPACE_NAME>, introduzca el nombre de su hub:

      # Enter details of your AML workspace
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
      workspace = "<AML_WORKSPACE_NAME>"
    • Obtenga un manipulador para el centro:

      # get a handle to the workspace
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      ml_client = MLClient(
          DefaultAzureCredential(), subscription_id, resource_group, workspace
      )
  2. Use ml_client para crear la conexión a las herramientas de Foundry. Puede encontrar puntos de conexión en Azure Portal en Administración de recursos > Claves y puntos de conexión. Para un recurso Foundry, use el punto de conexión de AI Services. Para Azure AI Search, use la dirección URL del punto de conexión.

    from azure.ai.ml.entities import AzureAIServicesConnection
    
    # Construct a connection to Azure AI Services
    my_connection_name = "my-ai-services-connection"  # Any name you want
    aiservices_resource_name = "<your-resource-name>"  # From Azure portal
    my_endpoint = "<your-endpoint>"  # From Azure portal
    my_api_keys = None  # Leave blank to use Azure Entra ID (AAD) authentication
    my_ai_services_resource_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{aiservices_resource_name}"
    
    my_connection = AzureAIServicesConnection(
        name=my_connection_name,
        endpoint=my_endpoint,
        api_key=my_api_keys,
        ai_services_resource_id=my_ai_services_resource_id
    )
    
    # Create the connection
    ml_client.connections.create_or_update(my_connection)
    print(f"Created connection: {my_connection.name}")
    

    Referencias: AzureAIServicesConnection, MLClient.connections

Crear un centro de control con recursos de dependencia existentes

De forma predeterminada, un centro crea automáticamente recursos asociados de Azure Storage y Azure Key Vault. Si desea reutilizar los recursos existentes de Azure Storage o Azure Key Vault, puede especificarlos durante la creación del centro. En los ejemplos siguientes, reemplace los valores de marcador de posición por sus propios identificadores de recursos:

Sugerencia

Puede recuperar el identificador de recurso de la cuenta de almacenamiento y el almacén de claves desde Azure Portal; para ello, vaya a la información general del recurso y seleccione vista JSON. El identificador de recurso se encuentra en el campo id. También puede usar la CLI de Azure para recuperar el identificador de recurso. Por ejemplo, use az storage account show --name {my_storage_account_name} --query "id" y az keyvault show --name {my_key_vault_name} --query "id".

from azure.ai.ml.entities import Hub

my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
my_resource_group = "myresourcegroupname"
my_storage_account_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
my_key_vault_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<key-vault-name>"

# Construct a hub with existing dependency resources
my_hub = Hub(
    name=my_hub_name,
    location=my_location,
    display_name=my_display_name,
    resource_group=my_resource_group,
    storage_account_id=my_storage_account_id,
    key_vault_id=my_key_vault_id
)

# Create the hub
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub with existing resources: {created_hub.name}")

Para buscar identificadores de recursos para los recursos existentes, visite Azure Portal, vaya a la página Información general del recurso y seleccione vista JSON. El identificador de recurso aparece en el campo id . Como alternativa, use la CLI de Azure:

# Get Storage account resource ID
az storage account show --name <storage-account-name> --resource-group <resource-group> --query "id"

# Get Key Vault resource ID
az keyvault show --name <key-vault-name> --resource-group <resource-group> --query "id"

Referencias: Hub

Actualización de Azure Application Insights y Azure Container Registry

Para usar entornos personalizados para Prompt Flow, debe configurar una instancia de Azure Container Registry para el centro. Para usar Azure Application Insights para las implementaciones de Prompt Flow, debe configurar un recurso de Azure Application Insights para el centro. Al actualizar los recursos de Azure Container Registry o Application Insights asociados al área de trabajo, se puede interrumpir el linaje de los trabajos anteriores, los puntos de conexión de inferencia implementados o la capacidad de volver a ejecutar trabajos anteriores en esta área de trabajo. Después de asociarse con un centro de Foundry, los recursos de Azure Container Registry y Application Insights no se pueden desasociar (no se pueden establecer a nulo).

Puede usar Azure Portal, las opciones del SDK o la CLI de Azure, o las plantillas de infraestructura como código para actualizar Azure Application Insights y Azure Container Registry para el centro.

from azure.ai.ml.entities import Hub

my_app_insights = "{APPLICATION_INSIGHTS_ARM_ID}"
my_container_registry = "{CONTAINER_REGISTRY_ARM_ID}"

# construct a hub with Application Insights and Container Registry
my_hub = Hub(name="myexamplehub", 
             location="East US", 
             application_insights=my_app_insights,
             container_registry=my_container_registry)

# update_dependent_resources is used to give consent to update the workspace dependent resources.
updated_hub = ml_client.workspaces.begin_update(workspace=my_hub, update_dependent_resources=True).result()
print(f"Hub updated: {updated_hub.name}")

Este script actualiza un centro existente con los recursos de Application Insights y Container Registry especificados. El update_dependent_resources=True parámetro confirma la actualización.

Referencia: Hub, MLClient.workspaces.begin_update()