Dela via


Samla in data från modeller i produktion

GÄLLER FÖR: Python SDK azureml v1

Den här artikeln visar hur du samlar in data från en Azure Machine Learning-modell som distribueras i ett AKS-kluster (Azure Kubernetes Service). De insamlade data lagras sedan i Azure Blob Storage.

När insamlingen är aktiverad hjälper de data du samlar in dig:

  • Övervaka dataavvikelser på de produktionsdata som du samlar in.

  • Analysera insamlade data med Hjälp av Power BI eller Azure Databricks

  • Fatta bättre beslut om när du ska träna om eller optimera din modell.

  • Träna om din modell med insamlade data.

Begränsningar

  • Funktionen för modelldatainsamling kan bara fungera med Ubuntu 18.04-avbildningen.

Viktigt!

Från och med 2023-03-10 är Ubuntu 18.04-avbildningen inaktuell. Stöd för Ubuntu 18.04-bilder tas bort från och med januari 2023 när det når EOL den 30 april 2023.

MDC-funktionen är inte kompatibel med någon annan avbildning än Ubuntu 18.04, som inte är tillgänglig när Ubuntu 18.04-avbildningen är inaktuell.

mMore-information som du kan referera till:

Kommentar

Datainsamlingsfunktionen är för närvarande i förhandsversion. Förhandsgranskningsfunktioner rekommenderas inte för produktionsarbetsbelastningar.

Vad samlas in och vart det går

Följande data kan samlas in:

  • Modellera indata från webbtjänster som distribuerats i ett AKS-kluster. Röstljud, bilder och video samlas inte in.

  • Modellera förutsägelser med hjälp av produktionsindata.

Kommentar

Föraggregering och förberäkningar av dessa data ingår för närvarande inte i insamlingstjänsten.

Utdata sparas i Blob Storage. Eftersom data läggs till i Blob Storage kan du välja ditt favoritverktyg för att köra analysen.

Sökvägen till utdata i bloben följer den här syntaxen:

/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

Kommentar

I versioner av Azure Machine Learning SDK för Python tidigare än version 0.1.0a16 designation heter identifierargumentet . Om du har utvecklat koden med en tidigare version måste du uppdatera den i enlighet med detta.

Förutsättningar

Aktivera datainsamling

Du kan aktivera datainsamling oavsett vilken modell du distribuerar via Azure Machine Learning eller andra verktyg.

Om du vill aktivera datainsamling måste du:

  1. Öppna bedömningsfilen.

  2. Lägg till följande kod överst i filen:

    from azureml.monitoring import ModelDataCollector
    
  3. Deklarera dina datainsamlingsvariabler i din init funktion:

    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"])
    

    CorrelationId är en valfri parameter. Du behöver inte använda den om din modell inte kräver det. Med CorrelationId kan du enklare mappa med andra data, till exempel LoanNumber eller CustomerId.

    Parametern Identifierare används senare för att skapa mappstrukturen i bloben. Du kan använda den för att skilja rådata från bearbetade data.

  4. Lägg till följande kodrader i run(input_df) funktionen:

    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 prediction data into Azure Blob
    
  5. Datainsamling anges inte automatiskt till true när du distribuerar en tjänst i AKS. Uppdatera konfigurationsfilen, som i följande exempel:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    Du kan också aktivera Application Insights för tjänstövervakning genom att ändra den här konfigurationen:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Information om hur du skapar en ny avbildning och distribuerar maskininlärningsmodellen finns i Distribuera maskininlärningsmodeller till Azure.

  7. Lägg till pip-paketet "Azure-Monitoring" i webbtjänstmiljöns conda-dependencies:

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

Inaktivera datainsamling

Du kan när som helst sluta samla in data. Använd Python-kod för att inaktivera datainsamling.

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

Verifiera och analysera dina data

Du kan välja ett verktyg som du föredrar för att analysera data som samlas in i bloblagringen.

Få snabb åtkomst till dina blobdata

  1. Logga in på Azure-portalen.

  2. Öppna arbetsytan.

  3. Välj Storage.

    Skärmbild som visar val av lagringsalternativet.

  4. Följ sökvägen till blobens utdata med den här syntaxen:

    /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
    

Analysera modelldata med Power BI

  1. Ladda ned och öppna Power BI Desktop.

  2. Välj Hämta data och välj Azure Blob Storage.

    Skärmbild som visar konfigurationen av Power BI-bloben.

  3. Lägg till lagringskontots namn och ange lagringsnyckeln. Du hittar den här informationen genom att välja Inställningar>Åtkomstnycklar i bloben.

  4. Välj modelldatacontainern och välj Redigera.

    Skärmbild som visar Power BI Navigator.

  5. I frågeredigeraren klickar du under kolumnen Namn och lägger till ditt lagringskonto.

  6. Ange modellsökvägen i filtret. Om du bara vill titta på filer från ett visst år eller en viss månad expanderar du bara filtersökvägen. Om du till exempel bara vill titta på marsdata använder du den här filtersökvägen:

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

  7. Filtrera de data som är relevanta för dig baserat på namnvärden . Om du har lagrat förutsägelser och indata måste du skapa en fråga för var och en.

  8. Välj de nedåtriktade dubbelpilarna bredvid kolumnrubriken Innehåll för att kombinera filerna.

    Skärmbild som visar Power BI-innehållet.

  9. Välj OK. Förinläsningarna av data.

    Skärmbild som visar Kombinera filer i Power BI.

  10. Välj Stäng och tillämpa.

  11. Om du har lagt till indata och förutsägelser sorteras dina tabeller automatiskt efter RequestId-värden .

  12. Börja skapa anpassade rapporter på dina modelldata.

Analysera modelldata med Hjälp av Azure Databricks

  1. Skapa en Azure Databricks-arbetsyta.

  2. Gå till databricks-arbetsytan.

  3. I databricks-arbetsytan väljer du Ladda upp data.

    Skärmbild som visar alternativet Databricks Upload Data (Databricks Upload Data).

  4. Välj Skapa ny tabell och välj Andra datakällor>Azure Blob Storage>Skapa tabell i Notebook.

    Skärmbild som visar hur databricks-tabellen skapas.

  5. Uppdatera platsen för dina data. Här är ett exempel:

    file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/*/*/data.csv" 
    file_type = "csv"
    

    Skärmbild som visar konfigurationen av Databricks.

  6. Följ stegen i mallen för att visa och analysera dina data.

Nästa steg

Identifiera dataavvikelser på de data som du har samlat in.