Dela via


Hantera Azure Mašinsko učenje-arbetsytor med Python SDK (v1)

GÄLLER FÖR: Python SDK azureml v1

I den här artikeln skapar, visar och tar du bort Azure Mašinsko učenje-arbetsytor för Azure Mašinsko učenje med hjälp av SDK för Python.

När dina behov ändras eller kraven för automatisering ökar kan du också hantera arbetsytor med hjälp av CLI eller via VS Code-tillägget.

Förutsättningar

Begränsningar

  • När du skapar en ny arbetsyta kan du antingen automatiskt skapa tjänster som behövs av arbetsytan eller använda befintliga tjänster. Om du vill använda befintliga tjänster från en annan Azure-prenumeration än arbetsytan måste du registrera Azure Mašinsko učenje-namnområdet i prenumerationen som innehåller dessa tjänster. Om du till exempel skapar en arbetsyta i prenumeration A som använder ett lagringskonto i prenumeration B måste Azure Mašinsko učenje-namnområdet registreras i prenumeration B innan arbetsytan kan använda lagringskontot.

    Resursprovidern för Azure Mašinsko učenje är Microsoft.MachineLearningServices. Information om hur du ser om den är registrerad eller registrerar den finns i Azure-resursprovidrar och typer.

    Viktigt!

    Den här informationen gäller endast för resurser som tillhandahålls när arbetsytan skapas: Azure Storage-konton, Azure Container Registry, Azure Key Vault och Application Insights.

  • Som standard skapar skapandet av en arbetsyta även ett Azure Container Registry (ACR). Eftersom ACR för närvarande inte stöder unicode-tecken i resursgruppsnamn använder du en resursgrupp som inte innehåller dessa tecken.

  • Azure Mašinsko učenje stöder inte hierarkisk namnrymd (Azure Data Lake Storage Gen2-funktion) för arbetsytans standardlagringskonto.

Dricks

En Azure Application Insights-instans skapas när du skapar arbetsytan. Du kan ta bort Application Insights-instansen när klustret har skapats om du vill. Om du tar bort den begränsas den information som samlas in från arbetsytan och kan göra det svårare att felsöka problem. Om du tar bort Application Insights-instansen som skapats av arbetsytan är det enda sättet att återskapa den att ta bort och återskapa arbetsytan.

Mer information om hur du använder Application Insights-instansen finns i Övervaka och samla in data från Mašinsko učenje webbtjänstslutpunkter.

Skapa en arbetsyta

Du kan skapa en arbetsyta direkt i Azure Mašinsko učenje Studio, med begränsade tillgängliga alternativ. Eller använd någon av metoderna nedan för mer kontroll över alternativ.

  • Standardspecifikation. Som standard skapas beroende resurser och resursgruppen automatiskt. Den här koden skapar en arbetsyta med namnet myworkspace och en resursgrupp med namnet myresourcegroup i eastus2.

    GÄLLER FÖR: Python SDK azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Ange create_resource_group false om du har en befintlig Azure-resursgrupp som du vill använda för arbetsytan.

  • Flera klienter. Om du har flera konton lägger du till klient-ID:t för det Microsoft Entra-ID som du vill använda. Hitta ditt klientorganisations-ID från Azure-portalen under Microsoft Entra-ID, externa identiteter.

    GÄLLER FÖR: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Nationellt moln. Du behöver extra kod för att autentisera till Azure om du arbetar i ett nationellt moln.

    GÄLLER FÖR: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Använd befintliga Azure-resurser. Du kan också skapa en arbetsyta som använder befintliga Azure-resurser med Azure-resurs-ID-formatet. Hitta de specifika Azure-resurs-ID:na i Azure-portalen eller med SDK:t. Det här exemplet förutsätter att resursgruppen, lagringskontot, nyckelvalvet, App Insights och containerregistret redan finns.

    GÄLLER FÖR: Python SDK azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Mer information finns i Arbetsyte-SDK-referens.

Om du har problem med att komma åt din prenumeration kan du läsa Konfigurera autentisering för Azure Mašinsko učenje resurser och arbetsflöden samt Autentisering i Azure Mašinsko učenje notebook-fil.

Nätverk

Viktigt!

Mer information om hur du använder en privat slutpunkt och ett virtuellt nätverk med din arbetsyta finns i Nätverksisolering och sekretess.

Azure Mašinsko učenje Python SDK tillhandahåller klassen PrivateEndpointConfig, som kan användas med Workspace.create() för att skapa en arbetsyta med en privat slutpunkt. Den här klassen kräver ett befintligt virtuellt nätverk.

Avancerad

Som standard lagras metadata för arbetsytan i en Azure Cosmos DB-instans som Microsoft underhåller. Dessa data krypteras med hjälp av Microsoft-hanterade nycklar.

Om du vill begränsa de data som Microsoft samlar in på din arbetsyta väljer du Arbetsyta med hög affärspåverkan i portalen eller i hbi_workspace=true Python. Mer information om den här inställningen finns i Kryptering i vila.

Viktigt!

Du kan bara välja hög affärspåverkan när du skapar en arbetsyta. Du kan inte ändra den här inställningen när arbetsytan har skapats.

Använda din egen datakrypteringsnyckel

Du kan ange en egen nyckel för datakryptering. På så sätt skapas Azure Cosmos DB-instansen som lagrar metadata i din Azure-prenumeration. Mer information finns i Kundhanterade nycklar för Azure Mašinsko učenje.

Använd följande steg för att ange din egen nyckel:

Viktigt!

Innan du följer de här stegen måste du först utföra följande åtgärder:

Följ stegen i Konfigurera kundhanterade nycklar för att:

  • Registrera Azure Cosmos DB-providern
  • Skapa och konfigurera ett Azure Key Vault
  • Generera en nyckel

Använd cmk_keyvault och resource_cmk_uri för att ange kundens hanterade nyckel.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Ladda ned en konfigurationsfil

Om du ska använda en beräkningsinstans på din arbetsyta för att köra koden hoppar du över det här steget. Beräkningsinstansen skapar och lagrar en kopia av den här filen åt dig.

Om du planerar att använda kod i din lokala miljö som refererar till den här arbetsytan (ws) skriver du konfigurationsfilen:

GÄLLER FÖR: Python SDK azureml v1

ws.write_config()

Placera filen i katalogstrukturen med dina Python-skript eller Jupyter Notebooks. Den kan finnas i samma katalog, en underkatalog med namnet .azureml eller i en överordnad katalog. När du skapar en beräkningsinstans läggs den här filen till i rätt katalog på den virtuella datorn åt dig.

Anslut till en arbetsyta

I Python-koden skapar du ett arbetsyteobjekt för att ansluta till din arbetsyta. Den här koden läser innehållet i konfigurationsfilen för att hitta din arbetsyta. Du får en uppmaning om att logga in om du inte redan är autentiserad.

GÄLLER FÖR: Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Flera klienter. Om du har flera konton lägger du till klient-ID:t för det Microsoft Entra-ID som du vill använda. Hitta ditt klientorganisations-ID från Azure-portalen under Microsoft Entra-ID, externa identiteter.

    GÄLLER FÖR: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Nationellt moln. Du behöver extra kod för att autentisera till Azure om du arbetar i ett nationellt moln.

    GÄLLER FÖR: Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

Om du har problem med att komma åt din prenumeration kan du läsa Konfigurera autentisering för Azure Mašinsko učenje resurser och arbetsflöden samt Autentisering i Azure Mašinsko učenje notebook-fil.

Hitta en arbetsyta

Se en lista över alla arbetsytor som du kan använda.

Hitta dina prenumerationer på sidan Prenumerationer i Azure-portalen. Kopiera ID:t och använd det i koden nedan för att se alla arbetsytor som är tillgängliga för den prenumerationen.

GÄLLER FÖR: Python SDK azureml v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

Metoden Workspace.list(..) returnerar inte det fullständiga arbetsyteobjektet. Den innehåller endast grundläggande information om befintliga arbetsytor i prenumerationen. Om du vill hämta ett fullständigt objekt för en viss arbetsyta använder du Workspace.get(..).

Ta bort en arbetsyta

Ta bort den när du inte längre behöver en arbetsyta.

Varning

Om mjuk borttagning är aktiverat för arbetsytan kan den återställas efter borttagningen. Om mjuk borttagning inte är aktiverat eller om du väljer alternativet att ta bort arbetsytan permanent kan den inte återställas. Mer information finns i Återställa en borttagen arbetsyta.

Dricks

Standardbeteendet för Azure Mašinsko učenje är att mjuk borttagning av arbetsytan. Det innebär att arbetsytan inte tas bort omedelbart, utan i stället markeras för borttagning. Mer information finns i Mjuk borttagning.

Ta bort arbetsytan ws:

GÄLLER FÖR: Python SDK azureml v1

ws.delete(delete_dependent_resources=False, no_wait=False)

Standardåtgärden är inte att ta bort resurser som är associerade med arbetsytan, dvs. containerregister, lagringskonto, nyckelvalv och programinsikter. Ställ in delete_dependent_resources på True för att även ta bort dessa resurser.

Rensa resurser

Viktigt!

De resurser som du har skapat kan användas som förutsättningar för andra Azure-Mašinsko učenje självstudier och instruktionsartiklar.

Om du inte planerar att använda någon av de resurser som du har skapat tar du bort dem så att du inte debiteras några avgifter:

  1. I Azure-portalen väljer du Resursgrupper längst till vänster.

  2. I listan väljer du den resursgrupp som du skapade.

  3. Välj Ta bort resursgrupp.

    Skärmbild av valen för att ta bort en resursgrupp i Azure-portalen.

  4. Ange resursgruppsnamnet. Välj sedan ta bort.

Felsökning

  • Webbläsare som stöds i Azure Mašinsko učenje Studio: Vi rekommenderar att du använder den senaste webbläsaren som är kompatibel med ditt operativsystem. Följande webbläsare kan användas:

    • Microsoft Edge (Den nya Microsoft Edge, senaste versionen. Inte Microsoft Edge-äldre)
    • Safari (senaste versionen, endast Mac)
    • Chrome (senaste versionen)
    • Firefox (senaste versionen)
  • Azure Portal:

    • Om du går direkt till din arbetsyta från en resurslänk från SDK:t eller Azure-portalen kan du inte visa standardöversiktssidan med prenumerationsinformation i tillägget. I det här scenariot kan du inte heller växla till en annan arbetsyta. Om du vill visa en annan arbetsyta går du direkt till Azure Mašinsko učenje studio och söker efter arbetsytans namn.
    • Alla tillgångar (data, experiment, beräkningar och så vidare) är endast tillgängliga i Azure Mašinsko učenje studio. De är inte tillgängliga från Azure-portalen.
    • Ett försök att exportera en mall för en arbetsyta från Azure-portalen kan returnera ett fel som liknar följande text: Could not get resource of the type <type>. Resources of this type will not be exported. Använd en av mallarna https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices som bas för mallen som en lösning.

Diagnostik för arbetsyta

Du kan köra diagnostik på din arbetsyta från Azure Mašinsko učenje studio eller Python SDK. När diagnostiken har körts returneras en lista över eventuella identifierade problem. Den här listan innehåller länkar till möjliga lösningar. Mer information finns i Så här använder du arbetsytediagnostik.

Resursproviderfel

När du skapar en Azure Mašinsko učenje-arbetsyta eller en resurs som används av arbetsytan kan du få ett fel som liknar följande meddelanden:

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

De flesta resursprovidrar registreras automatiskt, men inte alla. Om du får det här meddelandet måste du registrera den angivna providern.

Följande tabell innehåller en lista över de resursprovidrar som krävs av Azure Mašinsko učenje:

Resursprovider Varför det behövs
Microsoft.MachineLearningServices Skapa Azure Mašinsko učenje-arbetsytan.
Microsoft.Storage Azure Storage-kontot används som standardlagring för arbetsytan.
Microsoft.ContainerRegistry Azure Container Registry används av arbetsytan för att skapa Docker-avbildningar.
Microsoft.KeyVault Azure Key Vault används av arbetsytan för att lagra hemligheter.
Microsoft.Notebooks Integrerade notebook-filer i Azure Mašinsko učenje beräkningsinstans.
Microsoft.ContainerService Om du planerar att distribuera tränade modeller till Azure Kubernetes Services.

Om du planerar att använda en kundhanterad nyckel med Azure Mašinsko učenje måste följande tjänsteleverantörer registreras:

Resursprovider Varför det behövs
Microsoft.DocumentDB Azure CosmosDB-instans som loggar metadata för arbetsytan.
Microsoft.Search Azure Search tillhandahåller indexeringsfunktioner för arbetsytan.

Om du planerar att använda ett hanterat virtuellt nätverk med Azure Mašinsko učenje måste resursprovidern Microsoft.Network vara registrerad. Den här resursprovidern används av arbetsytan när du skapar privata slutpunkter för det hanterade virtuella nätverket.

Information om hur du registrerar resursprovidrar finns i Lösa fel för registrering av resursprovider.

Ta bort Azure Container Registry

Azure Mašinsko učenje-arbetsytan använder Azure Container Registry (ACR) för vissa åtgärder. Den skapar automatiskt en ACR-instans när den först behöver en.

Varning

När ett Azure Container Registry har skapats för en arbetsyta ska du inte ta bort det. Det gör att din Azure Mašinsko učenje-arbetsyta bryts.

Nästa steg

När du har en arbetsyta lär du dig hur du tränar och distribuerar en modell.

Mer information om hur du planerar en arbetsyta för organisationens krav finns i Ordna och konfigurera Azure Mašinsko učenje.

Information om hur du håller din Azure-Mašinsko učenje uppdaterad med de senaste säkerhetsuppdateringarna finns i Sårbarhetshantering.