Freigeben über


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

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 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 project 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 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 über mehrere Konten verfügen, fügen Sie die Mandanten-ID der Microsoft Entra ID, die Sie verwenden möchten, in der DefaultAzureCredential hinzu. Suchen Sie Ihre Mandanten-ID 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 - US oder Azure China 21Vianet arbeiten, geben Sie die Region an, in der Sie sich authentifizieren möchten. Sie können die Region über DefaultAzureCredential angeben. Im folgenden Beispiel wird die Authentifizierung in der Azure Government - US-Region durchgeführt:

    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.

References: 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 provisioniert automatisch die zugeordneten Azure Storage- und Azure Key Vault-Ressourcen.

References: 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 AI Search mit 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> 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. Sie finden Endpunkte in Azure portal unter Ressource-Verwaltung > Schlü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}")
    

    References: 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 Storage-Kontos und des Key Vaults 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. Verwenden Sie beispielsweise 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 die Seite Azure portal, navigieren Sie zur seite Overview, 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"

References: Hub

Aktualisieren Azure Application 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 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 dazu führen, dass die Verknüpfung früherer Aufträge gestört wird, was sich auf bereitgestellte Inferenzendpunkte oder die Möglichkeit auswirken kann, frühere Aufträge im Arbeitsbereich neu auszuführen. Nach der Zuordnung mit einem Foundry-Hub können Azure Container Registry- und Application Insights-Ressourcen nicht aufgelöst (auf NULL gesetzt) werden.

Sie können die Azure portal, Azure SDK/CLI-Optionen oder die Infrastruktur-as-Code-Vorlagen verwenden, um sowohl Azure Application 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()