MLOps sur Vertex AI
Vertex AI Pipelines permet de construire des workflows ML reproductibles et automatisés. Combiné avec le monitoring intégré, c'est une solution complète pour le cycle de vie des modèles en production.
Vertex AI Pipelines
Concept
Un pipeline est un DAG (graphe acyclique dirigé) de composants ML : - Chaque composant est un conteneur isolé - Les composants communiquent via des artefacts typés - Le pipeline est versionné et reproductible
Exemple de pipeline
from kfp import dsl
from google_cloud_pipeline_components.v1 import (
dataset as dataset_op,
endpoint as endpoint_op,
)
@dsl.pipeline(name="gemini-eval-pipeline")
def eval_pipeline(project: str, location: str):
# Étape 1 : Préparer les données
prep = prepare_data_op(
project=project,
input_path="gs://bucket/raw"
)
# Étape 2 : Évaluer le modèle
eval_task = evaluate_model_op(
model="gemini-2.5-pro",
test_data=prep.outputs["processed_data"]
)
# Étape 3 : Déployer si les métriques sont bonnes
with dsl.Condition(eval_task.outputs["accuracy"] > 0.9):
deploy_op(model=eval_task.outputs["model"])Monitoring en production
Métriques à surveiller
- Latence : P50, P95, P99 des temps de réponse
- Erreurs : Taux d'erreur 4xx et 5xx
- Quotas : Utilisation par rapport aux limites
- Qualité : Drift des scores d'évaluation
- Coûts : Consommation de tokens par endpoint
Configuration des alertes
# Alerte si latence P95 > 5s
alertPolicy:
conditions:
- displayName: "High latency"
conditionThreshold:
filter: 'metric.type="aiplatform.googleapis.com/prediction/online/response_latencies"'
comparison: COMPARISON_GT
thresholdValue: 5000
duration: 300sModel monitoring
- Détection automatique de data drift
- Alertes sur les changements de distribution des inputs
- Comparaison des prédictions avec les labels réels
CI/CD pour ML
Pipeline de déploiement
1. Commit : Changement de prompt ou config 2. Test : Évaluation automatique sur jeu de test 3. Review : Validation humaine si les métriques changent 4. Deploy : Déploiement progressif (canary) 5. Monitor : Surveillance post-déploiement
Bonnes pratiques
- Versionnez tout : prompts, configs, données de test
- Utilisez des pipelines pour toute modification en production
- Mettez en place des rollback automatiques
- Séparez les environnements (dev, staging, prod)
- Documentez les décisions de déploiement