Проектирование Senior Батч и стриминг обновлено

Спроектируйте потоковые признаки для антифрода

Вопрос

Платёжный сервис: 5000 транзакций в секунду в пике. Модели антифрода нужны признаки в момент платежа: число и сумма транзакций карты за 1 минуту, 1 час и 24 часа, число разных устройств за сутки, расстояние от прошлой транзакции. Решение должно приниматься за 100 мс. Спроектируйте систему.

Коротко

Ключевые решения: партиционирование потока по карте, чтобы всё состояние карты жило на одном обработчике; состояние окон с TTL; онлайн-хранилище признаков с чтением за миллисекунды; единые определения признаков для обучения и прода (feature store), иначе модель на проде видит не то, на чём училась.

Что должно быть в решении

  1. 1
    Требования: список признаков и окон, задержка 100 мс на ответ, допустимая неточность, аудит решений
  2. 2
    Оценка нагрузки: 5000 событий в секунду, число активных карт, размер состояния на окна 24 часа
  3. 3
    Поток: события платежей в Kafka с ключом по карте, обработка во Flink с состоянием по карте
  4. 4
    Признаки: скользящие окна с TTL, приближённые структуры для distinct (HyperLogLog) там, где можно
  5. 5
    Хранилище онлайн-признаков с чтением по ключу за миллисекунды (key-value), запись из стриминга
  6. 6
    Согласованность онлайн и офлайн: те же определения признаков для обучения, point-in-time корректность
  7. 7
    Отказоустойчивость: чекпоинты, поведение при отставании (фолбэк на правила), мониторинг lag и задержки

Что спросит интервьюер

  • Что делать, если стриминг отстаёт на 5 минут?
  • Как гарантировать, что признак на обучении и в проде считается одинаково?
  • Как учесть текущий платёж в признаках?

Разбор

Ключевые решения: партиционирование потока по карте, чтобы всё состояние карты жило на одном обработчике; состояние окон с TTL; онлайн-хранилище признаков с чтением за миллисекунды; единые определения признаков для обучения и прода (feature store), иначе модель на проде видит не то, на чём училась. Отдельно обработать отставание стриминга: сервис решений должен знать свежесть признаков и при большой задержке переходить на правила.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.