Freigeben über


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

Hinweis

Dieses Dokument bezieht sich auf das Microsoft Foundry(klassische) Portal.

🔍 Zeigen Sie die Microsoft Foundry-Dokumentation (neu) an, um mehr über das neue Portal zu erfahren.

In diesem Artikel erfahren Sie, wie Sie die folgenden Microsoft Foundry-Ressourcen mithilfe des Azure Machine Learning SDK und der 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

Richten Sie Ihre Umgebung ein

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

  1. Installieren von Paketen. (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 mehrere Konten haben, fügen Sie die Mandanten-ID der gewünschten Microsoft Entra ID in DefaultAzureCredential ein. Ihre Mandanten-ID finden Sie im Azure-Portal unter Microsoft Entra ID, Externe Identitäten.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Optional:) Wenn Sie in den Regionen Azure Government – USA oder Azure China 21Vianet arbeiten, geben Sie die Region an, in der Sie die Authentifizierung durchführen möchten. Sie können die Region über DefaultAzureCredential angeben. Das folgende Beispiel authentifiziert sich in 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 az login 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 der Microsoft Foundry-Verbindung

Verwenden Sie die folgenden Beispiele, um einen neuen Hub zu erstellen. Ersetzen Sie die Beispielzeichenfolge durch Ihre eigenen 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 angegebenen Namen, Standort und Anzeigenamen. Azure stellt automatisch zugeordnete Azure Storage- und Azure Key Vault-Ressourcen fest.

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 Azure AI Search auch über jede Ressourcengruppe in Ihremselben 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> Ihren Hubnamen 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. Endpunkte finden Sie im Azure-Portal unter Ressourcenverwaltungsschlüssel > und Endpunkte. Verwenden Sie für eine Foundry-Ressource den AI Services-Endpunkt . Verwenden Sie für Azure AI Search 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 Sie einen Hub 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 Feld ID. 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 Seite "Übersicht " der Ressource, und wählen Sie die JSON-Ansicht aus. Die Ressourcen-ID wird im Id-Feld angezeigt. Alternativ können Sie auch 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 der Azure Application Insights- und Azure-Container Registry

Um benutzerdefinierte Umgebungen für den Eingabeaufforderungsfluss zu verwenden, müssen Sie eine Azure-Containerregistrierung für Ihren Hub konfigurieren. Um Azure Application Insights für Prompt Flow-Bereitstellungen zu verwenden, müssen Sie eine Azure Application 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 kann die Zuordnung von Azure Container Registry- und Application Insights-Ressourcen nicht mehr aufgehoben (auf NULL festgelegt) werden.

Sie können das Azure-Portal, oder Azure SDK-/CLI-Optionen oder die Infrastructure-as-Code-Vorlagen verwenden, um Azure Application Insights und 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()