Azure Machine Learning-werkruimten beheren in de portal of met de Python SDK (v2)

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

In dit artikel maakt, bekijkt en verwijdert u Azure Machine Learning-werkruimten voor Azure Machine Learning met behulp van de Azure Portal of de SDK voor Python.

Naarmate uw behoeften veranderen of de vereisten voor automatisering toenemen, kunt u ook werkruimten beheren met behulp van de CLI, Azure PowerShell of via de VS Code-extensie.

Vereisten

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint. Probeer vandaag nog de gratis of betaalde versie van Azure Machine Learning.
  • Als u de Python SDK gebruikt:
    1. Installeer de SDK v2.

    2. Geef uw abonnementsgegevens op

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    3. Een ingang voor het abonnement ophalen. ml_client wordt gebruikt in alle Python-code in dit artikel.

      # 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)
      • (Optioneel) Als u meerdere accounts hebt, voegt u de tenant-id van de Azure Active Directory die u wilt gebruiken toe aan de DefaultAzureCredential. Zoek uw tenant-id in de Azure Portal onder Azure Active Directory, Externe identiteiten.

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Optioneel) Als u werkt met een onafhankelijke cloud**, geeft u de onafhankelijke cloud op waarmee u zich wilt verifiëren in de DefaultAzureCredential..

        from azure.identity import AzureAuthorityHosts
        DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
        

Beperkingen

  • Wanneer u een nieuwe werkruimte maakt, kunt u automatisch services maken die nodig zijn voor de werkruimte of bestaande services gebruiken. Als u bestaande services uit een ander Azure-abonnement dan de werkruimte wilt gebruiken, moet u de Azure Machine Learning-naamruimte registreren in het abonnement dat deze services bevat. Als u bijvoorbeeld een werkruimte maakt in abonnement A die gebruikmaakt van een opslagaccount uit abonnement B, moet de Azure Machine Learning-naamruimte worden geregistreerd in abonnement B voordat u het opslagaccount met de werkruimte kunt gebruiken.

    De resourceprovider voor Azure Machine Learning is Microsoft.MachineLearningServices. Zie het artikel Azure-resourceproviders en -typen voor informatie over hoe u kunt zien of het is geregistreerd en hoe u het kunt registreren.

    Belangrijk

    Dit geldt alleen voor resources die zijn opgegeven tijdens het maken van de werkruimte; Azure Storage-accounts, Azure Container Register, Azure Key Vault en Application Insights.

  • Als u een werkruimte maakt, wordt standaard ook een Azure Container Registry (ACR) gemaakt. Aangezien ACR momenteel geen unicode-tekens in namen van resourcegroepen ondersteunt, gebruikt u een resourcegroep die deze tekens niet bevat.

  • Azure Machine Learning biedt geen ondersteuning voor hiërarchische naamruimte (Azure Data Lake Storage Gen2 functie) voor het standaardopslagaccount van de werkruimte.

Tip

Er wordt een Azure-toepassing Insights-exemplaar gemaakt wanneer u de werkruimte maakt. U kunt het Application Insights-exemplaar desgewenst verwijderen nadat het cluster is gemaakt. Als u deze verwijdert, beperkt u de informatie die uit de werkruimte wordt verzameld en wordt het mogelijk moeilijker om problemen op te lossen. Als u het Application Insights-exemplaar verwijdert dat door de werkruimte is gemaakt, kunt u deze niet opnieuw maken zonder de werkruimte te verwijderen en opnieuw te maken.

Zie Gegevens van Machine Learning-webservice-eindpunten bewaken en verzamelen voor meer informatie over het gebruik van dit Application Insights-exemplaar.

Een werkruimte maken

U kunt een werkruimte rechtstreeks in Azure Machine Learning-studio maken, met beperkte opties. Of gebruik een van de onderstaande methoden voor meer controle over opties.

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

  • Standaardspecificatie. Standaard worden afhankelijke resources en de resourcegroep automatisch gemaakt. Met deze code maakt u een werkruimte met de naam myworkspace en een resourcegroep met de naam myresourcegroup in eastus2.

    # Creating a unique workspace name with current datetime to avoid conflicts
    from azure.ai.ml.entities import Workspace
    import datetime
    
    basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    ws_basic = Workspace(
        name=basic_workspace_name,
        location="eastus",
        display_name="Basic workspace-example",
        description="This example shows how to create a basic workspace",
        hbi_workspace=False,
        tags=dict(purpose="demo"),
    )
    
    ws_basic = ml_client.workspaces.begin_create(ws_basic).result()
    print(ws_basic)
  • Bestaande Azure-resources gebruiken. U kunt ook een werkruimte maken die gebruikmaakt van bestaande Azure-resources met de Azure-resource-id-indeling. Zoek de specifieke Azure-resource-id's in de Azure Portal of met de SDK. In dit voorbeeld wordt ervan uitgegaan dat de resourcegroep, het opslagaccount, de sleutelkluis, App Insights en het containerregister al bestaan.

    # Creating a unique workspace name with current datetime to avoid conflicts
    import datetime
    from azure.ai.ml.entities import Workspace
    
    basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime(
        "%Y%m%d%H%M"
    )
    
    # Change the following variables to resource ids of your existing storage account, key vault, application insights
    # and container registry. Here we reuse the ones we just created for the basic workspace
    existing_storage_account = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>"
        ws_basic.storage_account
    )
    existing_container_registry = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>"
        ws_basic.container_registry
    )
    existing_key_vault = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>"
        ws_basic.key_vault
    )
    existing_application_insights = (
        # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>"
        ws_basic.application_insights
    )
    
    ws_with_existing_resources = Workspace(
        name=basic_ex_workspace_name,
        location="eastus",
        display_name="Bring your own dependent resources-example",
        description="This sample specifies a workspace configuration with existing dependent resources",
        storage_account=existing_storage_account,
        container_registry=existing_container_registry,
        key_vault=existing_key_vault,
        application_insights=existing_application_insights,
        tags=dict(purpose="demonstration"),
    )
    
    ws_with_existing_resources = ml_client.begin_create_or_update(
        ws_with_existing_resources
    ).result()
    
    print(ws_with_existing_resources)

Zie Naslaginformatie over werkruimte-SDK voor meer informatie.

Als u problemen ondervindt bij het openen van uw abonnement, raadpleegt u Verificatie instellen voor Azure Machine Learning-resources en -werkstromen en verificatie in Azure Machine Learning-notebook .

Netwerken

Belangrijk

Zie Netwerkisolatie en privacy voor meer informatie over het gebruik van een privé-eindpunt en virtueel netwerk met uw werkruimte.

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace

basic_private_link_workspace_name = (
    "mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)

ws_private = Workspace(
    name=basic_private_link_workspace_name,
    location="eastus",
    display_name="Private Link endpoint workspace-example",
    description="When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.",
    image_build_compute="cpu-compute",
    public_network_access="Disabled",
    tags=dict(purpose="demonstration"),
)

ml_client.workspaces.begin_create(ws_private).result()

Voor deze klasse is een bestaand virtueel netwerk vereist.

Geavanceerd

Metagegevens voor de werkruimte worden standaard opgeslagen in een Azure Cosmos DB-exemplaar dat door Microsoft wordt onderhouden. Deze gegevens worden versleuteld met door Microsoft beheerde sleutels.

Als u de gegevens wilt beperken die Microsoft in uw werkruimte verzamelt, selecteert u Werkruimte met hoge bedrijfsimpact in de portal of stelt u hbi_workspace=true in Python in. Zie Versleuteling-at-rest voor meer informatie over deze instelling.

Belangrijk

Het selecteren van hoge bedrijfsimpact kan alleen worden uitgevoerd bij het maken van een werkruimte. U kunt deze instelling niet wijzigen nadat de werkruimte is gemaakt.

Uw eigen gegevensversleutelingssleutel gebruiken

U kunt uw eigen sleutel opgeven voor gegevensversleuteling. Als u dit doet, wordt het Azure Cosmos DB-exemplaar gemaakt waarin metagegevens worden opgeslagen in uw Azure-abonnement. Zie Door de klant beheerde sleutels voor meer informatie.

Gebruik de volgende stappen om uw eigen sleutel op te geven:

Belangrijk

Voordat u deze stappen uitvoert, moet u eerst de volgende acties uitvoeren:

Volg de stappen in Door de klant beheerde sleutels configureren voor:

  • De Azure Cosmos DB-provider registreren
  • Een Azure-Key Vault maken en configureren
  • Een sleutel genereren

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)


from azure.ai.ml.entities import Workspace, CustomerManagedKey

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    customer_managed_key=CustomerManagedKey(
        key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
        key_uri="<KEY-IDENTIFIER>"
    )
    tags=dict(purpose="demo")
)

ml_client.workspaces.begin_create(ws)

Een configuratiebestand downloaden

Als u uw code gaat uitvoeren op een rekenproces, slaat u deze stap over. Het rekenproces maakt en slaat een kopie van dit bestand voor u op.

Als u code wilt gebruiken in uw lokale omgeving die verwijst naar deze werkruimte, downloadt u het bestand:

  1. Selecteer uw werkruimte in Azure Studio

  2. Selecteer rechtsboven de naam van de werkruimte en selecteer vervolgens config.json downloaden

    Config.json downloaden

Plaats het bestand in de mapstructuur met uw Python-scripts of Jupyter Notebooks. Deze kan zich in dezelfde map bevinden, een submap met de naam .azureml of in een bovenliggende map. Wanneer u een rekenproces maakt, wordt dit bestand voor u toegevoegd aan de juiste map op de virtuele machine.

Verbinding maken met een werkruimte

Wanneer u machine learning-taken uitvoert met behulp van de SDK, hebt u een MLClient-object nodig dat de verbinding met uw werkruimte aangeeft. U kunt een MLClient object maken op basis van parameters of met een configuratiebestand.

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

  • Met een configuratiebestand: Met deze code wordt de inhoud van het configuratiebestand gelezen om uw werkruimte te vinden. U krijgt een prompt om u aan te melden als u nog niet bent geverifieerd.

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config()
    
  • Van parameters: Het is niet nodig om een bestand config.json beschikbaar te hebben als u deze methode gebruikt.

    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    ws = MLClient(
        DefaultAzureCredential(),
        subscription_id="<SUBSCRIPTION_ID>",
        resource_group_name="<RESOURCE_GROUP>",
        workspace_name="<AML_WORKSPACE_NAME>",
    )
    print(ws)

Als u problemen ondervindt bij het openen van uw abonnement, raadpleegt u Verificatie instellen voor Azure Machine Learning-resources en -werkstromen en het notebook Verificatie in Azure Machine Learning .

Een werkruimte zoeken

Bekijk een lijst met alle werkruimten die u kunt gebruiken.
U kunt ook zoeken naar werkruimte in studio. Zie Zoeken naar Azure Machine Learning-assets (preview).

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

from azure.ai.ml import MLClient
from azure.ai.ml.entities import Workspace
from azure.identity import DefaultAzureCredential

# Enter details of your subscription
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"

my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
    print(ws.name, ":", ws.location, ":", ws.description)

Ga als volgende te werk om details van een specifieke werkruimte op te halen:

ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)

Een werkruimte verwijderen

Wanneer u een werkruimte niet meer nodig hebt, verwijdert u deze.

Waarschuwing

Als voorlopig verwijderen is ingeschakeld voor de werkruimte, kan deze worden hersteld na verwijdering. Als voorlopig verwijderen niet is ingeschakeld of als u de optie selecteert om de werkruimte definitief te verwijderen, kan deze niet worden hersteld. Zie Een verwijderde werkruimte herstellen voor meer informatie.

Als u per ongeluk uw werkruimte hebt verwijderd, kunt u mogelijk nog steeds uw notitieblokken ophalen. Zie Failover voor bedrijfscontinuïteit en herstel na noodgevallen voor meer informatie.

VAN TOEPASSING OP: Python SDK azure-ai-ml v2 (current)

ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)

De standaardactie is niet het verwijderen van resources die zijn gekoppeld aan de werkruimte, dat wil weten containerregister, opslagaccount, sleutelkluis en Application Insights. Stel in delete_dependent_resources op Waar om ook deze resources te verwijderen.

Resources opschonen

Belangrijk

De resources die u hebt gemaakt, kunnen worden gebruikt als de vereisten voor andere Azure Machine Learning-zelfstudies en artikelen met procedures.

Als u niet van plan bent om een van de resources te gebruiken die u hebt gemaakt, verwijdert u deze zodat er geen kosten in rekening worden gebracht:

  1. Selecteer Resourcegroepen links in Azure Portal.

  2. Selecteer de resourcegroep die u hebt gemaakt uit de lijst.

  3. Selecteer Resourcegroep verwijderen.

    Schermopname van de selecties voor het verwijderen van een resourcegroep in de Azure-portal.

  4. Voer de naam van de resourcegroup in. Selecteer vervolgens Verwijderen.

Problemen oplossen

  • Ondersteunde browsers in Azure Machine Learning-studio: u wordt aangeraden de meest recente browser te gebruiken die compatibel is met uw besturingssysteem. De volgende browsers worden ondersteund:

    • Microsoft Edge (de nieuwe Microsoft Edge, nieuwste versie. Niet verouderd voor Microsoft Edge)
    • Safari (meest recente versie, alleen Mac)
    • Chrome (meest recente versie)
    • Firefox (meest recente versie)
  • Azure Portal:

    • Als u rechtstreeks naar uw werkruimte gaat via een sharekoppeling vanuit de SDK of de Azure Portal, kunt u de standaardpagina Overzicht met abonnementsgegevens in de extensie niet weergeven. In dit scenario kunt u ook niet overschakelen naar een andere werkruimte. Als u een andere werkruimte wilt weergeven, gaat u rechtstreeks naar Azure Machine Learning-studio en zoekt u naar de naam van de werkruimte.
    • Alle assets (gegevens, experimenten, berekeningen, enzovoort) zijn alleen beschikbaar in Azure Machine Learning-studio. Ze zijn niet beschikbaar vanaf de Azure Portal.
    • Als u probeert een sjabloon voor een werkruimte te exporteren vanuit de Azure Portal, kan dit een fout retourneren die vergelijkbaar is met de volgende tekst: Could not get resource of the type <type>. Resources of this type will not be exported. Als tijdelijke oplossing gebruikt u een van de sjablonen die zijn opgegeven op https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices als basis voor uw sjabloon.

Werkruimtediagnose

U kunt diagnostische gegevens uitvoeren op uw werkruimte vanuit Azure Machine Learning-studio of de Python SDK. Nadat de diagnose is uitgevoerd, wordt een lijst met gedetecteerde problemen geretourneerd. Deze lijst bevat koppelingen naar mogelijke oplossingen. Zie Diagnostische gegevens over werkruimten gebruiken voor meer informatie.

Fouten met resourceproviders

Wanneer u een Azure Machine Learning-werkruimte maakt of een resource die door de werkruimte wordt gebruikt, ontvangt u mogelijk een foutbericht die op een van de volgende berichten lijkt:

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

De meeste resourceproviders worden automatisch geregistreerd, maar niet allemaal. Als u dit bericht ontvangt, moet u de vermelde provider registreren.

De volgende tabel bevat een lijst met de resourceproviders die vereist zijn voor Azure Machine Learning:

Resourceprovider Waarom dit nodig is
Microsoft.MachineLearningServices De Azure Machine Learning-werkruimte maken.
Microsoft.Storage Azure Storage-account wordt gebruikt als de standaardopslag voor de werkruimte.
Microsoft.ContainerRegistry Azure Container Registry wordt door de werkruimte gebruikt om Docker-installatiekopieën te bouwen.
Microsoft.KeyVault Azure Key Vault wordt door de werkruimte gebruikt om geheimen op te slaan.
Microsoft.Notebooks/NotebookProxies Geïntegreerde notebooks op azure Machine Learning-rekenproces.
Microsoft.ContainerService Als u van plan bent getrainde modellen te implementeren in Azure Kubernetes Services.

Als u van plan bent om een door de klant beheerde sleutel te gebruiken met Azure Machine Learning, moeten de volgende serviceproviders worden geregistreerd:

Resourceprovider Waarom dit nodig is
Microsoft.DocumentDB/databaseAccounts Azure CosmosDB-exemplaar dat metagegevens voor de werkruimte registreert.
Microsoft.Search/searchServices Azure Search biedt indexeringsmogelijkheden voor de werkruimte.

Zie Fouten oplossen voor de registratie van de resourceprovider voor informatie over het registreren van resourceproviders.

De Azure Container Registry verwijderen

De Azure Machine Learning-werkruimte maakt voor sommige bewerkingen gebruik van Azure Container Registry (ACR). Er wordt automatisch een ACR-exemplaar gemaakt wanneer dit voor het eerst nodig is.

Waarschuwing

Als er een Azure Container Registry voor een werkruimte is gemaakt, moet u deze niet verwijderen. Als u dat doet, werkt de Azure Machine Learning-werkruimte niet meer.

Voorbeelden

Voorbeelden in dit artikel zijn afkomstig van workspace.ipynb.

Volgende stappen

Zodra u een werkruimte hebt, leert u hoe u een model traint en implementeert.

Zie Azure Machine Learning organiseren en instellen voor meer informatie over het plannen van een werkruimte voor de vereisten van uw organisatie.

Zie Beveiligingsproblemen beheren voor informatie over het up-to-date houden van uw Azure ML met de nieuwste beveiligingsupdates.