Delen via


Een hub maken met behulp van de Azure Machine Learning SDK en CLI

Opmerking

Dit document verwijst naar de Microsoft Foundry-portal (klassiek).

🔍 Bekijk de documentatie van Microsoft Foundry (nieuw) voor meer informatie over de nieuwe portal.

In dit artikel leert u hoe u de volgende Microsoft Foundry-resources maakt met behulp van de Azure Machine Learning SDK en Azure CLI (met machine learning-extensie):

  • Een Foundry-hub
  • Een Foundry-verbinding

Opmerking

Een hub wordt alleen gebruikt voor een hubproject. Een Foundry-project maakt geen gebruik van een hub. Zie Typen projecten voor meer informatie.

Vereiste voorwaarden

Uw omgeving instellen

Gebruik de volgende tabbladen om te selecteren of u de Python SDK of Azure CLI gebruikt:

  1. Installeer pakketten. (Als u zich in een notebookcel bevindt, gebruikt u in plaats daarvan %pip install.)

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Geef uw abonnementsgegevens op:

    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
  3. Verkrijg een toegang tot het abonnement. Alle Python-code in dit artikel maakt gebruik van 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. (Optioneel) Als u meerdere accounts hebt, voegt u de tenant-id van de Microsoft Entra-id toe die u in het DefaultAzureCredentialaccount wilt gebruiken. Zoek uw tenant-id in Azure Portal onder Microsoft Entra ID, Externe identiteiten.

    DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
    
  5. (Optioneel) Als u werkt in de regio Azure Government - VS of Azure China 21Vianet, specificeert u de regio waar u zich wilt authenticeren. U kunt de regio opgeven met DefaultAzureCredential. In het volgende voorbeeld wordt geauthenticeerd bij de Azure Government - Amerikaanse regio:

    from azure.identity import AzureAuthorityHosts
    DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)
    
  6. Controleer de VPN-verbinding.

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

Als u een verificatiefout ontvangt, controleer dan of uw Azure-referenties juist zijn geconfigureerd (voer az login uit of stel uw referenties in via de Azure Identity SDK). Als u een machtigingsfout krijgt, controleert u of u de rol Inzender hebt voor het abonnement of de resourcegroep.

Verwijzingen: MLClient, DefaultAzureCredential

De Foundry-hub en Microsoft Foundry-verbinding maken

Gebruik de volgende voorbeelden om een nieuwe hub te maken. Vervang voorbeeldtekenreekswaarden door uw eigen waarden:

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

Met deze code maakt u een nieuwe hub met de opgegeven naam, locatie en weergavenaam. Azure richt automatisch gekoppelde Azure Storage- en Azure Key Vault-resources in.

Verwijzingen: Hub, MLClient.workspaces.begin_create

Een Foundry-verbinding maken

Nadat u uw eigen Foundry-resource of Azure OpenAI-resource in dezelfde resourcegroep hebt gemaakt, kunt u deze verbinden met uw hub. U kunt Azure AI Search ook verbinden vanuit elke resourcegroep in hetzelfde abonnement.

  1. Neem uw hub op in uw ml_client verbinding:

    • Voer uw abonnementsgegevens in. <AML_WORKSPACE_NAME>Voer de naam van uw hub in:

      # Enter details of your AML workspace
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
      workspace = "<AML_WORKSPACE_NAME>"
    • Haal een ingang op voor de hub:

      # 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. Gebruik ml_client om de verbinding met uw Foundry Tools te maken. U vindt eindpunten in Azure Portal onder Resourcebeheersleutels > en -eindpunten. Gebruik het AI Services-eindpunt voor een Foundry-resource. Gebruik voor Azure AI Search de URL voor het eindpunt.

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

    Verwijzingen: AzureAIServicesConnection, MLClient.connections

Een hub maken met bestaande afhankelijkheidsbronnen

Standaard maakt een hub automatisch gekoppelde Azure Storage- en Azure Key Vault-resources. Als u bestaande Azure Storage- of Azure Key Vault-resources opnieuw wilt gebruiken, kunt u deze opgeven tijdens het maken van de hub. Vervang in de volgende voorbeelden de tijdelijke aanduidingen door uw eigen resource-id's:

Aanbeveling

U kunt de resource-id van het opslagaccount en de sleutelkluis ophalen uit Azure Portal door naar het overzicht van de resource te gaan en de JSON-weergave te selecteren. De resource-id bevindt zich in het id-veld . U kunt de Azure CLI ook gebruiken om de resource-id op te halen. Gebruik bijvoorbeeld az storage account show --name {my_storage_account_name} --query "id" en 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}")

Als u resource-id's voor bestaande resources wilt zoeken, gaat u naar Azure Portal, gaat u naar de overzichtspagina van de resource en selecteert u de JSON-weergave. De resource-id wordt weergegeven in het id-veld . Of gebruik de Azure CLI:

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

Verwijzingen: Hub

Azure-toepassing Insights en Azure Container Registry bijwerken

Als u aangepaste omgevingen wilt gebruiken voor Prompt Flow, moet u een Azure Container Registry configureren voor uw hub. Als u Azure Application Insights wilt gebruiken voor promptstroomimplementaties, moet u een Azure Application Insights-resource voor uw hub configureren. Het bijwerken van de aan de werkruimte gekoppelde Azure Container Registry- of Application Insights-resources kan de herkomst van eerdere taken verbreken, geïmplementeerde inference-eindpunten of het vermogen om eerdere taken in de werkruimte opnieuw uit te voeren. Na koppeling met een Foundry-hub kunnen Azure Container Registry- en Application Insights-resources niet worden ontkoppeld (ingesteld op null).

U kunt Azure Portal, Azure SDK/CLI-opties of de sjablonen voor infrastructuur als code gebruiken om zowel Azure-toepassing Insights als Azure Container Registry voor de hub bij te werken.

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

Met dit script wordt een bestaande hub bijgewerkt met de opgegeven Application Insights- en Container Registry-resources. De update_dependent_resources=True parameter bevestigt de update.

Referentie: Hub, MLClient.workspaces.begin_update()