Hlavní Takeaways

  • Ve společnosti Binance používáme strojové učení (ML) k řešení různých obchodních problémů, včetně mimo jiné podvodů s převzetím účtu (ATO), podvodů P2P a odcizených platebních údajů.

  • Pomocí operací strojového učení (MLOps) naši vědci zabývající se daty Binance Risk AI vybudovali komplexní ML kanál v reálném čase, který nepřetržitě poskytuje služby ML připravené na produkci.

Proč používáme MLOps?

Pro začátek je vytvoření služby ML iterativní proces. Datoví vědci neustále experimentují s cílem zlepšit konkrétní metriku, ať už offline nebo online, na základě cíle přinášet hodnotu pro podnikání. Jak tedy můžeme umožnit, aby byl tento proces efektivnější – například zkrátit dobu uvedení modelu ML na trh?

Za druhé, chování služeb ML je ovlivněno nejen kódem, který definujeme my, vývojáři, ale také daty, které shromažďuje. Tato myšlenka, známá také jako koncept drift, je zdůrazněna v dokumentu společnosti Google s názvem Hidden Technical Debt in Machine Learning Systems.

Vezměte si jako příklad podvod; podvodník není jen stroj, ale člověk, který se přizpůsobuje a neustále mění způsob, jakým útočí. Jako taková se bude základní distribuce dat vyvíjet tak, aby odrážela změny v útočných vektorech. Jak můžeme efektivně zajistit, že produkční model zohledňuje nejnovější datový vzor?

K překonání výše zmíněných výzev používáme koncept zvaný MLOps, termín původně navržený společností Google v roce 2018. V MLOps se zaměřujeme na výkon modelu a infrastrukturu podporující produkční systém. To nám umožňuje budovat služby ML, které jsou škálovatelné, vysoce dostupné, spolehlivé a udržovatelné.

Rozbití našeho end-to-end ML potrubí v reálném čase

Představte si výše uvedený diagram jako náš standardní operační postup (SOP) pro vývoj modelu v reálném čase s úložištěm funkcí. End-to-end kanál ML určuje, jak náš tým aplikuje MLops, a je postaven se dvěma typy požadavků: funkční a nefunkční.

Funkční

  • Zpracování dat

  • Modelový trénink

  • Vývoj modelu

  • Nasazení modelu

  • Sledování

Nefunkční požadavky

  • Škálovatelné

  • Vysoce dostupné

  • Spolehlivý

  • Udržovatelné

Potrubí je dále rozděleno do šesti klíčových komponent:

  • Výpočetní vrstva

  • Store Layer

  • Centralizovaná DB

  • Modelový trénink

  • Nasazení modelu

  • Monitorování modelu

1. Výpočetní vrstva

Výpočetní vrstva je zodpovědná hlavně za inženýrství funkcí, proces transformace nezpracovaných dat na užitečné funkce.

Výpočetní vrstvu kategorizujeme do dvou typů na základě frekvence, kterou aktualizují: stream computing v minutových/sekundových intervalech a dávkový výpočet v denních/hodinových intervalech.

Vstupní data výpočetní vrstvy obecně pocházejí z databáze založené na událostech, která zahrnuje Apache Kafka a Kinesis, nebo databáze OLAP, která zahrnuje Apache Hive pro open-source a Snowflake pro cloudová řešení.

2. Store Layer

Vrstva úložiště je místo, kde registrujeme definice funkcí a nasazujeme je do našeho úložiště funkcí a také provádíme backfill, což je proces, který nám umožňuje znovu sestavit funkce pomocí historických dat, kdykoli je definována nová funkce. Backfill je obvykle jednorázová práce, kterou mohou naši datoví vědci dělat v prostředí notebooků. Protože Kafka může ukládat pouze události za posledních sedm dní, využívá záložní mechanismus do tabulky s3/hive pro zvýšení odolnosti proti chybám.

Všimněte si, že mezivrstva, Hive a Kafka, je záměrně umístěna mezi výpočetní vrstvou a vrstvou úložiště. Představte si toto umístění jako vyrovnávací paměť mezi funkcemi pro výpočet a zápis. Analogií by bylo oddělení výrobce od spotřebitele. Stream computing je producentem, zatímco příjem streamu je spotřebitelem.

Oddělení výpočtů a příjmu poskytuje řadu výhod pro naše kanály ML. Pro začátek můžeme zvýšit robustnost potrubí v případě poruch. Naši datoví vědci mohou stále čerpat hodnotu funkcí z centralizované databáze, a to i v případě, že vrstva příjmu nebo výpočetní vrstva není k dispozici kvůli provozním, hardwarovým nebo síťovým problémům.

Kromě toho můžeme individuálně škálovat různé části infrastruktury a snížit energii potřebnou k výstavbě a provozu plynovodu. Pokud například z jakéhokoli důvodu selže, vrstva příjmu nebude blokovat vrstvu výpočetní. Na frontě inovací můžeme experimentovat a zavádět nové technologie, jako je nová verze aplikace Flink, aniž bychom ovlivnili naši stávající infrastrukturu.

Jak výpočetní vrstva, tak vrstva úložiště jsou to, čemu říkáme automatizované kanály funkcí. Tyto kanály jsou nezávislé, běží podle různých plánů a jsou kategorizovány jako streamingové nebo dávkové kanály. Zde je návod, jak tyto dva kanály fungují odlišně: jedna skupina funkcí v dávkovém kanálu se může aktualizovat každou noc, zatímco jiná skupina se aktualizuje každou hodinu. Ve streamingovém kanálu se skupina funkcí aktualizuje v reálném čase, když zdrojová data přicházejí do vstupního proudu, jako je téma Apache Kafka.

3. Centralizovaná DB

Centralizovaná vrstva DB je místem, kde naši datoví vědci prezentují svá data připravená pro funkce do online nebo offline úložiště funkcí.

Online obchod s funkcemi je obchod s nízkou latencí a vysokou dostupností, který umožňuje vyhledávání záznamů v reálném čase. Na druhou stranu úložiště funkcí offline poskytuje bezpečné a škálovatelné úložiště všech dat funkcí. To umožňuje vědcům vytvářet tréninkové, ověřovací nebo dávkové datové sady ze sady centrálně spravovaných skupin funkcí s úplným historickým záznamem hodnot funkcí v systému ukládání objektů.

Obě funkce se automaticky synchronizují každých 10-15 minut, aby nedocházelo ke zkreslení tréninku. V budoucím článku se podrobně ponoříme do toho, jak připravované obchody s funkcemi využíváme.

4. Modelový trénink

Vrstva modelování je místo, kde naši vědci extrahují tréninková data z úložiště funkcí offline, aby doladili naše služby ML. Abychom zabránili úniku dat během procesu extrakce, používáme dotazy v určitém okamžiku.

Tato vrstva navíc obsahuje klíčovou komponentu známou jako zpětnovazební smyčka rekvalifikace modelu. Přeškolení modelů minimalizuje riziko posunu konceptu tím, že zajistí, aby nasazené modely přesně reprezentovaly nejnovější datové vzorce – například, když hacker změní své útočné chování.

5. Nasazení modelu

Pro nasazení modelu primárně využíváme cloudovou skórovací službu jako páteř našeho poskytování dat v reálném čase. Zde je diagram ukazující, jak se aktuální odvozený kód integruje s úložištěm funkcí.

6. Monitorování modelu

V této vrstvě náš tým monitoruje metriky využití pro skórovací služby, jako je QPS, latence, paměť a míra využití CPU/GPU. Kromě těchto základních metrik používáme zachycená data ke kontrole distribuce funkcí v čase, zkreslení při poskytování školení a předpovědního posunu, abychom zajistili minimální posun konceptu.

Závěrečné myšlenky

Abychom to uzavřeli, volné rozdělení naší pipeline infrastruktury na výpočetní vrstvu, vrstvu úložiště a centralizovanou DB nám poskytuje tři klíčové výhody oproti těsněji propojené architektuře.

  1. Robustnější potrubí v případě poruch

  2. Zvýšená flexibilita při výběru nástrojů k implementaci

  3. Nezávisle škálovatelné komponenty

Zajímá vás používání ML k ochraně největšího světového krypto ekosystému a jeho uživatelů? Podívejte se na Binance Engineering/AI na naší kariérní stránce pro otevřené nabídky práce.