Samla in produktionsdata från modeller som distribuerats för inferens i realtid
GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)
I den här artikeln får du lära dig hur du använder Azure Mašinsko učenje Data-insamlare för att samla in produktionsinferensdata från en modell som distribueras till en Azure-Mašinsko učenje hanterad onlineslutpunkt eller en Kubernetes-slutpunkt online.
Du kan aktivera datainsamling för nya eller befintliga distributioner av onlineslutpunkter. Azure Mašinsko učenje datainsamlare loggar slutsatsdragningsdata i Azure Blob Storage. Data som samlas in med Python SDK registreras automatiskt som en datatillgång i din Azure Mašinsko učenje-arbetsyta. Den här datatillgången kan användas för modellövervakning.
Om du är intresserad av att samla in produktionsinferensdata för en MLflow-modell som distribueras till en realtidsslutpunkt kan du läsa Datainsamling för MLflow-modeller.
Förutsättningar
Innan du följer stegen i den här artikeln kontrollerar du att du har följande förutsättningar:
Azure CLI och
ml
tillägget till Azure CLI. Mer information finns i Installera, konfigurera och använda CLI (v2).Viktigt!
CLI-exemplen i den här artikeln förutsätter att du använder Bash-gränssnittet (eller det kompatibla). Till exempel från ett Linux-system eller Windows podsistem za Linux.
En Azure Machine Learning-arbetsyta. Om du inte har någon använder du stegen i Installera, konfigurera och använda CLI (v2) för att skapa en.
- Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att bevilja åtkomst till åtgärder i Azure Machine Learning. Om du vill utföra stegen i den här artikeln måste ditt användarkonto tilldelas rollen ägare eller deltagare för Azure Mašinsko učenje-arbetsytan eller en anpassad roll som tillåter
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Mer information finns i Hantera åtkomst till en Azure Mašinsko učenje-arbetsyta.
Ha en registrerad modell som du kan använda för distribution. Om du inte har någon registrerad modell kan du läsa Registrera din modell som en tillgång i Mašinsko učenje.
Skapa en Azure-Mašinsko učenje onlineslutpunkt. Om du inte har någon befintlig onlineslutpunkt kan du läsa Distribuera och poängsätta en maskininlärningsmodell med hjälp av en onlineslutpunkt.
Utföra anpassad loggning för modellövervakning
Med datainsamling med anpassad loggning kan du logga Pandas DataFrames direkt från ditt bedömningsskript före, under och efter eventuella datatransformeringar. Med anpassad loggning loggas tabelldata i realtid till din arbetsyta Blob Storage eller en anpassad bloblagringscontainer. Dina modellövervakare kan använda data från lagringen.
Uppdatera ditt bedömningsskript med anpassad loggningskod
Börja med att lägga till anpassad loggningskod i bedömningsskriptet (score.py
). För anpassad loggning behöver azureml-ai-monitoring
du paketet. Mer information om det här paketet finns på den omfattande PyPI-sidan för datainsamlarens SDK.
azureml-ai-monitoring
Importera paketet genom att lägga till följande rad överst i bedömningsskriptet:from azureml.ai.monitoring import Collector
Deklarera dina datainsamlingsvariabler (upp till fem av dem) i din
init()
funktion:Kommentar
Om du använder namnen
model_inputs
ochmodel_outputs
för dinaCollector
objekt identifierar modellövervakningssystemet automatiskt de automatiskt registrerade datatillgångarna för att ge en smidigare modellövervakning.global inputs_collector, outputs_collector inputs_collector = Collector(name='model_inputs') outputs_collector = Collector(name='model_outputs')
Som standard genererar Azure Mašinsko učenje ett undantag om det uppstår ett fel under datainsamlingen. Du kan också använda parametern
on_error
för att ange en funktion som ska köras om loggningsfel inträffar. Om du till exempel använder parameternon_error
i följande kod loggar Azure Mašinsko učenje felet i stället för att utlösa ett undantag:inputs_collector = Collector(name='model_inputs', on_error=lambda e: logging.info("ex:{}".format(e)))
I din
run()
funktion använder ducollect()
funktionen för att logga DataFrames före och efter bedömning.context
Returneras från det första anropet tillcollect()
och innehåller information som korrelerar modellindata och modellutdata senare.context = inputs_collector.collect(data) result = model.predict(data) outputs_collector.collect(result, context)
Kommentar
API:et
collect()
loggar för närvarande endast Pandas DataFrames. Om data inte finns i en DataFrame när de skickas tillcollect()
loggas de inte till lagringen och ett fel rapporteras.
Följande kod är ett exempel på ett fullständigt bedömningsskript (score.py
) som använder den anpassade python-SDK:t för loggning.
import pandas as pd
import json
from azureml.ai.monitoring import Collector
def init():
global inputs_collector, outputs_collector, inputs_outputs_collector
# instantiate collectors with appropriate names, make sure align with deployment spec
inputs_collector = Collector(name='model_inputs')
outputs_collector = Collector(name='model_outputs')
def run(data):
# json data: { "data" : { "col1": [1,2,3], "col2": [2,3,4] } }
pdf_data = preprocess(json.loads(data))
# tabular data: { "col1": [1,2,3], "col2": [2,3,4] }
input_df = pd.DataFrame(pdf_data)
# collect inputs data, store correlation_context
context = inputs_collector.collect(input_df)
# perform scoring with pandas Dataframe, return value is also pandas Dataframe
output_df = predict(input_df)
# collect outputs data, pass in correlation_context so inputs and outputs data can be correlated later
outputs_collector.collect(output_df, context)
return output_df.to_dict()
def preprocess(json_data):
# preprocess the payload to ensure it can be converted to pandas DataFrame
return json_data["data"]
def predict(input_df):
# process input and return with outputs
...
return output_df
Uppdatera bedömningsskriptet för att logga anpassade unika ID:er
Förutom att logga Pandas DataFrames direkt i ditt bedömningsskript kan du logga data med unika ID:er som du väljer. Dessa ID:er kan komma från ditt program, ett externt system eller så kan du generera dem. Om du inte anger ett anpassat ID, enligt beskrivningen i det här avsnittet, skapar datainsamlaren automatiskt ett unikt correlationid
för att hjälpa dig att korrelera modellens indata och utdata senare. Om du anger ett anpassat ID correlationid
innehåller fältet i de loggade data värdet för ditt angivna anpassade ID.
Slutför först stegen i föregående avsnitt och importera
azureml.ai.monitoring.context
sedan paketet genom att lägga till följande rad i bedömningsskriptet:from azureml.ai.monitoring.context import BasicCorrelationContext
I bedömningsskriptet instansierar du ett
BasicCorrelationContext
objekt och skickar det du vill logga för denid
raden. Vi rekommenderar att dettaid
är ett unikt ID från systemet, så att du unikt kan identifiera varje loggad rad från bloblagringen. Skicka det här objektet till API-anropetcollect()
som en parameter:# create a context with a custom unique id artificial_context = BasicCorrelationContext(id='test') # collect inputs data, store correlation_context context = inputs_collector.collect(input_df, artificial_context)
Se till att du skickar in kontexten i din
outputs_collector
så att dina modellindata och utdata har samma unika ID loggat med dem, och de kan enkelt korreleras senare:# collect outputs data, pass in context so inputs and outputs data can be correlated later outputs_collector.collect(output_df, context)
Följande kod är ett exempel på ett fullständigt bedömningsskript (score.py
) som loggar anpassade unika ID:er.
import pandas as pd
import json
from azureml.ai.monitoring import Collector
from azureml.ai.monitoring.context import BasicCorrelationContext
def init():
global inputs_collector, outputs_collector, inputs_outputs_collector
# instantiate collectors with appropriate names, make sure align with deployment spec
inputs_collector = Collector(name='model_inputs')
outputs_collector = Collector(name='model_outputs')
def run(data):
# json data: { "data" : { "col1": [1,2,3], "col2": [2,3,4] } }
pdf_data = preprocess(json.loads(data))
# tabular data: { "col1": [1,2,3], "col2": [2,3,4] }
input_df = pd.DataFrame(pdf_data)
# create a context with a custom unique id
artificial_context = BasicCorrelationContext(id='test')
# collect inputs data, store correlation_context
context = inputs_collector.collect(input_df, artificial_context)
# perform scoring with pandas Dataframe, return value is also pandas Dataframe
output_df = predict(input_df)
# collect outputs data, pass in context so inputs and outputs data can be correlated later
outputs_collector.collect(output_df, context)
return output_df.to_dict()
def preprocess(json_data):
# preprocess the payload to ensure it can be converted to pandas DataFrame
return json_data["data"]
def predict(input_df):
# process input and return with outputs
...
return output_df
Samla in data för övervakning av modellprestanda
Om du vill använda dina insamlade data för övervakning av modellprestanda är det viktigt att varje loggad rad har en unik correlationid
som kan användas för att korrelera data med mark sanningsdata när sådana data blir tillgängliga. Datainsamlaren skapar automatiskt ett unikt correlationid
för varje loggad rad och inkluderar detta automatiskt genererade ID i correlationid
fältet i JSON-objektet. Mer information om JSON-schemat finns i Lagra insamlade data i Blob Storage.
Om du vill använda ditt eget unika ID för loggning med dina produktionsdata rekommenderar vi att du loggar detta ID som en separat kolumn i din Pandas DataFrame, eftersom datainsamlaren batchar begäranden som ligger nära varandra. Genom att logga correlationid
som en separat kolumn är den lätt tillgänglig nedströms för integrering med grund sanningsdata.
Uppdatera dina beroenden
Innan du kan skapa distributionen med det uppdaterade bedömningsskriptet måste du skapa din miljö med basavbildningen mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
och lämpliga conda-beroenden. Därefter kan du skapa miljön med hjälp av specifikationen i följande YAML.
channels:
- conda-forge
dependencies:
- python=3.8
- pip=22.3.1
- pip:
- azureml-defaults==1.38.0
- azureml-ai-monitoring~=0.1.0b1
name: model-env
Uppdatera din distributions-YAML
Därefter skapar du distributions-YAML. Om du vill skapa distributionens YAML tar du med data_collector
attributet och aktiverar datainsamling för objekten Collector
och model_inputs
model_outputs
, som du instansierade tidigare via den anpassade loggnings-Python SDK:t:
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
Följande kod är ett exempel på en omfattande distributions-YAML för en hanterad onlineslutpunktsdistribution. Du bör uppdatera distributionens YAML enligt ditt scenario. Fler exempel på hur du formaterar din distributions YAML för inferensdataloggning finns i Azure-modelldatainsamlarexempel.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my_endpoint
model: azureml:iris_mlflow_model@latest
environment:
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: model/conda.yaml
code_configuration:
code: scripts
scoring_script: score.py
instance_type: Standard_F2s_v2
instance_count: 1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
Du kan också justera följande extra parametrar för :data_collector
data_collector.rolling_rate
: Hastigheten för att partitioneras data i lagringen. Välj mellan värdena:Minute
,Hour
,Day
,Month
ellerYear
.data_collector.sampling_rate
: Procentandelen, som representeras som ett decimaltal, för data som ska samlas in. Till exempel representerar värdet1.0
för att samla in 100 % av data.data_collector.collections.<collection_name>.data.name
: Namnet på den datatillgång som ska registreras med de insamlade data.data_collector.collections.<collection_name>.data.path
: Den fullständiga Azure Mašinsko učenje datalagersökväg där insamlade data ska registreras som en datatillgång.data_collector.collections.<collection_name>.data.version
: Den version av datatillgången som ska registreras med insamlade data i Blob Storage.
Samla in data till en anpassad bloblagringscontainer
Du kan använda datainsamlaren för att samla in dina produktionsinferensdata till en anpassad bloblagringscontainer genom att följa dessa steg:
Anslut lagringscontainern till ett Azure Mašinsko učenje-datalager. Mer information om hur du ansluter lagringscontainern till Azure Mašinsko učenje datalager finns i skapa datalager.
Kontrollera att din Azure Mašinsko učenje-slutpunkt har de behörigheter som krävs för att skriva till datalagringsmålet.
Datainsamlaren stöder både systemtilldelade hanterade identiteter (SAMIs) och användartilldelade hanterade identiteter (UAMIs). Lägg till identiteten i slutpunkten. Tilldela rollen till den
Storage Blob Data Contributor
här identiteten med bloblagringscontainern som ska användas som datamål. Information om hur du använder hanterade identiteter i Azure finns i tilldela Azure-roller till en hanterad identitet.Uppdatera din distributions-YAML så att den
data
inkluderar egenskapen i varje samling.- Den obligatoriska parametern,
data.name
, anger namnet på den datatillgång som ska registreras med de insamlade data. - Den obligatoriska parametern,
data.path
, anger den fullständigt bildade Azure Mašinsko učenje datalagersökväg som är ansluten till din Azure Blob Storage-container. - Den valfria parametern,
data.version
, anger versionen av datatillgången (standardvärdet är 1).
Följande YAML-konfiguration visar ett exempel på hur du
data
inkluderar egenskapen i varje samling.data_collector: collections: model_inputs: enabled: 'True' data: name: my_model_inputs_data_asset path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs version: 1 model_outputs: enabled: 'True' data: name: my_model_outputs_data_asset path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs version: 1
Kommentar
Du kan också använda parametern
data.path
för att peka på datalager i olika Azure-prenumerationer genom att ange en sökväg som följer formatet:azureml://subscriptions/<sub_id>/resourcegroups/<rg_name>/workspaces/<ws_name>/datastores/<datastore_name>/paths/<path>
- Den obligatoriska parametern,
Skapa din distribution med datainsamling
Distribuera modellen med anpassad loggning aktiverad:
$ az ml online-deployment create -f deployment.YAML
Mer information om hur du formaterar din distributions YAML för datainsamling med Kubernetes onlineslutpunkter finns i CLI (v2) Azure Arc-aktiverat YAML-schema för kubernetes-onlinedistribution.
Mer information om hur du formaterar din distributions YAML för datainsamling med hanterade onlineslutpunkter finns i YAML-schema för cli-hanterad onlinedistribution (v2).
Utföra nyttolastloggning
Förutom anpassad loggning med den angivna Python SDK:t kan du samla in http-nyttolastdata för begäran och svar direkt utan att behöva utöka ditt bedömningsskript (score.py
).
Om du vill aktivera nyttolastloggning använder du namnen
request
ochresponse
: i din distributions-YAML$schema: http://azureml/sdk-2-0/OnlineDeployment.json endpoint_name: my_endpoint name: blue model: azureml:my-model-m1:1 environment: azureml:env-m1:1 data_collector: collections: request: enabled: 'True' response: enabled: 'True'
Distribuera modellen med nyttolastloggning aktiverad:
$ az ml online-deployment create -f deployment.YAML
Med nyttolastloggning är de insamlade data inte garanterade att de är i tabellformat. Om du vill använda insamlade nyttolastdata med modellövervakning måste du därför ange en förbearbetningskomponent för att göra datafliken. Om du är intresserad av en sömlös modellövervakning rekommenderar vi att du använder den anpassade python-SDK:t för loggning.
När distributionen används flödar de insamlade data till din arbetsytas Blob Storage. Följande JSON-kod är ett exempel på en HTTP-begäran som samlas in:
{"specversion":"1.0",
"id":"19790b87-a63c-4295-9a67-febb2d8fbce0",
"source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterenvws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.request",
"datacontenttype":"application/json",
"time":"2022-05-25T08:59:48Z",
"data":{"data": [ [1,2,3,4,5,6,7,8,9,10], [10,9,8,7,6,5,4,3,2,1]]},
"path":"/score",
"method":"POST",
"contentrange":"bytes 0-59/*",
"correlationid":"aaaa0000-bb11-2222-33cc-444444dddddd","xrequestid":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Och följande JSON-kod är ett annat exempel på ett HTTP-svar som samlats in:
{"specversion":"1.0",
"id":"bbd80e51-8855-455f-a719-970023f41e7d",
"source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterenvws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.response",
"datacontenttype":"application/json",
"time":"2022-05-25T08:59:48Z",
"data":[11055.977245525679, 4503.079536107787],
"contentrange":"bytes 0-38/39",
"correlationid":"aaaa0000-bb11-2222-33cc-444444dddddd","xrequestid":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Lagra insamlade data i bloblagring
Med datainsamling kan du logga produktionsinferensdata till valfri bloblagringsmål. Inställningarna för datamål kan konfigureras på collection_name
nivån.
Utdata/format för Blob Storage:
Som standard lagras insamlade data på följande sökväg i din arbetsytas Blob Storage:
azureml://datastores/workspaceblobstore/paths/modelDataCollector
.Den sista sökvägen i bloben läggs till med
{endpoint_name}/{deployment_name}/{collection_name}/{yyyy}/{MM}/{dd}/{HH}/{instance_id}.jsonl
.Varje rad i filen är ett JSON-objekt som representerar en enda slutsatsdragningsbegäran/svar som loggades.
Kommentar
collection_name
refererar till namnet på datainsamlingen (t.ex. model_inputs
eller model_outputs
).
instance_id
är ett unikt ID som identifierar gruppering av data som loggades.
Insamlade data följer följande JSON-schema. Insamlade data är tillgängliga från data
nyckeln och ytterligare metadata tillhandahålls.
{"specversion":"1.0",
"id":"725aa8af-0834-415c-aaf5-c76d0c08f694",
"source":"/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/mire2etesting/providers/Microsoft.MachineLearningServices/workspaces/mirmasterws/onlineEndpoints/localdev-endpoint/deployments/localdev",
"type":"azureml.inference.inputs",
"datacontenttype":"application/json",
"time":"2022-12-01T08:51:30Z",
"data":[{"label":"DRUG","pattern":"aspirin"},{"label":"DRUG","pattern":"trazodone"},{"label":"DRUG","pattern":"citalopram"}],
"correlationid":"bbbb1111-cc22-3333-44dd-555555eeeeee","xrequestid":"bbbb1111-cc22-3333-44dd-555555eeeeee",
"modelversion":"default",
"collectdatatype":"pandas.core.frame.DataFrame",
"agent":"monitoring-sdk/0.1.2",
"contentrange":"bytes 0-116/117"}
Dricks
Radbrytningar visas endast för läsbarhet. I dina insamlade .jsonl-filer kommer det inte att finnas några radbrytningar.
Lagra stora nyttolaster
Om nyttolasten för dina data är större än 4 MB, kommer det att finnas en händelse i filen som finns i {instance_id}.jsonl
{endpoint_name}/{deployment_name}/request/.../{instance_id}.jsonl
sökvägen som pekar på en rådatafilsökväg, som bör ha följande sökväg: blob_url/{blob_container}/{blob_path}/{endpoint_name}/{deployment_name}/{rolled_time}/{instance_id}.jsonl
. De insamlade data kommer att finnas på den här sökvägen.
Lagra binära data
Med insamlade binära data visar vi rådatafilen direkt, med instance_id
som filnamn. Binära data placeras i samma mapp som sökvägen för källgruppen för begäran, baserat på rolling_rate
. I följande exempel visas sökvägen i datafältet. Formatet är json och radbrytningar visas endast för läsbarhet:
{
"specversion":"1.0",
"id":"ba993308-f630-4fe2-833f-481b2e4d169a",
"source":"/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces/ws/onlineEndpoints/ep/deployments/dp",
"type":"azureml.inference.request",
"datacontenttype":"text/plain",
"time":"2022-02-28T08:41:07Z",
"data":"https://masterws0373607518.blob.core.windows.net/modeldata/mdc/%5Byear%5D%5Bmonth%5D%5Bday%5D-%5Bhour%5D_%5Bminute%5D/ba993308-f630-4fe2-833f-481b2e4d169a",
"path":"/score?size=1",
"method":"POST",
"contentrange":"bytes 0-80770/80771",
"datainblob":"true"
}
Batchbearbetning av datainsamlare
Om begäranden skickas inom korta tidsintervall för varandra, batchar datainsamlaren dem tillsammans till samma JSON-objekt. Om du till exempel kör ett skript för att skicka exempeldata till slutpunkten och distributionen har datainsamling aktiverad, kan vissa begäranden batchas ihop, beroende på tidsintervallet mellan dem. Om du använder datainsamling med Azure Mašinsko učenje modellövervakning hanterar modellövervakningstjänsten varje begäran oberoende av varandra. Men om du förväntar dig att varje loggad rad med data ska ha sin egen unika correlationid
kan du inkludera correlationid
som en kolumn i pandas-dataramen som du loggar med datainsamlaren. Mer information om hur du kan inkludera ditt unika correlationid
som en kolumn i Pandas DataFrame finns i Samla in data för övervakning av modellprestanda.
Här är ett exempel på två loggade begäranden som batchats tillsammans:
{"specversion":"1.0",
"id":"720b8867-54a2-4876-80eb-1fd6a8975770",
"source":"/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/rg-bozhlinmomoignite/providers/Microsoft.MachineLearningServices/workspaces/momo-demo-ws/onlineEndpoints/credit-default-mdc-testing-4/deployments/main2",
"type":"azureml.inference.model_inputs",
"datacontenttype":"application/json",
"time":"2024-03-05T18:16:25Z",
"data":[{"LIMIT_BAL":502970,"AGE":54,"BILL_AMT1":308068,"BILL_AMT2":381402,"BILL_AMT3":442625,"BILL_AMT4":320399,"BILL_AMT5":322616,"BILL_AMT6":397534,"PAY_AMT1":17987,"PAY_AMT2":78764,"PAY_AMT3":26067,"PAY_AMT4":24102,"PAY_AMT5":-1155,"PAY_AMT6":2154,"SEX":2,"EDUCATION":2,"MARRIAGE":2,"PAY_0":0,"PAY_2":0,"PAY_3":0,"PAY_4":0,"PAY_5":0,"PAY_6":0},{"LIMIT_BAL":293458,"AGE":35,"BILL_AMT1":74131,"BILL_AMT2":-71014,"BILL_AMT3":59284,"BILL_AMT4":98926,"BILL_AMT5":110,"BILL_AMT6":1033,"PAY_AMT1":-3926,"PAY_AMT2":-12729,"PAY_AMT3":17405,"PAY_AMT4":25110,"PAY_AMT5":7051,"PAY_AMT6":1623,"SEX":1,"EDUCATION":3,"MARRIAGE":2,"PAY_0":-2,"PAY_2":-2,"PAY_3":-2,"PAY_4":-2,"PAY_5":-1,"PAY_6":-1}],
"contentrange":"bytes 0-6794/6795",
"correlationid":"test",
"xrequestid":"test",
"modelversion":"default",
"collectdatatype":"pandas.core.frame.DataFrame",
"agent":"azureml-ai-monitoring/0.1.0b4"}
Visa data i studiogränssnittet
Så här visar du insamlade data i Blob Storage från studiogränssnittet:
Gå till fliken Data på din Azure Mašinsko učenje-arbetsyta:
Gå till Datalager och välj ditt arbetsyteblobarkiv (standard):
Använd menyn Bläddra för att visa insamlade produktionsdata:
Samla in data för MLflow-modeller
Om du distribuerar en MLflow-modell till en Azure Mašinsko učenje onlineslutpunkt kan du aktivera datainsamling för produktionsinferens med enkel växling i studiogränssnittet. Om datainsamlingen är aktiverad Mašinsko učenje Azure automatiskt instrumentera ditt bedömningsskript med anpassad loggningskod för att säkerställa att produktionsdata loggas till din arbetsytas Blob Storage. Dina modellövervakare kan sedan använda data för att övervaka prestanda för din MLflow-modell i produktion.
När du konfigurerar distributionen av din modell kan du aktivera insamling av produktionsdata. Under fliken Distribution väljer du Aktiverad för datainsamling.
När du har aktiverat datainsamling loggas data för produktionsinferens till Azure Mašinsko učenje-arbetsytan Blob Storage och två datatillgångar skapas med namn <endpoint_name>-<deployment_name>-model_inputs
och <endpoint_name>-<deployment_name>-model_outputs
. Dessa datatillgångar uppdateras i realtid när du använder distributionen i produktion. Dina modellövervakare kan sedan använda datatillgångarna för att övervaka modellens prestanda i produktion.