Azure Machine Learning-pipelines
Som dataexpert arbetar du främst med Azure Machine Learning för att träna och hantera modeller. Efter experimenteringen bör du konvertera ditt arbete till Python-produktionskod för att möjliggöra automatisering med Azure-pipelines (DevOps) eller GitHub Actions.
Experimentera i Azure Machine Learning
Azure Machine Learning innehåller en uppsättning funktioner som hjälper dig att organisera ditt arbete. Med Azure Machine Learning kan du till exempel:
- Registrera datauppsättningar för att enkelt återanvända data som lagras i en datasjö.
- Träna en modell på fjärrberäkningsinstanser eller kluster beroende på dina krav.
- Spåra alla körda skript med experiment för att enkelt jämföra ditt arbete.
- Registrera tränade modeller och distribuera en modell för batch- eller realtidsförbrukning.
Det mesta av ditt arbete som dataexpert består av experimentering: testa olika konfigurationer för att träna en modell och granska prestandamått för att bestämma vilken modell som ska distribueras till produktion.
Förutsatt att du experimenterar i en Jupyter Notebook (.ipynb
-filer) vill du konvertera experimentet till python-kod i produktion genom att:
- Tar bort all nonessential-kod.
- Omstrukturera kod till funktioner.
- Kombinera relaterade funktioner i Python-skript (
.py
filer). - Skapa enhetstester för varje Python-skript.
- Skapa en pipeline för att gruppera skript i ett arbetsflöde som kan automatiseras.
När koden är klar för produktion kan du automatisera körningen av skript med Azure Machine Learning-pipelines.
Skapa Azure Machine Learning-pipelines
Begreppet pipeline finns i olika verktyg, vilket ofta ger ett sätt att gruppera uppgifter i en viss ordning. Den största fördelen med en pipeline är att du kan schemalägga den eller utlösa den för körning.
En Azure Machine Learning-pipeline skapas på Azure Machine Learning-arbetsytan. Om du vill skapa en pipeline kan du definiera stegen med Python-skript.
Du kan också skapa en pipeline med Azure Machine Learning-komponenter. När du skapar en komponent lagras skriptet med metadata som den nödvändiga miljön på Azure Machine Learning-arbetsytan. Komponenter kan delas och användas av vem som helst på samma arbetsyta, vilket gör det enklare för andra att snabbt skapa nya pipelines och bygga vidare på ditt arbete.
Om du vill skapa en pipeline som kan användas för automatisering rekommenderar vi att du definierar ett pipelinejobb i YAML som kan utlösas med hjälp av ett CLI-kommando (v2).
YAML-filen som definierar pipelinen måste ange följande information:
- Vad du ska köra: Stegen som definieras som Python-skript eller -komponenter.
- Så här kör du den: Alla indata eller utdata som stegen kan förvänta sig.
- Var den ska köras: Den beräkning som krävs för att köra koden (vanligtvis ett Azure Machine Learning-beräkningskluster).
En pipeline som tar rådata som indata, transformerar den och tränar en modell kan till exempel definieras i en pipeline-job.yml
fil:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc-taxi-pipeline-example
experiment_name: nyc-taxi-pipeline-example
jobs:
transform-job:
type: command
raw_data:
type: uri_folder
path: ./data
outputs:
transformed_data:
mode: rw_mount
code: src/transform
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python transform.py
--raw_data ${{inputs.raw_data}}
--transformed_data ${{outputs.transformed_data}}
train-job:
type: command
inputs:
training_data: ${{parent.jobs.transform-job.outputs.transformed_data}}
outputs:
model_output:
mode: rw_mount
test_data:
mode: rw_mount
code: src/train
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest
compute: azureml:cpu-cluster
command: >-
python train.py
--training_data ${{inputs.training_data}}
--test_data ${{outputs.test_data}}
--model_output ${{outputs.model_output}}
Om du vill köra pipelinen i Azure Machine Learning använder du följande CLI-kommando:
az ml job create --file pipeline-job.yml
När pipelinen har körts kan du granska pipelinen och dess utförda steg på Azure Machine Learning-arbetsytan.
Dricks
Lär dig hur du skapar en pipeline i Azure Machine Learning med CLI (v2)
När du konverterar dina maskininlärningsarbetsbelastningar till Python-skript och gruppuppgifter i en pipeline är din modell redo för produktion. Genom att definiera pipelinen i en YAML-fil kan du automatisera träning och omträning genom att utlösa pipelinekörningen med CLI (v2). Du kan köra ett CLI-kommando som refererar till YAML-pipelinefilen från Azure -pipelines (DevOps) eller GitHub Actions.