Dela via


Hantera Azure Mašinsko učenje-arbetsytor med hjälp av Azure CLI

GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)

I den här artikeln får du lära dig hur du skapar och hanterar Azure Mašinsko učenje-arbetsytor med hjälp av Azure CLI. Azure CLI tillhandahåller kommandon för att hantera Azure-resurser och är utformat för att få dig att arbeta snabbt med Azure, med fokus på automatisering. Azure CLI-maskininlärningstillägget innehåller kommandon för att arbeta med Azure Mašinsko učenje resurser.

Du kan också använda följande metoder för att skapa och hantera Azure Mašinsko učenje-arbetsytor:

Förutsättningar

  • En Azure-prenumeration med en kostnadsfri eller betald version av Azure Mašinsko učenje. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

  • Azure CLI installerat om du vill köra Azure CLI-kommandona i den här artikeln lokalt.

    Om du kör Azure CLI-kommandona i Azure Cloud Shell behöver du inte installera något. Webbläsaren kommer åt den senaste molnversionen av Azure CLI och Azure Mašinsko učenje-tillägget.

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.

Ansluta till din Azure-prenumeration

Om du använder Azure Cloud Shell från Azure-portalen kan du hoppa över det här avsnittet. Cloud Shell autentiserar dig automatiskt med den Azure-prenumeration som du är inloggad med.

Det finns flera sätt att autentisera lokalt till din Azure-prenumeration från Azure CLI. Det enklaste sättet är att använda en webbläsare.

Om du vill autentisera interaktivt öppnar du en kommandorad eller terminal och kör az login. Om CLI kan öppna din standardwebbläsare gör den det och läser in en inloggningssida. Annars följer du kommandoradsinstruktionerna för att öppna en webbläsare till https://aka.ms/devicelogin och ange en enhetsauktoriseringskod.

Dricks

När du har loggat in visas en lista över prenumerationer som är associerade med ditt Azure-konto. Prenumerationsinformationen med isDefault: true är den för närvarande aktiverade prenumerationen för Azure CLI-kommandon. Den här prenumerationen måste vara samma som innehåller din Azure Mašinsko učenje-arbetsyta. Du hittar prenumerationsinformationen på översiktssidan för din arbetsyta i Azure-portalen.

Om du vill välja en annan prenumeration som ska användas för Azure CLI-kommandon kör az account set -s <subscription> du kommandot och anger prenumerationsnamnet eller ID:t att växla till. Mer information om val av prenumeration finns i Använda flera Azure-prenumerationer.

Andra metoder för autentisering finns i Logga in med Azure CLI.

Skapa en resursgrupp

Azure Mašinsko učenje-arbetsytan måste skapas i en befintlig eller ny resursgrupp. Kör följande kommando för att skapa en ny resursgrupp. Ersätt <resource-group-name> med namnet och <location> med den Azure-region som du vill använda för den här resursgruppen.

Kommentar

Se till att välja en region där Azure Mašinsko učenje är tillgängligt. Mer information finns i Produkter som är tillgängliga per region.

az group create --name <resource-group-name> --location <azure-region>

Svaret på det här kommandot liknar följande JSON. Du kan använda utdatavärdena för att hitta de skapade resurserna eller skicka dem som indata till andra Azure CLI-kommandon eller automatisering.

{
  "id": "/subscriptions/<subscription-GUID>/resourceGroups/<resourcegroupname>",
  "location": "<location>",
  "managedBy": null,
  "name": "<resource-group-name>",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": null
}

Mer information om hur du arbetar med resursgrupper finns i az group.

Skapa en arbetsyta

En distribuerad Azure-Mašinsko učenje-arbetsyta kräver olika andra tjänster som beroende associerade resurser. När du använder Azure CLI för att skapa en arbetsyta kan CLI skapa de nya associerade resurserna eller koppla befintliga resurser.

Kör följande kommando för att skapa en ny arbetsyta med nya automatiskt skapade beroende tjänster:

az ml workspace create -n <workspace-name> -g <resource-group-name>

Om du vill skapa en ny arbetsyta som använder befintliga resurser definierar du först resurserna i en YAML-konfigurationsfil enligt beskrivningen i följande avsnitt. Sedan refererar du till YAML-filen i azure CLI-kommandot för att skapa arbetsytor på följande sätt:

az ml workspace create -g <resource-group-name> --file <configuration-file>.yml

Utdata från kommandot för att skapa arbetsytor liknar följande JSON. Du kan använda utdatavärdena för att hitta de skapade resurserna eller skicka dem som indata till andra Azure CLI-kommandon.

{
  "applicationInsights": "/subscriptions/<subscription-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<application-insight-name>",
  "containerRegistry": "/subscriptions/<subscription-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.containerregistry/registries/<container-registry-name>",
  "creationTime": "2019-08-30T20:24:19.6984254+00:00",
  "description": "",
  "friendlyName": "<workspace-name>",
  "id": "/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-id>",
  "identityPrincipalId": "<GUID>",
  "identityTenantId": "<GUID>",
  "identityType": "SystemAssigned",
  "keyVault": "/subscriptions/<subscription-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.keyvault/vaults/<key-vault-name>",
  "location": "<location>",
  "name": "<workspace-name>",
  "resourceGroup": "<resource-group-name>",
  "storageAccount": "/subscriptions/<subscription-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.storage/storageaccounts/<storage-account-name>",
  "type": "Microsoft.MachineLearningServices/workspaces",
  "workspaceid": "<GUID>"
}

YAML-konfigurationsfil

Om du vill använda befintliga resurser för en ny arbetsyta definierar du resurserna i en YAML-konfigurationsfil. I följande exempel visas en YAML-arbetsytekonfigurationsfil:

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-basicex-prod
location: eastus
display_name: Bring your own dependent resources-example
description: This configuration specifies a workspace configuration with existing dependent resources
storage_account: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>
container_registry: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>
key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
application_insights: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>
tags:
  purpose: demonstration

Du behöver inte ange alla associerade beroende resurser i konfigurationsfilen. Du kan ange en eller flera av resurserna och låta de andra skapas automatiskt.

Du måste ange ID:t för befintliga resurser i YAML-filen. Du kan hämta dessa ID:er antingen genom att visa resursegenskaperna i Azure-portalen eller genom att köra följande Azure CLI-kommandon:

  • Azure Application Insights:
    az monitor app-insights component show --app <application-insight-name> -g <resource-group-name> --query "id"
  • Azure Container Registry:
    az acr show --name <container-registry-name> -g <resource-group-name> --query "id"
  • Azure Key Vault:
    az keyvault show --name <key-vault-name> --query "id"
  • Azure Storage-konto:
    az storage account show --name <storage-account-name> --query "id"

Frågeresultatet ser ut som följande sträng:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Associerade beroende resurser

Följande överväganden och begränsningar gäller för beroende resurser som är associerade med arbetsytor.

Programinsikter

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.

Container Registry

Azure Mašinsko učenje-arbetsytan använder Azure Container Registry för vissa åtgärder och skapar automatiskt en Container Registry-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.

Om du vill använda ett befintligt Azure-containerregister med en Azure Mašinsko učenje-arbetsyta måste du aktivera administratörskontot i containerregistret.

Lagringskonto

Om du använder ett befintligt lagringskonto för arbetsytan måste det uppfylla följande villkor. Dessa krav gäller endast för standardlagringskontot.

  • Kontot kan inte vara Premium_LRS eller Premium_GRS.
  • Båda funktionerna i Azure Blob och Azure File måste vara aktiverade.
  • Hierarkiskt namnområde måste vara inaktiverat för Azure Data Lake Storage.

Skydda Azure CLI-kommunikation

Alla Azure Mašinsko učenje V2-kommandon az ml kommunicerar driftdata, till exempel YAML-parametrar och metadata, till Azure Resource Manager. Vissa Av Azure CLI-kommandona kommunicerar med Azure Resource Manager via Internet.

Om din Azure Mašinsko učenje-arbetsyta är offentlig och inte ligger bakom ett virtuellt nätverk skyddas kommunikationen med hjälp av HTTPS/TLS 1.2. Ingen extra konfiguration krävs.

Om din Azure Mašinsko učenje-arbetsyta använder en privat slutpunkt och ett virtuellt nätverk måste du välja någon av följande konfigurationer för att använda Azure CLI:

  • Om du vill kommunicera via det offentliga Internet anger du parametern --public-network-access till Enabled.

  • För att undvika kommunikation via det offentliga Internet av säkerhetsskäl konfigurerar du Azure Mašinsko učenje att använda privata nätverksanslutningar med en Azure Private Link-slutpunkt, enligt beskrivningen i följande avsnitt.

Anslutning till privat nätverk

Beroende på ditt användningsfall och organisationens krav kan du konfigurera Azure Mašinsko učenje att använda privata nätverksanslutningar. Du kan använda Azure CLI för att distribuera en arbetsyta och en Private Link-slutpunkt för arbetsyteresursen.

Om du använder private link-slutpunkter för både Azure Container Registry och Azure Mašinsko učenje kan du inte använda Container Registry-uppgifter för att skapa Docker-miljöavbildningar. I stället måste du skapa avbildningar med hjälp av ett Azure Mašinsko učenje beräkningskluster.

I konfigurationsfilen för YAML-arbetsytan måste du ange image_build_compute egenskapen till ett beräkningsklusternamn som ska användas för att skapa Docker-avbildningsmiljön. Du kan också ange att arbetsytan privat länk inte är tillgänglig via Internet genom att ange public_network_access egenskapen till Disabled.

Följande kod visar ett exempel på en konfigurationsfil för arbetsytor för privat nätverksanslutning.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
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:
  purpose: demonstration

När du har skapat arbetsytan använder du CLI-kommandona för Azure-nätverk för att skapa en privat länkslutpunkt för arbetsytan.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <virtual-network-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Om du vill skapa dns-zonposter (Domain Name System) för arbetsytan använder du följande kommandon:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <virtual-network-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name <zone-group-name> \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <virtual-network-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name <zone-group-name> \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Mer information om hur du använder en privat slutpunkt och ett virtuellt nätverk med din arbetsyta finns i följande artiklar:

Du kan använda följande process för att skydda kommunikationen med alla Azure Resource Manager-resurser i en Azure-hanteringsgrupp med private link:

  1. Skapa en privat länk för att hantera Azure-resurser.
  2. Skapa en privat slutpunkt för den privata länk som skapades i föregående steg.

Viktigt!

Om du vill konfigurera en privat länk för Azure Resource Manager måste du vara ägare till Azure-prenumerationen och ägare eller deltagare i rothanteringsgruppen. Mer information finns i Skapa en privat länk för att hantera Azure-resurser.

Avancerade konfigurationer

Det finns flera andra avancerade konfigurationer som du kan använda för arbetsytor. För komplexa resurskonfigurationer, se även mallbaserade distributionsalternativ, inklusive Azure Resource Manager.

Kundhanterade nycklar

Som standard lagras arbetsytemetadata i en Azure Cosmos DB-instans som Microsoft underhåller och krypterar med hjälp av Microsoft-hanterade nycklar. I stället för att använda den Microsoft-hanterade nyckeln kan du ange en egen nyckel. Med din egen nyckel skapas en extra uppsättning resurser i din Azure-prenumeration för att lagra dina data.

Kommentar

Azure Cosmos DB används inte för att lagra information om modellprestanda, information som loggas av experiment eller information som loggas från dina modelldistributioner.

Om du vill skapa en arbetsyta som använder din egen nyckel använder du parametern customer_managed_key i YAML-arbetsytans konfigurationsfil och anger resurs-ID för innehållet key_vault och key_uri nyckeln i valvet.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-cmkexample-prod
location: eastus
display_name: Customer managed key encryption-example
description: This configurations shows how to create a workspace that uses customer-managed keys for encryption.
customer_managed_key: 
  key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
  key_uri: https://<KEY_VAULT>.vault.azure.net/keys/<KEY_NAME>/<KEY_VERSION>
tags:
  purpose: demonstration

Mer information om de resurser som skapas när du använder din egen nyckel för kryptering finns i Datakryptering med Azure Mašinsko učenje.

Kommentar

Om du vill hantera de tillagda datakrypteringsresurserna använder du Identitets- och åtkomsthantering för att auktorisera Mašinsko učenje-appen med deltagarbehörigheter för din prenumeration.

Arbetsytor med hög affärspåverkan

Om du vill begränsa de data som Microsoft samlar in på din arbetsyta kan du ange en arbetsyta med hög affärspåverkan genom att ange hbi_workspace egenskapen i YAML-konfigurationsfilen till TRUE. Du kan bara ange 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.

Mer information om kundhanterade nycklar och arbetsyta med hög affärspåverkan finns i Företagssäkerhet för Azure Mašinsko učenje.

Använda Azure CLI för att hantera arbetsytor

Du kan använda kommandona az ml workspace för att hantera arbetsytor.

Hämta information om arbetsytan

Använd följande kommando för att få information om en arbetsyta:

az ml workspace show -n <workspace-name> -g <resource-group-name>

Mer information finns i az ml workspace show.

Uppdatera en arbetsyta

Om du vill uppdatera en arbetsyta använder du följande kommando:

az ml workspace update -n <workspace-name> -g <resource-group-name>

Följande kommando uppdaterar till exempel en arbetsyta för att aktivera åtkomst till offentliga nätverk:

az ml workspace update -n <workspace-name> -g <resource-group-name> --public-network-access enabled

Mer information finns i az ml workspace update.

Synkronisera nycklar för beroende resurser

Om du ändrar åtkomstnycklar för en av de resurser som din arbetsyta använder tar det ungefär en timme innan arbetsytan synkroniseras med de nya nycklarna. Om du vill tvinga arbetsytan att synkronisera de nya nycklarna omedelbart använder du följande kommando:

az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>
  • Mer information om kommandot finns i sync-keys az ml workspace sync-keys.
  • Mer information om hur du ändrar nycklar finns i Återskapa åtkomstnycklar för lagring.

Flytta en arbetsyta

Att flytta en Azure Mašinsko učenje-arbetsyta är för närvarande en förhandsversion. Mer information finns i Flytta Azure Mašinsko učenje arbetsytor mellan prenumerationer (förhandsversion).

Ta bort en arbetsyta

Om du vill ta bort en arbetsyta när den inte längre behövs använder du följande kommando:

az ml workspace delete -n <workspace-name> -g <resource-group-name>

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

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.

Om du tar bort en arbetsyta tas inte de programinsikter, lagringskonto, nyckelvalv eller containerregister som används av arbetsytan bort. Om du vill ta bort arbetsytan, de beroende resurserna och alla andra Azure-resurser i resursgruppen kan du ta bort resursgruppen. Om du vill ta bort resursgruppen använder du följande kommando:

az group delete -g <resource-group-name>

Mer information finns i az ml workspace delete.

Felsöka 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.

  • Mer information om Azure CLI-tillägget för maskininlärning finns i az ml-dokumentationen.
  • Information om diagnostik som kan identifiera och hjälpa till att lösa problem med arbetsytor finns i Så här använder du arbetsytediagnostik.
  • Information om hur du håller din Azure-Mašinsko učenje uppdaterad med de senaste säkerhetsuppdateringarna finns i Sårbarhetshantering.