Köra ett R-jobb för att träna en modell

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

Den här artikeln beskriver hur du använder R-skriptet som du har anpassat för att köra i produktion och konfigurera det så att det körs som ett R-jobb med hjälp av Azure Mašinsko učenje CLI V2.

Kommentar

Även om rubriken i den här artikeln refererar till att träna en modell kan du faktiskt köra alla typer av R-skript så länge den uppfyller kraven som anges i anpassningsartikeln.

Förutsättningar

Skapa en mapp med den här strukturen

Skapa den här mappstrukturen för projektet:

📁 r-job-azureml
├─ src
│  ├─ azureml_utils.R
│  ├─ r-source.R
├─ job.yml

Viktigt!

All källkod finns i src katalogen.

  • R-källan . R-filen är R-skriptet som du anpassade för att köra i produktion. Se till att du följer stegen för att hämta och logga din modell i det här skriptet.
  • Azureml_utils . R-filen är nödvändig. Använd den här källkoden för innehållet i filen.

Förbereda jobbet YAML

Azure Mašinsko učenje CLI v2 har olika YAML-scheman för olika åtgärder. Du använder YAML-jobbets schema för att skicka ett jobb i den job.yml fil som ingår i det här projektet.

Du måste samla in specifik information som ska läggas till i YAML:

  • Namnet på den registrerade datatillgång som du använder som indata (med version): azureml:<REGISTERED-DATA-ASSET>:<VERSION>
  • Namnet på den miljö som du skapade (med version): azureml:<R-ENVIRONMENT-NAME>:<VERSION>
  • Namnet på beräkningsklustret: azureml:<COMPUTE-CLUSTER-NAME>

Dricks

För Azure Mašinsko učenje artefakter som kräver versioner (datatillgångar, miljöer) kan du använda genvägs-URIazureml:<AZUREML-ASSET>@latest:n för att hämta den senaste versionen av artefakten om du inte behöver ange en specifik version.

Yaml-exempelschema för att skicka ett jobb

Redigera job.yml-filen så att den innehåller följande. Se till att ersätta värden som visas <IN-BRACKETS-AND-CAPS> och ta bort hakparenteserna.

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# the Rscript command goes in the command key below. Here you also specify 
# which parameters are passed into the R script and can reference the input
# keys and values further below
# Modify any value shown below <IN-BRACKETS-AND-CAPS> (remove the brackets)
command: >
Rscript <NAME-OF-R-SCRIPT>.R
--data_file ${{inputs.datafile}}  
--other_input_parameter ${{inputs.other}}
code: src   # this is the code directory
inputs:
  datafile: # this is a registered data asset
    type: uri_file
    path: azureml:<REGISTERED-DATA-ASSET>@latest
  other: 1  # this is a sample parameter, which is the number 1 (as text)
environment: azureml:<R-ENVIRONMENT-NAME>@latest
compute: azureml:<COMPUTE-CLUSTER-OR-INSTANCE-NAME>
experiment_name: <NAME-OF-EXPERIMENT>
description: <DESCRIPTION>

Skicka jobbet

I följande kommandon i det här avsnittet kan du behöva veta:

  • Namnet på Azure Mašinsko učenje-arbetsytan
  • Resursgruppens namn där arbetsytan finns
  • Prenumerationen där arbetsytan finns

Hitta dessa värden från Azure Mašinsko učenje Studio:

  1. Logga in och öppna arbetsytan.
  2. I det övre högra verktygsfältet i Azure Mašinsko učenje Studio väljer du namnet på arbetsytan.
  3. Du kan kopiera värdena från avsnittet som visas.

Skärmbild: Hitta de värden som ska användas i CLI-kommandot.

Skicka jobbet genom att köra följande kommandon i ett terminalfönster:

  1. Ändra kataloger till r-job-azureml.

    cd r-job-azureml
    
  2. Logga in på Azure. Om du gör detta från en Azure Mašinsko učenje beräkningsinstans använder du:

    az login --identity
    

    Om du inte använder beräkningsinstansen utelämnar --identity och följer du uppmaningen att öppna ett webbläsarfönster för att autentisera.

  3. Kontrollera att du har de senaste versionerna av CLI och ml tillägget:

    az upgrade
    
  4. Om du har flera Azure-prenumerationer anger du den aktiva prenumerationen till den du använder för din arbetsyta. (Du kan hoppa över det här steget om du bara har åtkomst till en enda prenumeration.) Ersätt <SUBSCRIPTION-NAME> med ditt prenumerationsnamn. Ta också bort hakparenteserna <>.

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. Använd nu CLI för att skicka jobbet. Om du gör detta på en beräkningsinstans på din arbetsyta kan du använda miljövariabler för arbetsytans namn och resursgrupp som visas i följande kod. Om du inte använder en beräkningsinstans ersätter du dessa värden med namnet på arbetsytan och resursgruppen.

    az ml job create -f job.yml  --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
    

När du har skickat jobbet kan du kontrollera status och resultat i studio:

  1. Logga in på Azure Mašinsko učenje Studio.
  2. Välj din arbetsyta om den inte redan har lästs in.
  3. I det vänstra navigeringsfältet väljer du Jobb.
  4. Välj det experimentnamn som du använde för att träna din modell.
  5. Välj jobbets visningsnamn för att visa information och artefakter för jobbet, inklusive mått, bilder, underordnade jobb, utdata, loggar och kod som används i jobbet.

Registrera modellen

När träningsjobbet är klart registrerar du slutligen din modell om du vill distribuera den. Börja i studion från sidan som visar din jobbinformation.

  1. När jobbet är klart väljer du Utdata + loggar för att visa utdata för jobbet.

  2. Öppna mappen models för att kontrollera att crate.bin och MLmodel finns. Om inte kontrollerar du loggarna för att se om det uppstod ett fel.

  3. I verktygsfältet längst upp väljer du + Registrera modell.

    Skärmbild som visar avsnittet Jobb i studio med avsnittet Utdata öppet.

  4. Använd inte modelltypen MLflow , även om den har identifierats. Ändra modelltyp från standard-MLflow till Ospecificerad typ. Om du lämnar det som MLflow orsakas ett fel.

  5. För Jobbutdata väljer du modeller, mappen som innehåller modellen.

  6. Välj Nästa.

  7. Ange det namn som du vill använda för din modell. Lägg till Beskrivning, Version och Taggar om du vill.

  8. Välj Nästa.

  9. Granska informationen.

  10. Välj Registrera.

Överst på sidan visas en bekräftelse på att modellen är registrerad. Bekräftelsen ser ut ungefär så här:

Skärmbild som visar exempel på lyckad registrering.

Välj Klicka här om du vill gå till den här modellen. Om du vill visa den registrerade modellinformationen.

Nästa steg

Nu när du har en registrerad modell lär du dig hur du distribuerar en R-modell till en onlineslutpunkt (realtid).