Основні висновки
Binance використовує моделі машинного навчання для моніторингу підозрілої активності на платформі.
Проблема, відома як застарілі функції, може негативно вплинути на продуктивність таких моделей, спричиняючи їх до неточних прогнозів або класифікацій.
Наш потоковий конвеєр – або процес безперервного живлення моделі даними в реальному часі – складається з двох частин: обробки та обслуговування даних.
Обробка даних далі поділяється на три категорії: потокове обчислення, прийом і поглинання.
Дізнайтеся, як ми використовуємо машинне навчання для захисту екосистеми Binance.
Наша команда ризиків зі штучного інтелекту, яка складається з інженерів машинного навчання та дослідників даних, цілодобово працює над боротьбою з шахрайством і захистом користувачів Binance. Щоб досягти цього, вони використовують рішення на основі штучного інтелекту, які можуть ідентифікувати та реагувати на потенційні загрози, такі як однорангові (P2P) шахрайства, викрадення платіжних реквізитів і атаки на захоплення облікового запису (ATO).
У цій статті ми пояснимо, як наша команда зі штучного інтелекту ризиків використовує потоковий конвеєр, щоб забезпечити відповіді в реальному часі на додаток до того, що відбувається за лаштунками.
Якщо ви не знайомі з машинним навчанням, рекомендуємо прочитати наступний розділ, щоб отримати базовий огляд деяких термінів, які ми використовуватимемо в цій статті.
Пакетне та потокове передавання
Інженери машинного навчання зазвичай використовують два типи конвеєрів: пакетний і потоковий. Обидва мають свої плюси і мінуси, залежно від того, чого вимагає ситуація.
Пакетні конвеєри, як випливає з назви, обробляють дані пакетами. Інженери зазвичай використовують їх для обробки великих обсягів даних.
З іншого боку, потокові конвеєри обробляють дані в режимі реального часу, коли вони збираються. Це робить їх ідеальними для ситуацій, які вимагають майже миттєвої реакції; наприклад, виявлення хакера до того, як він зможе зняти кошти з вкраденого рахунку.
Зауважте, що обидва конвеєри однаково важливі. Потокові конвеєри чудово підходять для надання відповідей у реальному часі, тоді як пакетні конвеєри краще обробляють великі обсяги даних.
У разі запобігання шахрайству нам потрібно визначити пріоритетність даних у реальному часі, щоб уникнути ситуації під назвою «застарілість моделі», яка стосується застарілих або неточних моделей машинного навчання.
Значення несвіжості
Подібно до того, як люди можуть стати менш ефективними при виконанні завдання, якщо вони не отримають найновішу інформацію чи методи, моделі машинного навчання також можуть стати менш точними, якщо їх регулярно не оновлювати відповідно до ситуації.
Одна річ, яку ви не хочете, — це модель, розроблена для запобігання шахрайству. Наслідки варіюються від моделі, яка неправильно позначає законну транзакцію як шахрайську, або не ідентифікує скомпрометований обліковий запис. Тому ми використовуємо потоковий конвеєр, щоб забезпечити роботу моделей запобігання шахрайству з даними в реальному часі.
Обчислення для моделі захоплення облікового запису (ATO).
Давайте візьмемо приклад із нашої моделі ATO, яку ми навчаємо виявляти облікові записи, які злочинці викрали зі зловмисними намірами. Однією з характеристик, яку вимірює ця модель, є кількість транзакцій, здійснених конкретним клієнтом за останню хвилину.
Хакери, як правило, слідують послідовному шаблону, беручи участь у великій кількості операцій, як-от зняття коштів, протягом короткого періоду часу. Наша система має розрахувати цю функцію якнайшвидше у разі потенційних загроз. Це означає мінімізацію затримок між моментом виконання користувачем дії та обробкою даних про активність цього користувача нашими моделями. Лише кілька секунд можуть бути різницею між тим, щоб зупинити хакера, і користувач втратить усі свої гроші.
Щоб дізнатися більше про те, як відкладені функції впливають на продуктивність моделі, ви можете переглянути цю статтю LinkedIn Engineering: Near real-time functions for near real-time personalization.
Роль пакетних обчислень
Зауважте, що важливість застарілості функції може залежати від моделі чи функції, що використовується. Деякі функції, наприклад, є відносно стабільними. У згаданому вище випадку ATO нам також знадобиться отримати дані про зняття коштів користувачами за останні 30 днів, щоб розрахувати коефіцієнт на основі їхніх останніх транзакцій.
У цьому випадку пакетне обчислення протягом більш тривалих періодів часу, наприклад щоденних або щогодинних інтервалів, є прийнятним, незважаючи на більш високу застарілість, що є результатом очікування надходження даних до сховищ даних і періодичного виконання пакетних завдань.
Баланс свіжості та затримки
Зрештою, вибір між пакетним і потоковим конвеєрами слід робити на основі конкретних вимог сценарію використання та відповідних функцій. Ретельний аналіз цих факторів дозволяє нам створювати ефективні системи запобігання шахрайству, які захищають наших користувачів.

Використання конвеєра потокової передачі дає нам змогу віддавати перевагу свіжості над затримкою для чутливих до часу функцій. Діаграма вище ілюструє цю потребу, оскільки кількість операцій для отримання функцій має становити три замість двох.
Ось чому конвеєр машинного навчання в реальному часі має вирішальне значення для повсякденної роботи нашої групи ризиків.
Розрив потокового трубопроводу
Машинне навчання в режимі реального часу для команди Binance ризик ШІ в основному складається з двох частин:
Обробка даних (верхня частина діаграми)
Обслуговування даних (нижня частина діаграми)

Обробка даних
Що стосується обробки даних, ми можемо розділити наш потоковий конвеєр (Flink Job) на три категорії залежно від їхніх обов’язків:
Потокове обчислення: розробка функцій
Передача потоку: прийом функцій
Поглинання потоку: збагачення даних
Потокове обчислення
Компонент потокового обчислення конвеєра відповідає за розробку функцій майже в реальному часі, процес вилучення функцій із необроблених даних.
Він попередньо обчислює функції, які наші моделі машинного навчання використовуватимуть для онлайн-прогнозування. Існує два типи методів обчислення для конвеєра потокових обчислень: на основі часу та на основі подій.
На основі часу. Розрахунок кількості транзакцій кожні 10 хвилин. Це вносить деяку застарілість, але зменшує затримку.
На основі подій. Розрахунок характеристик на основі події, що прибуває. Це зменшує застарілість, але трохи збільшує затримку.
Ми вважаємо за краще не використовувати обчислення в реальному часі, наскільки це можливо, і ось чому:
Існує компроміс між затримкою та застарілістю. Обчислювальні функції під час надходження онлайн-запитів обмежують обчислювальну логіку легкими підходами. Хоча цей метод знижує застарілість, обчислення функції збільшує затримку передбачення.
Незалежне масштабування є складним, оскільки служби прогнозування та обчислення залежать одна від одної.
Обчислення на вимогу на основі трафіку запитів створює непередбачуваний тиск масштабування.
Обчислення в режимі реального часу не можна адаптувати до нашого моніторингу моделі (перекіс, що обслуговує навчання) і рішень моніторингу функцій, оскільки функції не зберігаються в центральній базі даних, тобто сховищі функцій.
Завантаження потоку
Компонент stream ingestion відповідає за надходження функцій майже в реальному часі в наш магазин функцій із платформи машинного навчання Kafka. Сховища функцій — це централізовані бази даних, у яких зберігаються функції, які часто використовуються. Вони відіграють важливу роль у конвеєрах машинного навчання. Ви можете дізнатися більше про них у наступних статтях: «Ближчий погляд на наш магазин функцій машинного навчання» та «Використання MLOps для створення наскрізного конвеєра машинного навчання в реальному часі».
Раковина струмка
Компонент приймача потоку в основному відповідає за занурення подій у реальному часі в певне місце призначення — наприклад, у розподілених файлових системах (HDFS), таких як S3, або інших зовнішніх базах даних, таких як ElasticSearch — залежно від вимог проекту.
Для нашої команди зі штучного інтелекту ризиків, як правило, існує два шаблони збагачення даних, які можна застосувати до даних у реальному часі в Kafka залежно від варіанту використання:
Статичні дані. Наприклад, отримання списку популярних виробників, які сидять у S3 для бізнес-проектів, пов’язаних з P2P, у Flink. Довідкові дані є статичними і потребують лише оновлення рідше одного разу на місяць.
Динамічні дані. Курси обміну в реальному часі (BTC до USD), наприклад, отримують із зовнішніх баз даних, таких як Redis. Пошук по запису забезпечує низьку затримку та високу точність у разі зміни довідкових даних.
Обслуговування даних
Компонент конвеєра, що обслуговує дані, відповідає за онлайн-прогнозування та пакетне обчислення.
Онлайн прогноз. Це відбувається, коли запити надходять через Decision Hub (систему внутрішніх правил нашої групи ризиків). Потім відповідна служба зателефонує до сховища функцій, щоб отримати функції та надіслати їх моделі машинного навчання для оцінки. Наша команда Risk AI має понад 20 моделей машинного навчання, розроблених для виконання різних бізнес-вимог.
Пакетне обчислення. Хоча це може призвести до затримки до кількох днів, воно відіграє тут важливу роль, оскільки доповнює функції, обчислені в реальному часі.
Заключні думки
Важливо відзначити, що крипторинок працює цілодобово і без вихідних, на відміну від традиційних фінансових ринків, які мають час відкриття та закриття. Кожну секунду відбувається безперервний приплив нових даних (зняття коштів, депозити, угоди тощо), які вимагають від нас стежити за зловмисниками, які намагаються викрасти кошти або особисту інформацію користувачів.
Наша команда ризиків ШІ невпинно працювала над розробкою та підтримкою складної системи ШІ, яка може ефективно позначати підозрілу активність. Завдяки їхнім зусиллям ми можемо швидко захистити зламані облікові записи Binance від потенційних втрат або максимально зменшити шкоду.
Залишайтеся з нами, щоб дізнатися більше про наші зусилля з машинного навчання, або перегляньте деякі з наших попередніх статей нижче. Вас цікавить кар’єра машинного навчання в Binance? Перевірте Binance Engineering на нашій сторінці кар’єри, щоб знайти відкриті оголошення про вакансію.
Подальше читання
Детальніше про наш магазин функцій машинного навчання
Використання MLOps для створення конвеєра наскрізного машинного навчання в реальному часі
Практичний приклад розробки функцій узгодженості та виявлення шахрайства
