Monitoraggio di disallineamenti e deviazioni delle attribuzioni delle caratteristiche

In questa pagina viene spiegato come utilizzare Vertex AI Model Monitoring con Vertex Explainable AI per rilevare disallineamento e deviazione delle attribuzioni delle caratteristiche delle caratteristiche di input categoriche e numeriche.

Panoramica del monitoraggio basato sull'attribuzione delle caratteristiche

Le attribuzioni delle caratteristiche indicano in che misura ciascuna caratteristica nel modello ha contribuito alle previsioni per ogni istanza specifica. Quando richiedi le previsioni, ottieni valori previsti in base ai tuoi modelli. Quando richiedi spiegazioni, ottieni le previsioni insieme a informazioni sull'attribuzione delle caratteristiche.

I punteggi di attribuzione sono proporzionali al contributo della funzionalità per la previsione di un modello. In genere, vengono firmati per indicare se una funzionalità consente di aumentare o diminuire la previsione. Le attribuzioni di tutte le caratteristiche devono corrispondere al punteggio di previsione del modello.

Il monitoraggio delle attribuzioni delle funzionalità di Monitoring consente di monitorare le modifiche apportate a una previsione del modello nel corso del tempo. La modifica del punteggio di attribuzione di una caratteristica chiave spesso indica che la funzionalità è cambiata in modo tale da poter influire sulla precisione delle previsioni del modello.

Puoi abilitare il rilevamento di distorsioni se fornisci il set di dati di addestramento originale per il modello; in caso contrario, dovresti attivare il rilevamento di deviazioni. Per ulteriori informazioni, consulta Introduzione a Vertex AI Model Monitoring.

Prerequisiti

Per utilizzare Model Monitoring con Vertex Explainable AI, completa i passaggi seguenti:

  1. Se stai attivando il rilevamento di disallineamento, carica i dati di addestramento o l'output di un job di spiegazione batch per il set di dati di addestramento in Cloud Storage o BigQuery. Ottieni il link URI ai dati. Per il rilevamento delle deviazioni, non sono richiesti dati di addestramento o spiegazioni di riferimento.

  2. Avere un modello disponibile in Vertex AI che sia un AutoML tabulare o un tipo di addestramento personalizzato importato:

Configurare il modello per utilizzare Vertex Explainable AI

Per attivare il monitoraggio dell'attribuzione delle caratteristiche per il modello addestrato personalizzato, configura il tuo modello in modo che utilizzi Vertex Explainable AI quando crei, importi o esegui il deployment del modello:

  1. Compila il campo ExplanationSpec.ExplanationParameters.

  2. Imposta il campo ExplanationConfig.enableFeatureAttributes su true.

  3. (Obbligatorio solo per il rilevamento di disallineamento) Specifica il campo ExplanationConfig.explanationBaseline fornendo uno dei seguenti elementi:

Attiva rilevamento deviazioni o deviazioni

Per configurare il rilevamento dell'inclinazione o della deviazione, crea un job di monitoraggio del deployment del modello:

Console

Per creare un job di monitoraggio del deployment di modelli mediante Cloud Console, crea un endpoint:

  1. In Google Cloud Console, vai alla pagina Vertex AI Endpoints.

    Vai a Endpoint

  2. Fai clic su Crea endpoint.

  3. Nel riquadro Nuovo endpoint, assegna un nome all'endpoint e imposta un'area geografica.

  4. Fai clic su Continua.

  5. Nel campo Nome modello, seleziona un addestramento personalizzato o un modello AutoML tabulare importato.

  6. Nel campo Versione, seleziona una versione per il tuo modello.

  7. Fai clic su Continua.

  8. Nel riquadro Monitoraggio modelli, assicurati che l'opzione Abilita il monitoraggio del modello per questo endpoint sia attivata. Le impostazioni di monitoraggio configurate vengono applicate a tutti i modelli di cui è stato eseguito il deployment nell'endpoint.

  9. Inserisci un Nome visualizzato per il monitoraggio del job.

  10. Fai clic su Continua. Viene visualizzato il riquadro Obiettivo monitoraggio, che contiene le opzioni per il rilevamento di disallineamento o deviazioni:

    Rilevamento disallineamenti

    1. Seleziona Rilevamento disallineamento addestramento/produzione.
    2. In Origine dati di addestramento, fornisci un'origine dati di addestramento.
    3. In Colonna di destinazione, inserisci il nome della colonna dei dati di addestramento che il modello è addestrato a prevedere. Questo campo è escluso dall'analisi di monitoraggio.
    4. (Facoltativo) In Soglie avvisi, specifica le soglie in base alle quali attivare gli avvisi. Per informazioni su come formattare le soglie, tieni il puntatore sopra l'icona della Guida .
    5. Fai clic su Crea.

    Rilevamento deviazioni

    1. Seleziona Rilevamento delle deviazioni dalla previsione.
    2. (Facoltativo) In Soglie avvisi, specifica le soglie in base alle quali attivare gli avvisi. Per informazioni su come formattare le soglie, tieni il puntatore sopra l'icona della Guida .
    3. Fai clic su Crea.

gcloud

Per creare un job di monitoraggio del deployment dei modelli utilizzando l'interfaccia a riga di comando gcloud, esegui il deployment del modello su un endpoint.

Una configurazione del job di monitoraggio si applica a tutti i modelli di cui è stato eseguito il deployment in un endpoint.

Esegui il comando gcloud ai model-monitoring-jobs create:

gcloud ai model-monitoring-jobs create \
  --project=PROJECT_ID \
  --region=REGION \
  --display-name=MONITORING_JOB_NAME \
  --emails=EMAIL_ADDRESS_1,EMAIL_ADDRESS_2 \
  --endpoint=ENDPOINT_ID \
  --feature-thresholds=FEATURE_1=THRESHOLD_1,FEATURE_2=THRESHOLD_2 \
  --prediction-sampling-rate=SAMPLING_RATE \
  --monitoring-frequency=MONITORING_FREQUENCY \
  --target-field=TARGET_FIELD \
  --bigquery-uri=BIGQUERY_URI

dove:

  • PROJECT_ID è l'ID del tuo progetto Google Cloud. Ad esempio, my-project.

  • REGION è la posizione del job di monitoraggio. Ad esempio, us-central1.

  • MONITORING_JOB_NAME è il nome del tuo job di monitoraggio. Ad esempio, my-job.

  • EMAIL_ADDRESS è l'indirizzo email in cui vuoi ricevere avvisi da Model Monitoring. Ad esempio, example@example.com.

  • ENDPOINT_ID è l'ID dell'endpoint in cui viene eseguito il deployment del modello. Ad esempio, 1234567890987654321.

  • (Facoltativo) FEATURE_1=THRESHOLD_1 è la soglia di avviso per ogni funzionalità da monitorare. Ad esempio, housing-latitude=0.4. Viene registrato un avviso quando la [distanza statistica][stat-distance] tra la distribuzione delle caratteristiche di input e la base di riferimento corrispondente supera la soglia specificata. Per impostazione predefinita, viene monitorata ogni caratteristica categorica e numerica con valori di soglia pari a 0, 3.

  • (Facoltativo) SAMPLING_RATE è la frazione delle richieste di previsione in entrata che vuoi registrare. Ad esempio, 0.5. Se non specificato, il monitoraggio del modello registra tutte le richieste di previsione.

  • (Facoltativo) MONITORING_FREQUENCY indica la frequenza con cui vuoi eseguire il job di monitoraggio sugli input registrati di recente. La granularità minima è di 1 ora. Il valore predefinito è 24 ore. Ad esempio, 2.

  • (Obbligatorio solo per il rilevamento di disallineamento) TARGET_FIELD è il campo previsto dal modello. Questo campo è escluso dall'analisi di monitoraggio. Ad esempio, housing-price.

  • (obbligatorio solo per il rilevamento di inclinazioni) BIGQUERY_URI è il link al set di dati di addestramento archiviato in BigQuery, utilizzando il seguente formato:

    bq://\PROJECT.\DATASET.\TABLE
    

    Ad esempio, bq://\my-project.\housing-data.\san-francisco.

    Puoi sostituire il flag bigquery-uri con link alternativi al tuo set di dati di addestramento:

    • Per un file CSV archiviato in un bucket Cloud Storage, utilizza --data-format=csv --gcs-uris=gs://BUCKET_NAME/OBJECT_NAME.

    • Per un file TFRecord archiviato in un bucket Cloud Storage, utilizza --data-format=tf-record --gcs-uris=gs://BUCKET_NAME/OBJECT_NAME.

    • Per un [set di dati gestito tabulare AutoML][dataset-id], utilizza --dataset=DATASET_ID.

SDK Python

Per informazioni sul flusso di lavoro completo dell'API Model Monitoring end-to-end, consulta il blocco note di esempio.

API REST

Per ulteriori informazioni sul rilevamento dell'inclinazione o della deviazione, consulta projects.locations.modelDeploymentMonitoringJobs nel riferimento REST di Vertex AI.

Una volta creato il job di monitoraggio, Model Monitoring registra le richieste di previsione in arrivo in una tabella BigQuery generata denominata PROJECT_ID.model_deployment_monitoring_ENDPOINT_ID.serving_predict. Se il log di richiesta-risposta è abilitato, Monitoring modelli registra le richieste in entrata nella stessa tabella BigQuery utilizzata per il logging delle richieste-risposta.

Consulta Utilizzo di Monitoraggio modelli per istruzioni su come eseguire le seguenti attività facoltative:

  • Aggiorna un job di monitoraggio del modello.

  • Configura avvisi per il job di monitoraggio del modello

  • Configura avvisi per le anomalie.

Analizzare i dati di distorsione e deviazione

Puoi utilizzare Cloud Console per visualizzare le attribuzioni delle funzionalità di ciascuna funzionalità monitorata e scoprire quali modifiche hanno generato distorsioni o deviazioni. Puoi visualizzare le distribuzioni del valore delle funzionalità come serie temporali o istogramma.

Tabella che mostra un esempio di attribuzione delle caratteristiche dei dati di previsione e di attribuzione delle caratteristiche dei dati di addestramento per il rilevamento di disallineamenti.

In un sistema di machine learning stabile, le caratteristiche e l'importanza relativa in genere rimangono relativamente stabili nel tempo. Se un'importante funzionalità si arresta con importanza, è possibile che questa funzionalità sia stata modificata. Le cause più comuni di deviazione o disallineamento dell'importanza delle funzionalità includono:

  • Modifiche all'origine dati.
  • Modifiche allo schema dei dati e al logging.
  • Modifiche al comportamento o al mix di utenti finali (ad es. a causa di variazioni stagionali o di eventi anomali).
  • Modifiche a monte delle funzionalità generate da un altro modello di machine learning. Ecco alcuni esempi:
    • Aggiornamenti del modello che causano un aumento o una diminuzione della copertura (nel complesso o per un singolo valore di classificazione).
    • Una variazione nelle prestazioni del modello (che modifica il significato della funzionalità).
    • Aggiornamenti alla pipeline di dati che possono causare una diminuzione della copertura complessiva.

Inoltre, tieni presente quanto segue quando analizzi i dati di disallineamento e di deviazione delle caratteristiche:

  • Monitora le funzionalità più importanti. Una grande modifica all'attribuzione di una funzionalità significa che il suo contributo alla previsione è cambiato. Poiché il punteggio di previsione è uguale alla somma dei contributi delle caratteristiche, la grande deviazione di attribuzione delle caratteristiche più importanti di solito indica una grande deviazione nelle previsioni del modello.

  • Monitora tutte le rappresentazioni delle funzionalità. Le attribuzioni delle caratteristiche sono sempre numeriche, indipendentemente dal tipo di caratteristica sottostante. Grazie alla loro natura aggiuntiva, è possibile ridurre le attribuzioni a un elemento multidimensionale, come gli incorporamenti, a un singolo valore numerico sommando le attribuzioni delle varie dimensioni. Consente di utilizzare metodi di rilevamento delle deviazioni univariate standard per tutti i tipi di funzionalità.

  • Tieni conto delle interazioni con le funzionalità. L'attribuzione a una funzionalità determina il contributo della funzionalità alla previsione, sia individualmente sia tramite le sue interazioni con altre funzionalità. Se le interazioni di una funzionalità con altre funzionalità cambiano, le distribuzioni delle attribuzioni a una modifica delle caratteristiche, anche se la distribuzione marginale di una funzionalità rimane invariata.

  • Monitora i gruppi di funzionalità. Poiché le attribuzioni sono cumulative, puoi aggiungere le attribuzioni alle caratteristiche correlate per ottenere l'attribuzione di un gruppo di caratteristiche. Ad esempio, in un modello di concessione di credito, combina l'attribuzione a tutte le caratteristiche relative al tipo di prestito (ad esempio, "quot;grade", "sub_grade", "scopo") per ottenere una singola attribuzione di prestito. Questa attribuzione a livello di gruppo può quindi essere monitorata per monitorare le modifiche nel gruppo di funzionalità.

Passaggi successivi