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.objectModelDataCollector
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ő
|
Annak a modellnek a neve, amelyről adatokat gyűjt. |
designation
|
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
|
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
|
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
|
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
|
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ő
|
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'