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
Ha nem rendelkezik Azure-előfizetéssel, mindössze néhány perc alatt létrehozhat egy ingyenes fiókot a virtuális gép létrehozásának megkezdése előtt.If you don't have an Azure subscription, create a free account before you begin.
Telepíteni kell egy Azure Machine Learning munkaterületet, a parancsfájlokat tartalmazó helyi könyvtárat és a Pythonhoz készült Azure Machine Learning SDK-t.An Azure Machine Learning workspace, a local directory containing your scripts, and the Azure Machine Learning SDK for Python must be installed. A telepítésének megismeréséhez tekintse meg a fejlesztési környezet konfigurálásacímű témakört.To learn how to install them, see How to configure a development environment.
Szüksége van egy betanított gépi tanulási modellre, amelyet AK-ra kell telepíteni.You need a trained machine-learning model to be deployed to AKS. Ha nem rendelkezik modellel, tekintse meg a betanítási modell besorolása című oktatóanyagot.If you don't have a model, see the Train image classification model tutorial.
Szüksége van egy AK-fürtre.You need an AKS cluster. További információ a létrehozásáról és telepítéséről: a telepítés és a hol.For information on how to create one and deploy to it, see How to deploy and where.
Állítsa be a környezetet , és telepítse a Azure Machine learning monitoring SDK-t.Set up your environment and install the Azure Machine Learning Monitoring SDK.
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:
Nyissa meg a pontozási fájlt.Open the scoring file.
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
Deklarálja az adatgyűjtés változóit a
init
függvényben:Declare your data collection variables in yourinit
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.
Adja hozzá a következő sornyi kódot a
run(input_df)
függvényhez:Add the following lines of code to therun(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
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)
Ú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.
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
Jelentkezzen be Azure Portalba.Sign in to Azure portal.
Nyissa meg a munkaterületet.Open your workspace.
Válassza a tárterület lehetőséget.Select Storage.
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
Töltse le és nyissa meg Power bi Desktop.Download and open Power BI Desktop.
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.
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.
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.
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.
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
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.
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.
Válassza az OK lehetőséget.Select OK. Az adatelőre betöltött sorok.The data preloads.
Válassza a Bezárás és alkalmaz lehetőséget.Select Close and Apply.
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.
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
Hozzon létre egy Azure Databricks munkaterületet.Create an Azure Databricks workspace.
Nyissa meg a Databricks-munkaterületet.Go to your Databricks workspace.
A Databricks munkaterületen válassza az adatok feltöltése lehetőséget.In your Databricks workspace, select Upload Data.
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.
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"
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.