Główne tematy wpisu:

  • Binance wykorzystuje modele uczenia maszynowego do monitorowania podejrzanej aktywności na platformie.

  • Problem znany jako przestarzałe/niedokładne funkcje może negatywnie wpłynąć na wydajność takich modeli, powodując dokonywanie przez nie niedokładnych przewidywań lub klasyfikacji.

  • 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 dostarczania danych.

  • Przetwarzanie danych dzieli się na trzy kategorie: przetwarzanie strumieniowe, przechwytywanie danych (przyjmowanie) i drenaż danych (zatapianie).

Nasz zespół ds. ryzyka AI, 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 omówimy, w jaki sposób nasz zespół ds. ryzyka sztucznej inteligencji wykorzystuje potok, aby zapewnić reakcje w czasie rzeczywistym, a także to, co dzieje się za kulisami. 

Jeśli nie znasz uczenia maszynowego, zalecamy przeczytanie poniższej sekcji, aby zapoznać się z podstawowym omówieniem niektórych terminów, których będziemy używać w tym artykule. 

Partia i przepływ

Zazwyczaj inżynierowie uczenia maszynowego 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. Zwykle inżynierowie używają ich do przetwarzania dużych ilości danych.

Z drugiej strony potoki przesyłania strumieniowego przetwarzają dane w czasie rzeczywistym w miarę 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. 

Obydwa rurociągi są równie ważne. Potoki strumieniowe doskonale nadają się do zapewniania odpowiedzi w czasie rzeczywistym, natomiast potoki wsadowe lepiej sprawdzają się w obsłudze dużych ilości danych. 

W przypadku zapobiegania oszustwom musimy nadać priorytet danym w czasie rzeczywistym, aby uniknąć sytuacji zwanej „nieaktualnością modelu”, która odnosi się do przestarzałych lub niedokładnych modeli uczenia maszynowego. 

Znaczenie nieaktualności (nieaktualne)

Tak jak ludzie mogą stać się mniej skuteczni w wykonywaniu zadania, jeśli nie są na bieżąco z najnowszymi informacjami i technikami, tak modele uczenia maszynowego mogą również stać się mniej dokładne, jeśli nie są regularnie aktualizowane w zależności od sytuacji.

Nie chcesz, aby model zaprojektowany tak, aby zapobiegać oszustwom, stał się przestarzały. Konsekwencje sięgają od błędnego oznaczenia legalnej transakcji jako oszukańczej po 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ą w oparciu o dane w czasie rzeczywistym. 

Przetwarzanie na potrzeby modelu Ataków 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, które konkretny klient wykonał w ostatniej minucie. 

Hakerzy mają tendencję do stosowania schematu sekwencyjnego, przeprowadzając dużą liczbę operacji, takich jak wypłaty, w krótkim czasie. Nasz system musi jak najszybciej zidentyfikować tę cechę w przypadku potencjalnych zagrożeń. Oznacza to minimalizację opóźnień między momentem podjęcia działania przez użytkownika a momentem przetwarzania danych o aktywności użytkownika 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, zapoznaj się z tym artykułem inżynierskim LinkedIn: Funkcje działające w czasie zbliżonym do rzeczywistego umożliwiające personalizację w czasie zbliżonym do rzeczywistego.

Rola przetwarzania wsadowego

Należy pamiętać, że znaczenie nieaktualnej funkcji może zależeć od używanego modelu lub funkcji. Na przykład niektóre funkcje są stosunkowo stabilne. W przypadku wspomnianego ATO musielibyśmy także pobrać dane dotyczące wypłat użytkowników z ostatnich 30 dni, aby obliczyć współczynnik na podstawie ostatnich transakcji. 

W takim przypadku dopuszczalne jest przetwarzanie wsadowe przez dłuższe okresy, np. w odstępach dziennych lub godzinnych, pomimo zwiększonej nieaktualności wynikającej z oczekiwania na napływ danych do hurtowni danych i okresowo uruchamianych zadań wsadowych. 

Równoważenie aktualizacji i opóźnień

Ostatecznie wyboru między potokami wsadowymi a strumieniowymi należy dokonać w oparciu o konkretne wymagania i możliwości danego przypadku użycia. 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 aktualizacji w stosunku do opóźnień w przypadku zasobów wrażliwych na czas. Powyższy diagram ilustruje tę potrzebę, ponieważ liczba operacji pobierania zasobów powinna wynosić trzy zamiast dwóch. 

Dlatego też proces uczenia maszynowego w czasie rzeczywistym ma kluczowe znaczenie w codziennej pracy naszego zespołu ds. ryzyka. 

Szczegóły rurociągu strumieniowego

Uczenie maszynowe w czasie rzeczywistym zespołu Binance AI Risk składa się głównie z dwóch części: 

  • Przetwarzanie danych (góra diagramu)

  • Dostarczanie danych (na dole 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

  • Przechwytywanie danych: przechwytywanie funkcji

  • Opróżnianie danych: wzbogacanie danych 

Przetwarzanie strumieniowe

Komponent przetwarzania strumieniowego potoku jest odpowiedzialny za inżynierię funkcji w czasie zbliżonym do rzeczywistego, czyli proces wydobywania funkcji z surowych danych.

Wstępnie przetwarza funkcje, które nasze modele uczenia maszynowego będą wykorzystywać do przewidywania online. Istnieją dwa typy metod przetwarzania potoku strumienia: oparte na czasie i oparte na zdarzeniach. 

  1. Oparte na czasie. Oblicza liczbę transakcji co 10 minut. Ten proces jest nieco przestarzały, ale zmniejsza opóźnienia. 

  2. Oparte na zdarzeniach. Oblicza zasoby na podstawie zdarzenia, które ma miejsce. Proces ten zmniejsza nieaktualność, ale nieznacznie zwiększa opóźnienia.

Wolimy nie wykorzystywać w jak największym stopniu przetwarzania w czasie rzeczywistym i oto dlaczego:

  1. Istnieje kompromis pomiędzy opóźnieniem a nieaktualnością. W miarę nadejścia żądań online przetwarzanie zasobów ogranicza logikę przetwarzania do lekkich podejść. Chociaż ta metoda zmniejsza nieaktualność, przetwarzanie zasobów zwiększa opóźnienie przewidywania.

  2. Niezależne skalowanie stanowi wyzwanie, ponieważ usługi prognozowania i przetwarzania są od siebie zależne.

  3. Przetwarzanie na żądanie w oparciu o ilość żądań powoduje nieprzewidywalną presję skalowania.

  4. Przetwarzania w czasie rzeczywistym nie można dostosować do naszych rozwiązań w zakresie monitorowania modeli (skośność uczenia i obsługi, rozbieżność, która może wystąpić między wydajnością modelu podczas szkolenia a jego efektywnością po wdrożeniu) i rozwiązań do monitorowania zasobów, ponieważ zasoby nie są przechowywane w centralnej bazie danych, tj. , repozytorium zasobów.

Przechwytywania danych

Komponent do przechwytywania danych jest odpowiedzialny za przechwytywanie w czasie zbliżonym do rzeczywistego funkcji naszego repozytorium funkcji platformy uczenia maszynowego Kafka. Repozytoria funkcji to scentralizowane bazy danych zawierające często używane funkcje. Odgrywają one zasadniczą rolę w procesach uczenia maszynowego. Możesz dowiedzieć się więcej na ich temat w następujących artykułach: Dogłębne spojrzenie na nasze możliwości uczenia maszynowego i Korzystanie z MLOps do tworzenia kompleksowego potoku uczenia maszynowego w czasie rzeczywistym.

Drenaż danych

Komponent drenażu danych jest przede wszystkim odpowiedzialny za gromadzenie zdarzeń w czasie rzeczywistym do określonego miejsca docelowego — takiego 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. ryzyka sztucznej inteligencji istnieją zasadniczo dwa wzorce wzbogacania danych, które można zastosować do danych w czasie rzeczywistym w platformie Kafka w zależności od przypadku użycia: 

  1. Dane statyczne. Na przykład pobranie listy popularnych twórców 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. 

  2. Dane dynamiczne. Kursy wymiany w czasie rzeczywistym (na przykład BTC na USD) są uzyskiwane z zewnętrznych baz danych, takich jak Redis. Wyszukiwanie rekordów zapewnia małe opóźnienia i wysoką dokładność w przypadku zmiany danych referencyjnych.

Dostarczanie danych

Komponent dostarczania danych potoku jest odpowiedzialny za prognozowanie online i przetwarzanie wsadowe. 

  1. Prognoza internetowa. Występuje, gdy żądania docierają przez Centrum decyzyjne (nasz silnik reguł wewnętrznych naszego zespołu ds. ryzyka). Odpowiednia usługa poprosi repozytorium funkcji o pobranie funkcji i przesłanie ich do modelu uczenia maszynowego w celu oznakowania. Nasz zespół ds. ryzyka sztucznej inteligencji dysponuje ponad 20 modelami uczenia maszynowego zaprojektowanymi z myślą o różnych wymaganiach biznesowych.

  2. Przetwarzanie wsadowe. Choć może wprowadzić opóźnienie sięgające nawet kilku dni, spełnia jednak ważną rolę, gdyż uzupełnia przetwarzane w czasie rzeczywistym zasoby. 

Uwagi końcowe

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 przepływ nowych danych (wypłaty, wpłaty, transakcje itp.), co wymaga od nas wypatrywania przestępców próbujących ukraść fundusze użytkowników lub dane osobowe. 

Nasz zespół ds. ryzyka sztucznej inteligencji niestrudzenie pracował nad opracowaniem i utrzymaniem zaawansowanego systemu sztucznej inteligencji, który może skutecznie sygnalizować podejrzane działania. Dzięki wysiłkom tego zespołu 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 związanych z uczeniem maszynowym, 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ć wolne stanowiska. 

Dalsza lektura

  • Dogłębne spojrzenie na nasze możliwości uczenia maszynowego 

  • Wykorzystanie MLOps do zbudowania kompleksowego potoku uczenia maszynowego w czasie rzeczywistym

  • Studium przypadku dotyczące inżynierii funkcji dotyczące spójności i wykrywania oszustw