Surveillance des modèles
1) Pourquoi
L'objectif est de maintenir la qualité et la sécurité des solutions du modèle dans la vente tout en respectant les SLA/SLO, RG/AML/Legal et les budgets. La surveillance doit détecter rapidement les dégradations (données, étalonnage, latitude, coût), minimiser les erreurs de cost expected et assurer la reproductibilité/audit.
2) Zones de surveillance (carte)
1. Disponibilité et performances : latency p95/p99, error-rate, RPS, auto-scale.
2. Qualité des prédictions : PR-AUC/KS (sur les labels en ligne), étalonnage (ECE), expected-cost @ threshold.
3. Dérive et stabilité : PSI/KL pour les fiches et les scores, changement de distribution/catégorie.
4. Couverture et exhaustivité : proportion de demandes traitées avec succès, proportion de fiches « vides », caches hit-rate.
5. Slice/Fairness : métriques par marché/fournisseurs/appareils/âge du compte.
6. Guardrails (RG/AML) : violations de politiques, fréquences d'intervention, fausses positions/negatives.
7. Coût : cost/request, cost/feature, montre GPU/CPU, petits fichiers/IO (pour batch/near-RT).
8. Données/contrats : schéma fich, versions, équivalence online/offline.
3) SLI/SLO (repères pour iGaming)
Latitude p95 : personnalisation ≤ 150 ms, RG/AML alerte ≤ 5 avec e2e.
Availability: ≥ 99. 9%.
Error-rate 5xx: ≤ 0. 5 % en 5 min fenêtre.
Coverage : ≥ 99 % des demandes ont reçu un scoop validé et une solution.
Les étiquettes freshness pour l'évaluation en ligne : D + 1 (journalière), pour les proxies rapides - ≤ 1 h.
Drift PSI : fichi/score <0. 2 (warning с 0. 1).
Calibrage ECE : ≤ 0. 05.
Expected-cost_live : pas plus haut que le modèle de base + X % (cible X sélectionne l'entreprise).
4) Signaux et formules
4. 1 Dérive
PSI : résumer par les bits de la différence de distribution (train vs prod).
KL-divergence : sensible aux queues « minces » ; monitoring pour les fiches clés.
KS pour les scores (s'il y a des labels) : différence CDF pour les positifs/négatifs.
4. 2 Étalonnage
4. 3 Expected-Cost
Minimiser (C = c_{fp}\cdot FPR + c_{fn}\cdot FNR) au seuil de fonctionnement ; on compte en ligne dans une fenêtre glissante avec des labels reportés.
5) Sources des labels
Labels en ligne (proxy rapide) : événement « dépôt de 7 jours », click/conversion, case RG terminée.
Labels reportés : chargeback/fred (45-90 jours), long terme churn/LTV.
Règles : garder le temps ; ne pas utiliser les événements « du futur ».
6) Dashboards (composition minimale)
1. Opérationnel : RPS, p50/p95/p99 latency, 4xx/5xx, saturation, autoscaling.
2. Qualité : score-distribution, PR-AUC (sur les labels proxy), ECE, expected-cost, KS.
3. Dérive : PSI/KL par top fiches, novelty catégories, missing-rate, feature-fetch latency.
4. Slice/Fairness : PR-AUC/ECE/expected-cost par marché/fournisseurs/devis.
5. Guardrails : RG/AML violations, interventions/1k demandes, faux-stop rate.
6. Coût : cost/request, temps CPU/GPU, cache-hit-rate, lookups externes.
7) Alerting (règles de l'exemple)
HighP95Latency : p95> 150 ms (5 min) → page SRE/MLOps.
ErrorBurst: 5xx > 0. 5 % (5 min) → script rollback disponible.
PSI_Drift: PSI(amount_base) > 0. 2 (15 min) → retour warm-up/retour canarien.
ECE_Bad: ECE > 0. 07 (30 min) → recalculer l'étalonnage/les seuils.
ExpectedCost_Up : + X % à la référence (1 jour) → envisager un retour/retour.
Slice_Failure : PR-AUC sur le marché R a chuté> Y % (1 jour) → le propriétaire du domaine tiket.
Guardrails_Breach : proportion d'offers agressifs> cap → kill-switch immédiat.
8) Loger et tracer
Logs de requête (minimum) : 'request _ id', 'trace _ id', 'model _ id/version', 'feature _ version', 'feature _ stats' (missing%, extremes), 'score', 'decision', 'threshold',' policy _ id ',' guard _ mask ',' latency _ ms', 'cost _ estimate', (en option) explication (SHAP top-k).
OTel-трейсы: спаны `feature_fetch` → `preprocess` → `score` → `postprocess` → `guardrail`.
PII : alias/tokens uniquement ; masquage politique, résidence des clés.
9) Évaluation de qualité en ligne
Fenêtres coulissantes pour PR-AUC/KS par labels rapides (heure/jour).
Labels retardés : rapports rétrospectifs D + 7/D + 30/D + 90, corrections expected-cost.
Étalonnage : réévaluation Isotonic/Platt sur D + 1, artefact auto-refresh.
10) Seuil et politique de décision
Le seuil est maintenu comme un flig dans le registre ; en ligne, comptez expected-cost et ajustez dans la plage autorisée (rate-limited).
Safety-caps : limites supérieures/inférieures de l'action ; override à la main pour la complication.
Backtesting seuils : simulation nightly sur les données d'hier.
11) Slice & Fairness
Segments : marché/juridiction, fournisseur, appareil/ASN, âge du compte, pouvoir de dépôt.
Métriques : PR-AUC, ECE, expected-cost, FPR/TPR de différence (equalized odds), disparate impact.
Actions : étalonnage/seuil par diapositives, réapprentissage avec poids, révision de fiche.
12) Équivalence en ligne/hors ligne
Test d'égalité fich : MAE/MAPE sur l'échantillon témoin ; alert à divergence> seuil.
Versioning : 'feature _ spec _ version', 'logic _ version' ; WORM archive.
Contrats de schémas : breaking-change interdit sans double enregistrement (v1/v2).
13) Guardrails (RG/AML)
Pré-/Post-filter actions, limites de fréquence, cooldown, listes d'interdictions.
Логи `policy_id/propensity/mask/decision`; le rapport des violations.
Métrique time-to-intervene et taux de fausse-intervention.
14) Incidents et runbook
Scénarios et étapes :1. Latency↑/5xx↑ : vérifiez les FAI externes → activez le cache/temporisation → la mise à l'échelle → si nécessaire.
2. PSI/ECE/Expected-cost s'est détérioré : trafic freeze (canary↓), activer les seuils de chute/modèle, démarrer retrain.
3. Échec de slice : seuil de diapositive temporaire, ticket au propriétaire du domaine.
4. Breach de Guardrails : kill-switch, audit de cas, post-mer.
15) Coût et performance
Profilage : part de temps dans feature-fetch vs score vs IO.
Stratégies de cache : TTL/evection, fiches « chaudes » dans RAM, froid - lazy.
Quantification/optimisation du modèle : FP16/INT8 tout en conservant la qualité.
Chargeback : cost/request, cost/feature par équipe/marchés.
16) Exemples (fragments)
Seuil par expected-cost (pseudo-code) :python thr_grid = np.linspace(0.01, 0.99, 99)
costs = [expected_cost(y_true, y_prob >= t, c_fp, c_fn) for t in thr_grid]
thr_best = thr_grid[np.argmin(costs)]
Prometheus (idées de métriques) :
text model_inference_latency_ms_bucket feature_fetch_latency_ms_bucket model_request_total{code}
model_score_distribution_bucket psi_feature_amount_base ece_calibration expected_cost_live slice_pr_auc{slice="EEA_mobile"}
Alert (idée) :
text
ALERT DriftDetected
IF psi_feature_amount_base > 0.2 FOR 15m
17) Processus et RACI
R (Responsible) : MLOps (observation/alertes/registre), Data Science (métriques de qualité/étalonnage/seuil), Data Eng (fiches/contrats/équivalence).
A (Accountable): Head of Data / CDO.
C (Consulté) : Conformité/DPO (PII/RG/AML/DSAR), Sécurité (KMS/audit), SRE (SLO/incidents), Finances (coût).
I (Informed) : Produit/Marketing/Opérations/Support.
18) Feuille de route
MVP (2-4 semaines) :1. SLI/SLO de base (latency/5xx/coverage) + dashboard.
2. PSI pour le top 10 fich et la distribution de score ; ECE et expected-cost sur les labels proxy.
3. Logs de solutions + OTel-trails ; test d'équivalence online/offline.
4. Alert HighP95Latency/PSI_Drift/ECE_Bad + runbook '.
Phase 2 (4-8 semaines) :- Slice/fairness panels, métriques de backfill nightly sur les labels retardés.
- Auto-recalage de calibrage et simulateur de seuil.
- Cost-dashboard et quotas/limites pour les fiches/replis.
- Auto-relaut/retraine par dérive avec contrôle canarien.
- Archives WORM des rapports de qualité et des artefacts.
- Tests de surveillance et exercice DR.
19) Chèque-liste de préparation
- Les SLI/SLO sont négociés et promus sur shadow/canary ≥ 24 h.
- Les normes PSI/KL, ECE, expected-cost et PR-AUC sont considérées comme étant en ligne ; les seuils et les alertes sont donnés.
- Les panneaux slice/fairness sont inclus ; les propriétaires de segments sont désignés.
- Les logs/trajets complets (solutions, seuils, masques), le masque PII et la résidence sont respectés.
- Test d'équivalence en ligne/hors ligne vert ; les schémas de fich sous contrat.
- Runbook 'et one-click rollback vérifiés ; kill-switch для guardrails.
- Le coût correspond aux budgets ; cache/quotas/limites sont actifs.
- L'archive WORM des métriques/artefacts et des rapports de qualité est conservée.
20) Anti-modèles et risques
L'absence de labels en ligne et d'évaluation rétrospective.
Surveillance uniquement ROC-AUC sans étalonnage et étalonnage.
Ignorer slice/fairness → échecs cachés dans les régions/périphériques.
Il n'y a pas d'équivalence online/offline fich → « double réalité ».
Zéro guardrails : Offers toxiques, violations RG/AML.
Pas de plans de retour/DR, pas d'archive WORM.
21) Résultat
Le suivi des modèles est un système d'alerte précoce et de gestion des risques et des coûts, et non un système de « surveillance une fois par semaine ». Entrez SLO, mesurez la dérive/calibration/expected-cost, surveillez les diapositives et les guardrails, gardez les boutons rollback/kill-switch, automatisez les rapports et les retraits. De cette façon, les modèles resteront utiles, éthiques et conformes à toutes les turbulences des données et du trafic.