Adatok gyűjtése üzemi modellbőlCollect data from models in production

Ez a cikk bemutatja, hogyan gyűjthet adatokat egy Azure Kubernetes Service (ak) fürtön üzembe helyezett Azure Machine Learning modellből.This article shows how to collect data from an Azure Machine Learning model deployed on an Azure Kubernetes Service (AKS) cluster. Ezután az összegyűjtött adatokat az Azure Blob Storage tárolja.The collected data is then stored in Azure Blob storage.

A gyűjtemény engedélyezése után az összegyűjtött adatok segítenek a következőkben:Once collection is enabled, the data you collect helps you:

  • Figyelje az adatok eltolódásait az összegyűjtött éles adatokon.Monitor data drifts on the production data you collect.

  • Összegyűjtött adatok elemzése Power bi vagy Azure Databricks használatávalAnalyze collected data using Power BI or Azure Databricks

  • Jobb döntéseket hozhat a modell újratanítása vagy optimalizálása során.Make better decisions about when to retrain or optimize your model.

  • A modell újratanítása az összegyűjtött adatokkal.Retrain your model with the collected data.

A begyűjtött és a hová kerülWhat is collected and where it goes

A következő adatokat gyűjthetjük össze:The following data can be collected:

  • Bemeneti adatok modellezése egy AK-fürtben üzembe helyezett webszolgáltatásokból.Model input data from web services deployed in an AKS cluster. A hanghangok, a képek és a videók gyűjtése nem történik meg.Voice audio, images, and video are not collected.

  • Modellek előrejelzése éles bemeneti adatok használatával.Model predictions using production input data.

Megjegyzés

Ezen az adathalmazon jelenleg nem része az előösszesítésnek és az előszámításoknak.Preaggregation and precalculations on this data are not currently part of the collection service.

A rendszer menti a kimenetet a blob Storage-ban.The output is saved in Blob storage. Mivel az adatait hozzáadja a blob Storage-hoz, kiválaszthatja kedvenc eszközét az elemzés futtatásához.Because the data is added to Blob storage, you can choose your favorite tool to run the analysis.

A blob kimeneti adatelérési útja a következő szintaxist követi:The path to the output data in the blob follows this syntax:

/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
# example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv

Megjegyzés

A 0.1.0 A16 verziónál korábbi Pythonhoz készült Azure Machine Learning SDK verziójában az designation argumentum neve identifier .In versions of the Azure Machine Learning SDK for Python earlier than version 0.1.0a16, the designation argument is named identifier. Ha a kódot egy korábbi verzióval fejlesztette ki, azt ennek megfelelően kell frissítenie.If you developed your code with an earlier version, you need to update it accordingly.

ElőfeltételekPrerequisites

Az adatgyűjtés engedélyezéseEnable data collection

Az adatgyűjtést a Azure Machine learning vagy más eszközökön keresztül üzembe helyezett modelltől függetlenül is engedélyezheti.You can enable data collection regardless of the model you deploy through Azure Machine Learning or other tools.

Az adatgyűjtés engedélyezéséhez a következőket kell tennie:To enable data collection, you need to:

  1. Nyissa meg a pontozási fájlt.Open the scoring file.

  2. Adja hozzá a következő kódot a fájl elejéhez:Add the following code at the top of the file:

    from azureml.monitoring import ModelDataCollector
    
  3. Deklarálja az adatgyűjtés változóit a init függvényben:Declare your data collection variables in your init function:

    global inputs_dc, prediction_dc
    inputs_dc = ModelDataCollector("best_model", designation="inputs", feature_names=["feat1", "feat2", "feat3", "feat4", "feat5", "feat6"])
    prediction_dc = ModelDataCollector("best_model", designation="predictions", feature_names=["prediction1", "prediction2"])
    

    A correlationId egy opcionális paraméter.CorrelationId is an optional parameter. Nem kell használni, ha a modell nem igényli.You don't need to use it if your model doesn't require it. A correlationId használata megkönnyíti a többi adattal, például a LoanNumber vagy a Vevőkód használatával való leképezést.Use of CorrelationId does help you more easily map with other data, such as LoanNumber or CustomerId.

    A rendszer később az azonosító paramétert használja a mappa struktúrájának létrehozásához a blobban.The Identifier parameter is later used for building the folder structure in your blob. Felhasználhatja a feldolgozott adatokból származó nyers adatok megkülönböztetésére is.You can use it to differentiate raw data from processed data.

  4. Adja hozzá a következő sornyi kódot a run(input_df) függvényhez:Add the following lines of code to the run(input_df) function:

    data = np.array(data)
    result = model.predict(data)
    inputs_dc.collect(data) #this call is saving our input data into Azure Blob
    prediction_dc.collect(result) #this call is saving our input data into Azure Blob
    
  5. Az adatgyűjtést nem lehet automatikusan true értékre állítani, ha a szolgáltatást az AK-ban helyezi üzembe.Data collection is not automatically set to true when you deploy a service in AKS. Frissítse a konfigurációs fájlt, ahogy az az alábbi példában is látható:Update your configuration file, as in the following example:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    A szolgáltatás figyelésének Application Insights a konfiguráció módosításával is engedélyezheti:You can also enable Application Insights for service monitoring by changing this configuration:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Új rendszerkép létrehozásához és a Machine learning-modell üzembe helyezéséhez tekintse meg a hogyan kell üzembe helyezni és hol.To create a new image and deploy the machine learning model, see How to deploy and where.

  7. Adja hozzá az "Azure-monitoring" pip-csomagot a webszolgáltatás-környezet Conda:Add the 'Azure-Monitoring' pip package to the conda-dependencies of the web service environment:

  env = Environment('webserviceenv')
  env.python.conda_dependencies = CondaDependencies.create(conda_packages=['numpy'],pip_packages=['azureml-defaults','azureml-monitoring','inference-schema[numpy-support]'])

Adatgyűjtés letiltásaDisable data collection

Bármikor leállíthatja az adatgyűjtést.You can stop collecting data at any time. A Python-kód használatával tiltsa le az adatgyűjtést.Use Python code to disable data collection.

## replace <service_name> with the name of the web service
<service_name>.update(collect_model_data=False)

Az adatai ellenőrzése és elemzéseValidate and analyze your data

A blob Storage-ban összegyűjtött adatok elemzéséhez kiválaszthatja a kívánt eszközt.You can choose a tool of your preference to analyze the data collected in your Blob storage.

BLOB-adatai gyors eléréseQuickly access your blob data

  1. Jelentkezzen be Azure Portalba.Sign in to Azure portal.

  2. Nyissa meg a munkaterületet.Open your workspace.

  3. Válassza a tárterület lehetőséget.Select Storage.

    Válassza ki a tárolási beállítástSelect the Storage option

  4. Kövesse a blob kimeneti adatelérési útját a következő szintaxissal:Follow the path to the blob's output data with this syntax:

    /modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
    # example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv
    

A modell adatai elemzése Power BI használatávalAnalyze model data using Power BI

  1. Töltse le és nyissa meg Power bi Desktop.Download and open Power BI Desktop.

  2. Válassza az adatlekérdezés lehetőséget, és válassza az Azure Blob Storagelehetőséget.Select Get Data and select Azure Blob Storage.

    Power BI blob beállításaPower BI blob setup

  3. Adja meg a Storage-fiók nevét, és adja meg a Storage-kulcsát.Add your storage account name and enter your storage key. Ezt az információt a blobban található Beállítások > hozzáférési kulcsok lehetőség kiválasztásával érheti el.You can find this information by selecting Settings > Access keys in your blob.

  4. Válassza ki a modell adattárolót, és válassza a Szerkesztés lehetőséget.Select the model data container and select Edit.

    Power BI-navigátorPower BI Navigator

  5. A lekérdezés-szerkesztőben kattintson a Name (név ) oszlopban a Storage-fiók hozzáadása lehetőségre.In the query editor, click under the Name column and add your storage account.

  6. Adja meg a modell elérési útját a szűrőben.Enter your model path into the filter. Ha csak egy adott évből vagy hónapból származó fájlokra szeretne rákeresni, egyszerűen bontsa ki a szűrő elérési útját.If you want to look only into files from a specific year or month, just expand the filter path. Ha például csak a márciusi adatmegjelenítést szeretné megkeresni, használja a szűrő elérési útját:For example, to look only into March data, use this filter path:

    /modeldata/ <subscriptionid> / <resourcegroupname> / <workspacename> / <webservicename> / <modelname> / <modelversion> / <designation> / <year> /3/modeldata/<subscriptionid>/<resourcegroupname>/<workspacename>/<webservicename>/<modelname>/<modelversion>/<designation>/<year>/3

  7. A név értékek alapján szűrheti a megfelelő adatokat.Filter the data that is relevant to you based on Name values. Ha a jóslatokat és a bemeneti adatokat tárolta, mindegyikhez létre kell hoznia egy lekérdezést.If you stored predictions and inputs, you need to create a query for each.

  8. A fájlok egyesítéséhez kattintson a tartalom oszlop fejléce melletti lefelé mutató dupla nyílra.Select the downward double arrows next to the Content column heading to combine the files.

    Power BI tartalomPower BI Content

  9. Válassza az OK lehetőséget.Select OK. Az adatelőre betöltött sorok.The data preloads.

    Power BI fájlok egyesítésePower BI Combine Files

  10. Válassza a Bezárás és alkalmaz lehetőséget.Select Close and Apply.

  11. Ha hozzáadta a bemeneteket és az előrejelzéseket, a táblákat a rendszer automatikusan kérelemazonosító -értékek alapján rendezi.If you added inputs and predictions, your tables are automatically ordered by RequestId values.

  12. Megkezdheti az egyéni jelentések összeállítását a modell adatain.Start building your custom reports on your model data.

A modell adatai elemzése Azure Databricks használatávalAnalyze model data using Azure Databricks

  1. Hozzon létre egy Azure Databricks munkaterületet.Create an Azure Databricks workspace.

  2. Nyissa meg a Databricks-munkaterületet.Go to your Databricks workspace.

  3. A Databricks munkaterületen válassza az adatok feltöltése lehetőséget.In your Databricks workspace, select Upload Data.

    Databricks adatok feltöltése lehetőség kiválasztásaSelecting Databricks Upload Data option

  4. Válassza az új tábla létrehozása lehetőséget, és válassza az egyéb adatforrások > Azure Blob Storage > tábla létrehozása jegyzetfüzetben elemet.Select Create New Table and select Other Data Sources > Azure Blob Storage > Create Table in Notebook.

    Databricks-tábla létrehozásaDatabricks table creation

  5. Frissítse az adatai helyét.Update the location of your data. Alább bemutatunk egy példát:Here is an example:

    file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/*/*/data.csv" 
    file_type = "csv"
    

    Databricks-telepítőDatabricks setup

  6. Az adatai megtekintéséhez és elemzéséhez kövesse a sablon lépéseit.Follow the steps on the template to view and analyze your data.

Következő lépésekNext steps

A gyűjtött adatokra vonatkozó adateltolódás észlelése .Detect data drift on the data you have collected.