Erstellen eines Hubs mithilfe des Azure Machine Learning SDK und der CLI (klassisch)

Gilt nur für:klassisches Foundry Portal. Dieser Artikel ist für das neue Foundry-Portal nicht verfügbar. Erfahren Sie mehr über das neue Portal.

Hinweis

Links in diesem Artikel können Inhalte in der neuen Microsoft Foundry-Dokumentation anstelle der jetzt angezeigten Foundry-Dokumentation (klassisch) öffnen.

In diesem Artikel erfahren Sie, wie Sie die folgenden Microsoft FoundryRessourcen mithilfe des Azure Machine Learning SDK und Azure CLI (mit Machine Learning-Erweiterung) erstellen:

  • Ein Gießereihub
  • Eine Foundry-Verbindung

Hinweis

Ein Hub wird nur für ein hubbasiertes Projekt verwendet. Ein Foundry-Projekt verwendet keinen Hub. Weitere Informationen finden Sie unter Projekttypen.

Voraussetzungen

  • Ein Azure Konto mit einem aktiven Abonnement. Wenn Sie kein Konto haben, erstellen Sie ein free Azure Konto, das ein kostenloses Testabonnement enthält.
  • RBAC-Rollen: Sie müssen über die Rolle Contributor oder Owner in Ihrem Azure Abonnement oder Ihrer Ressourcengruppe verfügen, um einen Hub zu erstellen. Wenn Sie eine Verbindung mit vorhandenen Ressourcen erstellen, stellen Sie sicher, dass Sie auch über den Mitwirkendenzugriff auf diese Ressourcen verfügen.
  • For Python SDK: Azure Machine Learning Python SDK (v2.0 oder höher), Azure Identity Python SDK und Python 3.8 oder höher.
  • For Azure CLI: Azure CLI und Azure Machine Learning-Erweiterung.
  • Wenn Sie eine Verbindung mit vorhandenen Ressourcen herstellen: Azure Storage Konto oder Azure Key Vault müssen bereits im selben Abonnement vorhanden sein (dieselbe Ressourcengruppe oder in einer anderen Ressourcengruppe, auf die Sie Zugriff haben).

Einrichten Ihrer Umgebung

Verwenden Sie die folgenden Registerkarten, um auszuwählen, ob Sie das Python SDK oder Azure CLI verwenden:

  1. Installieren Sie Pakete. (Verwenden Sie %pip install stattdessen in einer Notizbuchzelle.)

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Geben Sie Ihre Abonnementdetails an:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. Rufen Sie ein Handle für das Abonnement ab. Der gesamte Python Code in diesem Artikel verwendet 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. (Optional) Wenn Sie über mehrere Konten verfügen, fügen Sie die Mandanten-ID der Microsoft Entra ID, die Sie verwenden möchten, in das DefaultAzureCredential ein. Suchen Sie Ihre Mandanten-ID aus dem portal Azure unter Microsoft Entra ID, External Identities.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Optional) Wenn Sie in den Regionen Azure Government - US oder Azure China 21Vianet arbeiten, geben Sie die Region an, in der Sie sich authentifizieren möchten. Sie können die Region mit DefaultAzureCredential angeben. Im folgenden Beispiel erfolgt die Authentifizierung bei der Azure Government - US-Region:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Überprüfen Sie die Verbindung.

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

Wenn Sie einen Authentifizierungsfehler erhalten, stellen Sie sicher, dass Ihre Azure Anmeldeinformationen konfiguriert sind (führen Sie az login aus, oder richten Sie Ihre Anmeldeinformationen über das Azure Identity SDK ein). Wenn Sie einen Berechtigungsfehler erhalten, überprüfen Sie, ob Sie über die Rolle "Mitwirkender" für das Abonnement oder die Ressourcengruppe verfügen.

Verweise: MLClient, DefaultAzureCredential

Erstellen des Foundry-Hubs und Microsoft Foundry-Verbindung

Verwenden Sie die folgenden Beispiele, um einen neuen Hub zu erstellen. Ersetzen Sie Beispielzeichenfolgenwerte durch eigene Werte:

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}")

Dieser Code erstellt einen neuen Hub mit dem spezifizierten Namen, Standort und Anzeigenamen. Azure stellt automatisch zugeordnete Azure Storage- und Azure Key Vault-Ressourcen bereit.

Verweise: Hub, MLClient.workspaces.begin_create

Erstellen einer Foundry-Verbindung

Nachdem Sie ihre eigene Foundry-Ressource oder Azure OpenAI-Ressource in derselben Ressourcengruppe erstellt haben, können Sie sie mit Ihrem Hub verbinden. Sie können auch Azure KI-Suche aus einer beliebigen Ressourcengruppe in Ihrem selben Abonnement verbinden.

  1. Schließen Sie Ihren Hub in Ihre ml_client Verbindung ein:

    • Geben Sie Ihre Abonnementdetails ein. Geben Sie für <AML_WORKSPACE_NAME> den Namen Ihres Hubs ein:

      # Enter details of your AML workspace
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
      workspace = "<AML_WORKSPACE_NAME>"
    • Rufen Sie sich einen Handle für den Hub ab:

      # 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. Verwenden Sie ml_client, um die Verbindung zu Ihren Foundry Tools herzustellen. Sie finden Endpunkte im Azure Portal unter Ressourcenverwaltung > Schlüssel und Endpunkte. Verwenden Sie für eine Foundry-Ressource den AI Services-Endpunkt . Verwenden Sie für Azure KI-Suche die URL für den Endpunkt.

    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}")
    

    Referenzen: AzureAIServicesConnection, MLClient.connections

Erstellen eines Hubs mit bestehenden Abhängigkeitsressourcen

Standardmäßig erstellt ein Hub automatisch zugeordnete Azure Storage und Azure Key Vault Ressourcen. Wenn Sie vorhandene Azure Storage oder Azure Key Vault Ressourcen wiederverwenden möchten, können Sie diese während der Huberstellung angeben. Ersetzen Sie in den folgenden Beispielen die Platzhalterwerte durch Ihre eigenen Ressourcen-IDs:

Tipp

Sie können die Ressourcen-ID des Speicherkontos und des Schlüsseltresors aus dem Azure Portal abrufen, indem Sie zur Übersicht der Ressource wechseln und JSON-Ansicht auswählen. Die Ressourcen-ID befindet sich im Id-Feld . Sie können auch die Azure CLI verwenden, um die Ressourcen-ID abzurufen. Beispiel: Verwenden az storage account show --name {my_storage_account_name} --query "id" und 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}")

Um Ressourcen-IDs für vorhandene Ressourcen zu finden, besuchen Sie das Azure-Portal, navigieren Sie zur Overview Seite, und wählen Sie JSON-Ansicht aus. Die Ressourcen-ID wird im Id-Feld angezeigt. Alternativ können Sie Azure CLI verwenden:

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

Referenzen: Hub

Aktualisieren Azure-Anwendung Insights und Azure Container Registry

Um benutzerdefinierte Umgebungen für den Eingabeaufforderungsfluss zu verwenden, müssen Sie eine Azure Container Registry für Ihren Hub konfigurieren. Um Azure-Anwendung Insights für Prompt Flow Deployments zu verwenden, müssen Sie eine Azure-Anwendung Insights-Ressource für Ihren Hub konfigurieren. Das Aktualisieren der dem Arbeitsbereich zugeordneten Azure Container Registry- oder Application Insights-Ressourcen kann die Herkunft früherer Aufträge, bereitgestellter Rückschlussendpunkte oder die Möglichkeit unterbrechen, frühere Aufträge in diesem Arbeitsbereich erneut auszuführen. Nach der Zuordnung zu einem Foundry-Hub können Azure Container Registry- und Application Insights-Ressourcen nicht aufgelöst werden (und somit auch nicht auf NULL gesetzt werden).

Sie können das Azure-Portal, Azure SDK/CLI-Optionen oder die Infrastruktur-as-Code-Vorlagen verwenden, um sowohl Azure-Anwendung Insights als auch Azure Container Registry für den Hub zu aktualisieren.

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}")

Dieses Skript aktualisiert einen vorhandenen Hub mit den angegebenen Application Insights- und Containerregistrierungsressourcen. Der update_dependent_resources=True Parameter bestätigt die Aktualisierung.

Referenz: Hub, MLClient.workspaces.begin_update()