Nodrošina precīzas, konsekventas un ražošanai gatavas mašīnmācīšanās funkcijas.
Šajā rakstā ir sīkāk izpētīts mūsu mašīnmācīšanās (ML) funkciju veikals. Tas ir mūsu iepriekšējā emuāra ziņojuma turpinājums, kas sniedz plašāku pārskatu par visu ML cauruļvadu infrastruktūru.
Kāpēc mēs izmantojam funkciju veikalu?
Funkciju veikals, viena no daudzajām mūsu konveijera daļām, neapšaubāmi ir vissvarīgākais sistēmas zobrats. Tās galvenais mērķis ir darboties kā centrālai datubāzei, kas pārvalda līdzekļus, pirms tie tiek nosūtīti modeļu apmācībai vai secinājumu veikšanai.
Ja neesat pazīstams ar šo terminu, līdzekļi būtībā ir neapstrādāti dati, kas tiek pilnveidoti, izmantojot procesu, ko sauc par funkciju inženieriju, lai iegūtu vairāk lietojamu, ko mūsu ML modeļi var izmantot, lai apmācītu sevi vai aprēķinātu prognozes.
Īsumā, funkciju veikali ļauj mums:
Atkārtoti izmantojiet un kopīgojiet funkcijas dažādos modeļos un komandās
Saīsiniet ML eksperimentiem nepieciešamo laiku
Samaziniet neprecīzas prognozes, ko izraisa nopietna treniņu apkalpošanas novirze
Lai labāk izprastu funkciju veikala nozīmi, šeit ir ML konveijera diagramma, kurā tas netiek izmantots.
Šajā cauruļvadā abas daļas — modeļu apmācība un secinājumu pakalpojums — nespēj noteikt, kuras funkcijas jau pastāv un kuras var izmantot atkārtoti. Tas noved pie tā, ka ML konveijera dublē līdzekļa inženierijas procesu. Diagrammas sarkanajā aplī pamanīsit, ka ML konveijerā tā vietā, lai atkārtoti izmantotu līdzekļus, ir izveidots dublētu līdzekļu un lieku konveijeru kopums. Mēs šo kopu saucam par funkciju cauruļvada izplešanos.
Šīs funkciju izplešanās uzturēšana kļūst par arvien dārgāku un nekontrolējamu scenāriju, jo bizness aug un platformā ienāk arvien vairāk lietotāju. Padomājiet par to šādā veidā; datu zinātniekam katram jaunajam modelim ir jāsāk funkciju inženierijas process, kas ir garš un nogurdinošs, pilnībā no nulles.
Turklāt pārāk daudz funkciju loģikas atkārtotas ieviešanas ievieš jēdzienu, ko sauc par apmācību apkalpošanu, kas ir neatbilstība starp datiem apmācības un secinājumu posmā. Tas rada neprecīzas prognozes un neparedzamu modeļa uzvedību, ko ražošanas laikā ir grūti novērst. Pirms funkciju glabāšanas mūsu datu zinātnieki pārbauda funkciju konsekvenci, izmantojot saprāta pārbaudes. Šis ir manuāls, laikietilpīgs process, kas novērš uzmanību no augstākas prioritātes uzdevumiem, piemēram, modelēšanas un saprātīgas funkciju izstrādes. Tagad izpētīsim ML cauruļvadu ar funkciju veikalu.
Līdzīgi kā citā konveijerā, kreisajā pusē ir tie paši datu avoti un līdzekļi. Tomēr tā vietā, lai izmantotu vairākus līdzekļu konveijerus, mums ir funkciju veikals kā viens centrālais centrs, kas apkalpo abas ML konveijera fāzes (modeļa apmācības un secinājumu pakalpojums). Nav funkciju dublikātu; visi procesi, kas nepieciešami, lai izveidotu līdzekli, tostarp pārveidošana un apkopošana, ir jāveic tikai vienu reizi.
Datu zinātnieki var intuitīvi mijiedarboties ar funkciju veikalu, izmantojot mūsu īpaši izveidoto Python SDK, lai meklētu, atkārtoti izmantotu un atklātu līdzekļus pakārtotā ML modeļa apmācībai un secinājumu veikšanai.
Būtībā funkciju veikals ir centralizēta datu bāze, kas apvieno abas fāzes. Tā kā funkciju veikals garantē konsekventas funkcijas apmācībai un secinājumiem, mēs varam ievērojami samazināt apmācības rādīšanas novirzes.
Ņemiet vērā, ka funkciju veikali dara daudz vairāk nekā iepriekš minētie punkti. Šis, protams, ir elementārāks kopsavilkums par to, kāpēc mēs izmantojam funkciju veikalu, un tas, ko varam sīkāk sadalīt tikai dažos vārdos: sagatavojiet un nosūtiet līdzekļus ML modeļos visātrāk un vienkāršākajā veidā.
Funkciju veikala iekšpusē
Augšējā attēlā parādīts jūsu tipiskais funkciju veikala izkārtojums, neatkarīgi no tā, vai tas ir AWS SageMaker Feature Store, Google vertex AI (Feast), Azure (Feathr), Iguazio vai Tetcom. Visi funkciju veikali nodrošina divu veidu krātuvi: tiešsaistē vai bezsaistē.
Tiešsaistes funkciju veikali tiek izmantoti reāllaika secinājumiem, savukārt bezsaistes funkciju veikali tiek izmantoti partijas prognozēšanai un modeļu apmācībai. Dažādu lietošanas gadījumu dēļ veiktspējas novērtēšanai izmantojamā metrika ir pilnīgi atšķirīga. Tiešsaistes funkcijā mēs meklējam zemu latentumu. Bezsaistes funkciju veikaliem mēs vēlamies lielu caurlaidspēju.
Izstrādātāji var izvēlēties jebkuru uzņēmuma funkciju veikalu vai pat atvērtā koda veikalu, pamatojoties uz tehnoloģiju kopumu. Tālāk esošajā diagrammā ir izklāstītas galvenās atšķirības starp tiešsaistes un bezsaistes veikaliem AWS SageMaker Feature Store.
Tiešsaistes veikals: saglabā jaunākās funkciju kopijas un apkalpo tās ar zemu milisekundes latentumu, kura ātrums ir atkarīgs no jūsu kravnesības lieluma. Mūsu konta pārņemšanas (ATO) modelim, kurā ir astoņas funkciju grupas un kopā 55 līdzekļi, ātrums ir aptuveni 30 ms p99 latentums.
Bezsaistes veikals: tikai pievienošanas veikals, kas ļauj izsekot visām vēsturiskajām funkcijām un iespējot ceļošanu laikā, lai izvairītos no datu noplūdes. Dati tiek glabāti parketa formātā ar laika sadalīšanu, lai palielinātu lasīšanas efektivitāti.
Attiecībā uz līdzekļu konsekvenci, ja vien līdzekļu grupa ir konfigurēta lietošanai gan tiešsaistē, gan bezsaistē, dati tiks automātiski un iekšēji kopēti uz bezsaistes veikalu, kamēr tiešsaistes veikals uzņems šo līdzekli.
Kā mēs izmantojam funkciju veikalu?
Iepriekš attēlā redzamais kods slēpj daudz sarežģītības. Funkciju veikali ļauj mums vienkārši importēt python saskarni modeļu apmācībai un secinājumu veikšanai.
Izmantojot funkciju veikalu, mūsu datu zinātnieki var viegli definēt līdzekļus un izveidot jaunus modeļus, neuztraucoties par nogurdinošo datu inženierijas procesu aizmugursistēmā.
Funkciju veikala izmantošanas paraugprakse
Iepriekšējā emuāra ziņojumā mēs paskaidrojām, kā mēs izmantojam veikala slāni, lai pārvietotu līdzekļus centralizētajā DB. Šeit mēs vēlamies dalīties ar divām paraugpraksēm, izmantojot funkciju veikalu.
Mēs nepārņemam funkcijas, kas nav mainītas
Mēs iedalām līdzekļus divās loģiskās grupās: aktīvās lietotāja darbības un neaktīvās
Apsveriet šo piemēru. Pieņemsim, ka jūsu tiešsaistes funkciju veikalā PutRecord ir noteikts 10 000 TPS ierobežošanas ierobežojums. Izmantojot šo hipotēzi, mēs uzņemsim funkcijas 100 miljoniem lietotāju. Mēs nevaram tos visus uzņemt uzreiz, un ar pašreizējo ātrumu tas aizņems aptuveni 2,7 stundas. Lai to atrisinātu, mēs izvēlamies pārņemt tikai nesen atjauninātās funkcijas. Piemēram, mēs neapgūsim objektu, ja vērtība nav mainījusies kopš pēdējās uzņemšanas reizes.
Attiecībā uz otro punktu, pieņemsim, ka jūs ievietojat funkciju kopu vienā loģiskā funkciju grupā. Daži no tiem ir aktīvi, bet liela daļa ir neaktīvi, kas nozīmē, ka lielākā daļa funkciju nav mainītas. Mūsuprāt, loģisks solis ir sadalīt aktīvos un neaktīvos divās funkciju grupās, lai paātrinātu uzņemšanas procesu.
Neaktīvām funkcijām mēs samazinām par 95% datu, kas jāievada funkciju veikalā 100 miljoniem lietotāju katru stundu. Turklāt mēs joprojām samazinām par 20% datu, kas nepieciešami aktīvajām funkcijām. Tātad trīs stundu vietā pakešu ievades konveijeris apstrādā 100 miljonus lietotāju funkcijas 10 minūšu laikā.
Noslēguma domas
Rezumējot, funkciju veikali ļauj mums atkārtoti izmantot līdzekļus, paātrināt funkciju izstrādi un samazināt neprecīzas prognozes, vienlaikus saglabājot konsekvenci starp apmācību un secinājumiem.
Vai vēlaties izmantot ML, lai aizsargātu pasaulē lielāko šifrēšanas ekosistēmu un tās lietotājus? Apskatiet Binance Engineering/AI mūsu karjeras lapā, lai iegūtu atklātus darba sludinājumus.
Papildu lasīšana:
(emuārs) MLOps izmantošana reāllaika pilnīgas mašīnmācīšanās cauruļvada izveidei
