MLOps: modell hantering, distribution och övervakning med Azure Machine LearningMLOps: Model management, deployment, and monitoring with Azure Machine Learning

I den här artikeln får du lära dig hur du använder Azure Machine Learning för att hantera livs cykeln för dina modeller.In this article, learn about how to use Azure Machine Learning to manage the lifecycle of your models. Azure Machine Learning använder en metod för Machine Learning åtgärder (MLOps).Azure Machine Learning uses a Machine Learning Operations (MLOps) approach. MLOps förbättrar kvaliteten och konsekvensen för dina Machine Learning-lösningar.MLOps improves the quality and consistency of your machine learning solutions.

Vad är MLOps?What is MLOps?

Machine Learning åtgärder (MLOps) baseras på DevOps principer och metoder som ökar effektiviteten i arbets flöden.Machine Learning Operations (MLOps) is based on DevOps principles and practices that increase the efficiency of workflows. Till exempel kontinuerlig integrering, leverans och distribution.For example, continuous integration, delivery, and deployment. MLOps tillämpar dessa principer på Machine Learning-processen, med målet att:MLOps applies these principles to the machine learning process, with the goal of:

  • Snabbare experimentering och utveckling av modellerFaster experimentation and development of models
  • Snabbare distribution av modeller till produktionFaster deployment of models into production
  • KvalitetssäkringQuality assurance

Azure Machine Learning tillhandahåller följande MLOps-funktioner:Azure Machine Learning provides the following MLOps capabilities:

  • Skapa reproducerade ml-pipeliner.Create reproducible ML pipelines. Med Machine Learning pipelines kan du definiera upprepnings bara och återanvändbara steg för förberedelse av data, utbildnings-och bedömnings processer.Machine Learning pipelines allow you to define repeatable and reusable steps for your data preparation, training, and scoring processes.
  • Skapa åter användnings bara program miljöer för utbildning och distribution av modeller.Create reusable software environments for training and deploying models.
  • Registrera, paketera och distribuera modeller var som helst.Register, package, and deploy models from anywhere. Du kan också spåra associerade metadata som krävs för att använda modellen.You can also track associated metadata required to use the model.
  • Fånga in styrnings data för slut punkt till slut punkt i ml-livscykeln.Capture the governance data for the end-to-end ML lifecycle. Den loggade informationen kan inkludera vem som publicerar modeller, varför ändringar gjorts och när modeller distribuerades eller användes i produktionen.The logged information can include who is publishing models, why changes were made, and when models were deployed or used in production.
  • Meddela och Avisera händelser i ml-livscykel.Notify and alert on events in the ML lifecycle. Till exempel experimentering, modell registrering, modell distribution och data avkänning.For example, experiment completion, model registration, model deployment, and data drift detection.
  • Övervaka ml-program för operativa och ml-relaterade problem.Monitor ML applications for operational and ML-related issues. Jämför modell inmatningar mellan utbildning och härledning, utforska modellbaserade mått och tillhandahålla övervakning och aviseringar på din ML-infrastruktur.Compare model inputs between training and inference, explore model-specific metrics, and provide monitoring and alerts on your ML infrastructure.
  • Automatisera livs cykeln från slut punkt till slut punkt med Azure Machine Learning och Azure-pipeliner.Automate the end-to-end ML lifecycle with Azure Machine Learning and Azure Pipelines. Med hjälp av pipeliner kan du ofta uppdatera modeller, testa nya modeller och kontinuerligt distribuera nya ML-modeller tillsammans med andra program och tjänster.Using pipelines allows you to frequently update models, test new models, and continuously roll out new ML models alongside your other applications and services.

Skapa reproducerade ML-pipelinerCreate reproducible ML pipelines

Använd ML-pipelines från Azure Machine Learning för att sammanfoga alla steg som ingår i din modell inlärnings process.Use ML pipelines from Azure Machine Learning to stitch together all of the steps involved in your model training process.

En ML-pipeline kan innehålla steg från förberedelse av data till funktions extrahering för att justera en modell utvärdering.An ML pipeline can contain steps from data preparation to feature extraction to hyperparameter tuning to model evaluation. Mer information finns i ml pipelines.For more information, see ML pipelines.

Om du använder designern för att skapa en ml-pipeline kan du när som helst klicka på "..." längst upp till höger på design sidan och sedan välja klona.If you use the Designer to create your ML pipelines, you may at any time click the "..." at the top-right of the Designer page and then select Clone. Genom att klona din pipeline kan du iterera din pipeline-design utan att förlora dina gamla versioner.Cloning your pipeline allows you to iterate your pipeline design without losing your old versions.

Skapa åter användnings bara program miljöerCreate reusable software environments

Med Azure Machine Learning miljöer kan du spåra och återskapa dina projekts program varu beroenden när de utvecklas.Azure Machine Learning environments allow you to track and reproduce your projects' software dependencies as they evolve. Med miljöer kan du se till att build-versioner kan reproduceras utan manuella program varu konfigurationer.Environments allow you to ensure that builds are reproducible without manual software configurations.

Miljöer beskriver pip-och Conda-beroenden för dina projekt och kan användas för både utbildning och distribution av modeller.Environments describe the pip and Conda dependencies for your projects, and can be used for both training and deployment of models. Mer information finns i Vad är Azure Machine Learning miljöer.For more information, see What are Azure Machine Learning environments.

Registrera, paketera och distribuera modeller var som helstRegister, package, and deploy models from anywhere

Registrera och spåra ML-modellerRegister and track ML models

Med modell registreringen kan du lagra och version av dina modeller i Azure-molnet i din arbets yta.Model registration allows you to store and version your models in the Azure cloud, in your workspace. Med modell registret kan du enkelt organisera och hålla koll på dina utbildade modeller.The model registry makes it easy to organize and keep track of your trained models.

Tips

En registrerad modell är en logisk behållare för en eller flera filer som utgör din modell.A registered model is a logical container for one or more files that make up your model. Om du till exempel har en modell som lagras i flera filer kan du registrera dem som en enskild modell i Azure Machine Learning arbets ytan.For example, if you have a model that is stored in multiple files, you can register them as a single model in your Azure Machine Learning workspace. Efter registreringen kan du ladda ned eller distribuera den registrerade modellen och ta emot alla filer som har registrerats.After registration, you can then download or deploy the registered model and receive all the files that were registered.

Registrerade modeller identifieras med namn och version.Registered models are identified by name and version. Varje gång du registrerar en modell med ett namn som redan finns ökar versionsnumret.Each time you register a model with the same name as an existing one, the registry increments the version. Ytterligare metadata-taggar kan anges under registreringen.Additional metadata tags can be provided during registration. Taggarna används sedan för att söka efter en modell.These tags are then used when searching for a model. Azure Machine Learning stöder alla modeller som kan läsas in med python-3.5.2 eller högre.Azure Machine Learning supports any model that can be loaded using Python 3.5.2 or higher.

Tips

Du kan också registrera modeller som har tränats utanför Azure Machine Learning.You can also register models trained outside Azure Machine Learning.

Du kan inte ta bort en registrerad modell som används i en aktiv distribution.You can't delete a registered model that is being used in an active deployment. Mer information finns i avsnittet registrera modell i Distribuera modeller.For more information, see the register model section of Deploy models.

Profil modellerProfile models

Azure Machine Learning kan hjälpa dig att förstå processor-och minnes kraven för tjänsten som skapas när du distribuerar din modell.Azure Machine Learning can help you understand the CPU and memory requirements of the service that will be created when you deploy your model. Profilering testar tjänsten som kör din modell och returnerar information som processor användning, minnes användning och svars fördröjning.Profiling tests the service that runs your model and returns information such as the CPU usage, memory usage, and response latency. Det ger också en processor-och minnes rekommendation baserat på resursanvändningen.It also provides a CPU and memory recommendation based on the resource usage. Mer information finns i avsnittet profilering i Distribuera modeller.For more information, see the profiling section of Deploy models.

Paket-och fel söknings modellerPackage and debug models

Innan du distribuerar en modell till produktion paketeras den i en Docker-avbildning.Before deploying a model into production, it is packaged into a Docker image. I de flesta fall sker bild skapande automatiskt i bakgrunden under distributionen.In most cases, image creation happens automatically in the background during deployment. Du kan ange avbildningen manuellt.You can manually specify the image.

Om du stöter på problem med distributionen kan du distribuera i din lokala utvecklings miljö för fel sökning och fel sökning.If you run into problems with the deployment, you can deploy on your local development environment for troubleshooting and debugging.

Mer information finns i Distribuera modeller och Felsöka distributioner.For more information, see Deploy models and Troubleshooting deployments.

Omvandla och optimera modellerConvert and optimize models

Att konvertera din modell till Open neurala Network Exchange (ONNX) kan förbättra prestandan.Converting your model to Open Neural Network Exchange (ONNX) may improve performance. I genomsnitt kan konvertering till ONNX ge en prestanda ökning på 2 gånger.On average, converting to ONNX can yield a 2x performance increase.

Mer information om ONNX med Azure Machine Learning finns i artikeln skapa och påskynda ml-modeller .For more information on ONNX with Azure Machine Learning, see the Create and accelerate ML models article.

Använda modellerUse models

Tränade Machine Learning-modeller distribueras som webb tjänster i molnet eller lokalt.Trained machine learning models are deployed as web services in the cloud or locally. Du kan också distribuera modeller till Azure IoT Edge enheter.You can also deploy models to Azure IoT Edge devices. I distributioner används CPU-, GPU-eller Field-programmerbara Gate-matriser (FPGA) för inferencing.Deployments use CPU, GPU, or field-programmable gate arrays (FPGA) for inferencing. Du kan också använda modeller från Power BI.You can also use models from Power BI.

När du använder en modell som en webbtjänst eller IoT Edge-enhet kan du ange följande objekt:When using a model as a web service or IoT Edge device, you provide the following items:

  • Den eller de modeller som används för att räkna upp data som skickas till tjänsten/enheten.The model(s) that are used to score data submitted to the service/device.
  • Ett startskript.An entry script. Det här skriptet accepterar begär Anden, använder modeller för att räkna data och returnera ett svar.This script accepts requests, uses the model(s) to score the data, and return a response.
  • En Azure Machine Learning miljö som beskriver pip-och Conda-beroenden som krävs av modell (er) och Entry-skript.An Azure Machine Learning environment that describes the pip and Conda dependencies required by the model(s) and entry script.
  • Ytterligare till gångar, till exempel text, data osv. som krävs av modell (er) och registrerings skript.Any additional assets such as text, data, etc. that are required by the model(s) and entry script.

Du anger också konfigurationen för måldistributionsplattformen.You also provide the configuration of the target deployment platform. Till exempel typ av VM-familj, tillgängligt minne och antal kärnor vid distribution till Azure Kubernetes-tjänsten.For example, the VM family type, available memory, and number of cores when deploying to Azure Kubernetes Service.

När avbildningen skapas läggs även de komponenter som krävs av Azure Machine Learning till.When the image is created, components required by Azure Machine Learning are also added. Det gäller till exempel tillgångar som behövs för att köra webbtjänsten och interagera med IoT Edge.For example, assets needed to run the web service and interact with IoT Edge.

BatchbedömningBatch scoring

Batch-Poäng stöds via ML-pipeliner.Batch scoring is supported through ML pipelines. Mer information finns i batch-förutsägelser för Big data.For more information, see Batch predictions on big data.

Real tids webb tjänsterReal-time web services

Du kan använda dina modeller i webb tjänster med följande beräknings mål:You can use your models in web services with the following compute targets:

  • Azure Container-instansAzure Container Instance
  • Azure Kubernetes ServiceAzure Kubernetes Service
  • Lokal utvecklings miljöLocal development environment

Om du vill distribuera modellen som en webb tjänst måste du tillhandahålla följande objekt:To deploy the model as a web service, you must provide the following items:

  • Modellernas eller ensemblens modell.The model or ensemble of models.
  • Beroenden som krävs för att använda modellen.Dependencies required to use the model. Till exempel ett skript som accepterar begär Anden och anropar-modellen, Conda-beroenden osv.For example, a script that accepts requests and invokes the model, conda dependencies, etc.
  • Distributions konfiguration som beskriver hur och var modellen ska distribueras.Deployment configuration that describes how and where to deploy the model.

Mer information finns i Distribuera modeller.For more information, see Deploy models.

Kontrollerad distributionControlled rollout

När du distribuerar till Azure Kubernetes-tjänsten kan du använda kontrollerad distribution för att aktivera följande scenarier:When deploying to Azure Kubernetes Service, you can use controlled rollout to enable the following scenarios:

  • Skapa flera versioner av en slut punkt för en distributionCreate multiple versions of an endpoint for a deployment
  • Utför ett/B-test genom att dirigera trafik till olika versioner av slut punkten.Perform A/B testing by routing traffic to different versions of the endpoint.
  • Växla mellan slut punkts versioner genom att uppdatera trafik procenten i slut punkts konfigurationen.Switch between endpoint versions by updating the traffic percentage in endpoint configuration.

Mer information finns i den kontrollerade distributionen av ml-modeller.For more information, see Controlled rollout of ML models.

IoT Edge enheterIoT Edge devices

Du kan använda modeller med IoT-enheter via Azure IoT Edge moduler.You can use models with IoT devices through Azure IoT Edge modules. IoT Edge moduler distribueras till en maskin varu enhet, vilket möjliggör en härledning eller modell beräkning på enheten.IoT Edge modules are deployed to a hardware device, which enables inference, or model scoring, on the device.

Mer information finns i Distribuera modeller.For more information, see Deploy models.

AnalysAnalytics

Microsoft Power BI stöder användning av Machine Learning-modeller för data analys.Microsoft Power BI supports using machine learning models for data analytics. Mer information finns i Azure Machine Learning integration i Power BI (för hands version).For more information, see Azure Machine Learning integration in Power BI (preview).

Avbilda de styrnings data som krävs för att samla in den slutliga ML-livs cykelnCapture the governance data required for capturing the end-to-end ML lifecycle

Azure ML ger dig möjlighet att spåra gransknings historiken från slut punkt till slut punkt för alla dina ML-tillgångar genom att använda metadata.Azure ML gives you the capability to track the end-to-end audit trail of all of your ML assets by using metadata.

  • Azure ML integreras med git för att spåra information om vilken lagrings plats/Branch/bekräfta din kod kommer från.Azure ML integrates with Git to track information on which repository / branch / commit your code came from.
  • Med Azure ml-datauppsättningar kan du spåra, profilera och versions data.Azure ML Datasets help you track, profile, and version data.
  • Med tolkning kan du förklara dina modeller, uppfylla regelefterlevnad och förstå hur modeller kommer till följd av angivna ingångar.Interpretability allows you to explain your models, meet regulatory compliance, and understand how models arrive at a result for given input.
  • I Azure ML-körnings historik lagras en ögonblicks bild av koden, data och beräkningarna som används för att träna en modell.Azure ML Run history stores a snapshot of the code, data, and computes used to train a model.
  • Azure ML Model-registret fångar alla metadata som är associerade med din modell (vilket experiment tränade den, där den distribueras, om distributionerna är felfria).The Azure ML Model Registry captures all of the metadata associated with your model (which experiment trained it, where it is being deployed, if its deployments are healthy).
  • Med integrering med Azure kan du agera på händelser i ml-livscykel.Integration with Azure allows you to act on events in the ML lifecycle. Till exempel modell registrering, distribution, data drift och utbildning (körning)-händelser.For example, model registration, deployment, data drift, and training (run) events.

Tips

Även om information om modeller och data uppsättningar samlas in automatiskt, kan du lägga till ytterligare information med hjälp av taggar.While some information on models and datasets is automatically captured, you can add additional information by using tags. När du letar efter registrerade modeller och data uppsättningar i din arbets yta kan du använda taggar som ett filter.When looking for registered models and datasets in your workspace, you can use tags as a filter.

Ett valfritt steg är att associera en data uppsättning med en registrerad modell.Associating a dataset with a registered model is an optional step. Information om hur du refererar till en data uppsättning när du registrerar en modell finns i referens för modell klass.For information on referencing a dataset when registering a model, see the Model class reference.

Meddela, automatisera och Avisera händelser i ML-livscykelNotify, automate, and alert on events in the ML lifecycle

Azure ML publicerar viktiga händelser till Azure-EventGrid, som kan användas för att meddela och automatisera händelser i ML-livscykel.Azure ML publishes key events to Azure EventGrid, which can be used to notify and automate on events in the ML lifecycle. Mer information finns i det här dokumentet.For more information, please see this document.

Övervakare för drift & ML-problemMonitor for operational & ML issues

Med övervakning kan du förstå vilka data som skickas till din modell och vilka förutsägelser som returneras.Monitoring enables you to understand what data is being sent to your model, and the predictions that it returns.

Den här informationen hjälper dig att förstå hur modellen används.This information helps you understand how your model is being used. Insamlade indata kan också vara användbara i träna framtida versioner av modellen.The collected input data may also be useful in training future versions of the model.

Mer information finns i så här aktiverar du modell data insamling.For more information, see How to enable model data collection.

Träna modellen på nya dataRetrain your model on new data

Ofta vill du verifiera din modell, uppdatera den eller till och med återträna den från grunden, eftersom du får ny information.Often, you'll want to validate your model, update it, or even retrain it from scratch, as you receive new information. Ibland är att ta emot nya data en förväntad del av domänen.Sometimes, receiving new data is an expected part of the domain. Andra gånger, som vi beskrivit i identifiera data drift (för hands version) på data uppsättningar, kan modell prestanda försämras i sådana saker som förändringar i en viss sensor, naturliga data förändringar, till exempel säsongs effekter eller funktioner som går i relation till andra funktioner.Other times, as discussed in Detect data drift (preview) on datasets, model performance can degrade in the face of such things as changes to a particular sensor, natural data changes such as seasonal effects, or features shifting in their relation to other features.

Det finns inget universellt svar på "Hur gör jag för att veta om jag borde träna?"There is no universal answer to "How do I know if I should retrain?" Men Azure ML event och övervaknings verktyg som tidigare diskuterats är väl utgångs punkter för Automation.but Azure ML event and monitoring tools previously discussed are good starting points for automation. När du har bestämt dig för att träna bör du:Once you have decided to retrain, you should:

  • Förbearbeta dina data med en upprepnings bar, automatiserad processPreprocess your data using a repeatable, automated process
  • Träna din nya modellTrain your new model
  • Jämför utmatningarna för den nya modellen till dem i din gamla modellCompare the outputs of your new model to those of your old model
  • Använd fördefinierade villkor för att välja om du vill ersätta din gamla modellUse predefined criteria to choose whether to replace your old model

Ett tema med ovanstående steg är att omskolningen ska vara automatiserad, inte ad hoc.A theme of the above steps is that your retraining should be automated, not ad hoc. Azure Machine Learning pipelines är ett utmärkt svar för att skapa arbets flöden som rör förberedelse av data, utbildning, validering och distribution.Azure Machine Learning pipelines are a good answer for creating workflows relating to data preparation, training, validation, and deployment. Läs träna modeller med Azure Machine Learning designer (för hands version) om du vill se hur pipelines och Azure Machine Learning designer passar i ett omskolnings scenario.Read Retrain models with Azure Machine Learning designer (preview) to see how pipelines and the Azure Machine Learning designer fit into a retraining scenario.

Automatisera ML-livscykelnAutomate the ML lifecycle

Du kan använda GitHub och Azure-pipelines för att skapa en kontinuerlig integrerings process som tågen en modell.You can use GitHub and Azure Pipelines to create a continuous integration process that trains a model. När en data expert kontrollerar en ändring i git-lagrings platsen för ett projekt i ett typiskt scenario startar Azure pipelinen en tränings körning.In a typical scenario, when a Data Scientist checks a change into the Git repo for a project, the Azure Pipeline will start a training run. Resultaten av körningen kan sedan kontrol leras för att se prestanda egenskaperna för den tränade modellen.The results of the run can then be inspected to see the performance characteristics of the trained model. Du kan också skapa en pipeline som distribuerar modellen som en webb tjänst.You can also create a pipeline that deploys the model as a web service.

Med Azure Machine Learning-tillägget blir det enklare att arbeta med Azure-pipeliner.The Azure Machine Learning extension makes it easier to work with Azure Pipelines. Den ger följande förbättringar av Azure-pipeliner:It provides the following enhancements to Azure Pipelines:

  • Aktiverar val av arbets yta när du definierar en tjänst anslutning.Enables workspace selection when defining a service connection.
  • Gör att lanserings pipelines kan utlösas av utbildade modeller som skapats i en utbildnings pipeline.Enables release pipelines to be triggered by trained models created in a training pipeline.

Mer information om hur du använder Azure-pipeliner med Azure Machine Learning finns i följande länkar:For more information on using Azure Pipelines with Azure Machine Learning, see the following links:

Du kan också använda Azure Data Factory för att skapa en pipeline för data inmatning som förbereder data för användning med träning.You can also use Azure Data Factory to create a data ingestion pipeline that prepares data for use with training. Mer information finns i pipeline för data inmatning.For more information, see Data ingestion pipeline.

Nästa stegNext steps

Lär dig mer genom att läsa och utforska följande resurser:Learn more by reading and exploring the following resources: