Hantera Azure Machine Learning-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 Machine Learning-arbetsytor för Azure Machine Learning med hjälp av Azure Portal eller SDK för Python.

När dina behov ändras eller kraven för automatisering ökar kan du även hantera arbetsytor med hjälp av CLI, Azure PowerShell eller via VS 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 Machine Learning idag.
  • Om du använder Python SDK:
    1. Installera SDK v2.

    2. Ange din prenumerationsinformation

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    3. Hämta ett handtag till prenumerationen. ml_client används i all Python-kod i den här artikeln.

      # 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 den Azure Active Directory som du vill använda i DefaultAzureCredential. Hitta ditt klientorganisations-ID från Azure Portal under Azure Active Directory, Externa identiteter.

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Valfritt) Om du arbetar med ett nationellt moln**, anger du det nationella moln som ska autentiseras DefaultAzureCredentialmed i ..

        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 krä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 Machine Learning-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 från prenumeration B måste Azure Machine Learning-namnområdet registreras i prenumeration B innan du kan använda lagringskontot med arbetsytan.

    Resursprovidern för Azure Machine Learning är Microsoft.MachineLearningServices. Information om hur du ser om den är registrerad och hur du registrerar den finns i artikeln Azure-resursprovidrar och typer .

    Viktigt

    Detta gäller endast för resurser som tillhandahålls när arbetsytan skapas. Azure Storage-konton, Azure Container Register, Azure Key Vault och Application Insights.

  • Om du skapar en arbetsyta skapas som standard även en 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 Machine Learning stöder inte hierarkisk namnrymd (Azure Data Lake Storage Gen2 funktion) för arbetsytans standardlagringskonto.

Tips

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, vilket kan göra det svårare att felsöka problem. Om du tar bort Application Insights-instansen som skapats av arbetsytan kan du inte återskapa den utan att ta bort och återskapa arbetsytan.

Mer information om hur du använder den här Application Insights-instansen finns i Övervaka och samla in data från Machine Learning-webbtjänstslutpunkter.

Skapa en arbetsyta

Du kan skapa en arbetsyta direkt i Azure Machine Learning-studio, med begränsade tillgängliga alternativ. Eller använd någon av metoderna nedan för mer kontroll över alternativ.

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

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

    # 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. Du kan också skapa en arbetsyta som använder befintliga Azure-resurser med Azure-resurs-ID-format. Hitta specifika Azure-resurs-ID:t i Azure Portal eller med SDK:t. Det här exemplet förutsätter att resursgruppen, lagringskontot, nyckelvalvet, App Insights och containerregistret 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)

Mer information finns i Arbetsytans SDK-referens.

Om du har problem med att komma åt din prenumeration kan du läsa Konfigurera autentisering för Azure Machine Learning-resurser och arbetsflöden samt autentisering i Azure Machine Learning Notebook.

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.

Avancerat

Som standard lagras metadata för arbetsytan i en Azure Cosmos DB-instans som Microsoft underhåller. Dessa data krypteras med 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 inverkan på verksamheten 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. När du gör det skapas Den Azure Cosmos DB-instans som lagrar metadata i din Azure-prenumeration. Mer information finns i Kundhanterade nycklar.

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 en 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)

Ladda ned en konfigurationsfil

Hoppa över det här steget om du ska köra koden på en beräkningsinstans. Beräkningsinstansen skapar och lagrar kopian 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 laddar du ned filen:

  1. Välj din arbetsyta i Azure Studio

  2. Längst upp till höger väljer du arbetsytans namn och sedan Ladda ned config.json

    Ladda ned config.json

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

När du kör maskininlärningsuppgifter med hjälp av 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. Du uppmanas 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()
    
  • 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 Machine Learning-resurser och arbetsflöden och autentisering i Azure Machine Learning Notebook.

Hitta en arbetsyta

Visa en lista över alla arbetsytor som du kan använda.
Du kan också söka efter en arbetsyta i Studio. Se Sök efter Azure Machine Learning-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 information om en specifik arbetsyta:

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 det å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.

Om du har tagit bort arbetsytan av misstag kanske du fortfarande kan hämta dina anteckningsböcker. Mer information finns i Redundans för affärskontinuitet och haveriberedskap.

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 är inte att ta bort resurser som är associerade med arbetsytan, d.v.s. containerregistret, lagringskontot, nyckelvalvet och application insights. Ställ även in delete_dependent_resources på True för att ta bort dessa resurser.

Rensa resurser

Viktigt

De resurser som du har skapat kan användas som förutsättningar för andra Azure Machine Learning-självstudier och instruktionsartiklar.

Om du inte planerar att använda någon av de resurser som du skapade 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. Välj resursgruppen som du skapade från listan.

  3. Välj Ta bort resursgrupp.

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

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

Felsökning

  • Webbläsare som stöds i Azure Machine Learning-studio: Vi rekommenderar att du använder den senaste webbläsaren som är kompatibel med ditt operativsystem. Följande webbläsare stöds:

    • 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 Portal 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 Machine Learning-studio och söker efter arbetsytans namn.
    • Alla tillgångar (data, experiment, beräkningar och så vidare) är endast tillgängliga i Azure Machine Learning-studio. De är inte tillgängliga från Azure Portal.
    • Försök att exportera en mall för en arbetsyta från Azure Portal 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. Som en lösning kan du använda en av mallarna som tillhandahålls som https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices grund för mallen.

Diagnostik för arbetsyta

Du kan köra diagnostik på din arbetsyta från Azure Machine Learning-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 Machine Learning-arbetsyta eller en resurs som används av arbetsytan kan du få ett felmeddelande 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 Machine Learning:

Resursprovider Varför det behövs
Microsoft.MachineLearningServices Skapa Azure Machine Learning-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/NotebookProxies Integrerade notebook-filer på Azure Machine Learning-beräkningsinstansen.
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 Machine Learning måste följande tjänsteleverantörer registreras:

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

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

Ta bort Azure Container Registry

Azure Machine Learning-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 en Azure Container Registry har skapats för en arbetsyta ska du inte ta bort den. Om du gör det bryts din Azure Machine Learning-arbetsyta.

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 Machine Learning.

Information om hur du håller din Azure ML uppdaterad med de senaste säkerhetsuppdateringarna finns i Sårbarhetshantering.