ML-modellek betanítása és nyomon követése MLflow és Azure Machine Learning (előzetes verzió)Train and track ML models with MLflow and Azure Machine Learning (preview)

Ebből a cikkből megtudhatja, hogyan engedélyezheti a MLflow követési URI-és naplózási API-JÁT, azaz a MLflow-követést, hogy összekapcsolja a Azure Machine Learningt a MLflow-kísérletek háttereként.In this article, learn how to enable MLflow's tracking URI and logging API, collectively known as MLflow Tracking, to connect Azure Machine Learning as the backend of your MLflow experiments.

A támogatott képességek a következők:Supported capabilities include:

  • A kísérlet metrikáinak és összetevőinek nyomon követése és naplózása a Azure Machine learning munkaterületen.Track and log experiment metrics and artifacts in your Azure Machine Learning workspace. Ha már használja a kísérletek MLflow követését, a munkaterület központosított, biztonságos és skálázható helyet biztosít a képzési mérőszámok és modellek tárolásához.If you already use MLflow Tracking for your experiments, the workspace provides a centralized, secure, and scalable location to store training metrics and models.

  • Betanítási feladatok elküldése MLflow-projektekkel Azure Machine learning háttér-támogatással (előzetes verzió).Submit training jobs with MLflow Projects with Azure Machine Learning backend support (preview). A feladatokat helyileg is elküldheti Azure Machine Learning nyomon követheti, vagy áttelepítheti a futtatásokat a felhőbe, például egy Azure Machine learning-számításonkeresztül.You can submit jobs locally with Azure Machine Learning tracking or migrate your runs to the cloud like via an Azure Machine Learning Compute.

  • Modellek követése és kezelése a MLflow és a Azure Machine Learning modell beállításjegyzékében.Track and manage models in MLflow and Azure Machine Learning model registry.

A MLflow egy nyílt forráskódú kódtár a gépi tanulási kísérletek életciklusának kezeléséhez.MLflow is an open-source library for managing the life cycle of your machine learning experiments. A MLFlow Tracking a MLflow egy olyan összetevője, amely naplózza és nyomon követi a képzési műveletek mérőszámait és modelljeit, függetlenül a kísérlet környezetében – helyileg a számítógépén, egy távoli számítási célponton, egy virtuális gépen vagy egy Azure Databricks fürtön.MLFlow Tracking is a component of MLflow that logs and tracks your training run metrics and model artifacts, no matter your experiment's environment--locally on your computer, on a remote compute target, a virtual machine, or an Azure Databricks cluster.

Megjegyzés

A nyílt forráskódú kódtár MLflow gyakran változnak.As an open source library, MLflow changes frequently. Ennek megfelelően a Azure Machine Learning és a MLflow-integráción keresztül elérhető funkciókat előzetes verziónak kell tekinteni, és a Microsoft nem támogatja teljes mértékben.As such, the functionality made available via the Azure Machine Learning and MLflow integration should be considered as a preview, and not fully supported by Microsoft.

Az alábbi ábra azt szemlélteti, hogy a MLflow nyomon követésével nyomon követheti a kísérlet futtatási metrikáit, és az Azure Machine Learning munkaterületen tárolhatja a modell összetevőit.The following diagram illustrates that with MLflow Tracking, you track an experiment's run metrics and store model artifacts in your Azure Machine Learning workspace.

mlflow az Azure Machine learning-diagrammal

Tipp

A jelen dokumentumban található információk elsősorban olyan adatszakértők és fejlesztők számára készültek, akik figyelni szeretnék a modell betanítási folyamatát.The information in this document is primarily for data scientists and developers who want to monitor the model training process. Ha Ön olyan rendszergazda, aki a Azure Machine Learning erőforrás-használat és-események figyelését érdekli (például kvóták, befejezett betanítási futtatások vagy befejezett modellek üzembe helyezése), tekintse meg a figyelés Azure Machine learning.If you are an administrator interested in monitoring resource usage and events from Azure Machine Learning, such as quotas, completed training runs, or completed model deployments, see Monitoring Azure Machine Learning.

MLflow és Azure Machine Learning ügyfelek összehasonlításaCompare MLflow and Azure Machine Learning clients

A következő táblázat összefoglalja azokat a különböző ügyfeleket, amelyek használhatják a Azure Machine Learningt, valamint a hozzájuk tartozó funkciókra vonatkozó képességeiket.The following table summarizes the different clients that can use Azure Machine Learning, and their respective function capabilities.

A MLflow követése olyan metrikai naplózási és összetevő-tárolási funkciókat kínál, amelyek csak a Azure Machine learning PYTHON SDK-n keresztül érhetők el.MLflow Tracking offers metric logging and artifact storage functionalities that are only otherwise available via the Azure Machine Learning Python SDK.

KépességCapability MLflow követés & üzemelő példányMLflow Tracking & Deployment Python SDK Azure Machine LearningAzure Machine Learning Python SDK Azure Machine Learning CLIAzure Machine Learning CLI Azure Machine Learning StudioAzure Machine Learning studio
Munkaterület kezeléseManage workspace
Adattárak használataUse data stores
NaplómetrikákLog metrics
Összetevők feltöltéseUpload artifacts
Metrikák megtekintéseView metrics
Számítások kezeléseManage compute
Modellek üzembe helyezéseDeploy models
Modell teljesítményének figyeléseMonitor model performance
Adateltérés észleléseDetect data drift

ElőfeltételekPrerequisites

Helyi futtatások nyomon követéseTrack local runs

A MLflow követése Azure Machine Learning lehetővé teszi a naplózott metrikák és összetevők tárolását a helyi futtatásokból a Azure Machine Learning-munkaterületre.MLflow Tracking with Azure Machine Learning lets you store the logged metrics and artifacts from your local runs into your Azure Machine Learning workspace.

Importálja a mlflow és Workspace osztályokat a MLflow követési URI-ja eléréséhez és a munkaterület konfigurálásához.Import the mlflow and Workspace classes to access MLflow's tracking URI and configure your workspace.

A következő kódban a get_mlflow_tracking_uri() metódus egyedi nyomkövetési URI-címeket rendel a munkaterülethez, ws és set_tracking_uri() a MLflow nyomon követi az adott címnek megfelelő URI-t.In the following code, the get_mlflow_tracking_uri() method assigns a unique tracking URI address to the workspace, ws, and set_tracking_uri() points the MLflow tracking URI to that address.

import mlflow
from azureml.core import Workspace

ws = Workspace.from_config()

mlflow.set_tracking_uri(ws.get_mlflow_tracking_uri())

Megjegyzés

A nyomkövetési URI-azonosító legfeljebb egy órán belül érvényes.The tracking URI is valid up to an hour or less. Ha némi üresjárati idő után újraindítja a szkriptet, a get_mlflow_tracking_uri API-val új URI-t kap.If you restart your script after some idle time, use the get_mlflow_tracking_uri API to get a new URI.

Állítsa be a MLflow-kísérlet nevét a (z) értékre, set_experiment() és indítsa el a képzést a alkalmazással start_run() .Set the MLflow experiment name with set_experiment() and start your training run with start_run(). Ezután log_metric() aktiválja a MLflow naplózási API-t, és kezdje meg a betanítási futtatási metrikák naplózását.Then use log_metric() to activate the MLflow logging API and begin logging your training run metrics.

experiment_name = 'experiment_with_mlflow'
mlflow.set_experiment(experiment_name)

with mlflow.start_run():
    mlflow.log_metric('alpha', 0.03)

Távoli futtatások nyomon követéseTrack remote runs

A távoli futtatások lehetővé teszik, hogy a modelleket nagyobb teljesítményű számításokra, például GPU-t használó virtuális gépekre vagy Machine Learning Compute fürtökre tanítsa.Remote runs let you train your models on more powerful computes, such as GPU enabled virtual machines, or Machine Learning Compute clusters. A különböző számítási lehetőségek megismeréséhez lásd: számítási célok használata a modell betanításához .See Use compute targets for model training to learn about different compute options.

A MLflow követése Azure Machine Learning lehetővé teszi a naplózott metrikák és összetevők tárolását a távoli futtatásokból a Azure Machine Learning-munkaterületre.MLflow Tracking with Azure Machine Learning lets you store the logged metrics and artifacts from your remote runs into your Azure Machine Learning workspace. A MLflow-követési kóddal rendelkező futtatásakor a rendszer automatikusan naplózza a munkaterületre a metrikákat.Any run with MLflow Tracking code in it will have metrics logged automatically to the workspace.

A következő példában a Conda mlflow -környezet azureml-mlflow pip-csomagokat tartalmaz.The following example conda environment includes mlflow and azureml-mlflow as pip packages.

name: sklearn-example
dependencies:
  - python=3.6.2
  - scikit-learn
  - matplotlib
  - numpy
  - pip:
    - azureml-mlflow
    - numpy

A szkriptben konfigurálja a számítási és képzési környezetét a Environment osztállyal.In your script, configure your compute and training run environment with the Environment class. Ezután hozza létre a számítási ScriptRunConfig célként a távoli számítási célt.Then, construct ScriptRunConfig with your remote compute as the compute target.

import mlflow

with mlflow.start_run():
    mlflow.log_metric('example', 1.23)

Ennek a számítási és betanítási futtatási konfigurációnak a használatával Experiment.submit() elküldheti a futtatást a metódussal.With this compute and training run configuration, use the Experiment.submit() method to submit a run. Ez a metódus automatikusan beállítja a MLflow követési URI-t, és a naplózást a MLflow a munkaterületre irányítja.This method automatically sets the MLflow tracking URI and directs the logging from MLflow to your Workspace.

run = exp.submit(src)

Betanítás MLflow-projektekkelTrain with MLflow Projects

A MLflow-projektek lehetővé teszik a kód rendszerezését és leírását, hogy más adatszakértők (vagy automatizált eszközök) fussanak.MLflow Projects allow for you to organize and describe your code to let other data scientists (or automated tools) run it. A Azure Machine Learning MLflow-projektjei lehetővé teszik a képzési programok nyomon követését és kezelését a munkaterületen.MLflow Projects with Azure Machine Learning enables you to track and manage your training runs in your workspace.

Ez a példa azt mutatja be, hogyan lehet helyileg beküldeni a MLflow-projekteket Azure Machine Learning követéssel.This example shows how to submit MLflow projects locally with Azure Machine Learning tracking.

Telepítse a azureml-mlflow csomagot úgy, hogy a MLflow-követést helyi Azure Machine Learningon használja a kísérletekhez.Install the azureml-mlflow package to use MLflow Tracking with Azure Machine Learning on your experiments locally. A kísérletek egy Jupyter Notebook vagy Kódszerkesztő használatával futhatnak.Your experiments can run via a Jupyter Notebook or code editor.

pip install azureml-mlflow

Importálja a mlflow és Workspace osztályokat a MLflow követési URI-ja eléréséhez és a munkaterület konfigurálásához.Import the mlflow and Workspace classes to access MLflow's tracking URI and configure your workspace.

import mlflow
from azureml.core import Workspace

ws = Workspace.from_config()

mlflow.set_tracking_uri(ws.get_mlflow_tracking_uri())

Állítsa be a MLflow-kísérlet nevét a (z) értékre, set_experiment() és indítsa el a képzést a alkalmazással start_run() .Set the MLflow experiment name with set_experiment() and start your training run with start_run(). Ezután a használatával log_metric() aktiválja a MLflow naplózási API-t, és kezdje meg a betanítási futtatási metrikák naplózását.Then, use log_metric() to activate the MLflow logging API and begin logging your training run metrics.

experiment_name = 'experiment-with-mlflow-projects'
mlflow.set_experiment(experiment_name)

Hozza létre a háttér-konfigurációs objektumot az integrációhoz szükséges információk tárolására, például a számítási célra és a használni kívánt felügyelt környezet típusára.Create the backend configuration object to store necessary information for the integration such as, the compute target and which type of managed environment to use.

backend_config = {"USE_CONDA": False}

Vegye fel a azureml-mlflow csomagot pip-függőségként a környezet konfigurációs fájljába, hogy nyomon követhesse a mérőszámokat és a kulcsfontosságú összetevőket a munkaterületen.Add the azureml-mlflow package as a pip dependency to your environment configuration file in order to track metrics and key artifacts in your workspace.

name: mlflow-example
channels:
  - defaults
  - anaconda
  - conda-forge
dependencies:
  - python=3.6
  - scikit-learn=0.19.1
  - pip
  - pip:
    - mlflow
    - azureml-mlflow

Küldje el a helyi futtatást, és győződjön meg róla, hogy beállította a paramétert backend = "azureml" .Submit the local run and ensure you set the parameter backend = "azureml" . Ezzel a beállítással helyileg is elküldheti a futtatásokat, és az automatikus kimeneti nyomon követés, a naplófájlok, a pillanatképek és a kinyomtatott hibák további támogatását a munkaterületen teheti meg.With this setting, you can submit runs locally and get the added support of automatic output tracking, log files, snapshots, and printed errors in your workspace.

A futtatások és mérőszámok megtekintése a Azure Machine learning Studióban.View your runs and metrics in the Azure Machine Learning studio.

local_env_run = mlflow.projects.run(uri=".", 
                                    parameters={"alpha":0.3},
                                    backend = "azureml",
                                    use_conda=False,
                                    backend_config = backend_config, 
                                    )

Metrikák és összetevők megtekintése a munkaterületenView metrics and artifacts in your workspace

A MLflow-naplózás metrikái és összetevői a munkaterületen maradnak.The metrics and artifacts from MLflow logging are kept in your workspace. Ha bármikor meg szeretné tekinteni őket, keresse meg a munkaterületet, és keresse meg a kísérletet név szerint a munkaterületen a Azure Machine learning Studióban.To view them anytime, navigate to your workspace and find the experiment by name in your workspace in Azure Machine Learning studio. Vagy futtassa az alábbi kódot.Or run the below code.

run.get_metrics()

Modellek kezeléseManage models

Regisztrálja és kövesse a modelleket a Azure Machine learning modell beállításjegyzékével , amely támogatja a MLflow-modell beállításjegyzékét.Register and track your models with the Azure Machine Learning model registry which supports the MLflow model registry. Azure Machine Learning modellek a MLflow modell sémájának megfelelően vannak igazítva, így ezek a modellek egyszerűen exportálhatók és importálhatók különböző munkafolyamatokban.Azure Machine Learning models are aligned with the MLflow model schema making it easy to export and import these models across different workflows. A MLflow kapcsolódó metaadatok, például a, a Run ID a nyomkövetéshez regisztrált modellel is címkével rendelkeznek.The MLflow related metadata such as, run ID is also tagged with the registered model for traceability. A felhasználók elküldhetik a MLflow-futtatásokból készített betanítási, regisztrálási és üzembe helyezési modelleket.Users can submit training runs, register, and deploy models produced from MLflow runs.

Ha egy lépésben szeretné üzembe helyezni és regisztrálni az üzemi használatra kész modellt, tekintse meg a MLflow-modellek üzembe helyezése és regisztrálásacímű témakört.If you want to deploy and register your production ready model in one step, see Deploy and register MLflow models.

Egy modell egy futtatásból való regisztrálásához és megtekintéséhez kövesse az alábbi lépéseket:To register and view a model from a run, use the following steps:

  1. A Futtatás befejezése után hívja meg a register_model() metódust.Once the run is complete call the register_model() method.

    # the model folder produced from the run is registered. This includes the MLmodel file, model.pkl and the conda.yaml.
    run.register_model(model_name = 'my-model', model_path = 'model')
    
  2. Tekintse meg a regisztrált modellt a munkaterületen a Azure Machine learning Studióval.View the registered model in your workspace with Azure Machine Learning studio.

    A következő példában a regisztrált modell my-model MLflow követési metaadatokat jelölt ki.In the following example the registered model, my-model has MLflow tracking metadata tagged.

    regisztráció – mlflow – modell

  3. Az összetevők lapon megtekintheti a MLflow-modell sémához (Conda. YAML, MLmodel, Model. PKL) igazított összes modellt.Select the Artifacts tab to see all the model files that align with the MLflow model schema (conda.yaml, MLmodel, model.pkl).

    modell – séma

  4. Válassza a MLmodel lehetőséget a Futtatás által generált MLmodel-fájl megtekintéséhez.Select MLmodel to see the MLmodel file generated by the run.

    MLmodel – séma

Az erőforrások eltávolításaClean up resources

Ha nem tervezi a naplózott metrikák és összetevők használatát a munkaterületen, akkor a törlési képesség jelenleg nem érhető el.If you don't plan to use the logged metrics and artifacts in your workspace, the ability to delete them individually is currently unavailable. Ehelyett törölje a Storage-fiókot és-munkaterületet tartalmazó erőforráscsoportot, így nem számítunk fel díjat:Instead, delete the resource group that contains the storage account and workspace, so you don't incur any charges:

  1. Az Azure Portalon válassza az Erőforráscsoportok lehetőséget a bal szélen.In the Azure portal, select Resource groups on the far left.

    Törlés a Azure Portal

  2. Válassza ki a listában az Ön által létrehozott erőforráscsoportot.From the list, select the resource group you created.

  3. Válassza az Erőforráscsoport törlése elemet.Select Delete resource group.

  4. Írja be az erőforráscsoport nevét.Enter the resource group name. Ezután válassza a Törlés elemet.Then select Delete.

PéldajegyzetfüzetekExample notebooks

Az Azure ml jegyzetfüzetekkel rendelkező MLflow bemutatják és kibővítik a jelen cikkben ismertetett fogalmakat.The MLflow with Azure ML notebooks demonstrate and expand upon concepts presented in this article.

Megjegyzés

A mlflow-t használó példák Közösség által vezérelt tárháza a következő címen érhető el: https://github.com/Azure/azureml-examples .A community-driven repository of examples using mlflow can be found at https://github.com/Azure/azureml-examples.

Következő lépésekNext steps