Основные темы поста:

  • Binance использует модели машинного обучения для отслеживания подозрительной активности на платформе.

  • Проблема, известная как устаревшие/неточные функции, может негативно повлиять на производительность таких моделей, заставляя их делать неточные прогнозы или классификации.

  • Наш потоковый конвейер — или процесс непрерывного снабжения модели данными в реальном времени — состоит из двух частей: обработка данных и доставка данных.

  • Обработка данных разделена на три категории: потоковые вычисления, сбор данных (захват) и слив данных (приемник).

Наша команда по рискам искусственного интеллекта, состоящая из инженеров по машинному обучению и специалистов по данным, работает круглосуточно, чтобы бороться с мошенничеством и защищать пользователей Binance. Для достижения этой цели они используют решения на основе искусственного интеллекта, которые могут выявлять и реагировать на потенциальные угрозы, такие как одноранговое (P2P) мошенничество, кража платежных данных и атаки с захватом учетных записей (ATO) и многие другие. 

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

Если вы не знакомы с машинным обучением, мы рекомендуем прочитать следующий раздел, чтобы получить базовый обзор некоторых терминов, которые мы будем использовать в этой статье. 

Пакетная обработка и поток

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

Пакетные конвейеры, как следует из названия, обрабатывают данные пакетно. Обычно инженеры используют их для обработки больших объемов данных.

С другой стороны, потоковые конвейеры обрабатывают данные в реальном времени по мере их сбора. Это делает их идеальными для ситуаций, требующих практически мгновенного реагирования; например, обнаружение хакера до того, как он сможет вывести средства с украденного аккаунта. 

Оба трубопровода одинаково важны. Потоковые конвейеры отлично подходят для предоставления ответов в режиме реального времени, а пакетные конвейеры лучше подходят для обработки больших объемов данных. 

В случае предотвращения мошенничества нам необходимо расставить приоритеты в отношении данных в реальном времени, чтобы избежать ситуации, называемой «устареванием модели», которая относится к устаревшим или неточным моделям машинного обучения. 

Значение устаревшего (устарело)

Точно так же, как люди могут стать менее эффективными в выполнении задачи, если они не в курсе новейшей информации или методов, модели машинного обучения также могут стать менее точными, если они не будут регулярно обновляться в зависимости от ситуации.

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

Обработка модели атаки с захватом учетной записи (ATO)

Давайте возьмем пример из нашей модели АТО, которую мы обучаем выявлять учетные записи, которые преступники захватили со злым умыслом. Одной из характеристик, измеряемых этой моделью, является количество транзакций, совершенных конкретным клиентом за последнюю минуту. 

Хакеры, как правило, следуют последовательной схеме, выполняя большое количество операций, таких как вывод средств, за короткий период. Наша система должна как можно быстрее выявить эту особенность в случае потенциальных угроз. Это означает минимизацию задержек между моментом, когда пользователь выполняет действие, и временем, когда данные об активности пользователя обрабатываются нашими моделями. Всего несколько секунд могут стать решающим фактором между остановкой хакера и потерей пользователем всех своих денег. 

Для получения дополнительной информации о том, как отложенные функции влияют на производительность модели, вы можете обратиться к этой инженерной статье LinkedIn: Функции, работающие почти в реальном времени, для персонализации, работающей почти в реальном времени.

Роль пакетной обработки

Обратите внимание, что важность устаревшей функции может зависеть от используемой модели или функции. Например, некоторые функции относительно стабильны. В случае упомянутого выше ATO нам также потребуется получить данные о выводе средств пользователями за последние 30 дней, чтобы рассчитать коэффициент на основе самых последних транзакций. 

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

Балансировка обновления и задержки

В конечном счете, выбор между пакетными и потоковыми конвейерами должен осуществляться на основе требований и возможностей конкретного варианта использования. Тщательный учет этих факторов позволяет нам создавать эффективные системы предотвращения мошенничества, которые защищают наших пользователей.

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

Вот почему конвейер машинного обучения в реальном времени имеет решающее значение для повседневной работы нашей группы управления рисками. 

Детали потокового конвейера

Машинное обучение в реальном времени команды Binance AI Risk в основном состоит из двух частей: 

  • Обработка данных (верхняя часть диаграммы)

  • Доставка данных (нижняя часть диаграммы)

Обработка данных

Что касается обработки данных, мы можем разделить наш потоковый конвейер (Flink Job) на три категории в зависимости от их обязанностей: 

  • Потоковая обработка: разработка функций

  • Сбор данных: сбор данных

  • Утечка данных: обогащение данных 

Потоковая обработка

Компонент потоковой обработки конвейера отвечает за разработку функций практически в реальном времени, процесс извлечения функций из необработанных данных.

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

  1. На основе времени. Подсчитывает количество транзакций каждые 10 минут. Этот процесс несколько устарел, но уменьшает задержку. 

  2. Основанный на событиях. Вычисляет ресурсы на основе происходящего события. Этот процесс уменьшает устаревание, но немного увеличивает задержку.

Мы предпочитаем не использовать обработку в реальном времени в максимально возможной степени, и вот почему:

  1. Существует компромисс между задержкой и устареванием. По мере поступления онлайн-запросов обработка ресурсов ограничивает логику обработки упрощенными подходами. Хотя этот метод уменьшает устаревание, обработка ресурсов увеличивает задержку прогнозирования.

  2. Независимое масштабирование является сложной задачей, поскольку услуги прогнозирования и обработки зависят друг от друга.

  3. Обработка по требованию, основанная на количестве запросов, создает непредсказуемое давление масштабирования.

  4. Обработка в реальном времени не адаптируется к нашему мониторингу модели (неравномерность обучения и обслуживания, несоответствие, которое может возникнуть между производительностью модели во время обучения и ее эффективностью при развертывании) и решениям по мониторингу ресурсов, поскольку ресурсы не хранятся в центральной базе данных, т.е. , хранилище ресурсов.

Сбор данных

Компонент сбора данных отвечает за сбор функций практически в реальном времени в репозитории функций нашей платформы машинного обучения Kafka. Репозитории функций — это централизованные базы данных, в которых хранятся часто используемые функции. Они играют важную роль в конвейерах машинного обучения. Вы можете узнать больше о них в следующих статьях: «Углубленный взгляд на наши возможности машинного обучения» и «Использование MLOps для создания сквозного конвейера машинного обучения в реальном времени».

Утечка данных

Компонент сбора данных в первую очередь отвечает за сбор событий в реальном времени в определенное место назначения, например в высокораспределенные файловые системы (HDFS), такие как S3, или другие внешние базы данных, такие как ElasticSearch, в зависимости от требований проекта.

Наша команда по рискам ИИ обычно использует два шаблона обогащения данных, которые можно применять к данным в реальном времени в Kafka в зависимости от варианта использования: 

  1. Статические данные. Например, получение списка популярных производителей в S3 для бизнес-проектов, связанных с P2P, в Flink jobs. Справочные данные статичны и требуют обновления не чаще одного раза в месяц. 

  2. Динамические данные. Обменные курсы в реальном времени (например, BTC к доллару США) получаются из внешних баз данных, таких как Redis. Поиск записей обеспечивает низкую задержку и высокую точность в случае изменения справочных данных.

Доставка данных

Компонент доставки данных конвейера отвечает за онлайн-прогнозирование и пакетную обработку. 

  1. Онлайн прогноз. Происходит, когда запросы поступают через Decision Hub (система внутренних правил нашей группы управления рисками). Соответствующая служба попросит репозиторий функций получить функции и отправить их в модель машинного обучения для маркировки. Наша команда по управлению рисками в области ИИ располагает более чем 20 моделями машинного обучения, предназначенными для удовлетворения различных бизнес-требований.

  2. Пакетная обработка. Хотя это может привести к задержке до нескольких дней, оно играет важную роль, поскольку дополняет ресурсы, обрабатываемые в режиме реального времени. 

Заключительные соображения

Важно отметить, что рынок криптовалют работает круглосуточно и без выходных, в отличие от традиционных финансовых рынков, у которых есть время открытия и закрытия. Каждую секунду существует непрерывный поток новых данных (выводы средств, депозиты, сделки и т. д.), что требует от нас быть начеку в отношении преступников, которые пытаются украсть средства пользователей или личную информацию. 

Наша команда по рискам ИИ неустанно работает над разработкой и поддержкой сложной системы ИИ, которая может эффективно выявлять подозрительную активность. Благодаря усилиям этой команды мы можем быстро защитить скомпрометированные аккаунты Binance от потенциальных потерь или максимально снизить ущерб. 

Оставайтесь с нами, чтобы получить дополнительную информацию о наших усилиях по машинному обучению, или ознакомьтесь с некоторыми из наших предыдущих статей ниже. Заинтересованы в карьере машинного обучения в Binance? Ознакомьтесь с открытыми вакансиями на странице Binance Engineering на нашей странице вакансий. 

дальнейшее чтение

  • Углубленный взгляд на наши возможности машинного обучения 

  • Использование MLOps для создания сквозного конвейера машинного обучения в реальном времени

  • Пример разработки функций по согласованности и обнаружению мошенничества