Инженер собрал ML-пайплайн для ранжирования подозрительных транзакций

Старший инженер по данным Максим Коцюба собрал сквозной ML/MLOps-пайплайн для финмониторинга, который ранжирует операции по риску, а не делит их на два класса. Код и MVP опубликованы на GitHub.

Главное
  • Пайплайн построен на датасете SAML-D, где доля подозрительных операций — 0,119%
  • Precision@100 у LightGBM и XGBoost достиг 1,00, а Precision@500 — 0,322 и 0,310 соответственно
  • Более 90% срабатываний действующих rule-based систем финмониторинга ложные
Схема ML/MLOps-пайплайна для финансового мониторинга: от загрузки данных до скоринга и мониторинга модели
Фото: Хабр: Машинное обучение

Старший инженер по данным Максим Коцюба представил сквозной ML/MLOps-пайплайн для финансового мониторинга. Проект вырос из выпускной работы в онлайн-магистратуре «Инженерия данных» НИУ ВШЭ и Нетологии. Код и MVP опубликованы на GitHub.

Автор описывает масштаб проблемы: с 2010 по 2025 год объём операций по картам вырос в 23 раза — с 3,1 до 72,7 млрд, а число действующих кредитных организаций сократилось почти на 67% — с 1058 до 353. Нагрузка на одну организацию выросла примерно в 70 раз.

Почему не бинарная классификация

Действующие rule-based системы комплаенс-мониторинга дают более 90% ложных срабатываний, и разбор этого потока занимает большую часть времени аналитиков. В проекте рассматривались и готовые коммерческие AML-платформы, такие как SAS AML и NICE Actimize, но они остаются закрытыми системами, где сложно менять внутреннюю логику.

Изначально рассматривались два подхода: бинарная классификация и риск-ориентированное ранжирование. Эксперименты показали, что при сильном дисбалансе классов — доля подозрительных операций в датасете SAML-D составила всего 0,119% — метрики ранжирования Precision@k и Lift@k оказались показательнее метрик классификации. Порог 0,5 в реальности непригоден: его должны определять допустимая нагрузка на аналитиков и требуемая полнота выявления.

На датасете SAML-D для топ-100 обе модели показали Precision@100 = 1,00. Для топ-500 показатели снижаются: Precision@500 у LightGBM составил 0,322, у XGBoost — 0,310.

Что внутри контура

Система спроектирована как контейнеризированный модульный контур, а не монолитное приложение. Это нужно для воспроизводимости экспериментов и возможности заменять или масштабировать отдельные компоненты. Контур охватывает весь цикл: от загрузки данных до обновления и дообучения модели.

Автор подчёркивает, что речь не о замене rule-based систем ML-моделью. Правила в финмониторинге по-прежнему нужны из-за прозрачности и контроля отдельных сценариев. Основной вопрос — как организовать работу с моделью после её появления: обучение, сравнение версий, развёртывание, мониторинг и повторное обучение.

Научный руководитель проекта, доцент ФКН НИУ ВШЭ Салех Хади Мухаммед, отмечает, что санкционные ограничения усиливают потребность в локально разворачиваемых решениях — из-за рисков ограничения поставок, лицензирования, обновлений и поддержки зарубежного ПО.

Для профиТехнические детали: архитектура, цифры, ссылки
  • Датасет: SAML-D, доля подозрительных операций — 0,119%.
  • Модели: LightGBM и XGBoost. Precision@100 = 1,00 у обеих; Precision@500 — 0,322 и 0,310 соответственно.
  • Метрики: Precision@k и Lift@k вместо метрик классификации.
  • Архитектура: контейнеризированный модульный ML/MLOps-контур — подготовка данных, трекинг экспериментов, обучение, развёртывание, мониторинг, дообучение.
  • Роли: аналитик работает с риск-скором и объяснением, дата-сайентист ставит эксперименты, MLOps-инженер отвечает за непрерывность.
  • Код: исходный код и MVP опубликованы на GitHub.

Что это значит для России

Проект ориентирован на локальное развёртывание, что автор связывает с санкционными ограничениями: рисками ограничения поставок, лицензирования, обновлений и поддержки зарубежного ПО. Стек собран из открытых компонентов, допускающих развёртывание внутри инфраструктуры организации.

Автор имеет опыт работы в финсекторе — ВТБ и Сбер. Датасет SAML-D, использованный в проекте, — открытый.

Вопросы и ответы

Почему ранжирование лучше бинарной классификации для финмониторинга?
При доле подозрительных операций 0,119% метрики ранжирования Precision@k и Lift@k показательнее метрик классификации, а порог 0,5 непригоден для эксплуатации.
Какие модели использовались в проекте?
LightGBM и XGBoost. На датасете SAML-D Precision@100 у обеих составил 1,00, Precision@500 — 0,322 и 0,310.
Где доступен код проекта?
Исходный код и MVP опубликованы на GitHub.