Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Model monitoring instellen in Vertex AI

Stel model monitoring in voor je Vertex AI-endpoints om feature skew, drift en modelprestatiedaling tijdig te detecteren en op tijd te reageren.

Waarom model monitoring?

Machine learning-modellen degraderen over tijd. De wereld verandert, maar het model is getraind op historische data. Dit fenomeen heet data drift (de inputdata verandert) of concept drift (de relatie tussen input en output verandert). Zonder monitoring merk je problemen pas op als de businessresultaten al terugvallen.

Vertex AI Model Monitoring detecteert automatisch:

  • Feature skew: het verschil tussen je trainingsdata en je productiedata
  • Feature drift: verandering in de distributie van inputfeatures over tijd
  • Prediction drift: verandering in de distributie van de voorspellingen

Onder de motorkap gebruikt Vertex AI hiervoor afstandsmaten als L-infinity (voor categorische features) en Jensen-Shannon-divergentie (voor numerieke features).

info

Twee varianten: v1 en v2

Er bestaan twee varianten naast elkaar. Model Monitoring v1 is algemeen beschikbaar (GA) en wordt geconfigureerd op een Vertex AI-endpoint via ModelDeploymentMonitoringJob. Model Monitoring v2 (in preview, juni 2026) wordt geconfigureerd per modelversie in het Model Registry via de ModelMonitor-klasse en kan ook modellen monitoren die buiten Vertex AI draaien. Bestaande v1-jobs blijven werken, je hoeft niet te migreren.

Model Monitoring v1 instellen via de Console

Dit is de snelste route voor modellen die al op een endpoint zijn gedeployd.

Monitoring activeren op een endpoint

  1. Ga naar de Vertex AI Console en open Online prediction.
  2. Open het tabblad Endpoints en selecteer het endpoint dat je wilt monitoren.
  3. Klik op Edit settings en zet Enable model monitoring for this endpoint aan.
  4. Vul een display name en een monitoring window length in (standaard 24 uur).
  5. Kies prediction drift detection, en als je trainingsdata beschikbaar hebt ook training-serving skew detection met de locatie van die data (BigQuery of Cloud Storage).
  6. Stel per feature een alert threshold in, of laat Vertex AI standaardwaarden gebruiken.
  7. Vul de notification emails in en sla op.
lightbulb

Sampling bespaart kosten

Je hoeft niet elk verzoek te loggen. Met een sampling rate tussen 0.01 en 1.0 monitor je een representatief deel van het productieverkeer. Bij hoog volume houdt een lage rate de kosten beheersbaar zonder dat je drift mist.

Model Monitoring v1 instellen via de SDK

from google.cloud import aiplatform
from google.cloud.aiplatform import model_monitoring

PROJECT_ID = 'mijn-project'
LOCATION = 'europe-west4'
ENDPOINT_ID = 'mijn-endpoint-id'

aiplatform.init(project=PROJECT_ID, location=LOCATION)

EMAIL_ALERT = 'ml-team@mijnbedrijf.nl'

skew_config = model_monitoring.SkewDetectionConfig(
    data_source=f'bq://{PROJECT_ID}.mijn_dataset.trainingsdata',
    skew_thresholds={
        'leeftijd': 0.1,
        'inkomen': 0.15,
        'regio': 0.2
    },
    target_field='doelvariabele'
)

drift_config = model_monitoring.DriftDetectionConfig(
    drift_thresholds={
        'leeftijd': 0.1,
        'inkomen': 0.15,
        'regio': 0.2
    }
)

monitoring_config = model_monitoring.ObjectiveConfig(
    skew_detection_config=skew_config,
    drift_detection_config=drift_config
)

job = aiplatform.ModelDeploymentMonitoringJob.create(
    display_name='productie-monitoring',
    endpoint=f'projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/{ENDPOINT_ID}',
    logging_sampling_strategy={'random_sample_config': {'sample_rate': 0.1}},
    model_monitoring_objective_configs=[monitoring_config],
    model_deployment_monitoring_schedule_config={
        'monitor_interval': {'seconds': 3600 * 24}
    },
    model_monitoring_alert_config={
        'email_alert_config': {'user_emails': [EMAIL_ALERT]}
    }
)

print(f'Monitoring job aangemaakt: {job.resource_name}')

Model Monitoring v2 (per modelversie)

In v2 hang je monitoring niet aan een endpoint maar aan een modelversie in het Model Registry. Het model moet daar dus geregistreerd zijn. Je maakt eerst een ModelMonitor aan en plant daarna runs met een cron-expressie. Dit werkt ook voor modellen die buiten Vertex AI draaien.

import vertexai
from vertexai.resources.preview import ml_monitoring

vertexai.init(project='mijn-project', location='europe-west4')

monitor = ml_monitoring.ModelMonitor.create(
    display_name='productie-monitor-v2',
    model_name='projects/mijn-project/locations/europe-west4/models/MODEL_ID',
    model_version_id='1'
)

monitor.create_schedule(
    cron='0 * * * *',
    display_name='uurlijkse-drift-check'
)
info

Welke variant kies je?

Gebruik v1 als je modellen al op endpoints draaien en je snel skew- en driftdetectie wilt activeren. Kies v2 als je per modelversie wilt monitoren, modellen buiten Vertex AI hebt, of feature-attributie (SHAP) wilt volgen. Houd er rekening mee dat v2 in juni 2026 nog in preview is, dus controleer de stabiliteit voordat je het in productie zet.

Monitoring-resultaten analyseren

Via de Console

Open je endpoint of model en bekijk het tabblad Model Monitoring. Je ziet:

  • Drift-grafieken: per feature de distributie over tijd vergeleken met de baseline
  • Alerts: overschreden drempelwaarden worden gemarkeerd
  • Statistieken: gemiddelde, mediaan en percentielwaarden per feature

Logs in BigQuery

Met monitoring ingeschakeld worden binnenkomende voorspellingsverzoeken gelogd in een BigQuery-tabel. Voor prediction drift vergelijkt Vertex AI recent productieverkeer met eerder productieverkeer. Je kunt deze tabel direct bevragen voor eigen analyses of dashboards.

Reageren op drift

Wanneer drift gedetecteerd wordt, zijn er verschillende acties mogelijk:

  1. Dataonderzoek: analyseer de productiedata om te begrijpen wat er veranderd is.
  2. Hertraining: train het model opnieuw met recentere data.
  3. Feature-engineering: pas features aan zodat ze stabieler worden.
  4. Model-versioning: rol een nieuw model uit via het Vertex AI Model Registry.
def hertrainen_bij_drift(drift_score, drempel=0.15):
    if drift_score > drempel:
        print(f'Drift gedetecteerd ({drift_score:.3f}). Hertraining starten...')
        training_job = aiplatform.CustomTrainingJob(
            display_name='hertraining-na-drift',
            script_path='trainer/train.py',
            container_uri='europe-docker.pkg.dev/vertex-ai/training/pytorch-gpu.2-3:latest'
        )
        model = training_job.run(
            dataset=aiplatform.TabularDataset('projects/.../datasets/...'),
            model_display_name='model-na-hertraining'
        )
        return model
warning

Reageer niet op elke piek

Een enkele drift-alert betekent niet automatisch dat hertraining nodig is. Een feestdag, een marketingcampagne of een seizoenseffect kan tijdelijk een afwijkende distributie geven. Onderzoek eerst de oorzaak voordat je een dure hertraining start.

Hoe bepaal ik de juiste drempelwaarden voor alerts?

Begin met conservatieve waarden, bijvoorbeeld tussen 0.1 en 0.2, en pas ze aan op basis van de natuurlijke variabiliteit in je productiedata. Te lage drempelwaarden leiden tot veel valse positieven en alert-moeheid.

Hoeveel kost model monitoring?

De kosten zijn gebaseerd op de hoeveelheid gemonitorde data en de opslag voor logs in BigQuery. Controleer de actuele tarieven op de Vertex AI-prijspagina van Google Cloud, want prijzen kunnen wijzigen.

Werkt monitoring ook voor AutoML-modellen?

Ja. Model Monitoring werkt voor zowel AutoML-modellen als custom getrainde modellen, zolang ze op een Vertex AI-endpoint zijn gedeployd (v1) of als modelversie geregistreerd zijn (v2).

Hoe lang worden monitoring-logs bewaard?

De voorspellingslogs komen in BigQuery terecht en blijven daar staan tot je ze opruimt. Je bepaalt zelf de retentie via de table expiration of een eigen opschoonbeleid in BigQuery.

Kan ik monitoring-data exporteren voor eigen analyse?

Ja. De gelogde voorspellingen en monitoring-statistieken staan in BigQuery, dus je kunt ze direct bevragen, koppelen aan dashboards in Looker Studio of doorzetten naar je eigen pipeline.

Heb ik trainingsdata nodig om drift te detecteren?

Nee. Voor prediction drift vergelijkt Vertex AI recent productieverkeer met eerder productieverkeer, dus daarvoor heb je geen trainingsdata nodig. Trainingsdata heb je wel nodig voor training-serving skew-detectie.