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
- En Azure Mašinsko učenje-arbetsyta.
- En registrerad datatillgång som ditt träningsjobb använder.
- Azure CLI- och ml-tillägget har installerats. Eller använd en beräkningsinstans på din arbetsyta, som har CLI förinstallerat.
- Ett beräkningskluster eller en beräkningsinstans för att köra träningsjobbet.
- En R-miljö som beräkningsklustret ska använda för att köra jobbet.
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:
- Logga in och öppna arbetsytan.
- I det övre högra verktygsfältet i Azure Mašinsko učenje Studio väljer du namnet på arbetsytan.
- Du kan kopiera värdena från avsnittet som visas.
Skicka jobbet genom att köra följande kommandon i ett terminalfönster:
Ändra kataloger till
r-job-azureml
.cd r-job-azureml
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.Kontrollera att du har de senaste versionerna av CLI och
ml
tillägget:az upgrade
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>"
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:
- Logga in på Azure Mašinsko učenje Studio.
- Välj din arbetsyta om den inte redan har lästs in.
- I det vänstra navigeringsfältet väljer du Jobb.
- Välj det experimentnamn som du använde för att träna din modell.
- 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.
När jobbet är klart väljer du Utdata + loggar för att visa utdata för jobbet.
Ö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.
I verktygsfältet längst upp väljer du + Registrera modell.
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.
För Jobbutdata väljer du modeller, mappen som innehåller modellen.
Välj Nästa.
Ange det namn som du vill använda för din modell. Lägg till Beskrivning, Version och Taggar om du vill.
Välj Nästa.
Granska informationen.
Välj Registrera.
Överst på sidan visas en bekräftelse på att modellen är registrerad. Bekräftelsen ser ut ungefär så här:
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).