Hantera Azure Mašinsko učenje-arbetsytor i portalen eller med Python SDK (v2)

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

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 Azure-portalen eller SDK:t för Python.

När dina behov ändras eller automatiseringskraven ökar kan du hantera arbetsytor med CLI, Azure PowerShell eller via Visual Studio Code-tillägget.

Förutsättningar

  • En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar. Prova den kostnadsfria eller betalda versionen av Azure Mašinsko učenje i dag.
  • Med Python SDK:
    1. Installera SDK v2.

    2. Installera azure-identity: pip install azure-identity. Om du är i en notebook-cell använder du %pip install azure-identity.

    3. Ange din prenumerationsinformation:

      GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    4. Hämta ett handtag till prenumerationen. All Python-kod i den här artikeln använder 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)
      • (Valfritt) Om du har flera konton lägger du till klient-ID:t för det Microsoft Entra-ID som du vill använda i DefaultAzureCredential. Hitta ditt klientorganisations-ID från Azure-portalen under Microsoft Entra-ID, externa identiteter.

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Valfritt) Om du arbetar i regionerna Azure Government – USA eller Azure China 21Vianet måste du ange det moln som du vill autentisera till. Du kan ange dessa regioner i DefaultAzureCredential.

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

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.

  • För nätverksisolering med onlineslutpunkter kan du använda arbetsyterelaterade resurser (Azure Container Registry (ACR), Lagringskonto, Key Vault och Application Insights) från en resursgrupp som skiljer sig från din arbetsyta. Dessa resurser måste dock tillhöra samma prenumeration och klientorganisation som din arbetsyta. Information om de begränsningar som gäller för att skydda hanterade onlineslutpunkter finns i Nätverksisolering med hanterade onlineslutpunkter med hjälp av en arbetsytas hanterade virtuella nätverk.

  • Skapande av arbetsyta skapar också ett Azure Container Registry (ACR) som standard. Eftersom ACR för närvarande inte stöder unicode-tecken i resursgruppsnamn använder du en resursgrupp som undviker 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. Du kan också använda någon av dessa metoder för mer kontroll över alternativ:

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

  • Grundläggande konfiguration för att komma igång Utan specifikation skapas associerade resurser och Azure-resursgruppen automatiskt. Den här koden skapar en arbetsyta med namnet myworkspace, beroende Azure-resurser (Lagringskonto, Key Vault, Container Registry, Application Insights) och en resursgrupp med namnet myresourcegroup i 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)
  • Använd befintliga Azure-resurser. Om du vill ta med befintliga Azure-resurser refererar du till dem med hjälp av 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, Key Vault, Application Insights och Container Registry redan finns.

    # 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)
  • (Förhandsversion) Använd befintlig hubbarbetsyta. I stället för att skapa en standardarbetsyta med egna säkerhetsinställningar och associerade resurser kan du återanvända en hubbarbetsytas delade miljö. Din nya projektarbetsyta hämtar säkerhetsinställningar och delade konfigurationer från hubben, inklusive beräkning och anslutningar. Det här exemplet förutsätter att hubbarbetsytan redan finns.

    from azure.ai.ml.entities import Project
    
    my_project_name = "myexampleproject"
    my_location = "East US"
    my_display_name = "My Example Project"
    
    my_hub = Project(name=my_hub_name, 
                     location=my_location,
                     display_name=my_display_name,
                     hub_id=created_hub.id)
    
    created_project_workspace = ml_client.workspaces.begin_create(workspace=my_hub).result()
    

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.

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

# 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()

Den här klassen kräver ett befintligt virtuellt nätverk.

Kryptering

Som standard lagrar en Azure Cosmos DB-instans arbetsytans metadata. Microsoft underhåller den här Cosmos DB-instansen. Microsoft-hanterade nycklar krypterar dessa data.

Använda din egen datakrypteringsnyckel

Du kan ange en egen nyckel för datakryptering. Om du anger en egen nyckel skapas Azure Cosmos DB-instansen som lagrar metadata i din Azure-prenumeration. Mer information finns i Kundhanterade nycklar.

Använd de här stegen 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

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)


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)

Identitet

I portalen använder du identitetssidan för att konfigurera hanterad identitet, åtkomst till lagringskonto och datapåverkan. För Python SDK, se länkarna i följande avsnitt.

Hanterad identitet

En arbetsyta kan ges antingen en systemtilldelad identitet eller en användartilldelad identitet. Den här identiteten används för att komma åt resurser i din prenumeration. Mer information finns i Konfigurera autentisering mellan Azure Mašinsko učenje och andra tjänster.

Åtkomst till lagringskonto

Välj mellan autentiseringsbaserad åtkomst eller identitetsbaserad åtkomst när du ansluter till standardlagringskontot. För identitetsbaserad autentisering måste rollen Storage Blob Data Contributor beviljas till arbetsytans hanterade identitet på lagringskontot.

Datapåverkan

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!

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

Taggar

Taggar är namn/värde-par som gör att du kan kategorisera resurser och visa sammanställd faktureringsinformation genom att tillämpa samma tagg på flera resurser och resursgrupper.

Tilldela taggar för arbetsytan genom att ange namn/värde-paren. Mer information finns i Använda taggar för att organisera dina Azure-resurser.

Använd också taggar för att [framtvinga arbetsyteprinciper)(#enforce-policies).

Ladda ned en konfigurationsfil

Om du kör koden på en beräkningsinstans hoppar du över det här steget. Beräkningsinstansen skapar och lagrar en kopia av den här filen åt dig.

Om du vill använda kod i din lokala miljö som refererar till den här arbetsytan laddar du ned filen:

  1. Välj din arbetsyta i Azure Studio

  2. Längst upp till höger väljer du namnet på arbetsytan och väljer sedan Ladda ned config.json

    Skärmbild av alternativet

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

Framtvinga principer

Du kan aktivera/inaktivera dessa funktioner i en arbetsyta:

  • Feedbackmöjligheter på arbetsytan. Bland affärsmöjligheterna finns enstaka produktundersökningar och feedbackverktyget smile-frown i arbetsytans banderoll.
  • Möjlighet att prova förhandsgranskningsfunktioner på arbetsytan.

De här funktionerna är aktiverade som standard. Så här inaktiverar du dem:

  • När du skapar arbetsytan inaktiverar du funktioner från avsnittet Taggar :

    1. Inaktivera feedback genom att lägga till paret "ADMIN_HIDE_SURVEY: TRUE"
    2. Inaktivera förhandsversioner genom att lägga till paret "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  • För en befintlig arbetsyta inaktiverar du funktioner från avsnittet Taggar :

    1. Gå till arbetsytans resurs i Azure-portalen
    2. Öppna taggar från den vänstra navigeringspanelen
    3. Inaktivera feedback genom att lägga till paret "ADMIN_HIDE_SURVEY: TRUE"
    4. Inaktivera förhandsgranskningar genom att lägga till paret "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
    5. Välj Använd.

Skärmbild som visar inställningstaggar för att förhindra feedback på arbetsytan.

Du kan inaktivera förhandsversioner på prenumerationsnivå, vilket säkerställer att den är inaktiverad för alla arbetsytor i prenumerationen. I det här fallet kan användare i prenumerationen inte heller komma åt förhandsgranskningsverktyget innan de väljer en arbetsyta. Den här inställningen är användbar för administratörer som vill se till att förhandsgranskningsfunktioner inte används i organisationen.

Om förhandsgranskningsinställningen är inaktiverad på prenumerationsnivå ignoreras inställningen på enskilda arbetsytor.

Så här inaktiverar du förhandsgranskningsfunktioner på prenumerationsnivå:

  1. Gå till prenumerationsresurs i Azure-portalen
  2. Öppna taggar från den vänstra navigeringspanelen
  3. Inaktivera förhandsversioner för alla arbetsytor i prenumerationen genom att lägga till paret "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  4. Välj Använd.

Anslut till en arbetsyta

När du kör maskininlärningsuppgifter med SDK:et behöver du ett MLClient-objekt som anger anslutningen till din arbetsyta. Du kan skapa ett MLClient objekt från parametrar eller med en konfigurationsfil.

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

  • Med en konfigurationsfil: Den här koden läser innehållet i konfigurationsfilen för att hitta din arbetsyta. Det öppnar en uppmaning om att logga in om du inte redan har autentiserats.

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
    
  • Från parametrar: Du behöver inte ha en config.json fil tillgänglig om du använder den här metoden.

    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)

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 har tillgängliga. Du kan också söka efter en arbetsyta i Studio. Se Sök efter Azure Mašinsko učenje tillgångar (förhandsversion).

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

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)

Så här hämtar du specifik information om arbetsytan:

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

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.

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

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

Standardåtgärden tar inte bort resurser som är associerade med arbetsytan automatiskt. Ställ in delete_dependent_resources på True för att även ta bort dessa resurser.

  • containerregister
  • storage account
  • key vault
  • application insights

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. Dessa webbläsare stöds:

    • Microsoft Edge (Den nya Microsoft Edge, senaste versionen. Obs! Microsoft Edge-äldre stöds inte)
    • 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 dessutom inte 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. Azure-portalen erbjuder dem inte* .
    • Om du försöker exportera en mall för en arbetsyta från Azure-portalen kan det returnera ett fel som liknar den här texten: 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.

Exempel

Exempel i den här artikeln kommer från workspace.ipynb.

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 Organisera 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.