Dérive des modèles et mise à jour des données
1) Pourquoi est-ce important
Dans iGaming, la distribution du trafic, des paiements et du comportement de jeu change rapidement (saisonnalité, fournisseurs, actions, règles réglementaires). Sans contrôle systémique de la dérive, les erreurs de cost expected augmentent : pertes dans Net Revenue, fausses interventions RG/AML, augmentation des bonus d'abysse. L'objectif est de détecter tôt la dérive, de diagnostiquer la cause, de mettre à jour les données et les modèles en toute sécurité.
2) Taxonomie de la dérive (qui peut « flotter »)
Covariate drift (X) : les fiches ont changé (par exemple, la proportion de mobile/ASN, le mélange de fournisseurs).
Label/Outcome drift (Y) : la base d'événements (chargeback-rate, click/convert-rate) a changé.
3) Signaux et seuils (repères)
PSI (Population Stability Index): 0. 10–0. 20 avertissement,> 0. 20 est un événement de dérive.
KL-divergence/JS : croissance vers les seuils pour les raies/pelles clés.
KS pour les scores (sous les labels) : augmentation de l'écart CDF.
ECE (étalonnage):> 0. 05 avertissement,> 0. 07 - action.
Expected-cost @ threshold : croissance de X % vers le modèle de base.
Taux de couverture et de missing : baisse de couverture <99 %, croissance de missing/timeout> seuil.
Mesures de slice : PR-AUC/ECE/expected-cost sur les marchés/devis ; déclencheurs de chute> Y %.
Choix de la fenêtre : rapide - 1h/6h/24h (glissant), rapport - D + 1/D + 7 (comptage des labels détenus).
4) Fenêtres et labels (retards)
Labels proxy rapides : click, dépôt de 7d, case RG terminée - pour une évaluation précoce.
Labels retardés : chargeback (45-90d), churn/LTV - pour la validation rétrospective et l'ajustement des seuils/étalonnage.
La discipline : ni dans les dattes, ni dans les labels - « événements du futur ».
5) Diagnostic des causes profondes (chèque RCA)
1. Données : PSI/KL par top fiches, missing/lag, schema diffs, nouvelles catégories.
2. Source : alertes fournisseurs (PSP/fournisseur de jeux), erreurs API/timeout.
3. Saisonnalité/promotions : pic missions/tournois, changements RTP/catalogue.
4. Région/résidence : déplacement du trafic sur les marchés, nouvelles règles KYC/RG.
5. Technique : dégradation du cache de ficha, CDC lent, tempête de petits fichiers.
6. Annuaires/taux de change/calendriers : obsolètes ? (FX/vacances).
7. Justice : échec de la qualité dans des diapositives spécifiques.
6) Playbook d'actions en cas de dérive
6. 1 Covariate/Feature drift
Rapide : mettre à jour l'étalonnage (Platt/Isotonic D + 1), ajuster le seuil en fonction de l'expected-cost.
Moyen terme : refeature partielle (agrégats/fenêtres résistants), mettre à jour le TE/WOE avec time-aware CV.
À long terme : retraite avec de nouveaux échantillons/fenêtres, si nécessaire, revoir l'architecture de la fiche.
6. 2 Label/Outcome drift
Recalculer les seuils sur les étiquettes fraîches (D + 1, D + 7), calibrer la plume.
Fixer les guardrails (limiter les actions agressives jusqu'à stabilisation).
6. 3 Concept drift
Shadow-learning nouvelle version sur les dernières données → canary → rollout complet.
Examiner la décomposition des domaines (modèles individuels par segment/marché).
6. 4 Schema/Operational drift
Activer le double enregistrement v1/v2 des schémas, test d'équivalence online/offline.
Réparer les sources, activer le cache/folbacks, compenser les omissions backfill.
6. 5 Fairness drift
Seuils de diapositives temporaires/étalonnage, targeted retrain/rebalance fich, audit des variables proxy.
6. 6 Escalade
Kill-switch (guardrails breach) → fallback sécurisé/version précédente.
Rollback one-click avec une croissance de 5xx/latency/expected-cost.
7) Politique de mise à jour des données
7. 1 Incréments et CDC
Watermarks/réplication de journal stable ; idempotent MERGE/UPSERT.
7. 2 Backfill/Reprocessing
Backfill : dogon par gamme (avec quotas et fenêtres).
Reprocessing : recalculer lorsque la logique change/corriger les erreurs.
Метки: `logic_version`, `reprocessed_at`, `reason`; rapport d'impact (métriques/coût).
7. 3 Time-travel/WORM
Tables ACID (Delta/Iceberg/Hudi), archives WORM des rapports/versions.
« Comme c'était le cas à la date » : reproductibilité des rapports réglementaires.
7. 4 Manuels/FX/Calendriers
Auto-mises à jour, signature, versions et vérification de la fraîcheur (SLO sur latency et age).
8) Métriques et alertes (ensemble minimum)
Données : PSI/KL par top fiches, missing-rate, feature-fetch latency.
Qualité : PR-AUC/KS (sur les labels proxy), ECE, expected-cost @ thr.
Opérations : p95/p99 latency, 5xx, coverage, autoscaling, cost/request.
Fairness : diapositives (marchés/appareils/fournisseurs).
Contrats : schema-violences, test d'equivalence en ligne/hors ligne.
9) Procédures de mise à jour du modèle
1. Shadow : nouveau modèle sur les copies de requête, comparaison latinité/qualité/cost.
2. Canary : 5-10 % → 25 % → 50 % → 100 % avec SLO vert.
3. Seuil/étalonnage : On compte sur D + 1 ; les seuils sont configus dans le registre.
4. Documentation : carte modèle (données, fenêtres, métriques, risques, fairness).
5. Archives : version WORM (poids, étalonnage, journaux de test, rapports de dérive).
10) Exemples (fragments)
10. 1 PSI dans les idées SQL (bining préparé à l'avance)
sql
-- ref_dist(bin, p_ref), prod_dist(bin, p_prod) для фичи amount_base
SELECT SUM((p_prod - p_ref) LN((p_prod + 1e-9)/(p_ref + 1e-9))) AS psi
FROM (
SELECT bin, COUNT()/SUM(COUNT()) OVER() AS p_prod
FROM prod_binned GROUP BY bin
) p
JOIN (
SELECT bin, COUNT()/SUM(COUNT()) OVER() AS p_ref
FROM ref_binned GROUP BY bin
) r USING (bin);
10. 2 Correction du 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[int(np. argmin(costs))]
10. 3 Équivalence online/offline fich
python diff = np. abs(f_online. values - f_offline. values)
assert np. quantile(diff, 0. 95) < MAX_ABS_DIFF_95
10. 4 Backfill avec limitation de charge (idée d'orchestration)
yaml job: backfill_gold_ggr limits: {concurrency: 1, max_partitions_per_run: 4}
guards:
- window: "02:00-06:00"
- markets: ["EEA","UK"]
- budget: "compute_hours<=50"
11) Tests et contrôle des changements
Contrats de schémas/fich : tests de consommation, double enregistrement v1/v2.
Tests de régression métriques : ne pas aggraver la PR-AUC/ECE/expected-cost au-delà de la tolérance.
Tests d'équivalence en ligne/hors ligne : sur l'échantillon de référence.
Tests de chaos : panne de fich-cache, temporisation des sources, trafic burst.
12) Fairness et conformité
Rapports de slice (disparate impact, equalized odds), seuils de slice/calibrage.
PII-minimisation, résidence (EEE/UK/BR), DSAR/RTBF, Legal Hold.
Audit des solutions : 'policy _ id', 'threshold', causes des interventions, WORM logs.
13) Coût et performance
Cost dashboards: cost/request, cost/feature, state-size стрима, IO/scan/GB для batch.
Optimisation : matérialisation hors ligne des fiches lourdes, cache des fenêtres chaudes, INT8/FP16 à qualité égale.
Quotas : limites backfill/repli, budget retraite par marché/équipe.
14) RACI
R (Responsible) : MLOps (monitoring/register/off), Data Eng (data/CDC/backfill/contracts), Data Science (diagnostic/calibration/retrain/fairness).
A (Accountable): Head of Data / CDO.
C (Consulté) : Conformité/DPO (PII/RG/AML/DSAR), Sécurité (KMS/audit), SRE (SLO/coût), Finances (budgets/ROI).
I (Informed) : Produit/Marketing/Opérations/Support.
15) Feuille de route
MVP (2-4 semaines) :1. PSI/KL par top fiches et score, ECE, expected-cost sur les labels proxy.
2. Dashboard coverage/missing/feature-lag, alerts et runbook '.
3. Procédures de récupération (D + 1) et seuils ; un chemin shadow pour les nouveaux modèles.
4. Contrats de schémas/fiches et test d'équivalence en ligne/hors ligne.
Phase 2 (4-8 semaines) :- Panneau RCA, surveillance slice/fairness, plan backfill avec quotas.
- Auto-recadrage étalonnage/seuils, simulateur de seuils (what-if).
- Archives WORM des rapports de dérive et de version.
- Auto-retraite sur les événements de la dérive (canarien), politique multirégionale.
- Quotas de cost/chargeback, exercice chaos-/DR, documentation auto.
16) Chèque-liste avant la vente
- Les SLI/SLO et les alertes sont configurés (PSI/ECE/expected-cost/coverage/latency/5xx).
- Contrats de régime/fiche et double entrée v1/v2 - vert.
- Les procédures de recalibration/threshold-update sont documentées et automatisées.
- Shadow/canary avec un click rollback vérifié.
- Backfill/reprocessing avec quotas et fenêtres - prêts ; L'archive WORM est activée.
- Les panneaux Slice/fairness et les propriétaires de segments sont désignés.
- Les politiques PII/DSAR/RTBF/Legal Hold sont respectées ; l'audit est inclus.
- Coût sous contrôle (cost/request, cost/feature), cache/TTL configurés.
17) Anti-modèles et risques
Ils ont vu un PSI élevé - tout de suite « aveugle », sans RCA et étalonnage.
Il n'y a pas de comptage des labels détenus → de fausses conclusions, de « sciage des seuils » tous les jours.
Absence de test d'équivalence online/offline → « double réalité ».
Ignorer fairness : les défaillances des marchés/appareils restent invisibles.
Backfill sans quotas/fenêtres → un coup sur les valeurs et les SLA.
Le seuil est fixé « pour toujours » → la croissance de l'expected-cost à la saison.
18) Résultat
La gestion de la dérive est non à une seule fois retrain, et le procès : la perceptibilité → le diagnostic → l'action (calibreur/seuil) est minimale-hasardeuse → sûr retrain/refitchering → le contrôle du coût et l'audit. Avec cette discipline, les modèles restent précis, éthiques et conformes, même lorsque le comportement des joueurs, des fournisseurs et du marché change.