Megosztás a következőn keresztül:


ModelDataCollector Osztály

Definiál egy modelladatgyűjtőt, amellyel adatokat gyűjthet egy Azure Machine Learning AKS WebService blobtárolóba történő üzembe helyezéséhez.

A ModelDataCollector osztály lehetővé teszi, hogy adatgyűjtőt definiáljon a modellekhez az Azure Machine Learning AKS üzemelő példányaiban. Az adatgyűjtő objektum modelladatok, például bemenetek és előrejelzések gyűjtésére használható a munkaterület blobtárolójában. Ha a modelladatok gyűjtése engedélyezve van az üzemelő példányban, az összegyűjtött adatok a következő tárolóelérési útvonalon jelennek meg CSV-fájlokként: /modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

ModelDataCollector konstruktor.

Ha a modelladatok gyűjtése engedélyezve van, a rendszer a következő tárolóelérési útra küld adatokat: /modeldata/{workspace}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

Öröklődés
builtins.object
ModelDataCollector

Konstruktor

ModelDataCollector(model_name, designation='default', feature_names=None, workspace='default/default/default', webservice_name='default', model_version='default', collection_name='default')

Paraméterek

Name Description
model_name
Kötelező
str

Annak a modellnek a neve, amelyről adatokat gyűjt.

designation
str

Az adatgyűjtési hely egyedi megjelölése. A támogatott megjelölések a következők: "bemenetek", "előrejelzések", "címkék", "jelek és általános".

Alapértelmezett érték: default
feature_names

A szolgáltatásnevek listája, amelyek a megadott CSV-fejlécekké válnak.

Alapértelmezett érték: None
workspace
str

Az Azure Machine Learning-munkaterület azonosítója {subscription_id}/{resource_group}/{workspace_name}. Ezt a rendszer automatikusan kitölti, ha a modellek az Azure Machine Learningen keresztül vannak üzembe helyezésre.

Alapértelmezett érték: default/default/default
webservice_name
str

Annak a webszolgáltatásnak a neve, amelyre a modell jelenleg telepítve van. Ezt a rendszer automatikusan kitölti, ha a modellek az Azure Machine Learningen keresztül vannak üzembe helyezésre.

Alapértelmezett érték: default
model_version
str

A modell verziója. Ezt a rendszer automatikusan kitölti, ha a modellek az Azure Machine Learningen keresztül vannak üzembe helyezésre.

Alapértelmezett érték: default
collection_name
str

Annak a fájlnak a neve, amelybe a ModelDataCollector adatokat gyűjt. Ezt a paramot csak a "jelek" és az "általános" megjelölések esetében kell figyelembe venni. A más típusú megjelölések esetében a fájlnév a megjelölés neve.

Alapértelmezett érték: default

Megjegyzések

A ModelDataCollector jelenleg csak az Azure Machine Learning AKS üzemelő példányaiban működik. A modelladatok üzembe helyezésen belüli gyűjtéséhez a következő lépéseket kell végrehajtania:

  • Frissítse a rendszerképet entry_script a ModelDataCollector objektum(ok) hozzáadásához és a collect utasítás(ok) gyűjtéséhez. Egy szkripten belül több ModelDataCollector objektumot is definiálhat, például egyet a bemenetekhez, egyet pedig ugyanarra a modellre vonatkozó előrejelzéshez. Az entry_script definiálásáról és használatáról az alábbi osztályban talál további információt: InferenceConfig

  • Állítsa be enable_data_collection jelzőt az AKS-modell üzembehelyezési lépésében. A modell üzembe helyezése után ez a jelző a modell adatgyűjtésének be- és kikapcsolására használható a entry_script módosítása nélkül. A modell üzembe helyezésének konfigurálásával kapcsolatos további részletekért tekintse meg a következő osztályt: AksWebservice

Az alábbi kódrészlet bemutatja, hogyan nézne ki egy entry_script a ModelDataCollection használatával:


   from azureml.monitoring import ModelDataCollector

   def init():
       global inputs_dc

       # Define your models and other scoring related objects
       # ...

       # Define input data collector to model "bestmodel". You need to define one object per model and
       # designation. For the sake of simplicity, we are only defining one object here.
       inputs_dc = ModelDataCollector(model_name="bestmodel", designation="inputs", feature_names=["f1", "f2"])

   def run(raw_data):
       global inputs_dc

       # Convert raw_data to proper format and run prediction
       # ...

       # Use inputs_dc to collect data. For any data that you want to collect, you need to call collect method
       # on respective ModelDataCollector objects. For the sake of simplicity, we are only working on a single
       # object.
       inputs_dc.collect(input_data)

A fenti példa néhány dolgot mutat be a ModelDataCollectorról. Először egy objektum van definiálva modellenként és megjelölésenként, ebben az esetben a "bestmodel" és a "inputs". Másodszor, a ModelDataCollector táblázatos adatokat vár bemenetként, és csv-fájlokként tartja karban az adatokat. A csv-fájlok fejlécének beállításához választható funkcióneveket is megadhat.

Az alábbi kódrészlet bemutatja, hogyan engedélyezhető a ModelDataCollector a modell üzembe helyezése során:


   webservice_config = AksWebservice.deploy_configuration(collect_model_data=True)
   Model.deploy(ws, "myservice", [model], inference_config, webservice_config, aks_cluster)

Az Azure Machine Learning AKS WebService üzembe helyezése és a pontozás a szolgáltatáson való futtatása után az összegyűjtött adatok megjelennek a munkaterület tárfiókjában. A ModelDataCollector particionálja az adatokat a könnyű hozzáférés és a használat érdekében. Az összes adat a "modeldata" tárolóban lesz összegyűjtve. A partíció formátuma a következő:

/modeldata/{workspace_name}/{webservice_name}/{model_name}/{model_version}/{designation}/{year}/{month}/{day}/{collection_name}.csv

Vegye figyelembe, hogy a fájlnévben collection_name csak a "jelek" és az "általános" megjelölések esetében lesznek figyelembe véve. A "bemenetek", az "előrejelzések" és a "címkék" fájlnév {designation}.csv lesznek beállítva.

Metódusok

add_correlations

Segédfüggvény, amellyel korrelációs fejléceket és értékeket adhat hozzá a megadott bemeneti adatokhoz.

collect

Adatok gyűjtése a tárolóba.

add_correlations

Segédfüggvény, amellyel korrelációs fejléceket és értékeket adhat hozzá a megadott bemeneti adatokhoz.

add_correlations(input_data, correlations)

Paraméterek

Name Description
input_data
Kötelező

A korrelációs fejlécek és értékek hozzáadásához használni kívánt adatok.

correlations
Kötelező

A collect() függvény által visszaadott korrelációs fejlécek és értékek.

Válaszok

Típus Description

input_data hozzáadott korrelációs fejlécekkel és értékekkel.

Megjegyzések

collect A meghívása után korrelációs fejléceket és értékeket ad vissza. Ilyenek például a kérésazonosító, az időbélyeg és a ModelDataCollector által létrehozott vagy paraméterként megadott egyedi korrelációs azonosító. Ezek az értékek felhasználhatók a különböző típusú adatok későbbi elemzésére és korrelációjára. Az alábbi példa bemutatja, hogyan adhat hozzá korrelációkat a bemeneti és az előrejelzési adatokhoz. Vegye figyelembe, hogy a "bemenetek" megjelöléstípus alapértelmezés szerint korrelációs adatokkal rendelkezik.


   # Define inputs_dc and predictions_dc for the same model and "inputs" and "predictions" designations
   # respectively
   # ...

   correlations = inputs_dc.collect(input_data)
   predictions_data = predictions_dc.add_correlations(predictions_data, correlations)
   predictions_dc.collect(predictions_data)

collect

Adatok gyűjtése a tárolóba.

collect(input_data, user_correlation_id='')

Paraméterek

Name Description
input_data
Kötelező

Az összegyűjtendő adatok. Adatkeret-típusok esetén, ha a fejléc szolgáltatásnevekkel rendelkezik, ez az információ az adat célhelyén jelenik meg anélkül, hogy explicit módon át kellene adni a szolgáltatásneveket a ModelDataCollector konstruktorban.

user_correlation_id
Kötelező
str

Egy opcionális korrelációs azonosítóval később korrelálhatja ezeket az adatokat.

Válaszok

Típus Description

Korrelációs fejléceket és értékeket tartalmazó szótár.

Attribútumok

AML_DC_BOUNDARY_HEADER

AML_DC_BOUNDARY_HEADER = '$aml_dc_boundary'

AML_DC_CORRELATION_HEADER

AML_DC_CORRELATION_HEADER = '$aml_dc_correlation_id'

AML_DC_SCORING_TIMESTAMP_HEADER

AML_DC_SCORING_TIMESTAMP_HEADER = '$aml_dc_scoring_timestamp'

AML_MODEL_NAME_HEADER

AML_MODEL_NAME_HEADER = '$aml_model_name'

AML_MODEL_VERSION_HEADER

AML_MODEL_VERSION_HEADER = '$aml_model_version'

AML_REQUEST_ID_HEADER

AML_REQUEST_ID_HEADER = '$aml_request_id'

AML_SERVICE_NAME_HEADER

AML_SERVICE_NAME_HEADER = '$aml_service_name'

AML_WORKSPACE_HEADER

AML_WORKSPACE_HEADER = '$aml_workspace'

dllpath

dllpath = 'C:\\hostedtoolcache\\windows\\Python\\3.9.13\\x64\\lib\\site-packages\\azureml\\monitoring\\tools\\modeldatacollector\\lib\\native\\Windows'