Een hyperparameterafstemmingstaak uitvoeren met CLI (v2)

Voltooid

Hyperparameterafstemming uitvoeren met de Azure Machine Learning-werkruimte door een sweep-taak in te dienen met de CLI (v2).

De data scientist die het klantverloopmodel heeft gemaakt, vraagt zich af of het model nog nauwkeuriger kan zijn. Omdat het model is getraind op een persoonlijke computer, had de data scientist niet de tijd of rekenkracht om meerdere modellen met verschillende modelparameterwaarden te trainen. Nu u het klantverloopmodel kunt trainen met behulp van een rekencluster, kunt u de modeltraining parallelliseren om snel hyperparameters te doorlopen.

U gaat hyperparameters afstemmen met behulp van een Python-script met de Azure Machine Learning CLI (v2).

Hyperparameters afstemmen

Gebruik een sweep-taak om een hyperparameterafstemmingstaak te configureren en te verzenden via de CLI (v2).

Een data scientist traint meerdere modellen om het beste model te vinden. Met Hyperparameter-afstemming kan een data scientist meerdere modellen trainen met behulp van hetzelfde algoritme en trainingsgegevens, maar verschillende hyperparameterwaarden. Voor elke iteratie moeten de metrische prestatiegegevens worden bijgehouden om te evalueren welke configuratie heeft geresulteerd in het beste model.

Net als bij een eenvoudige Python-trainingstaak wordt de configuratie van de sweep-taak opgeslagen in een YAML-bestand sweep-job.yml:

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
sampling_algorithm: grid
trial:
  code: 
    local_path: src
  command: >-
    python main.py
    --learning-rate ${{search_space.learning_rate}}
  environment: azureml:basic-env-scikit:1
inputs:
    diabetes:
      data: azureml:diabetes-data:1
compute: azureml:aml-cluster
search_space:
  learning_rate:
    type: choice
    values: [0.01, 0.1, 1.0]
objective:
  primary_metric: training_roc_auc_score
  goal: maximize
limits:
  max_total_trials: 6
  max_concurrent_trials: 3
  timeout: 3600
experiment_name: customer-churn-sweep-example
description: Run a hyperparameter sweep job for classification on customer churn dataset.

Als u een sweep-taak wilt maken, voegt u de volgende parameters toe:

  • type: Het taaktype, dat in dit geval is sweep_job.
  • algorithm: De steekproefmethode die wordt gebruikt om waarden te kiezen uit de zoekruimte. De waarde kan bayesian, gridof random zijn.
  • search_space: De set waarden die zijn geprobeerd tijdens het afstemmen van hyperparameters. Voor elke hyperparameter kunt u het type zoekruimte (choice) en de waarden (0.01, 0.1, 1.0) configureren.
  • objective: De naam van de vastgelegde metrische gegevens die worden gebruikt om te bepalen welk model het beste is (primary_metric). En of die metrische waarde het beste is wanneer deze wordt gemaximaliseerd of geminimaliseerd (goal).
  • max_total_trials: Een harde stop voor het aantal modellen dat in totaal moet worden getraind.
  • max_concurrent_trials: Wanneer u een rekencluster gebruikt, kunt u modellen parallel trainen. Het aantal maximaal gelijktijdige experimenten kan niet hoger zijn dan het aantal knooppunten dat is ingericht voor het rekencluster.

Gebruik de opdracht om de taak in te dienen en deze te openen in Studio:

az ml job create -f job-sweep.yml --web 

De Studio wordt geopend om de uitvoering van het Hyperdrive-experiment en de details ervan weer te geven. Als u de details en metrische gegevens voor elk afzonderlijk model wilt verkennen dat is getraind, vouwt u het tabblad Onderliggende uitvoeringen uit.