Дрейф моделей і оновлення даних
1) Навіщо це важливо
В iGaming розподілу трафіку, платежів та ігрової поведінки швидко змінюються (сезонність, провайдери, акції, регуляторні правила). Без системного контролю дрейфу зростає expected cost помилок: втрати в Net Revenue, помилкові RG/AML-інтервенції, зростання абьюза бонусів. Мета - рано виявляти дрейф, діагностувати причину, безпечно оновлювати дані і моделі.
2) Таксономія дрейфу (що може «попливти»)
Covariate drift (X): змінилися фічі (наприклад, частка мобільного/ASN, мікс провайдерів).
Label/Outcome drift (Y): змінилася база подій (chargeback-rate, click/convert-rate).
3) Сигнали і пороги (орієнтири)
PSI (Population Stability Index): 0. 10–0. 20 попередження,> 0. 20 - подія дрейфу.
KL-дивергенція/JS: зростання до порогів за ключовими фічами/швидкістю.
KS для скорів (при лейблах): зростання розбіжності CDF.
ECE (калібрування): >0. 05 попередження,> 0. 07 - дія.
Expected-cost@threshold: зростання на X% до базової моделі.
Coverage и Missing-rate: падіння покриття <99%, зростання missing/timeout> порогу.
Slice-метрики: PR-AUC/ECE/expected-cost по ринках/девайсах; тригери на падіння> Y%.
Вибір вікна: оперативно - 1ч/6ч/24ч (ковзне), звітно - D + 1/D + 7 (облік затриманих лейблів).
4) Вікна і лейбли (затримки)
Швидкі проксі-лейбли: клік, депозит 7д, завершений RG-кейс - для ранньої оцінки.
Затримані лейбли: chargeback (45-90д), churn/LTV - для ретроспективної валідації та коригування порогів/калібрування.
As-of дисципліна: ні в фічах, ні в лейблах - «подій з майбутнього».
5) Діагностика першопричин (RCA чек-лист)
1. Дані: PSI/KL за топ-фічами, missing/lag, schema diffs, нові категорії.
2. Джерело: алерти постачальників (PSP/провайдер ігор), помилки API/timeout.
3. Сезонність/акції: пік місій/турнірів, зміни RTP/каталогу.
4. Регіон/резидентність: зрушення трафіку по ринках, нові правила KYC/RG.
5. Техніка: деградація фіча-кешу, повільний CDC, small files шторм.
6. Довідники/курси валют/календарі: застаріли? (FX/свята).
7. Справедливість: провал якості в конкретних слайсах.
6) Playbook дій при дрейфі
6. 1 Covariate/Feature drift
Швидко: оновити калібрування (Platt/Isotonic D + 1), підлаштувати поріг по expected-cost.
Середньостроково: частковий refeature (стійкі агрегати/вікна), оновити TE/WOE з time-aware CV.
Довгостроково: retrain з новими вибірками/вікнами, при необхідності переглянути архітектуру фіч.
6. 2 Label/Outcome drift
Перерахувати пороги по свіжих лейблах (D + 1, D + 7), пере-калібрувати.
Зафіксувати guardrails (обмежити агресивні дії до стабілізації).
6. 3 Concept drift
Shadow-навчання нової версії на останніх даних → canary → повний rollout.
Розглянути доменну декомпозицію (окремі моделі за сегментами/ринками).
6. 4 Schema/Operational drift
Увімкнути подвійний запис v1/v2 схем, тест еквівалентності online/offline.
Полагодити джерела, включити кеш/фолбеки, компенсувати пропуски backfill.
6. 5 Fairness drift
Тимчасові слайс-пороги/калібрування, targeted retrain/ребаланс фіч, аудит проксі-змінних.
6. 6 Ескалації
Kill-switch (guardrails breach) → безпечний fallback/попередня версія.
Rollback one-click при зростанні 5xx/latency/expected-cost.
7) Політика оновлення даних
7. 1 Інкременти та CDC
Стабільні watermarks/лог-реплікація; ідемпотентні MERGE/UPSERT.
7. 2 Backfill/Reprocessing
Backfill: догон за діапазон (з квотами і вікнами).
Reprocessing: перерахунок при зміні логіки/виправленні помилок.
Мітки: `logic_version`, `reprocessed_at`, `reason`; звіт про вплив (метрики/вартість).
7. 3 Time-travel/WORM
ACID-таблиці (Delta/Iceberg/Hudi), WORM-архіви звітів/релізів.
«Як було на дату»: відтворюваність регуляторної звітності.
7. 4 Довідники/FX/Календарі
Авто-оновлення, підпис, версії і перевірка свіжості (SLO на latency і age).
8) Метрики та алерти (мінімальний набір)
Дані: PSI/KL за топ-фічами, missing-rate, feature-fetch latency.
Якість: PR-AUC/KS (на проксі-лейблах), ECE, expected-cost @thr.
Операції: p95/p99 latency, 5xx, coverage, autoscaling, cost/request.
Fairness: слайс-панелі (ринки/пристрої/провайдери).
Контракти: schema-violations, online/offline equivalence test.
9) Процедури оновлення моделі
1. Shadow: нова модель на копіях запитів, порівняння latency/quality/cost.
2. Canary: 5-10% → 25% → 50% → 100% при зелених SLO.
3. Поріг/калібрування: розраховуємо на D + 1; пороги - конфіг у реєстрі.
4. Документація: картка моделі (дані, вікна, метрики, ризики, fairness).
5. Архів: WORM релізу (ваги, калібрування, журнали тестів, звіти дрейфу).
10) Приклади (фрагменти)
10. 1 PSI в SQL-ідеях (бінінг заздалегідь підготовлений)
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 Коригування порогу по expected-cost (псевдокод)
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 Еквівалентність online/offline фіч
python diff = np. abs(f_online. values - f_offline. values)
assert np. quantile(diff, 0. 95) < MAX_ABS_DIFF_95
10. 4 Backfill з обмеженням навантаження (ідея оркестрації)
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) Тести та контроль змін
Контракти схем/фіч: consumer-driven tests, подвійний запис v1/v2.
Регресійні тести метрик: не погіршувати PR-AUC/ECE/expected-cost за рамки допуску.
Тести еквівалентності online/offline: на еталонній вибірці.
Chaos-тести: відмова фіча-кешу, таймаути джерел, burst-трафік.
12) Fairness і комплаєнс
Slice-звіти (disparate impact, equalized odds), слайс-пороги/калібрування.
PII-мінімізація, резидентність (EEA/UK/BR), DSAR/RTBF, Legal Hold.
Аудит рішень: 'policy _ id','threshold', причини інтервенцій, WORM-логи.
13) Вартість і продуктивність
Cost dashboards: cost/request, cost/feature, state-size стріму, IO/scan/GB для batch.
Оптимізація: матеріалізація важких фіч офлайн, кеш гарячих вікон, INT8/FP16 при рівній якості.
Квоти: ліміти на backfill/реплеї, бюджет на retrain по ринках/командах.
14) RACI
R (Responsible): MLOps (моніторинг/реєстр/викати), Data Eng (дані/CDC/backfill/контракти), Data Science (діагностика/калібрування/retrain/fairness).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/аудит), SRE (SLO/вартість), Finance (бюджети/ROI).
I (Informed): Продукт/Маркетинг/Операції/Підтримка.
15) Дорожня карта
MVP (2-4 тижні):1. PSI/KL за топ-фічами і score, ECE, expected-cost на проксі-лейблах.
2. Дашборди coverage/missing/feature-lag, алерти і runbook'і.
3. Процедури recalibration (D + 1) і порогів; shadow-шлях для нових моделей.
4. Контракти схем/фіч і тест еквівалентності online/offline.
Фаза 2 (4-8 тижнів):- RCA-панель, slice/fairness-моніторинг, backfill-план з квотами.
- Авто-перекат калібрування/порогів, симулятор порогів (what-if).
- Архів WORM звітів дрейфу і релізів.
- Авто-retrain щодо подій дрейфу (канареечно), мульти-регіональна політика.
- Cost-квоти/chargeback, chaos-/DR-навчання, автоген документації.
16) Чек-лист перед продом
- SLI/SLO і алерти налаштовані (PSI/ECE/expected-cost/coverage/latency/5xx).
- Контракти схем/фіч і подвійний запис v1/v2 - зелені.
- Процедури recalibration/threshold-update документовані і автоматизовані.
- Shadow/canary з one-click rollback перевірені.
- Backfill/reprocessing з квотами і вікнами - готові; WORM-архів включено.
- Slice/fairness-панелі і власники сегментів призначені.
- Політики PII/DSAR/RTBF/Legal Hold дотримані; аудит включено.
- Вартість під контролем (cost/request, cost/feature), кеш/TTL налаштовані.
17) Анти-патерни і ризики
Побачили високий PSI - відразу retrain «наосліп», без RCA і калібрування.
Немає обліку затриманих лейблів → помилкові висновки, «пиляння порогів» кожен день.
Відсутність тесту еквівалентності online/offline → «подвійна реальність».
Ігнор fairness: провали в ринках/пристроях залишаються невидимими.
Backfill без квот/вікон → удар по вартостях і SLA.
Поріг фіксований «назавжди» → зростання expected-cost при сезонності.
18) Підсумок
Управління дрейфом - це не одноразовий retrain, а процес: спостережуваність → діагностика → мінімально-ризикова дія (калібрування/поріг) → безпечний retrain/рефічеринг → контроль вартості та аудиту. З такою дисципліною моделі залишаються точними, етичними і комплаєнтними, навіть коли поведінка гравців, провайдерів і ринок змінюються.