Monitorování výkonu modelů nasazených do produkčního prostředí

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Naučte se používat monitorování modelů služby Azure Machine Učení k nepřetržitému sledování výkonu modelů strojového učení v produkčním prostředí. Monitorování modelů poskytuje široký přehled o monitorovacích signálech a upozorněních na potenciální problémy. Když monitorujete signály a metriky výkonu modelů v produkčním prostředí, můžete kriticky vyhodnotit související rizika a identifikovat slepá místa, která by mohla nepříznivě ovlivnit vaši firmu.

V tomto článku se naučíte provádět následující úlohy:

  • Nastavení připraveného a pokročilého monitorování pro modely nasazené do azure Machine Učení online koncových bodů
  • Monitorování metrik výkonu pro modely v produkčním prostředí
  • Monitorování modelů nasazených mimo službu Azure Machine Učení nebo nasazených do koncových bodů služby Azure Machine Učení batch
  • Nastavení monitorování modelů s využitím vlastních signálů a metrik
  • Interpretace výsledků monitorování
  • Integrace monitorování modelu Učení Azure machine s Azure Event Gridem

Požadavky

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Řízení přístupu na základě role v Azure (Azure RBAC) slouží k udělení přístupu k operacím ve službě Azure Machine Learning. Pokud chcete provést kroky v tomto článku, musí mít váš uživatelský účet přiřazenou roli vlastníka nebo přispěvatele pro pracovní prostor Učení Azure nebo vlastní roli, která umožňuje Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. Další informace najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Učení.

  • Pokud chcete monitorovat model nasazený do online koncového bodu Azure Machine Učení (spravovaný online koncový bod nebo online koncový bod Kubernetes), nezapomeňte:

  • Pokud chcete monitorovat model nasazený na počítač Azure Učení dávkovém koncovém bodu nebo nasazeného mimo službu Azure Machine Učení, nezapomeňte:

    • Mít prostředky ke shromažďování produkčních dat a jejich registraci jako datového prostředku azure machine Učení.
    • Průběžně aktualizujte zaregistrovaný datový asset pro monitorování modelu.
    • (Doporučeno) Zaregistrujte model v pracovním prostoru Azure Machine Učení pro sledování rodokmenu.

Důležité

Úlohy monitorování modelů jsou naplánované tak, aby běžely na bezserverových výpočetních fondech Sparku s podporou následujících typů instancí virtuálních počítačů: Standard_E4s_v3, , Standard_E8s_v3Standard_E16s_v3, Standard_E32s_v3a Standard_E64s_v3. Typ instance virtuálního počítače můžete vybrat s create_monitor.compute.instance_type vlastností v konfiguraci YAML nebo v rozevíracím seznamu v studio Azure Machine Learning.

Nastavení připraveného monitorování modelů

Předpokládejme, že model nasadíte do produkčního prostředí v Učení online koncovém bodu Azure a povolíte shromažďování dat v době nasazení. V tomto scénáři služba Azure Machine Učení shromažďuje produkční data odvozování a automaticky je ukládá do služby Microsoft Azure Blob Storage. Pak můžete pomocí monitorování modelu Azure Machine Učení průběžně monitorovat tato produkční data odvozování.

K předběžnému nastavení monitorování modelů můžete použít Azure CLI, Sadu Python SDK nebo studio. Předefinovaná konfigurace monitorování modelu poskytuje následující možnosti monitorování:

  • Azure Machine Učení automaticky detekuje datovou sadu pro odvozování produkčního prostředí přidruženou k online nasazení služby Azure Machine Učení a používá datovou sadu pro monitorování modelu.
  • Referenční datová sada porovnání je nastavená jako nedávná datová sada pro odvozovací sadu v minulém produkčním prostředí.
  • Nastavení monitorování automaticky zahrnuje a sleduje integrované monitorovací signály: posun dat, posun předpovědi a kvalitu dat. Pro každý monitorovací signál používá Azure Machine Učení:
    • poslední datová sada pro odvození v minulém produkčním prostředí jako referenční datová sada porovnání
    • inteligentní výchozí hodnoty pro metriky a prahové hodnoty
  • Úloha monitorování se plánuje spouštět každý den v 3:15 (v tomto příkladu), aby získala monitorovací signály a vyhodnotila každý výsledek metriky s odpovídající prahovou hodnotou. Když dojde k překročení jakékoli prahové hodnoty, azure machine Učení odešle uživateli, který monitor nastavil, e-mail s upozorněním.

Monitorování modelu azure Machine Učení používá az ml schedule k naplánování úlohy monitorování. Předsefinované monitorování modelu můžete vytvořit pomocí následujícího příkazu rozhraní příkazového řádku a definice YAML:

az ml schedule create -f ./out-of-box-monitoring.yaml

Následující YAML obsahuje definici pro předběžné monitorování modelu.

# out-of-box-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: credit_default_model_monitoring
display_name: Credit default model monitoring
description: Credit default model monitoring setup with minimal configurations

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:

  compute: # specify a spark compute for monitoring job
    instance_type: standard_e4s_v3
    runtime_version: "3.3"

  monitoring_target: 
    ml_task: classification # model task type: [classification, regression, question_answering]
    endpoint_deployment_id: azureml:credit-default:main # azureml endpoint deployment id

  alert_notification: # emails to get alerts
    emails:
      - abc@example.com
      - def@example.com

Nastavení rozšířeného monitorování modelů

Azure Machine Učení poskytuje mnoho funkcí pro průběžné monitorování modelů. Úplný seznam těchto funkcí najdete v tématu Možnosti monitorování modelů. V mnoha případech je potřeba nastavit monitorování modelů s pokročilými možnostmi monitorování. V následujících částech nastavíte monitorování modelů s těmito funkcemi:

  • Použití více monitorovacích signálů pro široké zobrazení.
  • Použití historických trénovacích dat modelu nebo ověřovacích dat jako referenční datová sada porovnání.
  • Monitorování nejdůležitějších N nejdůležitějších funkcí a jednotlivých funkcí

Konfigurace důležitosti funkcí

Důležitost funkce představuje relativní důležitost jednotlivých vstupních funkcí pro výstup modelu. Například temperature může být důležitější pro predikci modelu v porovnání s elevation. Když povolíte důležitost funkcí, získáte přehled o funkcích, které nechcete, aby se v produkčním prostředí zobrazovaly problémy s kvalitou dat.

Pokud chcete povolit důležitost funkce u jakéhokoli signálu (například posunu dat nebo kvality dat), musíte poskytnout:

  • Trénovací datová sada jako reference_data datová sada
  • Vlastnost reference_data.data_column_names.target_column , což je název výstupního nebo prediktivního sloupce modelu.

Po povolení důležitosti funkcí uvidíte důležitost funkcí pro každou funkci, kterou monitorujete, v uživatelském rozhraní sady Azure Machine Učení model monitoring studio.

K pokročilému nastavení monitorování modelů můžete použít Azure CLI, sadu Python SDK nebo studio.

Pomocí následujícího příkazu rozhraní příkazového řádku a definice YAML vytvořte pokročilé nastavení monitorování modelů:

az ml schedule create -f ./advanced-model-monitoring.yaml

Následující YAML obsahuje definici pro pokročilé monitorování modelů.

# advanced-model-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with advanced configurations

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:

  compute: 
    instance_type: standard_e4s_v3
    runtime_version: "3.3"

  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:credit-default:main
  
  monitoring_signals:
    advanced_data_drift: # monitoring signal name, any user defined name works
      type: data_drift
      # reference_dataset is optional. By default referece_dataset is the production inference data associated with Azure Machine Learning online endpoint
      reference_data:
        input_data:
          path: azureml:credit-reference:1 # use training data as comparison reference dataset
          type: mltable
        data_context: training
        data_column_names:
          target_column: DEFAULT_NEXT_MONTH
      features: 
        top_n_feature_importance: 10 # monitor drift for top 10 features
      metric_thresholds:
        numerical:
          jensen_shannon_distance: 0.01
        categorical:
          pearsons_chi_squared_test: 0.02
    advanced_data_quality:
      type: data_quality
      # reference_dataset is optional. By default reference_dataset is the production inference data associated with Azure Machine Learning online endpoint
      reference_data:
        input_data:
          path: azureml:credit-reference:1
          type: mltable
        data_context: training
      features: # monitor data quality for 3 individual features only
        - SEX
        - EDUCATION
      metric_thresholds:
        numerical:
          null_value_rate: 0.05
        categorical:
          out_of_bounds_rate: 0.03

    feature_attribution_drift_signal:
      type: feature_attribution_drift
      # production_data: is not required input here
      # Please ensure Azure Machine Learning online endpoint is enabled to collected both model_inputs and model_outputs data
      # Azure Machine Learning model monitoring will automatically join both model_inputs and model_outputs data and used it for computation
      reference_data:
        input_data:
          path: azureml:credit-reference:1
          type: mltable
        data_context: training
        data_column_names:
          target_column: DEFAULT_NEXT_MONTH
      metric_thresholds:
        normalized_discounted_cumulative_gain: 0.9
  
  alert_notification:
    emails:
      - abc@example.com
      - def@example.com

Nastavení monitorování výkonu modelu

Monitorování modelů služby Azure Machine Učení umožňuje sledovat výkon modelů v produkčním prostředí pomocí výpočtu jejich metrik výkonu. Aktuálně se podporují následující metriky výkonu modelu:

Klasifikační modely:

  • Počet deset. míst
  • Přesnost
  • Odvolat

Pro regresní modely:

  • Střední absolutní chyba (MAE)
  • Střední kvadratická chyba (MSE)
  • Odmocněná střední kvadratická chyba (RMSE)

Další předpoklady pro monitorování výkonu modelu

Abyste mohli nakonfigurovat signál výkonu modelu, musíte splnit následující požadavky:

  • Mít výstupní data pro produkční model (předpovědi modelu) s jedinečným ID pro každý řádek. Pokud shromáždíte produkční data pomocí kolektoru dat Azure Machine Učení, correlation_id poskytne se pro každou žádost o odvozování za vás. S kolektorem dat máte také možnost protokolovat vlastní jedinečné ID z vaší aplikace.

    Poznámka:

    Pro monitorování výkonu modelu Učení Azure Machine doporučujeme protokolovat jedinečné ID do vlastního sloupce pomocí kolektoru dat Učení Azure Machine.

  • Mít základní pravdivá data (skutečné hodnoty) s jedinečným ID pro každý řádek. Jedinečné ID pro daný řádek by se mělo shodovat s jedinečným ID pro výstupy modelu pro konkrétní požadavek odvození. Toto jedinečné ID slouží k propojení základní datové sady s výstupy modelu.

    Aniž byste měli základní pravdivá data, nemůžete provádět monitorování výkonu modelu. Vzhledem k tomu, že se na úrovni aplikace narazí základní pravdivá data, je vaší zodpovědností je shromáždit, jakmile budou k dispozici. Měli byste také udržovat datový prostředek ve službě Azure Machine Učení, který obsahuje tato základní pravdivá data.

  • (Volitelné) Máte předem připojenou tabulkovou datovou sadu s výstupy modelu a podkladovými pravdivými daty, která jsou už propojená.

Monitorování požadavků na výkon modelu při použití kolektoru dat

Pokud použijete kolekci dat Azure Machine Učení ke shromažďování produkčních dat odvozování bez zadání vlastního jedinečného ID pro každý řádek jako samostatný sloupec, correlationid automaticky se vygeneruje a zahrne do zaprotokolovaného objektu JSON. Kolektor dat ale bude dávkovat řádky , které se odesílají v krátkých časových intervalech. Dávkové řádky spadají do stejného objektu JSON a budou tedy mít stejné correlationid.

Aby bylo možné rozlišovat mezi řádky ve stejném objektu JSON, azure Machine Učení monitorování výkonu modelu používá indexování k určení pořadí řádků v objektu JSON. Pokud jsou například tři řádky dávkové a correlationid řádek 1 bude mít ID , řádek dva bude mít ID test_0test_1a řádek tři bude mít ID test_2.test Aby se zajistilo, že datová sada základní pravdy obsahuje jedinečná ID, která odpovídají výstupům shromážděného produkčního modelu odvozování, ujistěte se, že každý z nich correlationid indexujete odpovídajícím způsobem. Pokud má váš zaprotokolovaný objekt JSON pouze jeden řádek, pak by to correlationid bylo correlationid_0.

Abyste se vyhnuli použití tohoto indexování, doporučujeme protokolovat jedinečné ID do vlastního sloupce v rámci datového rámce pandas, který protokolujete pomocí kolektoru dat Azure Machine Učení. Potom v konfiguraci monitorování modelu zadáte název tohoto sloupce, který spojí výstupní data modelu s vašimi základními pravdivými daty. Pokud jsou ID pro každý řádek v obou datových sadách stejná, může monitorování modelu Azure Machine Učení provádět monitorování výkonu modelu.

Příklad pracovního postupu monitorování výkonu modelu

Abyste pochopili koncepty spojené s monitorováním výkonu modelu, zvažte tento ukázkový pracovní postup. Předpokládejme, že nasazujete model, který předpovídá, jestli jsou transakce platební karty podvodné nebo ne, můžete pomocí těchto kroků monitorovat výkon modelu:

  1. Nakonfigurujte nasazení tak, aby používalo kolektor dat ke shromažďování produkčních dat odvozování modelu (vstupní a výstupní data). Řekněme, že výstupní data jsou uložená ve sloupci is_fraud.
  2. Pro každý řádek shromážděných dat odvozování zapište jedinečné ID. Jedinečné ID může pocházet z vaší aplikace nebo můžete použít correlationid počítač Azure Učení jedinečně vygenerovaný pro každý protokolovaný objekt JSON.
  3. Později, když budou k dispozici základní pravdivá (nebo skutečná) is_fraud data, zaprotokolují a mapují se také na stejné jedinečné ID, které se protokolovalo s výstupy modelu.
  4. Tato základní pravdivá is_fraud data se také shromažďují, spravují a registruje ve službě Azure Machine Učení jako datový prostředek.
  5. Vytvořte signál monitorování výkonu modelu, který spojuje produkční odvozování modelu a podkladové datové prostředky pravdivých informací pomocí jedinečných sloupců ID.
  6. Nakonec vypočítá metriky výkonu modelu.

Jakmile splníte požadavky na monitorování výkonu modelu, můžete nastavit monitorování modelů pomocí následujícího příkazu rozhraní příkazového řádku a definice YAML:

az ml schedule create -f ./model-performance-monitoring.yaml

Následující YAML obsahuje definici pro monitorování modelů s daty odvozování produkčního prostředí, která jste shromáždili.

$schema:  http://azureml/sdk-2-0/Schedule.json
name: model_performance_monitoring
display_name: Credit card fraud model performance
description: Credit card fraud model performance

trigger:
  type: recurrence
  frequency: day
  interval: 7 
  schedule: 
    hours: 10
    minutes: 15
  
create_monitor:
  compute: 
    instance_type: standard_e8s_v3
    runtime_version: "3.3"
  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:loan-approval-endpoint:loan-approval-deployment

  monitoring_signals:
    fraud_detection_model_performance: 
      type: model_performance 
      production_data:
        data_column_names:
          prediction: is_fraud
          correlation_id: correlation_id
      reference_data:
        input_data:
          path: azureml:my_model_ground_truth_data:1
          type: mltable
        data_column_names:
          actual: is_fraud
          correlation_id: correlation_id
        data_context: actuals
      alert_enabled: true
      metric_thresholds: 
        tabular_classification:
          accuracy: 0.95
          precision: 0.8
  alert_notification: 
      emails: 
        - abc@example.com

Nastavení monitorování modelu přenesením produkčních dat do služby Azure Machine Učení

Můžete také nastavit monitorování modelů pro modely nasazené do služby Azure Machine Učení dávkové koncové body nebo nasazené mimo službu Azure Machine Učení. Pokud nemáte nasazení, ale máte produkční data, můžete je použít k provádění průběžného monitorování modelu. Abyste mohli monitorovat tyto modely, musíte být schopni:

  • Shromážděte produkční data odvozování z modelů nasazených v produkčním prostředí.
  • Zaregistrujte produkční data odvozování jako datový prostředek azure machine Učení a zajistěte průběžné aktualizace dat.
  • Zadejte vlastní komponentu předběžného zpracování dat a zaregistrujte ji jako komponentu Azure Machine Učení.

Pokud se data neshromažďují s kolektorem dat, musíte zadat vlastní komponentu předběžného zpracování dat. Bez této vlastní komponenty předběžného zpracování dat nebude systém monitorování modelu Azure Machine Učení vědět, jak zpracovávat data do tabulkového formuláře s podporou časových intervalů.

Vaše vlastní komponenta předběžného zpracování musí obsahovat tyto vstupní a výstupní podpisy:

Vstup a výstup Název podpisu Typ Popis Příklad hodnoty
input data_window_start literál, řetězec data window start-time in ISO8601 format. 2023-05-01T04:31:57.012Z
input data_window_end literál, řetězec data window end-time in ISO8601 format. 2023-05-01T04:31:57.012Z
input input_data uri_folder Shromážděná produkční data odvozování, která jsou zaregistrovaná jako datový prostředek služby Azure Machine Učení. azureml:myproduction_inference_data:1
output preprocessed_data mltable Tabulková datová sada, která odpovídá podmnožině schématu referenčních dat.

Příklad vlastní komponenty předběžného zpracování dat najdete v custom_preprocessing v úložišti Azuremml-examples Na GitHubu.

Jakmile splníte předchozí požadavky, můžete nastavit monitorování modelů pomocí následujícího příkazu rozhraní příkazového řádku a definice YAML:

az ml schedule create -f ./model-monitoring-with-collected-data.yaml

Následující YAML obsahuje definici pro monitorování modelů s daty odvozování produkčního prostředí, která jste shromáždili.

# model-monitoring-with-collected-data.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with your own production data

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:
  compute: 
    instance_type: standard_e4s_v3
    runtime_version: "3.3"
  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:fraud-detection-endpoint:fraud-detection-deployment
  
  monitoring_signals:

    advanced_data_drift: # monitoring signal name, any user defined name works
      type: data_drift
      # define production dataset with your collected data
      production_data:
        input_data:
          path: azureml:my_production_inference_data_model_inputs:1  # your collected data is registered as Azure Machine Learning asset
          type: uri_folder
        data_context: model_inputs
        pre_processing_component: azureml:production_data_preprocessing:1
      reference_data:
        input_data:
          path: azureml:my_model_training_data:1 # use training data as comparison baseline
          type: mltable
        data_context: training
        data_column_names:
          target_column: is_fraud
      features: 
        top_n_feature_importance: 20 # monitor drift for top 20 features
      metric_thresholds:
        numberical:
          jensen_shannon_distance: 0.01
        categorical:
          pearsons_chi_squared_test: 0.02

    advanced_prediction_drift: # monitoring signal name, any user defined name works
      type: prediction_drift
      # define production dataset with your collected data
      production_data:
        input_data:
          path: azureml:my_production_inference_data_model_outputs:1  # your collected data is registered as Azure Machine Learning asset
          type: uri_folder
        data_context: model_outputs
        pre_processing_component: azureml:production_data_preprocessing:1
      reference_data:
        input_data:
          path: azureml:my_model_validation_data:1 # use training data as comparison reference dataset
          type: mltable
        data_context: validation
      metric_thresholds:
        categorical:
          pearsons_chi_squared_test: 0.02
  
  alert_notification:
    emails:
      - abc@example.com
      - def@example.com

Nastavení monitorování modelů s využitím vlastních signálů a metrik

Pomocí monitorování modelu Azure Machine Učení můžete definovat vlastní signál a implementovat libovolnou metriku podle vašeho výběru pro monitorování modelu. Tento vlastní signál můžete zaregistrovat jako komponentu Azure Machine Učení. Když se úloha monitorování modelu Azure machine Učení spustí podle zadaného plánu, vypočítá metriky, které jste definovali ve vlastním signálu, stejně jako u předem připravených signálů (posun dat, posun predikce a kvalita dat).

Pokud chcete nastavit vlastní signál, který se má použít pro monitorování modelů, musíte nejprve definovat vlastní signál a zaregistrovat ho jako komponentu Učení Azure Machine. Komponenta Azure Machine Učení musí mít tyto vstupní a výstupní podpisy:

Podpis vstupu komponenty

Vstupní datový rámec komponenty by měl obsahovat následující položky:

  • S mltable zpracovanými daty ze komponenty předběžného zpracování
  • Libovolný počet literálů, z nichž každý představuje implementovanou metriku jako součást vlastní komponenty signálu. Pokud jste například implementovali metriku, std_deviationbudete potřebovat vstup pro std_deviation_threshold. Obecně platí, že pro každou metriku by měl být jeden vstup s názvem <metric_name>_threshold.
Název podpisu Typ Popis Příklad hodnoty
production_data mltable Tabulková datová sada, která odpovídá podmnožině schématu referenčních dat.
std_deviation_threshold literál, řetězec Odpovídající prahová hodnota implementované metriky. 2

Podpis výstupu komponenty

Výstupní port komponenty by měl mít následující podpis.

Název podpisu Typ Popis
signal_metrics mltable Tabulka mltable, která obsahuje vypočítané metriky. Schéma je definováno v další části signal_metrics schématu.

schéma signal_metrics

Výstupní datový rámec komponenty by měl obsahovat čtyři sloupce: group, metric_name, metric_valuea threshold_value.

Název podpisu Typ Popis Příklad hodnoty
skupina literál, řetězec Logické seskupení nejvyšší úrovně, které se má použít na tuto vlastní metriku. TRANSACTIONAMOUNT
metric_name literál, řetězec Název vlastní metriky std_deviation
metric_value Číselné Hodnota vlastní metriky. 44,896.082
threshold_value Číselné Prahová hodnota vlastní metriky. 2

Následující tabulka ukazuje příklad výstupu z vlastní komponenty signálu, která vypočítá metriku std_deviation :

skupina metric_value metric_name threshold_value
TRANSACTIONAMOUNT 44,896.082 std_deviation 2
LOCALHOUR 3.983 std_deviation 2
TRANSACTIONAMOUNTUSD 54,004.902 std_deviation 2
DIGITALITEMCOUNT 7.238 std_deviation 2
PHYSICALITEMCOUNT 5.509 std_deviation 2

Pokud chcete zobrazit příklad definice vlastní komponenty signálu a výpočetní kód metriky, podívejte se na custom_signal v úložišti azureml-examples.

Jakmile splníte požadavky na používání vlastních signálů a metrik, můžete nastavit monitorování modelu pomocí následujícího příkazu rozhraní příkazového řádku a definice YAML:

az ml schedule create -f ./custom-monitoring.yaml

Následující YAML obsahuje definici monitorování modelu s vlastním signálem. Něco, co si o kódu můžete všimnout:

  • Předpokládá se, že jste už vytvořili a zaregistrovali komponentu s vlastní definicí signálu ve službě Azure Machine Učení.
  • Registrovaná component_id vlastní komponenta signálu je azureml:my_custom_signal:1.0.0.
  • Pokud jste data s kolekcí dat shromáždili, můžete vlastnost vynechatpre_processing_component. Pokud chcete použít součást předběžného zpracování k předběžnému zpracování produkčních dat, která kolektor dat neshromažďuje, můžete ji zadat.
# custom-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: my-custom-signal
trigger:
  type: recurrence
  frequency: day # can be minute, hour, day, week, month
  interval: 7 # #every day
create_monitor:
  compute:
    instance_type: "standard_e4s_v3"
    runtime_version: "3.3"
  monitoring_signals:
    customSignal:
      type: custom
      component_id: azureml:my_custom_signal:1.0.0
      input_data:
        production_data:
          input_data:
            type: uri_folder
            path: azureml:my_production_data:1
          data_context: test
          data_window:
            lookback_window_size: P30D
            lookback_window_offset: P7D
          pre_processing_component: azureml:custom_preprocessor:1.0.0
      metric_thresholds:
        - metric_name: std_deviation
          threshold: 2
  alert_notification:
    emails:
      - abc@example.com

Interpretace výsledků monitorování

Po nakonfigurování monitorování modelu a dokončení prvního spuštění můžete přejít zpět na kartu Monitorování v studio Azure Machine Learning a zobrazit výsledky.

  • V hlavním zobrazení Monitorování vyberte název monitorování modelu a zobrazte stránku Přehled monitorování. Tato stránka zobrazuje odpovídající model, koncový bod a nasazení spolu s podrobnostmi o signálech, které jste nakonfigurovali. Následující obrázek ukazuje řídicí panel monitorování, který zahrnuje signály pro posun dat a kvalitu dat. V závislosti na signálech monitorování, které jste nakonfigurovali, může řídicí panel vypadat jinak.

    Snímek obrazovky znázorňující řídicí panel monitorování

  • V části Oznámení na řídicím panelu si prohlédněte jednotlivé signály, které funkce překročily nakonfigurovanou prahovou hodnotu pro příslušné metriky:

  • Výběrem data_drift přejděte na stránku s podrobnostmi o posunu dat. Na stránce podrobností můžete zobrazit hodnotu metrik posunu dat pro každou číselnou a kategorickou funkci, kterou jste zahrnuli do konfigurace monitorování. Když má monitor více než jedno spuštění, zobrazí se spojnice trendu pro každou funkci.

    Snímek obrazovky zobrazující stránku podrobností signálu posunu dat

  • Pokud chcete zobrazit jednotlivé funkce podrobně, vyberte název funkce, abyste zobrazili produkční distribuci v porovnání s referenční distribucí. Toto zobrazení také umožňuje sledovat posun v průběhu času pro danou konkrétní funkci.

    Snímek obrazovky znázorňující podrobnosti posunu dat pro jednotlivé funkce

  • Vraťte se na řídicí panel monitorování a výběrem data_quality zobrazte stránku signálu kvality dat. Na této stránce můžete zobrazit míry hodnot null, míry chyb mimo hranice a chybovost datových typů pro každou funkci, kterou monitorujete.

    Snímek obrazovky zobrazující stránku podrobností signálu kvality dat

Monitorování modelů je průběžný proces. Pomocí monitorování modelu Azure Machine Učení můžete nakonfigurovat několik monitorovacích signálů, abyste získali široký přehled o výkonu vašich modelů v produkčním prostředí.

Integrace monitorování modelu Učení Azure machine s Azure Event Gridem

Události vygenerované monitorováním modelu služby Azure Machine Učení můžete použít k nastavení aplikací, procesů nebo pracovních postupů CI/CD řízených událostmi pomocí služby Azure Event Grid. Události můžete využívat prostřednictvím různých obslužných rutin událostí, jako jsou Azure Event Hubs, Funkce Azure a aplikace logiky. Na základě posunu zjištěného monitory můžete provádět akce prostřednictvím kódu programu, například nastavením kanálu strojového učení, který model znovu vytrénuje a znovu ho nasadí.

Začínáme s integrací monitorování modelu azure Machine Učení se službou Event Grid:

  1. Postupujte podle pokynů v tématu Nastavení na webu Azure Portal. Zadejte název odběru události, například MonitoringEvent, a v části Typy událostí vyberte pouze pole Stav spuštění změněno.

    Upozorňující

    Nezapomeňte u typu události vybrat Stav spuštění změněný . Nevybírejte odchylku datové sady, protože se vztahuje na posun dat v1 místo monitorování modelu azure Machine Učení.

  2. Postupujte podle kroků v části Filtrování a přihlášení k odběru událostí a nastavte filtrování událostí pro váš scénář. Přejděte na kartu Filtry a v části Rozšířené filtry přidejte následující klíč, operátor a hodnotu:

    • Klíč: data.RunTags.azureml_modelmonitor_threshold_breached
    • Hodnota: Selhalo kvůli jedné nebo více funkcím, které porušují prahové hodnoty metriky.
    • Operátor: Řetězec obsahuje

    S tímto filtrem se události generují při změně stavu spuštění (z dokončeného na neúspěšné nebo neúspěšné dokončení) pro jakékoli monitorování v rámci vašeho pracovního prostoru Azure Machine Učení.

  3. Pokud chcete filtrovat na úrovni monitorování, použijte následující klíč, operátor a hodnotu v části Rozšířené filtry:

    • Klíč: data.RunTags.azureml_modelmonitor_threshold_breached
    • Hodnota: your_monitor_name_signal_name
    • Operátor: Řetězec obsahuje

    Ujistěte se, že your_monitor_name_signal_name je název signálu v konkrétním monitoru, pro který chcete filtrovat události. Například credit_card_fraud_monitor_data_drift. Aby tento filtr fungoval, musí tento řetězec odpovídat názvu monitorovacího signálu. Signál byste měli pojmenovat jak názvem monitoru, tak názvem signálu pro tento případ.

  4. Po dokončení konfigurace odběru událostí vyberte požadovaný koncový bod, který bude sloužit jako obslužná rutina události, například Azure Event Hubs.

  5. Po zachycení událostí je můžete zobrazit na stránce koncového bodu:

    Snímek obrazovky zobrazující události zobrazené ze stránky koncového bodu

Události můžete zobrazit také na kartě Metriky služby Azure Monitor:

Snímek obrazovky zobrazující události zobrazené na kartě Metriky služby Azure Monitor