Logo GH

Дрейф моделей і оновлення даних

1) Навіщо це важливо

В iGaming розподілу трафіку, платежів та ігрової поведінки швидко змінюються (сезонність, провайдери, акції, регуляторні правила). Без системного контролю дрейфу зростає expected cost помилок: втрати в Net Revenue, помилкові RG/AML-інтервенції, зростання абьюза бонусів. Мета - рано виявляти дрейф, діагностувати причину, безпечно оновлювати дані і моделі.

2) Таксономія дрейфу (що може «попливти»)

Covariate drift (X): змінилися фічі (наприклад, частка мобільного/ASN, мікс провайдерів).
Label/Outcome drift (Y): змінилася база подій (chargeback-rate, click/convert-rate).

Concept drift (P(YX)): колишні ознаки інакше пов'язані з таргетом (нові схеми фроду, інші реакції на промо).
Feature drift: зміщення статистик конкретної фічі (mean/var/rate/missing).
Schema drift: еволюція схем/категорій/ID провайдерів, нові значення.
Operational drift: лаг фіч, помилки джерел, зростання missing/timeout, «гарячі ключі».
Fairness drift: погіршення якості/калібрування в слайсах (ринок, пристрій, провайдер).

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 звітів дрейфу і релізів.
Фаза 3 (8-12 тижнів):
  • Авто-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/рефічеринг → контроль вартості та аудиту. З такою дисципліною моделі залишаються точними, етичними і комплаєнтними, навіть коли поведінка гравців, провайдерів і ринок змінюються.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.