Galvenās līdzņemamās vietas

  • Binance izmanto mašīnmācīšanās modeļus, lai uzraudzītu aizdomīgas darbības platformā.

  • Problēma, kas pazīstama kā novecojušas funkcijas, var negatīvi ietekmēt šādu modeļu veiktspēju, liekot tiem veikt neprecīzas prognozes vai klasifikācijas.

  • Mūsu straumēšanas konveijeris jeb nepārtrauktas modeļa padeves process ar reāllaika datiem sastāv no divām daļām: datu apstrādes un datu apkalpošanas.

  • Datu apstrāde ir iedalīta trīs kategorijās: straumes skaitļošana, pārņemšana un nogremdēšana.

Uzziniet, kā mēs izmantojam mašīnmācīšanos, lai aizsargātu Binance ekosistēmu.

Mūsu riska mākslīgā intelekta komanda, kas sastāv no mašīnmācīšanās inženieriem un datu zinātniekiem, strādā visu diennakti, lai cīnītos pret krāpšanu un aizsargātu Binance lietotājus. Lai to panāktu, viņi izmanto uz mākslīgo intelektu balstītus risinājumus, kas var identificēt un reaģēt uz potenciāliem draudiem, piemēram, vienādranga (P2P) krāpniecību, maksājumu informācijas zādzībām un konta pārņemšanas uzbrukumiem (ATO).

Šajā rakstā mēs paskaidrosim, kā mūsu riska AI komanda izmanto straumēšanas cauruļvadu, lai nodrošinātu reāllaika atbildes papildus tam, kas notiek aizkulisēs.

Ja nepārzināt mašīnmācīšanos, iesakām izlasīt šo sadaļu, lai iegūtu vispārīgu pārskatu par dažiem šajā rakstā izmantotajiem terminiem.

Pakešu un straumēšana

Mašīnmācīšanās inženieri parasti izmanto divu veidu cauruļvadus: pakešu un straumēšanu. Abiem ir savi plusi un mīnusi atkarībā no situācijas prasībām.

Partijas cauruļvadi, kā norāda nosaukums, apstrādā datus partijās. Inženieri tos parasti izmanto, lai apstrādātu lielu datu apjomu.

No otras puses, straumēšanas cauruļvadi apstrādā datus reāllaikā, tiklīdz tie tiek vākti. Tas padara tos ideāli piemērotus situācijām, kurās nepieciešama gandrīz tūlītēja reakcija; piemēram, atklāt hakeru, pirms viņš var izņemt līdzekļus no nozagta konta.

Ņemiet vērā, ka abi cauruļvadi ir vienlīdz svarīgi. Straumēšanas konveijeri ir lieliski piemēroti reāllaika atbilžu sniegšanai, savukārt pakešu konveijeri labāk apstrādā lielu datu apjomu.

Krāpšanas novēršanas gadījumā mums ir jāpiešķir prioritāte reāllaika datiem, lai izvairītos no situācijas, ko sauc par “modeļu novecošanos”, kas attiecas uz mašīnmācīšanās modeļu novecošanu vai neprecīziem.

Novecošanās nozīme

Tāpat kā cilvēki var kļūt mazāk efektīvi, veicot uzdevumu, ja viņi nesaņem jaunāko informāciju vai metodes, arī mašīnmācīšanās modeļi var kļūt mazāk precīzi, ja tie netiek regulāri atjaunināti atbilstoši situācijai.

Viena lieta, ko jūs nevēlaties, ir modelis, kas paredzēts, lai novērstu krāpšanas novecošanos. Sekas var būt dažādas, sākot ar modeli, kurā likumīgs darījums nepareizi tiek marķēts kā krāpniecisks vai netiek identificēts uzlauzts konts. Tāpēc mēs izmantojam straumēšanas cauruļvadu, lai nodrošinātu, ka krāpšanas novēršanas modeļi darbojas ar reāllaika datiem.

Konta pārņemšanas (ATO) modeļa skaitļošana

Ņemsim piemēru no mūsu ATO modeļa, ko mēs apmācām, lai identificētu kontus, kurus noziedznieki ir nolaupījuši ar ļaunprātīgu nolūku. Viena no šī modeļa iezīmēm ir darījumu skaits, ko konkrēts klients ir veicis pēdējā minūtē.

Hakeri mēdz sekot secīgam modelim, veicot lielu skaitu darbību, piemēram, izņemšanu, īsā laika periodā. Mūsu sistēmai šis līdzeklis ir jāaprēķina pēc iespējas ātrāk iespējamo apdraudējumu gadījumā. Tas nozīmē, ka ir jāsamazina aizkave starp brīdi, kad lietotājs veic darbības, un brīdi, kad šī lietotāja darbības dati tiek apstrādāti mūsu modeļos. Tikai dažas sekundes var atšķirties starp hakeru apturēšanu un lietotāja naudas zaudēšanu.

Lai iegūtu papildinformāciju par to, kā aizkavētās funkcijas ietekmē modeļa veiktspēju, varat skatīt šo LinkedIn Engineering rakstu: gandrīz reāllaika funkcijas gandrīz reāllaika personalizēšanai.

Pakešu skaitļošanas loma

Ņemiet vērā, ka funkciju novecošanās nozīme var būt atkarīga no izmantotā modeļa vai līdzekļa. Piemēram, dažas funkcijas ir salīdzinoši stabilas. Iepriekš minētajā ATO gadījumā mums būtu arī jāizgūst dati par lietotāja izņemšanu pēdējo 30 dienu laikā, lai aprēķinātu koeficientu, pamatojoties uz viņa pēdējiem darījumiem.

Šajā gadījumā pakešu skaitļošana ilgākos laika periodos, piemēram, ikdienas vai stundu intervālos, ir pieņemama, neskatoties uz lielāku novecošanos, kas rodas, gaidot datu nokļūšanu datu noliktavās un periodisku pakešu darbu izpildi.

Svaiguma un latentuma līdzsvarošana

Galu galā izvēle starp pakešu un straumēšanas cauruļvadiem būtu jāveic, pamatojoties uz konkrētajām lietošanas gadījuma prasībām un attiecīgajām funkcijām. Šo faktoru rūpīga apsveršana ļauj mums izveidot efektīvas krāpšanas novēršanas sistēmas, kas aizsargā mūsu lietotājus.

Straumēšanas konveijera izmantošana ļauj mums piešķirt prioritāti svaigumam, nevis latentumam laika ziņā jutīgām funkcijām. Iepriekš redzamā diagramma ilustrē šo vajadzību, jo funkciju izguves operāciju skaitam jābūt trīs, nevis divām.

Tāpēc reāllaika mašīnmācīšanās konveijeram ir izšķiroša nozīme mūsu riska grupas ikdienas darbībās.

Straumēšanas cauruļvada sadalīšana

Reāllaika mašīnmācība Binance riska AI komandai galvenokārt sastāv no divām daļām:

  • Datu apstrāde (diagrammas augšējā daļa)

  • Datu apkalpošana (diagrammas apakšējā daļa)

Datu apstrāde

Attiecībā uz datu apstrādi mēs varam iedalīt mūsu straumēšanas konveijeru (Flink Job) trīs kategorijās, pamatojoties uz viņu pienākumiem:

  • Straumes skaitļošana: funkciju inženierija

  • Straumes uzņemšana: funkciju pārņemšana

  • Straumes nogrimšana: datu bagātināšana

Straumēšanas skaitļošana

Cauruļvada straumes skaitļošanas komponents ir atbildīgs par gandrīz reāllaika funkciju izstrādi, funkciju iegūšanas procesu no neapstrādātiem datiem.

Tas iepriekš aprēķina funkcijas, kuras mūsu mašīnmācīšanās modeļi izmantos tiešsaistes prognozēšanai. Straumēšanas skaitļošanas konveijeram ir divu veidu skaitļošanas metodes: uz laiku un notikumiem balstītas.

  1. Uz laiku balstīta. Darījumu skaita aprēķināšana ik pēc 10 minūtēm. Tas rada zināmu novecošanos, bet samazina latentumu.

  2. Balstīts uz notikumiem. Funkcijas aprēķināšana, pamatojoties uz ierašanās notikumu. Tas samazina novecošanos, bet nedaudz palielina latentumu.

Mēs nevēlamies pēc iespējas vairāk izmantot reāllaika aprēķinus, un tālāk ir norādīts iemesls.

  1. Pastāv kompromiss starp latentumu un novecošanos. Skaitļošanas līdzekļi, kad tiek saņemti tiešsaistes pieprasījumi, ierobežo skaitļošanas loģiku ar vieglām pieejām. Lai gan šī metode samazina novecošanos, līdzekļu aprēķins palielina prognozēšanas latentumu.

  2. Neatkarīga mērogošana ir sarežģīta, jo prognozēšanas un skaitļošanas pakalpojumi ir atkarīgi viens no otra.

  3. Aprēķini pēc pieprasījuma, pamatojoties uz pieprasījuma trafiku, rada neparedzamu mērogošanas spiedienu.

  4. Reāllaika aprēķini nav pielāgojami mūsu modeļu uzraudzībai (apmācības-servēšanas novirze) un funkciju uzraudzības risinājumiem, jo ​​līdzekļi netiek glabāti centrālajā datu bāzē, t.i., līdzekļu krātuvē.

Straumes uzņemšana

Straumes pārņemšanas komponents ir atbildīgs par gandrīz reāllaika funkciju pārņemšanu mūsu funkciju veikalā no mašīnmācīšanās platformas Kafka. Funkciju veikali ir centralizētas datu bāzes, kurās atrodas bieži lietotas funkcijas. Viņiem ir būtiska loma mašīnmācības cauruļvados. Vairāk par tiem varat uzzināt šādos rakstos: Sīkāka apskate mūsu mašīnmācīšanās līdzekļu veikalā un MLOps izmantošana reāllaika pilnīgas mašīnmācīšanās cauruļvada izveidei.

Straumes izlietne

Straumes izlietnes komponents galvenokārt ir atbildīgs par reāllaika notikumu ievietošanu noteiktā galamērķī, piemēram, augsti izplatītās failu sistēmās (HDFS), piemēram, S3 vai citās ārējās datu bāzēs, piemēram, ElasticSearch, atkarībā no projekta prasībām.

Mūsu riska AI komandai parasti ir divi datu bagātināšanas modeļi, kurus var izmantot reāllaika datiem Kafkā atkarībā no lietošanas gadījuma.

  1. Statiskie dati. Piemēram, tiek izgūts to populāro ražotāju saraksts, kuri strādā S3, lai veiktu ar P2P saistītus biznesa projektus Flink darbos. Atsauces dati ir statiski, un tie ir jāatjaunina tikai retāk nekā reizi mēnesī.

  2. Dinamiski dati. Piemēram, reāllaika maiņas kursi (BTC uz USD) tiek iegūti no ārējām datu bāzēm, piemēram, Redis. Uzmeklēšana pa ierakstu nodrošina zemu latentumu un augstu precizitāti, ja mainās atsauces dati.

Datu apkalpošana

Cauruļvada datu apkalpošanas komponents ir atbildīgs par tiešsaistes prognozēšanu un pakešu skaitļošanu.

  1. Tiešsaistes prognoze. Tas notiek, kad pieprasījumi tiek saņemti, izmantojot lēmumu centru (mūsu riska grupas iekšējo noteikumu dzinēju). Attiecīgais pakalpojums pēc tam piezvanīs funkciju veikalam, lai izgūtu līdzekļus un nosūtīs tos uz mašīnmācības modeli vērtēšanai. Mūsu riska mākslīgā intelekta komandai ir vairāk nekā 20 mašīnmācības modeļu, kas izstrādāti dažādu biznesa prasību apmierināšanai.

  2. Pakešu skaitļošana. Lai gan tas var izraisīt aizkavēšanos līdz pat dažām dienām, tai šeit ir svarīga loma, jo tā papildina reāllaikā aprēķinātās funkcijas.

Noslēguma domas

Ir svarīgi atzīmēt, ka kriptovalūtu tirgus darbojas visu diennakti, atšķirībā no tradicionālajiem finanšu tirgiem, kuriem ir atvēršanas un slēgšanas laiki. Katru sekundi notiek nepārtraukts jaunu datu pieplūdums (izņemšana, noguldījumi, darījumi utt.), kas liek mums meklēt ļaunos dalībniekus, kas mēģina nozagt lietotāja līdzekļus vai personisko informāciju.

Mūsu riska AI komanda ir nenogurstoši strādājusi, lai izstrādātu un uzturētu izsmalcinātu AI sistēmu, kas var efektīvi atzīmēt aizdomīgas darbības. Pateicoties viņu pūlēm, mēs varam ātri strādāt, lai aizsargātu apdraudētos Binance kontus no iespējamiem zaudējumiem vai pēc iespējas mazinātu kaitējumu.

Sekojiet līdzi jaunumiem, lai iegūtu plašāku ieskatu mūsu mašīnmācīšanās centienos, vai skatiet dažus no mūsu iepriekšējiem rakstiem tālāk. Vai interesē mašīnmācīšanās karjera uzņēmumā Binance? Apskatiet Binance Engineering mūsu karjeras lapā, lai iegūtu atklātus darba sludinājumus.

Tālāka lasīšana

  • Sīkāka apskate mūsu mašīnmācīšanās līdzekļu veikalā

  • MLOps izmantošana, lai izveidotu reāllaika pilnīgu mašīnmācības cauruļvadu

  • Funkciju inženierijas gadījuma izpēte par konsekvenci un krāpšanas atklāšanu