Główne dania na wynos
Binance wykorzystuje modele uczenia maszynowego do monitorowania podejrzanej aktywności na platformie.
Problem znany jako nieaktualne funkcje może negatywnie wpłynąć na wydajność takich modeli, powodując niedokładne przewidywania lub klasyfikacje.
Nasz potok przesyłania strumieniowego – czyli proces ciągłego zasilania modelu danymi w czasie rzeczywistym – składa się z dwóch części: przetwarzania i udostępniania danych.
Przetwarzanie danych dzieli się dalej na trzy kategorie: przetwarzanie strumieniowe, pobieranie i pochłanianie.
Dowiedz się, jak wykorzystujemy uczenie maszynowe, aby chronić ekosystem Binance.
Nasz zespół AI ds. ryzyka, składający się z inżynierów uczenia maszynowego i analityków danych, pracuje przez całą dobę, aby zwalczać oszustwa i chronić użytkowników Binance. Aby to osiągnąć, korzystają z rozwiązań opartych na sztucznej inteligencji, które potrafią identyfikować potencjalne zagrożenia i reagować na nie, takie jak oszustwa typu peer-to-peer (P2P), kradzież szczegółów płatności i ataki polegające na przejęciu konta (ATO), żeby wymienić tylko kilka.
W tym artykule wyjaśnimy, w jaki sposób nasz zespół ds. sztucznej inteligencji ds. ryzyka wykorzystuje potok przesyłania strumieniowego, aby zapewnić reakcje w czasie rzeczywistym, oprócz tego, co dzieje się za kulisami.
Jeśli nie znasz uczenia maszynowego, zalecamy przeczytanie poniższej sekcji, aby uzyskać podstawowy przegląd niektórych terminów, których będziemy używać w tym artykule.
Wsadowe i strumieniowe
Inżynierowie uczenia maszynowego zazwyczaj używają dwóch typów potoków: wsadowego i przesyłania strumieniowego. Obydwa mają swoje zalety i wady, w zależności od wymagań sytuacji.
Potoki wsadowe, jak sama nazwa wskazuje, przetwarzają dane partiami. Inżynierowie zazwyczaj używają ich do przetwarzania dużych ilości danych.
Z drugiej strony potoki przesyłania strumieniowego przetwarzają dane w czasie rzeczywistym w momencie ich gromadzenia. To czyni je idealnymi w sytuacjach wymagających niemal natychmiastowej reakcji; na przykład wykrycie hakera, zanim będzie on mógł wypłacić środki ze skradzionego konta.
Należy pamiętać, że oba rurociągi są równie ważne. Potoki przesyłania strumieniowego doskonale nadają się do zapewniania odpowiedzi w czasie rzeczywistym, podczas gdy potoki wsadowe lepiej radzą sobie z dużymi ilościami danych.
W przypadku zapobiegania oszustwom musimy nadać priorytet danym w czasie rzeczywistym, aby uniknąć sytuacji zwanej „nieaktualnością modelu”, która odnosi się do dezaktualizacji lub niedokładności modeli uczenia maszynowego.
Znaczenie nieaktualności
Podobnie jak ludzie mogą stać się mniej skuteczni w wykonywaniu zadania, jeśli nie są na bieżąco z najnowszymi informacjami i technikami, modele uczenia maszynowego mogą również stać się mniej dokładne, jeśli nie są regularnie aktualizowane w zależności od sytuacji.
Jedna rzecz, której nie chcesz, to model zaprojektowany tak, aby zapobiegać przestarzałym oszustwom. Konsekwencje mogą obejmować błędne oznaczenie legalnej transakcji jako oszukańczej lub brak identyfikacji konta, które zostało przejęte. Dlatego korzystamy z potoku przesyłania strumieniowego, aby mieć pewność, że modele zapobiegania oszustwom działają z danymi w czasie rzeczywistym.
Obliczenia dla modelu przejęcia konta (ATO).
Weźmy przykład z naszego modelu ATO, który szkolimy w zakresie identyfikacji kont przejętych przez przestępców w złośliwych zamiarach. Jedną z cech mierzonych przez ten model jest liczba transakcji dokonanych przez konkretnego klienta w ciągu ostatniej minuty.
Hakerzy mają tendencję do działania według schematu sekwencyjnego i w krótkim czasie wykonują dużą liczbę operacji, takich jak wypłaty. Nasz system musi jak najszybciej obliczyć tę cechę w przypadku potencjalnych zagrożeń. Oznacza to minimalizację opóźnień między podjęciem działania przez użytkownika a przetwarzaniem danych o jego aktywności przez nasze modele. Zaledwie kilka sekund może zadecydować o zatrzymaniu hakera, a utracie przez użytkownika wszystkich pieniędzy.
Aby uzyskać więcej informacji na temat wpływu opóźnionych funkcji na wydajność modelu, możesz zapoznać się z tym artykułem LinkedIn Engineering: Funkcje działające w czasie zbliżonym do rzeczywistego do personalizacji w czasie zbliżonym do rzeczywistego.
Rola przetwarzania wsadowego
Należy pamiętać, że znaczenie nieaktualności funkcji może zależeć od używanego modelu lub funkcji. Na przykład niektóre funkcje są stosunkowo stabilne. We wspomnianym powyżej przypadku ATO musielibyśmy również pobrać dane dotyczące wypłat użytkownika w ciągu ostatnich 30 dni, aby obliczyć współczynnik na podstawie jego ostatnich transakcji.
W takim przypadku przetwarzanie wsadowe w dłuższych okresach czasu, np. w odstępach dziennych lub godzinnych, jest dopuszczalne pomimo większej nieaktualności wynikającej z oczekiwania na przybycie danych do hurtowni danych i okresowego wykonywania zadań wsadowych.
Równoważenie świeżości i opóźnienia
Ostatecznie wyboru między potokami wsadowymi a strumieniowymi należy dokonać w oparciu o konkretne wymagania przypadku użycia i danych funkcji. Dokładne uwzględnienie tych czynników pozwala nam zbudować skuteczne systemy zapobiegania oszustwom, które chronią naszych użytkowników.

Korzystanie z potoku przesyłania strumieniowego pozwala nam nadawać priorytet świeżości nad opóźnieniom w przypadku funkcji wrażliwych na czas. Powyższy diagram ilustruje tę potrzebę, ponieważ liczba operacji pobierania cech powinna wynosić trzy zamiast dwóch.
Właśnie dlatego proces uczenia maszynowego w czasie rzeczywistym ma kluczowe znaczenie w codziennej pracy naszego zespołu ds. ryzyka.
Awaria rurociągu przesyłania strumieniowego
Uczenie maszynowe w czasie rzeczywistym dla zespołu AI ds. ryzyka Binance składa się przede wszystkim z dwóch części:
Przetwarzanie danych (górna część diagramu)
Serwowanie danych (dolna część diagramu)

Przetwarzanie danych
Jeśli chodzi o przetwarzanie danych, możemy podzielić nasz potok transmisji strumieniowej (Flink Job) na trzy kategorie w zależności od ich obowiązków:
Przetwarzanie strumieniowe: inżynieria funkcji
Pozyskiwanie strumieni: pozyskiwanie funkcji
Zatapianie strumienia: wzbogacanie danych
Przetwarzanie strumieniowe
Komponent przetwarzania strumieniowego potoku odpowiada za inżynierię funkcji w czasie zbliżonym do rzeczywistego, czyli proces wydobywania funkcji z surowych danych.
Wstępnie oblicza funkcje, które nasze modele uczenia maszynowego będą używać do przewidywania online. Istnieją dwa typy metod obliczeniowych dla potoku przetwarzania strumieniowego: oparte na czasie i oparte na zdarzeniach.
Oparte na czasie. Obliczanie liczby transakcji co 10 minut. Wprowadza to pewną nieaktualność, ale zmniejsza opóźnienia.
Oparte na zdarzeniach. Obliczanie cech na podstawie nadchodzącego zdarzenia. Zmniejsza to nieaktualność, ale nieznacznie zwiększa opóźnienie.
Nie chcemy w jak największym stopniu korzystać z obliczeń w czasie rzeczywistym i oto dlaczego:
Istnieje kompromis między opóźnieniem a nieaktualnością. Funkcje obliczeniowe w miarę nadejścia żądań online ograniczają logikę obliczeniową do lekkich podejść. Chociaż ta metoda zmniejsza nieaktualność, obliczenia funkcji zwiększają opóźnienie przewidywania.
Niezależne skalowanie jest wyzwaniem, ponieważ usługi przewidywania i obliczenia są od siebie zależne.
Obliczenia na żądanie oparte na ruchu żądań powodują nieprzewidywalną presję skalowania.
Obliczeń w czasie rzeczywistym nie można dostosować do naszych rozwiązań do monitorowania modelu (skośność uczenia-obsługi) i rozwiązań do monitorowania funkcji, ponieważ funkcje nie są przechowywane w centralnej bazie danych, tj. magazynie funkcji.
Przetwarzanie strumieniowe
Komponent pozyskiwania strumienia jest odpowiedzialny za pozyskiwanie funkcji w czasie zbliżonym do rzeczywistego do naszego magazynu funkcji z platformy uczenia maszynowego Kafka. Magazyny funkcji to scentralizowane bazy danych zawierające często używane funkcje. Odgrywają zasadniczą rolę w procesach uczenia maszynowego. Więcej informacji na ten temat można znaleźć w następujących artykułach: Bliższe spojrzenie na nasz sklep z funkcjami uczenia maszynowego i wykorzystanie MLOps do zbudowania kompleksowego potoku uczenia maszynowego w czasie rzeczywistym.
Ujście strumienia
Komponent ujścia strumienia jest głównie odpowiedzialny za zatapianie zdarzeń w czasie rzeczywistym w określonym miejscu docelowym — takim jak wysoce rozproszone systemy plików (HDFS), takie jak S3 lub inne zewnętrzne bazy danych, takie jak ElasticSearch — w zależności od wymagań projektu.
Dla naszego zespołu ds. sztucznej inteligencji ds. ryzyka istnieją ogólnie dwa wzorce wzbogacania danych, które można zastosować do danych w czasie rzeczywistym w Kafce w zależności od przypadku użycia:
Dane statyczne. Na przykład pobranie listy popularnych twórców siedzących w S3 dla projektów biznesowych związanych z P2P w zadaniach Flink. Dane referencyjne są statyczne i wymagają aktualizacji rzadziej niż raz w miesiącu.
Dane dynamiczne. Na przykład kursy wymiany walut w czasie rzeczywistym (BTC na USD) są uzyskiwane z zewnętrznych baz danych, takich jak Redis. Wyszukiwanie według rekordu zapewnia małe opóźnienia i wysoką dokładność w przypadku zmiany danych referencyjnych.
Serwowanie danych
Komponent potoku obsługujący dane jest odpowiedzialny za przewidywanie online i przetwarzanie wsadowe.
Przewidywanie w Internecie. Dzieje się tak, gdy żądania przychodzą przez Centrum decyzyjne (wewnętrzny silnik reguł naszego zespołu ds. ryzyka). Odpowiednia usługa wywoła następnie magazyn funkcji, aby pobrać funkcje i wysłać je do modelu uczenia maszynowego w celu oceny. Nasz zespół ds. sztucznej inteligencji ds. ryzyka dysponuje ponad 20 modelami uczenia maszynowego zaprojektowanymi z myślą o obsłudze różnych wymagań biznesowych.
Obliczenia wsadowe. Choć może wprowadzić opóźnienie sięgające nawet kilku dni, odgrywa tu ważną rolę, gdyż uzupełnia cechy wyliczane w czasie rzeczywistym.
Zamykające myśli
Należy zauważyć, że rynek kryptowalut działa 24 godziny na dobę, 7 dni w tygodniu, w przeciwieństwie do tradycyjnych rynków finansowych, które mają godziny otwarcia i zamknięcia. Co sekundę następuje ciągły napływ nowych danych (wypłaty, wpłaty, transakcje itp.), co wymaga od nas wypatrywania złych aktorów próbujących ukraść środki użytkowników lub dane osobowe.
Nasz zespół ds. sztucznej inteligencji ds. ryzyka niestrudzenie pracował nad opracowaniem i utrzymaniem zaawansowanego systemu sztucznej inteligencji, który może skutecznie sygnalizować podejrzane działania. Dzięki ich wysiłkom możemy szybko działać, aby chronić zagrożone konta Binance przed potencjalnymi stratami lub maksymalnie złagodzić szkody.
Bądź na bieżąco, aby uzyskać więcej informacji na temat naszych wysiłków w zakresie uczenia maszynowego lub zapoznaj się z niektórymi z naszych poprzednich artykułów poniżej. Interesuje Cię kariera w zakresie uczenia maszynowego w Binance? Sprawdź Binance Engineering na naszej stronie karier, aby zobaczyć otwarte oferty pracy.
Dalsze czytanie
Bliższe spojrzenie na nasz sklep z funkcjami uczenia maszynowego
Wykorzystanie MLOps do zbudowania kompleksowego potoku uczenia maszynowego w czasie rzeczywistym
Studium przypadku dotyczące inżynierii funkcji w zakresie spójności i wykrywania oszustw



