Installera och använd CLI (v1)

GÄLLER FÖR: Azure CLI ml-tillägget v1

Viktigt!

Några av Azure CLI-kommandona i den här artikeln använder azure-cli-mltillägget , eller v1, för Azure Mašinsko učenje. Stödet för v1-tillägget upphör den 30 september 2025. Du kommer att kunna installera och använda v1-tillägget fram till det datumet.

Vi rekommenderar att du övergår till mltillägget , eller v2, före den 30 september 2025. Mer information om v2-tillägget finns i Azure ML CLI-tillägget och Python SDK v2.

Azure Mašinsko učenje CLI är ett tillägg till Azure CLI, ett plattformsoberoende kommandoradsgränssnitt för Azure-plattformen. Det här tillägget innehåller kommandon för att arbeta med Azure Mašinsko učenje. Det gör att du kan automatisera dina maskininlärningsaktiviteter. Följande lista innehåller några exempelåtgärder som du kan göra med CLI-tillägget:

  • Köra experiment för att skapa maskininlärningsmodeller

  • Registrera maskininlärningsmodeller för kundanvändning

  • Paketera, distribuera och spåra livscykeln för dina maskininlärningsmodeller

CLI ersätter inte Azure Mašinsko učenje SDK. Det är ett kompletterande verktyg som är optimerat för att hantera mycket parametriserade uppgifter som passar dem väl för automatisering.

Förutsättningar

Fullständiga referensdokument

Hitta de fullständiga referensdokumenten för azure-cli-ml-tillägget för Azure CLI.

Ansluta CLI till din Azure-prenumeration

Viktigt!

Om du använder Azure Cloud Shell kan du hoppa över det här avsnittet. Cloud Shell autentiserar dig automatiskt med det konto som du loggar in på din Azure-prenumeration.

Det finns flera sätt att autentisera till din Azure-prenumeration från CLI. Det mest grundläggande är att interaktivt autentisera med hjälp av en webbläsare. Om du vill autentisera interaktivt öppnar du en kommandorad eller terminal och använder följande kommando:

az login

Om CLI kan öppna din standardwebbläsare så sker det och en inloggningssida läses in. Annars måste du öppna en webbläsare och följa anvisningarna på kommandoraden. Anvisningarna omfattar att bläddra till https://aka.ms/devicelogin och ange en auktoriseringskod.

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.

Installera tillägget

Så här installerar du CLI-tillägget (v1):

az extension add -n azure-cli-ml

Uppdatera tillägget

Om du vill uppdatera Mašinsko učenje CLI-tillägget använder du följande kommando:

az extension update -n azure-cli-ml

Ta bort tillägget

Om du vill ta bort CLI-tillägget använder du följande kommando:

az extension remove -n azure-cli-ml

Resurshantering

Följande kommandon visar hur du använder CLI för att hantera resurser som används av Azure Mašinsko učenje.

  • Om du inte redan har en skapar du en resursgrupp:

    az group create -n myresourcegroup -l westus2
    
  • Skapa en Azure Mašinsko učenje-arbetsyta:

    az ml workspace create -w myworkspace -g myresourcegroup
    

    Mer information finns i az ml workspace create.

  • Koppla en arbetsytekonfiguration till en mapp för att aktivera CLI-sammanhangsmedvetenhet.

    az ml folder attach -w myworkspace -g myresourcegroup
    

    Det här kommandot skapar en .azureml underkatalog som innehåller exempel på runconfig- och conda-miljöfiler. Den innehåller också en config.json fil som används för att kommunicera med din Azure Mašinsko učenje-arbetsyta.

    Mer information finns i az ml folder attach.

  • Bifoga en Azure-blobcontainer som ett datalager.

    az ml datastore attach-blob  -n datastorename -a accountname -c containername
    

    Mer information finns i az ml datastore attach-blob.

  • Ladda upp filer till ett datalager.

    az ml datastore upload  -n datastorename -p sourcepath
    

    Mer information finns i az ml datastore upload(Az ml datastore upload).

  • Koppla ett AKS-kluster som beräkningsmål.

    az ml computetarget attach aks -n myaks -i myaksresourceid -g myresourcegroup -w myworkspace
    

    Mer information finns i az ml computetarget attach aks

Beräkningskluster

  • Skapa ett nytt hanterat beräkningskluster.

    az ml computetarget create amlcompute -n cpu --min-nodes 1 --max-nodes 1 -s STANDARD_D3_V2
    
  • Skapa ett nytt hanterat beräkningskluster med hanterad identitet

    • Användartilldelad hanterad identitet

      az ml computetarget create amlcompute --name cpu-cluster --vm-size Standard_NC6 --max-nodes 5 --assign-identity '/subscriptions/<subcription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user_assigned_identity>'
      
    • Systemtilldelad hanterad identitet

      az ml computetarget create amlcompute --name cpu-cluster --vm-size Standard_NC6 --max-nodes 5 --assign-identity '[system]'
      
  • Lägg till en hanterad identitet i ett befintligt kluster:

    • Användartilldelad hanterad identitet

      az ml computetarget amlcompute identity assign --name cpu-cluster '/subscriptions/<subcription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user_assigned_identity>'
      
    • Systemtilldelad hanterad identitet

      az ml computetarget amlcompute identity assign --name cpu-cluster '[system]'
      

Mer information finns i az ml computetarget create amlcompute.

Kommentar

Azure Mašinsko učenje beräkningskluster stöder endast en systemtilldelad identitet eller flera användartilldelade identiteter, inte båda samtidigt.

Beräkningsinstans

Hantera beräkningsinstanser. I alla exempel nedan är namnet på beräkningsinstansen cpu

Köra experiment

  • Starta en körning av experimentet. När du använder det här kommandot anger du namnet på runconfig-filen (texten före *.runconfig om du tittar på filsystemet) mot parametern -c.

    az ml run submit-script -c sklearn -e testexperiment train.py
    

    Dricks

    Kommandot az ml folder attach skapar en .azureml underkatalog som innehåller två exempel på runconfig-filer.

    Om du har ett Python-skript som skapar ett körningskonfigurationsobjekt programmatiskt kan du använda RunConfig.save() för att spara det som en runconfig-fil.

    Det fullständiga runconfig-schemat finns i den här JSON-filen. Schemat självdokumenterar genom nyckeln för description varje objekt. Dessutom finns det uppräkningar för möjliga värden och ett mallfragment i slutet.

    Mer information finns i az ml run submit-script.

  • Visa en lista över experiment:

    az ml experiment list
    

    Mer information finns i az ml experiment list.

HyperDrive-körning

Du kan använda HyperDrive med Azure CLI för att utföra parameterjusteringskörningar. Skapa först en HyperDrive-konfigurationsfil i följande format. Mer information om hyperparameterjusteringsparametrar finns i artikeln Justera hyperparametrar för din modell .

# hdconfig.yml
sampling: 
    type: random # Supported options: Random, Grid, Bayesian
    parameter_space: # specify a name|expression|values tuple for each parameter.
    - name: --penalty # The name of a script parameter to generate values for.
      expression: choice # supported options: choice, randint, uniform, quniform, loguniform, qloguniform, normal, qnormal, lognormal, qlognormal
      values: [0.5, 1, 1.5] # The list of values, the number of values is dependent on the expression specified.
policy: 
    type: BanditPolicy # Supported options: BanditPolicy, MedianStoppingPolicy, TruncationSelectionPolicy, NoTerminationPolicy
    evaluation_interval: 1 # Policy properties are policy specific. See the above link for policy specific parameter details.
    slack_factor: 0.2
primary_metric_name: Accuracy # The metric used when evaluating the policy
primary_metric_goal: Maximize # Maximize|Minimize
max_total_runs: 8 # The maximum number of runs to generate
max_concurrent_runs: 2 # The number of runs that can run concurrently.
max_duration_minutes: 100 # The maximum length of time to run the experiment before cancelling.

Lägg till den här filen tillsammans med körningskonfigurationsfilerna. Skicka sedan en HyperDrive-körning med hjälp av:

az ml run submit-hyperdrive -e <experiment> -c <runconfig> --hyperdrive-configuration-name <hdconfig> my_train.py

Observera argumentavsnittet i runconfig och parameterutrymmet i HyperDrive-konfigurationen. De innehåller de kommandoradsargument som ska skickas till träningsskriptet. Värdet i runconfig förblir detsamma för varje iteration, medan intervallet i HyperDrive-konfigurationen itereras över. Ange inte samma argument i båda filerna.

Datamängdshantering

Följande kommandon visar hur du arbetar med datauppsättningar i Azure Mašinsko učenje:

  • Registrera en datauppsättning:

    az ml dataset register -f mydataset.json
    

    Om du vill ha information om formatet på JSON-filen som används för att definiera datamängden använder du az ml dataset register --show-template.

    Mer information finns i az ml dataset register.

  • Visa en lista över alla datauppsättningar på en arbetsyta:

    az ml dataset list
    

    Mer information finns i az ml dataset list.

  • Få information om en datauppsättning:

    az ml dataset show -n dataset-name
    

    Mer information finns i az ml dataset show.

  • Avregistrera en datauppsättning:

    az ml dataset unregister -n dataset-name
    

    Mer information finns i az ml dataset unregister.

Miljöhantering

Följande kommandon visar hur du skapar, registrerar och listar Azure Mašinsko učenje-miljöer för din arbetsyta:

Schema för miljökonfiguration

Om du använde az ml environment scaffold kommandot genereras en mallfil azureml_environment.json som kan ändras och användas för att skapa anpassade miljökonfigurationer med CLI. Det översta objektet mappar löst till Environment klassen i Python SDK.

{
    "name": "testenv",
    "version": null,
    "environmentVariables": {
        "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
    },
    "python": {
        "userManagedDependencies": false,
        "interpreterPath": "python",
        "condaDependenciesFile": null,
        "baseCondaEnvironment": null
    },
    "docker": {
        "enabled": false,
        "baseImage": "mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:20210615.v1",
        "baseDockerfile": null,
        "sharedVolumes": true,
        "shmSize": "2g",
        "arguments": [],
        "baseImageRegistry": {
            "address": null,
            "username": null,
            "password": null
        }
    },
    "spark": {
        "repositories": [],
        "packages": [],
        "precachePackages": true
    },
    "databricks": {
        "mavenLibraries": [],
        "pypiLibraries": [],
        "rcranLibraries": [],
        "jarLibraries": [],
        "eggLibraries": []
    },
    "inferencingStackVersion": null
}

I följande tabell beskrivs varje fält på den översta nivån i JSON-filen, dess typ och en beskrivning. Om en objekttyp är länkad till en klass från Python SDK finns det en lös 1:1-matchning mellan varje JSON-fält och det offentliga variabelnamnet i Python-klassen. I vissa fall kan fältet mappas till ett konstruktorargument i stället för en klassvariabel. Fältet mappar till exempel environmentVariables variabeln environment_variables i Environment klassen.

JSON-fält Typ Beskrivning
name string Namnet på miljön. Starta inte namnet med Microsoft eller AzureML.
version string Version av miljön.
environmentVariables {string: string} En hash-karta över miljövariabelnamn och värden.
python PythonSectionhat definierar Python-miljön och tolken som ska användas på målberäkningsresursen.
docker DockerSection Definierar inställningar för att anpassa Docker-avbildningen som skapats enligt miljöns specifikationer.
spark SparkSection Avsnittet konfigurerar Spark-inställningar. Det används bara när ramverket är inställt på PySpark.
databricks DatabricksSection Konfigurerar Beroenden för Databricks-bibliotek.
inferencingStackVersion string Anger den version av inferensstacken som lagts till i avbildningen. Lämna det här fältet nullför att undvika att lägga till en slutsatsdragningsstack. Giltigt värde: "senaste".

HANTERING av ML-pipeline

Följande kommandon visar hur du arbetar med maskininlärningspipelines:

Modellregistrering, profilering, distribution

Följande kommandon visar hur du registrerar en tränad modell och sedan distribuerar den som en produktionstjänst:

  • Registrera en modell med Azure Mašinsko učenje:

    az ml model register -n mymodel -p sklearn_regression_model.pkl
    

    Mer information finns i az ml model register.

  • VALFRITT Profilera din modell för att få optimala CPU- och minnesvärden för distribution.

    az ml model profile -n myprofile -m mymodel:1 --ic inferenceconfig.json -d "{\"data\": [[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}" -t myprofileresult.json
    

    Mer information finns i az ml model profile ( az ml model profile).

  • Distribuera din modell till AKS

    az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json --ct akscomputetarget
    

    Mer information om filschemat för slutsatsdragningskonfiguration finns i Schema för inferenskonfiguration.

    Mer information om distributionskonfigurationsfilschemat finns i Konfigurationsschema för distribution.

    Mer information finns i az ml model deploy ( az ml model deploy).

Konfigurationsschema för slutsatsdragning

Posterna i inferenceconfig.json dokumentet mappas till parametrarna för klassen InferenceConfig . I följande tabell beskrivs mappningen mellan entiteter i JSON-dokumentet och parametrarna för metoden:

JSON-entitet Metodparameter beskrivning
entryScript entry_script Sökväg till en lokal fil som innehåller koden som ska köras för avbildningen.
sourceDirectory source_directory Valfritt. Sökväg till mappar som innehåller alla filer för att skapa avbildningen, vilket gör det enkelt att komma åt filer i den här mappen eller undermappen. Du kan ladda upp en hel mapp från den lokala datorn som beroenden för webbtjänsten. Obs! Sökvägarna entry_script, conda_file och extra_docker_file_steps är relativa sökvägar till den source_directory sökvägen.
environment environment Valfritt. Azure Mašinsko učenje miljö.

Du kan inkludera fullständiga specifikationer för en Azure Mašinsko učenje-miljö i inferenskonfigurationsfilen. Om den här miljön inte finns på din arbetsyta skapar Azure Mašinsko učenje den. Annars uppdaterar Azure Mašinsko učenje miljön om det behövs. Följande JSON är ett exempel:

{
    "entryScript": "score.py",
    "environment": {
        "docker": {
            "arguments": [],
            "baseDockerfile": null,
            "baseImage": "mcr.microsoft.com/azureml/intelmpi2018.3-ubuntu18.04",
            "enabled": false,
            "sharedVolumes": true,
            "shmSize": null
        },
        "environmentVariables": {
            "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE"
        },
        "name": "my-deploy-env",
        "python": {
            "baseCondaEnvironment": null,
            "condaDependencies": {
                "channels": [
                    "conda-forge"
                ],
                "dependencies": [
                    "python=3.7",
                    {
                        "pip": [
                            "azureml-defaults",
                            "azureml-telemetry",
                            "scikit-learn==0.22.1",
                            "inference-schema[numpy-support]"
                        ]
                    }
                ],
                "name": "project_environment"
            },
            "condaDependenciesFile": null,
            "interpreterPath": "python",
            "userManagedDependencies": false
        },
        "version": "1"
    }
}

Du kan också använda en befintlig Azure Mašinsko učenje-miljö i avgränsade CLI-parametrar och ta bort "miljönyckeln" från inferenskonfigurationsfilen. Använd -e för miljönamnet och --ev för miljöversionen. Om du inte anger --ev används den senaste versionen. Här är ett exempel på en inferenskonfigurationsfil:

{
    "entryScript": "score.py",
    "sourceDirectory": null
}

Följande kommando visar hur du distribuerar en modell med hjälp av den tidigare inferenskonfigurationsfilen (med namnet myInferenceConfig.json).

Den använder också den senaste versionen av en befintlig Azure Mašinsko učenje-miljö (med namnet AzureML-Minimal).

az ml model deploy -m mymodel:1 --ic myInferenceConfig.json -e AzureML-Minimal --dc deploymentconfig.json

Konfigurationsschema för distribution

Konfigurationsschema för lokal distribution

Posterna i deploymentconfig.json dokumentet mappas till parametrarna för LocalWebservice.deploy_configuration. I följande tabell beskrivs mappningen mellan entiteterna i JSON-dokumentet och parametrarna för metoden:

JSON-entitet Metodparameter beskrivning
computeType NA Beräkningsmålet. För lokala mål måste värdet vara local.
port port Den lokala port där tjänstens HTTP-slutpunkt ska exponeras.

Den här JSON är ett exempel på distributionskonfiguration för användning med CLI:

{
    "computeType": "local",
    "port": 32267
}

Spara den här JSON-filen som heter deploymentconfig.json.

Konfigurationsschema för Azure Container Instance-distribution

Posterna i deploymentconfig.json dokumentet mappas till parametrarna för AciWebservice.deploy_configuration. I följande tabell beskrivs mappningen mellan entiteterna i JSON-dokumentet och parametrarna för metoden:

JSON-entitet Metodparameter beskrivning
computeType NA Beräkningsmålet. För ACI måste värdet vara ACI.
containerResourceRequirements NA Container för cpu- och minnesentiteterna.
  cpu cpu_cores Antalet CPU-kärnor som ska allokeras. Standardvärden 0.1
  memoryInGB memory_gb Mängden minne (i GB) som ska allokeras för den här webbtjänsten. Standard 0.5
location location Den Azure-region som den här webbtjänsten ska distribueras till. Om den inte anges används arbetsytans plats. Mer information om tillgängliga regioner finns här: ACI-regioner
authEnabled auth_enabled Om du vill aktivera autentisering för den här webbtjänsten. Standardvärdet är False
sslEnabled ssl_enabled Om du vill aktivera SSL för den här webbtjänsten. Standardvärdet är Falskt.
appInsightsEnabled enable_app_insights Om du vill aktivera AppInsights för den här webbtjänsten. Standardvärdet är False
sslCertificate ssl_cert_pem_file Certifikatfilen som behövs om SSL är aktiverat
sslKey ssl_key_pem_file Nyckelfilen som behövs om SSL är aktiverat
cname ssl_cname Cname för om SSL är aktiverat
dnsNameLabel dns_name_label Dns-namnetiketten för bedömningsslutpunkten. Om den inte anges genereras en unik dns-namnetikett för bedömningsslutpunkten.

Följande JSON är ett exempel på distributionskonfiguration för användning med CLI:

{
    "computeType": "aci",
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    },
    "authEnabled": true,
    "sslEnabled": false,
    "appInsightsEnabled": false
}

Konfigurationsschema för Azure Kubernetes Service-distribution

Posterna i deploymentconfig.json dokumentet mappas till parametrarna för AksWebservice.deploy_configuration. I följande tabell beskrivs mappningen mellan entiteterna i JSON-dokumentet och parametrarna för metoden:

JSON-entitet Metodparameter beskrivning
computeType NA Beräkningsmålet. För AKS måste värdet vara aks.
autoScaler NA Innehåller konfigurationselement för autoskalning. Se autoskalningstabellen.
  autoscaleEnabled autoscale_enabled Om du vill aktivera automatisk skalning för webbtjänsten. Om numReplicas = 0, True; annars . False
  minReplicas autoscale_min_replicas Det minsta antalet containrar som ska användas vid automatisk skalning av den här webbtjänsten. Standard, 1.
  maxReplicas autoscale_max_replicas Det maximala antalet containrar som ska användas vid automatisk skalning av den här webbtjänsten. Standard, 10.
  refreshPeriodInSeconds autoscale_refresh_seconds Hur ofta autoskalningstjänsten försöker skala den här webbtjänsten. Standard, 1.
  targetUtilization autoscale_target_utilization Den målanvändning (i procent av 100) som autoskalningen ska försöka underhålla för den här webbtjänsten. Standard, 70.
dataCollection NA Innehåller konfigurationselement för datainsamling.
  storageEnabled collect_model_data Om du vill aktivera modelldatainsamling för webbtjänsten. Standard, False.
authEnabled auth_enabled Om du vill aktivera nyckelautentisering för webbtjänsten eller inte. Både tokenAuthEnabled och authEnabled kan inte vara True. Standard, True.
tokenAuthEnabled token_auth_enabled Om du vill aktivera tokenautentisering för webbtjänsten eller inte. Både tokenAuthEnabled och authEnabled kan inte vara True. Standard, False.
containerResourceRequirements NA Container för cpu- och minnesentiteterna.
  cpu cpu_cores Antalet CPU-kärnor som ska allokeras för den här webbtjänsten. Standardvärden 0.1
  memoryInGB memory_gb Mängden minne (i GB) som ska allokeras för den här webbtjänsten. Standard 0.5
appInsightsEnabled enable_app_insights Om du vill aktivera Application Insights-loggning för webbtjänsten. Standard, False.
scoringTimeoutMs scoring_timeout_ms En timeout för att framtvinga för bedömning av anrop till webbtjänsten. Standard, 60000.
maxConcurrentRequestsPerContainer replica_max_concurrent_requests Maximalt antal samtidiga begäranden per nod för den här webbtjänsten. Standard, 1.
maxQueueWaitMs max_request_wait_time Den maximala tid som en begäran stannar i kön (i millisekunder) innan ett 503-fel returneras. Standard, 500.
numReplicas num_replicas Antalet containrar som ska allokeras för den här webbtjänsten. Inget standardvärde. Om den här parametern inte har angetts aktiveras autoskalningsfunktionen som standard.
keys NA Innehåller konfigurationselement för nycklar.
  primaryKey primary_key En primär autentiseringsnyckel som ska användas för den här webbtjänsten
  secondaryKey secondary_key En sekundär autentiseringsnyckel som ska användas för den här webbtjänsten
gpuCores gpu_cores Antalet GPU-kärnor (per containerreplik) som ska allokeras för den här webbtjänsten. Standard är 1. Stöder endast heltalsvärden.
livenessProbeRequirements NA Innehåller konfigurationselement för krav på liveness-avsökning.
  periodSeconds period_seconds Hur ofta (i sekunder) du utför liveness-avsökningen. Standardvärdet är 10 sekunder. Minimivärdet är 1.
  initialDelaySeconds initial_delay_seconds Antal sekunder efter att containern har startats innan liveness-avsökningar initieras. Standardvärdet är 310
  timeoutSeconds timeout_seconds Antal sekunder efter vilken livenessavsökningen överskrider tidsgränsen. Standardvärdet är 2 sekunder. Minsta värde är 1
  successThreshold success_threshold Minsta lyckade resultat i följd för att liveness-avsökningen ska anses vara lyckad efter att ha misslyckats. Standardvärdet är 1. Minimivärdet är 1.
  failureThreshold failure_threshold När en podd startar och liveness-avsökningen misslyckas kommer Kubernetes att försöka felDå gånger innan de ger upp. Standardvärdet är 3. Minimivärdet är 1.
namespace namespace Kubernetes-namnområdet som webbtjänsten distribueras till. Upp till 63 alfanumeriska gemener ('a'-'z', '0'-'9') och bindestreck ('-') tecken. De första och sista tecknen får inte vara bindestreck.

Följande JSON är ett exempel på distributionskonfiguration för användning med CLI:

{
    "computeType": "aks",
    "autoScaler":
    {
        "autoscaleEnabled": true,
        "minReplicas": 1,
        "maxReplicas": 3,
        "refreshPeriodInSeconds": 1,
        "targetUtilization": 70
    },
    "dataCollection":
    {
        "storageEnabled": true
    },
    "authEnabled": true,
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    }
}

Nästa steg