MLOps: Zarządzanie modelami, wdrażanie i monitorowanie za pomocą Azure Machine LearningMLOps: Model management, deployment, and monitoring with Azure Machine Learning

W tym artykule dowiesz się, jak za pomocą Azure Machine Learning zarządzać cyklem życia modeli.In this article, learn about how to use Azure Machine Learning to manage the lifecycle of your models. Azure Machine Learning używa podejścia Machine Learning Operations (MLOps).Azure Machine Learning uses a Machine Learning Operations (MLOps) approach. MLOps poprawia jakość i spójność rozwiązań do uczenia maszynowego.MLOps improves the quality and consistency of your machine learning solutions.

Co to jest MLOps?What is MLOps?

Machine Learning Operations (MLOps) bazują na zasadach DevOps i praktykach, które zwiększają wydajność przepływów pracy.Machine Learning Operations (MLOps) is based on DevOps principles and practices that increase the efficiency of workflows. Na przykład ciągła integracja, dostarczanie i wdrażanie.For example, continuous integration, delivery, and deployment. MLOps stosuje te zasady do procesu uczenia maszynowego w celu:MLOps applies these principles to the machine learning process, with the goal of:

  • Szybsze eksperymentowanie i opracowywanie modeliFaster experimentation and development of models
  • Szybsze wdrażanie modeli w środowisku produkcyjnymFaster deployment of models into production
  • Kontrola jakościQuality assurance

Azure Machine Learning zapewnia następujące możliwości MLOps:Azure Machine Learning provides the following MLOps capabilities:

  • Tworzenie powtarzalnych potoków ml.Create reproducible ML pipelines. Potoki Machine Learning umożliwiają zdefiniowanie kroków powtarzalnych i wielokrotnego użytku dla procesów przygotowywania, uczenia i oceniania danych.Machine Learning pipelines allow you to define repeatable and reusable steps for your data preparation, training, and scoring processes.
  • Twórz środowiska oprogramowania do wielokrotnego użytku na potrzeby szkoleń i wdrażania modeli.Create reusable software environments for training and deploying models.
  • Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca.Register, package, and deploy models from anywhere. Możesz również śledzić skojarzone metadane wymagane do korzystania z modelu.You can also track associated metadata required to use the model.
  • Przechwyć dane ładu w celu uzyskania kompleksowego cyklu życia ml.Capture the governance data for the end-to-end ML lifecycle. Zarejestrowane informacje mogą obejmować osoby, które publikują modele, Dlaczego wprowadzono zmiany i kiedy modele zostały wdrożone lub użyte w środowisku produkcyjnym.The logged information can include who is publishing models, why changes were made, and when models were deployed or used in production.
  • Powiadamiaj i Ostrzegaj o zdarzeniach w cyklu życia w ml.Notify and alert on events in the ML lifecycle. Na przykład zakończenie eksperymentu, rejestracja modelu, wdrożenie modelu i wykrywanie dryfowania danych.For example, experiment completion, model registration, model deployment, and data drift detection.
  • Monitoruj aplikacje ml pod kątem problemów operacyjnych i związanych z ml.Monitor ML applications for operational and ML-related issues. Porównaj dane wejściowe modelu między szkoleniem i wnioskami, Eksploruj metryki specyficzne dla modelu i udostępniaj funkcje monitorowania i alertów infrastruktury dotyczącej sieci.Compare model inputs between training and inference, explore model-specific metrics, and provide monitoring and alerts on your ML infrastructure.
  • Automatyzuj kompleksowe cykle życia ml z użyciem Azure Machine Learning i Azure Pipelines.Automate the end-to-end ML lifecycle with Azure Machine Learning and Azure Pipelines. Przy użyciu potoków można często aktualizować modele, testować nowe modele i ciągle przebiegać nowe modele ML wraz z innymi aplikacjami i usługami.Using pipelines allows you to frequently update models, test new models, and continuously roll out new ML models alongside your other applications and services.

Tworzenie powtarzalnych potoków MLCreate reproducible ML pipelines

Użyj potoków ML z Azure Machine Learning, aby połączyć wszystkie kroki związane z procesem szkolenia modeli.Use ML pipelines from Azure Machine Learning to stitch together all of the steps involved in your model training process.

Potok ML może zawierać kroki od przygotowania danych do wyodrębniania funkcji do dostrajania parametrów do oceny modelu.An ML pipeline can contain steps from data preparation to feature extraction to hyperparameter tuning to model evaluation. Aby uzyskać więcej informacji, zobacz temat potoki ml.For more information, see ML pipelines.

Jeśli używasz projektanta do tworzenia potoków ml, możesz w dowolnym momencie kliknąć "..." w prawym górnym rogu strony projektanta, a następnie wybrać klon.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. Klonowanie potoku umożliwia iteracyjne projektowanie potoku bez utraty starych wersji.Cloning your pipeline allows you to iterate your pipeline design without losing your old versions.

Tworzenie środowisk oprogramowania wielokrotnego użytkuCreate reusable software environments

Środowiska Azure Machine Learning umożliwiają śledzenie i odtwarzanie zależności oprogramowania projektów podczas ich rozwoju.Azure Machine Learning environments allow you to track and reproduce your projects' software dependencies as they evolve. Środowiska pozwalają upewnić się, że kompilacje są odtwarzalne bez ręcznej konfiguracji oprogramowania.Environments allow you to ensure that builds are reproducible without manual software configurations.

Środowiska opisują zależności PIP i Conda dla projektów i mogą być używane do szkolenia i wdrażania modeli.Environments describe the pip and Conda dependencies for your projects, and can be used for both training and deployment of models. Aby uzyskać więcej informacji, zobacz co to są środowiska Azure Machine Learning.For more information, see What are Azure Machine Learning environments.

Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejscaRegister, package, and deploy models from anywhere

Rejestrowanie i śledzenie modeli MLRegister and track ML models

Rejestracja modelu umożliwia przechowywanie i przechowywanie modeli w chmurze platformy Azure w obszarze roboczym.Model registration allows you to store and version your models in the Azure cloud, in your workspace. Rejestr modelu ułatwia organizowanie i śledzenie przeszkolonych modeli.The model registry makes it easy to organize and keep track of your trained models.

Porada

Zarejestrowany model to logiczny kontener dla co najmniej jednego pliku, który składa się z modelu.A registered model is a logical container for one or more files that make up your model. Na przykład jeśli masz model, który jest przechowywany w wielu plikach, możesz zarejestrować je jako jeden model w obszarze roboczym Azure Machine Learning.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. Po zarejestrowaniu można pobrać lub wdrożyć zarejestrowany model i odebrać wszystkie zarejestrowane pliki.After registration, you can then download or deploy the registered model and receive all the files that were registered.

Zarejestrowane modele są identyfikowane za pomocą nazwy i wersji.Registered models are identified by name and version. Za każdym razem, gdy rejestrujesz model o takiej samej nazwie, jaką ma już istniejący model, rejestr zwiększa wersję.Each time you register a model with the same name as an existing one, the registry increments the version. Dodatkowe tagi metadanych można podać podczas rejestracji.Additional metadata tags can be provided during registration. Te Tagi są następnie używane podczas wyszukiwania modelu.These tags are then used when searching for a model. Azure Machine Learning obsługuje dowolny model, który można załadować przy użyciu języka Python w wersji 3.5.2 lub nowszej.Azure Machine Learning supports any model that can be loaded using Python 3.5.2 or higher.

Porada

Możesz również rejestrować modele przeszkolone poza Azure Machine Learning.You can also register models trained outside Azure Machine Learning.

Nie można usunąć zarejestrowanego modelu, który jest używany w aktywnym wdrożeniu.You can't delete a registered model that is being used in an active deployment. Aby uzyskać więcej informacji, zobacz sekcję Register model w artykule Wdrażanie modeli.For more information, see the register model section of Deploy models.

Ważne

Korzystając z opcji Filtruj według Tags na stronie modele Azure Machine Learning Studio, zamiast korzystać z TagName : TagValue klientów należy używać TagName=TagValue (bez spacji)When using Filter by Tags option on the Models page of Azure Machine Learning Studio, instead of using TagName : TagValue customers should use TagName=TagValue (without space)

Modele profiliProfile models

Azure Machine Learning może pomóc zrozumieć wymagania dotyczące procesora i pamięci usługi, które zostaną utworzone podczas wdrażania modelu.Azure Machine Learning can help you understand the CPU and memory requirements of the service that will be created when you deploy your model. Profilowanie testuje usługę, która uruchamia model i zwraca informacje takie jak użycie procesora CPU, użycie pamięci i opóźnienie odpowiedzi.Profiling tests the service that runs your model and returns information such as the CPU usage, memory usage, and response latency. Zapewnia również zalecenia dotyczące procesora i pamięci na podstawie użycia zasobów.It also provides a CPU and memory recommendation based on the resource usage. Aby uzyskać więcej informacji, zobacz sekcję profilowania w artykule Wdrażanie modeli.For more information, see the profiling section of Deploy models.

Modele pakietów i debugowaniaPackage and debug models

Przed wdrożeniem modelu w środowisku produkcyjnym jest on spakowany w obrazie platformy Docker.Before deploying a model into production, it is packaged into a Docker image. W większości przypadków tworzenie obrazów odbywa się automatycznie w tle podczas wdrażania.In most cases, image creation happens automatically in the background during deployment. Można ręcznie określić obraz.You can manually specify the image.

Jeśli wystąpią problemy z wdrożeniem, można wdrożyć program w lokalnym środowisku programistycznym w celu rozwiązywania problemów i debugowania.If you run into problems with the deployment, you can deploy on your local development environment for troubleshooting and debugging.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli i Rozwiązywanie problemów z wdrożeniami.For more information, see Deploy models and Troubleshooting deployments.

Konwertowanie i optymalizowanie modeliConvert and optimize models

Przekonwertowanie modelu na otwarty program neuronowych Network Exchange (ONNX) może poprawić wydajność.Converting your model to Open Neural Network Exchange (ONNX) may improve performance. Na przykład przekonwertowanie na ONNX może spowodować zwiększenie wydajności.On average, converting to ONNX can yield a 2x performance increase.

Aby uzyskać więcej informacji na temat ONNX z Azure Machine Learning, zobacz artykuł Tworzenie i przyspieszenie modeli ml .For more information on ONNX with Azure Machine Learning, see the Create and accelerate ML models article.

Używanie modeliUse models

Przeszkolone modele uczenia maszynowego są wdrażane jako usługi sieci Web w chmurze lub lokalnie.Trained machine learning models are deployed as web services in the cloud or locally. Możesz również wdrażać modele na Azure IoT Edge urządzeniach.You can also deploy models to Azure IoT Edge devices. Wdrożenia używają macierzy procesora CPU, procesora GPU lub programowalnych pól (FPGA) dla inferencing.Deployments use CPU, GPU, or field-programmable gate arrays (FPGA) for inferencing. Można również używać modeli z Power BI.You can also use models from Power BI.

W przypadku korzystania z modelu jako usługi internetowej lub urządzenia usługi IoT Edge należy udostępnić następujące elementy:When using a model as a web service or IoT Edge device, you provide the following items:

  • Modele, które są używane do oceny danych przesyłanych do usługi/urządzenia.The model(s) that are used to score data submitted to the service/device.
  • Skrypt wejściowy.An entry script. Ten skrypt akceptuje żądania, używa modeli do oceny danych i zwracają odpowiedź.This script accepts requests, uses the model(s) to score the data, and return a response.
  • Środowisko Azure Machine Learning, które opisuje zależności PIP i Conda wymagane przez modele i skrypt wejścia.An Azure Machine Learning environment that describes the pip and Conda dependencies required by the model(s) and entry script.
  • Wszelkie dodatkowe zasoby, takie jak tekst, dane itp., które są wymagane przez model (y) i skrypt wejścia.Any additional assets such as text, data, etc. that are required by the model(s) and entry script.

Należy również podać konfigurację docelowej platformy wdrażania.You also provide the configuration of the target deployment platform. Na przykład typ rodziny maszyn wirtualnych, dostępna pamięć i liczba rdzeni podczas wdrażania w usłudze Azure Kubernetes Service.For example, the VM family type, available memory, and number of cores when deploying to Azure Kubernetes Service.

Po utworzeniu obrazu są również dodawane składniki wymagane przez usługę Azure Machine Learning.When the image is created, components required by Azure Machine Learning are also added. Na przykład zasoby, które są konieczne do uruchomienia usługi internetowej i współdziałają z usługą IoT Edge.For example, assets needed to run the web service and interact with IoT Edge.

Ocenianie usługi BatchBatch scoring

Ocenianie wsadowe jest obsługiwane przy użyciu potoków ML.Batch scoring is supported through ML pipelines. Aby uzyskać więcej informacji, zobacz przewidywania wsadowe dotyczące danych Big Data.For more information, see Batch predictions on big data.

Usługi sieci Web w czasie rzeczywistymReal-time web services

Można używać modeli w usługach sieci Web z następującymi obiektami docelowymi obliczeń:You can use your models in web services with the following compute targets:

  • Wystąpienie kontenera platformy AzureAzure Container Instance
  • Azure Kubernetes ServiceAzure Kubernetes Service
  • Lokalne środowisko programistyczneLocal development environment

Aby wdrożyć model jako usługę sieci Web, należy podać następujące elementy:To deploy the model as a web service, you must provide the following items:

  • Model lub kompletność modeli.The model or ensemble of models.
  • Zależności wymagane do korzystania z modelu.Dependencies required to use the model. Na przykład skrypt, który akceptuje żądania i wywołuje model, Conda zależności itp.For example, a script that accepts requests and invokes the model, conda dependencies, etc.
  • Konfiguracja wdrożenia opisująca sposób i miejsce wdrożenia modelu.Deployment configuration that describes how and where to deploy the model.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli.For more information, see Deploy models.

Kontrolowane wdrażanieControlled rollout

Podczas wdrażania w usłudze Azure Kubernetes można użyć wdrożenia kontrolowanego, aby włączyć następujące scenariusze:When deploying to Azure Kubernetes Service, you can use controlled rollout to enable the following scenarios:

  • Tworzenie wielu wersji punktu końcowego dla wdrożeniaCreate multiple versions of an endpoint for a deployment
  • Wykonaj testowanie A/B przez kierowanie ruchu do różnych wersji punktu końcowego.Perform A/B testing by routing traffic to different versions of the endpoint.
  • Przełączenie między wersjami punktów końcowych przez aktualizację wartości procentowej ruchu w konfiguracji punktu końcowego.Switch between endpoint versions by updating the traffic percentage in endpoint configuration.

Aby uzyskać więcej informacji, zobacz kontrolowane wprowadzanie modeli ml.For more information, see Controlled rollout of ML models.

Urządzenia IoT EdgeIoT Edge devices

Można używać modeli z urządzeniami IoT za pomocą modułów Azure IoT Edge.You can use models with IoT devices through Azure IoT Edge modules. Moduły IoT Edge są wdrażane na urządzeniu sprzętowym, co umożliwia wnioskowanie lub ocenianie modelu na urządzeniu.IoT Edge modules are deployed to a hardware device, which enables inference, or model scoring, on the device.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli.For more information, see Deploy models.

AnalizaAnalytics

Firma Microsoft Power BI obsługuje używanie modeli uczenia maszynowego na potrzeby analizy danych.Microsoft Power BI supports using machine learning models for data analytics. Aby uzyskać więcej informacji, zobacz Azure Machine Learning Integration w Power BI (wersja zapoznawcza).For more information, see Azure Machine Learning integration in Power BI (preview).

Przechwyć dane ładu wymagane do przechwycenia kompleksowego cyklu życia MLCapture the governance data required for capturing the end-to-end ML lifecycle

Usługa Azure ML oferuje możliwość śledzenia kompleksowego dziennika inspekcji wszystkich zasobów w sieci ML przy użyciu metadanych.Azure ML gives you the capability to track the end-to-end audit trail of all of your ML assets by using metadata.

  • Platforma Azure ML integruje się z usługą git , aby śledzić informacje o repozytorium/rozgałęzieniu/Zatwierdź swój kod.Azure ML integrates with Git to track information on which repository / branch / commit your code came from.
  • Zestawy danych usługi Azure ml ułatwiają śledzenie, profilowanie i przechowywanie wersji.Azure ML Datasets help you track, profile, and version data.
  • Interpretacja pozwala na wyjaśnienie modeli, spełnienie zgodności z przepisami i zrozumienie sposobu, w jaki modele docierają do wyniku dla danych danych wejściowych.Interpretability allows you to explain your models, meet regulatory compliance, and understand how models arrive at a result for given input.
  • Historia przebiegów Azure ML przechowuje migawkę kodu, danych i obliczeń używanych do uczenia modelu.Azure ML Run history stores a snapshot of the code, data, and computes used to train a model.
  • Rejestr modelu usługi Azure ML przechwytuje wszystkie metadane skojarzone z Twoim modelem (który eksperyment został przeszkolony, gdzie jest wdrażany, jeśli jego wdrożenia są w dobrej kondycji).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).
  • Integracja z platformą Azure umożliwia wykonywanie działań na zdarzeniach w cyklu życia usługi ml.Integration with Azure allows you to act on events in the ML lifecycle. Przykład: rejestrowanie modelu, wdrażanie, dryfowanie danych i szkolenia (uruchamianie).For example, model registration, deployment, data drift, and training (run) events.

Porada

Niektóre informacje o modelach i zestawach danych są przechwytywane automatycznie, ale można dodać dodatkowe informacje za pomocą tagów.While some information on models and datasets is automatically captured, you can add additional information by using tags. Podczas wyszukiwania zarejestrowanych modeli i zestawów danych w obszarze roboczym można używać tagów jako filtru.When looking for registered models and datasets in your workspace, you can use tags as a filter.

Skojarzenie zestawu danych z zarejestrowanym modelem jest opcjonalnym krokiem.Associating a dataset with a registered model is an optional step. Aby uzyskać informacje na temat odwoływania się do zestawu danych podczas rejestrowania modelu, zobacz Dokumentacja klasy modelu .For information on referencing a dataset when registering a model, see the Model class reference.

Powiadamianie, Automatyzowanie i wyzwalanie alertów dotyczących zdarzeń w cyklu życia w MLNotify, automate, and alert on events in the ML lifecycle

Usługa Azure ML publikuje kluczowe zdarzenia w usłudze Azure EventGrid, które mogą służyć do powiadamiania i automatyzowania zdarzeń w cyklu życia w ML.Azure ML publishes key events to Azure EventGrid, which can be used to notify and automate on events in the ML lifecycle. Aby uzyskać więcej informacji, zobacz ten dokument.For more information, please see this document.

Monitoruj problemy dotyczące operacyjnego & MLMonitor for operational & ML issues

Monitorowanie pozwala zrozumieć, jakie dane są wysyłane do modelu, oraz przewidywane, które zwraca.Monitoring enables you to understand what data is being sent to your model, and the predictions that it returns.

Te informacje ułatwiają zrozumienie sposobu korzystania z modelu.This information helps you understand how your model is being used. Zebrane dane wejściowe mogą być również przydatne w przypadku szkoleń w przyszłych wersjach modelu.The collected input data may also be useful in training future versions of the model.

Aby uzyskać więcej informacji, zobacz jak włączyć zbieranie danych modelu.For more information, see How to enable model data collection.

Ponowne uczenie modelu na nowych danychRetrain your model on new data

Często należy sprawdzić poprawność modelu, zaktualizować go, a nawet ponownie wyszkolić od podstaw podczas otrzymywania nowych informacji.Often, you'll want to validate your model, update it, or even retrain it from scratch, as you receive new information. Czasami otrzymywanie nowych danych jest oczekiwaną częścią domeny.Sometimes, receiving new data is an expected part of the domain. W innych przypadkach, jak opisano w sekcji wykrywanie dryfowania danych (wersja zapoznawcza) w zestawach DataSet, wydajność modelu może być niezauważalna w zależności od tego, jak zmiany w określonej czujniku, dane naturalne zmieniają się, takie jak skutki sezonowe, lub funkcje przesuwania w ich relacji z innymi funkcjami.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.

Nie ma uniwersalnej odpowiedzi na "Jak mogę wiedzieć, czy należy przeprowadzić ponowne uczenie?"There is no universal answer to "How do I know if I should retrain?" wcześniej omówione narzędzia do obsługi zdarzeń i monitorowania usługi Azure ML są dobrym punktem wyjścia do automatyzacji.but Azure ML event and monitoring tools previously discussed are good starting points for automation. Po podjęciu decyzji o ponownym wyuczeniu należy:Once you have decided to retrain, you should:

  • Wstępne przetwarzanie danych przy użyciu powtarzalnego, zautomatyzowanego procesuPreprocess your data using a repeatable, automated process
  • Uczenie nowego modeluTrain your new model
  • Porównaj dane wyjściowe nowego modelu z poprzednimi modelamiCompare the outputs of your new model to those of your old model
  • Użyj wstępnie zdefiniowanych kryteriów, aby określić, czy chcesz zastąpić stary modelUse predefined criteria to choose whether to replace your old model

Motyw powyższych kroków polega na tym, że przeszkolenie powinno być zautomatyzowane, a nie ad hoc.A theme of the above steps is that your retraining should be automated, not ad hoc. Potoki Azure Machine Learning są dobrą odpowiedzią na tworzenie przepływów pracy związanych z przygotowywaniem, uczeniem, sprawdzaniem i wdrażaniem danych.Azure Machine Learning pipelines are a good answer for creating workflows relating to data preparation, training, validation, and deployment. Odczytaj modele ponownego uczenia przy użyciu projektanta Azure Machine Learning , aby zobaczyć, jak potoki i Projektant Azure Machine Learning mieszczą się w scenariuszu ponownego szkolenia.Read Retrain models with Azure Machine Learning designer to see how pipelines and the Azure Machine Learning designer fit into a retraining scenario.

Automatyzowanie cyklu życia MLAutomate the ML lifecycle

Korzystając z usługi GitHub i Azure Pipelines, można utworzyć proces ciągłej integracji, który pociągnie za model.You can use GitHub and Azure Pipelines to create a continuous integration process that trains a model. W typowym scenariuszu, gdy analityk danych sprawdzi zmianę w repozytorium git dla projektu, potok platformy Azure rozpocznie działanie szkoleniowe.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. Wyniki przebiegu można następnie sprawdzić, aby zobaczyć charakterystykę wydajności nauczonego modelu.The results of the run can then be inspected to see the performance characteristics of the trained model. Możesz również utworzyć potok, który wdraża model jako usługę sieci Web.You can also create a pipeline that deploys the model as a web service.

Rozszerzenie Azure Machine Learning ułatwia pracę z Azure Pipelines.The Azure Machine Learning extension makes it easier to work with Azure Pipelines. Zapewnia następujące udoskonalenia Azure Pipelines:It provides the following enhancements to Azure Pipelines:

  • Włącza wybór obszaru roboczego podczas definiowania połączenia z usługą.Enables workspace selection when defining a service connection.
  • Umożliwia wyzwalanie potoków wydania przez nauczone modele utworzone w potoku szkoleniowym.Enables release pipelines to be triggered by trained models created in a training pipeline.

Aby uzyskać więcej informacji na temat używania Azure Pipelines z Azure Machine Learning, zobacz następujące linki:For more information on using Azure Pipelines with Azure Machine Learning, see the following links:

Możesz również użyć Azure Data Factory do utworzenia potoku pozyskiwania danych, który przygotowuje dane do użycia z uczeniem.You can also use Azure Data Factory to create a data ingestion pipeline that prepares data for use with training. Aby uzyskać więcej informacji, zobacz potokupozyskiwania danych.For more information, see Data ingestion pipeline.

Następne krokiNext steps

Aby dowiedzieć się więcej, przeczytaj i zbadaj następujące zasoby:Learn more by reading and exploring the following resources: