Обучение моделей
1) Назначение и принципы
Цель обучения — получить устойчивую, воспроизводимую и экономичную модель, улучшающую бизнес-метрики (Net Revenue, churn↓, fraud↓) при соблюдении RG/AML/Legal.
Принципы:- Problem→Metric→Data: сначала задача и операционная метрика/стоимость ошибок, затем датасет.
- Point-in-time: ни одна фича/лейбл не использует будущее.
- Reproducibility: фиксированные seeds/версии, контроль артефактов.
- Simplicity first: начинаем с базовых моделей/фич; усложняем только при доказанной выгоде.
- Privacy by design: PII-минимизация, резидентность, аудит.
2) Формализация задачи и метрик
Классификация: churn/депозит/фрод/RG → PR-AUC, F1@опер.порог, KS, expected cost.
Регрессия/прогноз: LTV/GGR → WAPE/SMAPE, P50/P90 ошибка, покрытие PI.
Ранжирование/рекомендации: NDCG@K, MAP@K, coverage/diversity.
Онлайн-метрики: uplift Net Revenue, CTR/CVR, time-to-intervene (RG), abuse-rate.
python best_thr = argmin_thr(cost_fp FPR(thr) + cost_fn FNR(thr))
3) Датасеты и разбиения
Point-in-time join и SCD-совместимые измерения.
Дисбаланс классов: stratifed sampling, class_weight, focal loss, oversampling редких событий.
Разбиения по времени/рынкам/тенантам: train↔val↔test с «зазором» (gap) для утечек.
sql
SELECT FROM ds WHERE event_time < '2025-07-01' -- train
UNION ALL SELECT FROM ds WHERE event_time BETWEEN '2025-07-01' AND '2025-08-15' -- val
UNION ALL SELECT FROM ds WHERE event_time > '2025-08-15' -- test
4) Подготовка признаков
Окна и агрегаты: 10м/1ч/1д/7д/30д, R/F/M, скорости/доли.
Категории: hashing/one-hot; target encoding (time-aware).
Нормализация/скейлинг: параметры от train, сохраняем в артефактах.
Графовые/NLP/гео: строим батчем, публикуем в Feature Store (online/offline).
5) Базовые алгоритмы
GBDT: XGBoost/LightGBM/CatBoost — сильная база для табличных данных.
Логистическая регрессия/ElasticNet: интерпретируемая/дешевая.
Рекомендательные: LambdaMART, факторизация, seq2rec.
Аномалии: Isolation Forest, AutoEncoder.
Временные ряды: Prophet/ETS/GBDT-по фичам календаря.
6) Регуляризация и предотвращение переобучения
GBDT: `max_depth`, `num_leaves`, `min_data_in_leaf`, `subsample`, `colsample_bytree`, `lambda_l1/l2`.
NN: dropout/weight decay/early stopping.
Ранняя остановка: по метрике на val с patience и минимальным улучшением.
7) Подбор гиперпараметров
Grid/Random для чернового поиска; Bayesian/Hyperband для тонкой настройки.
Ограничения: бюджет итераций/времени/стоимости, «no-overfit» на val (перекрестная проверка на нескольких временных сплитах).
python for params in sampler():
model = LGBMClassifier(params, random_state=SEED)
model. fit(X_tr, y_tr, eval_set=[(X_val, y_val)],
eval_metric="aucpr", early_stopping_rounds=200)
log_trial(params, pr_auc=pr_auc(model, X_val, y_val), cost=cost())
8) Калибровка вероятностей
Platt/Isotonic на holdout; хранить калибровочную функцию как артефакт.
Проверять ECE/релайабилити; пересогласовывать пороги по expected cost.
9) Интерпретируемость и объяснения
Global: feature importance/SHAP, пермутационный вклад.
Local: SHAP для единичных решений (RG/AML кейсы).
Документировать риски и допустимость использования объяснений в онлайне.
10) Воспроизводимость и артефакты
Seed везде: данные/модель/подбор/разбиения.
Артефакты: версия данных, фич-пайплайн, веса, калибровка, пороги, конфиги.
Deterministic builds: зафиксированные контейнеры/зависимости.
11) Трекинг экспериментов
Регистрируем: git-коммит, версии датасета/фич, конфиг модели, метрики (off/online), артефакты и комментарии.
Правила именования экспериментов, тэги (домен/рынок/модель).
12) Перенос офлайн → онлайн
Единый код трансформаций (Feature Store); тест эквивалентности online/offline.
Сервинг: REST/gRPC, таймауты/ретраи/кэш; канареечный/поэтапный выкаты.
Порог/политика: конфигурируемы (фича-флаги), audit и roll-back.
13) Мониторинг и дрейф
Данные/скор: PSI/KL; алерты при превышении порогов.
Калибровка и метрики: ECE, PR-AUC/KS на потоковых лейблах.
Бизнес-метрики: uplift Net Revenue, fraud saved, RG-интервенции, SLA.
Триггеры retrain: по дрейфу/сезонности/релизам/сроку годности.
14) Приватность, резидентность, fairness
PII-минимизация: псевдонимы, CLS/RLS, отдельные маппинги.
Residency: отдельные каталоги/ключи (EEA/UK/BR); запрет кросс-регионных join’ов без оснований.
Fairness: слайс-анализ (рынок/устройство/возраст аккаунта), disparate impact, equalized odds; корректировка фич/порогов/весов.
15) Cost-инжиниринг
Стоимость обучения: CPU/GPU-часы, I/O, количество прогонов.
Стоимость инференса: latency/cost per request; лимиты на онлайн-фичи и размер модели.
Материализация: тяжелые фичи — офлайн; онлайновые — быстрые, кэшируемые.
Chargeback: бюджеты на эксперименты/реплеи.
16) Примеры (фрагменты)
LightGBM (классификация, Python-эскиз):python params = dict(
objective="binary", metric="average_precision",
num_leaves=64, learning_rate=0. 05, feature_fraction=0. 8,
bagging_fraction=0. 8, lambda_l1=1. 0, lambda_l2=2. 0
)
model = lgb. train(params, train_data,
valid_sets=[valid_data],
early_stopping_rounds=200, verbose_eval=100)
save_artifacts(model, scaler, feature_spec, cal_model)
Point-in-time выборка (SQL-идея):
sql
SELECT a. user_pseudo_id, a. asof, f. dep_30d, f. bets_7d, lbl. churn_30d
FROM features_at_asof f
JOIN asof_index a USING(user_pseudo_id, asof)
JOIN labels lbl USING(user_pseudo_id, asof);
Оценка expected cost и выбор порога:
python thr_grid = np. linspace(0. 01, 0. 99, 99)
costs = [expected_cost(y_val, y_proba >= t, cost_fp, cost_fn) for t in thr_grid]
t_best = thr_grid[np. argmin(costs)]
17) Процессы и RACI
R (Responsible): Data Science (модели/эксперименты), Data Eng (датасеты/фичи/Feature Store), MLOps (сервинг/мониторинг/CI-CD-CT).
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/DPO (PII/RG/AML/DSAR), Security (KMS/секреты/аудит), SRE (SLO/стоимость), Finance (ROI).
I (Informed): Продукт/Маркетинг/Операции/Поддержка.
18) Дорожная карта внедрения
MVP (3–6 недель):1. Каталог задач и метрик (expected cost), point-in-time датасеты.
2. Базовые модели (LogReg/GBDT) + калибровка + карточки моделей.
3. Трекинг экспериментов, фиксированные seeds/артефакты, reproducible builds.
4. Канареечный онлайновый сервинг, пороги как конфиг, алерты метрик/дрейфа.
Фаза 2 (6–12 недель):- Байесовский/Hyperband подбор, слайс-анализ/fairness, retrain-триггеры.
- Экономика фич/инференса, кэш/TTL, chargeback.
- Документация формул метрик/порогов, what-if симуляции.
- Мульти-региональные пайплайны, DR/учения, WORM-архив релизов.
- Автогенерация отчетов качества/калибровки, авто-перетренировка по событиям.
- Эксперименты A/B/n с sequential testing и автоматическим остановом.
19) Чек-лист перед продом
- Задача и метрика бизнес-согласованы; рассчитана стоимость ошибок.
- Датасет point-in-time; разбиения по времени/рынкам; отсутствует лейкедж.
- Подбор/регуляризация, ранняя остановка, калибровка вероятностей.
- Карточка модели: данные, фичи, метрики, риски, fairness, владелец.
- Артефакты сохранены (веса, фич-пайплайн, калибровка, пороги).
- Тест эквивалентности online/offline пройден; сервинг с фича-флагом.
- Мониторинг дрейфа/калибровки/бизнес-метрик; планы retrain/rollback.
- Политики PII/DSAR/RTBF, резидентность и аудит доступа соблюдены.
- Стоимость обучения/инференса вписана в бюджет; алерты SLA.
20) Анти-паттерны и риски
Лейкедж: фичи/лейблы из будущего, несогласованные SCD.
Тюнинг «до синевы» на одной вал-выборке: нет временных сплитов/перекрестной проверки.
Отсутствие калибровки и порогов по стоимости.
Несовпадение онлайн/офлайн фич: разные результаты на проде.
Игнор fairness/слайсов: скрытые провалы на рынках/устройствах.
Безлимитные реплеи и дорогие фичи: рост стоимости без выгоды.
21) Итог
Обучение моделей — это управляемый процесс: четкая задача и метрика, дисциплина данных (point-in-time), разумный тюнинг с регуляризацией, калибровка и воспроизводимость, прозрачный перенос в онлайн и постоянный мониторинг качества, стоимости и рисков. Следуя этому плейбуку, вы получаете модели, которые предсказуемо улучшают продукт, удержание и комплаенс — быстро, этично и надежно.