Funkcijų saugyklų sistemos ir ad hoc funkcijų inžinerija
Funkcijų saugyklų sistemos siūlo centralizuotą, pakartotinai naudojamą ir versijomis pagrįstą funkcijų valdymą mašininio mokymosi darbo eigoms, o ad hoc funkcijų inžinerija remiasi kiekvienam projektui sukurtais individualiais scenarijais. Pasirinkimas tarp jų lemia, kaip komandos keičia modelių mastą, bendradarbiauja ir diegia juos gamybinėje aplinkoje.
Akcentai
Funkcijų saugyklos pašalina mokymo pateikimo iškraipymą, suvienodindamos transformacijos logiką paketiniuose ir realaus laiko apdorojimo srautuose.
Ad hoc inžinerija siūlo neprilygstamą lankstumą greitam eksperimentavimui be platformos apribojimų.
Funkcijų saugyklos paverčia funkcijas bendrais organizacijos ištekliais, taip sumažindamos pasikartojantį darbą tarp komandų.
Lūžio taškas funkcijų parduotuvės diegimui paprastai pasiekiamas, kai gamyba pradedama keliais modeliais.
Kas yra Funkcijų parduotuvių sistemos?
Centralizuotos platformos, kurios saugo, versijuoja ir teikia kuruojamas mašininio mokymosi modelių funkcijas skirtingose komandose ir projektuose.
Funkcines parduotuves 2010-ųjų pabaigoje išpopuliarino tokios įmonės kaip „Uber“ (Mikelandželas), „Airbnb“ („Chronon“) ir „Google“.
Paprastai jie palaiko tiek internetinį (mažo delsos laiko), tiek neprisijungus veikiantį (paketinį) funkcijų teikimą mokymui ir išvadoms.
Atvirojo kodo parinktys apima „Feast“, „Hopsworks“ ir „Featureform“, kurių kiekviena siūlo skirtingas saugojimo ir orkestravimo integracijas.
Funkcijų saugyklos užtikrina funkcijų nuoseklumą naudodamos tą pačią transformacijos logiką mokymui ir pateikimui, taip sumažindamos mokymo ir pateikimo iškraipymą.
Jie teikia integruotas funkcijų versijavimo, kilmės sekimo ir prieigos kontrolės funkcijas, kurios palaiko valdymą ir atkuriamumą.
Kas yra Ad hoc funkcijų inžinerija?
Pasirinktinės, projektui būdingos funkcijos, kurias rankiniu būdu kuria duomenų mokslininkai, naudodami scenarijus, užrašų knygeles arba vienkartinius procesus.
Ad hoc funkcijų inžinerija buvo numatytasis duomenų mokslo metodas nuo pat šios srities pradžios, gerokai prieš atsirandant funkcijų saugykloms.
Paprastai tai apima „Python“ arba SQL kodo rašymą užrašų knygelėse, tokiose kaip „Jupyter“, kad neapdoroti duomenys būtų paversti modeliui paruoštais įvesties duomenimis.
Funkcijos dažnai dubliuojamos skirtinguose projektuose, nes nėra bendros saugyklos, todėl apibrėžimai yra nenuoseklūs.
Šis metodas suteikia duomenų mokslininkams maksimalų lankstumą eksperimentuoti su naujomis transformacijomis be platformos apribojimų.
Laikui bėgant, priežiūra tampa sunkesnė, nes scenarijai, priklausomybės ir duomenų šaltiniai vystosi be centralizuotos dokumentacijos.
Funkcijų saugyklų sistemos veikia kaip dedikuoti infrastruktūros sluoksniai, esantys tarp neapdorotų duomenų šaltinių ir mašininio mokymosi modelių. Jos tvarko duomenų įkėlimą, transformavimą, saugojimą ir teikimą per vieningą srautą. Tuo tarpu ad hoc funkcijų inžinerija vyksta ten, kur dirba duomenų mokslininkas, dažniausiai užrašų knygelėse arba atskiruose scenarijuose, kurie tiesiogiai renka duomenis, taiko transformacijas ir tiekia modelius. Architektūrinis skirtumas reiškia, kad funkcijų saugykloms reikia iš anksto investuoti į įrankius, o ad hoc metodai gali prasidėti tik nuo CSV failo ir šiek tiek „Pandas“ kodo.
Mokymo ir gamybos suderinamumas
Vienas didžiausių mašininio mokymosi problemų yra mokymo ir aptarnavimo iškraipymas, kai modelis gerai veikia kūrimo metu, bet prastėja gamyboje, nes funkcijos apskaičiuojamos skirtingai. Funkcijų saugyklos šią problemą išsprendžia naudodamos tą patį transformacijos kodą tiek paketinio mokymo duomenims, tiek realaus laiko išvadoms. Taikydamos ad hoc inžineriją, komandos dažnai rašo vieną logikos rinkinį mokymui, o kitą – aptarnavimui, todėl atsiranda subtilių klaidų, kurias, kaip žinoma, sunku derinti. Vien šis nuoseklumo pranašumas paskatino daugelį organizacijų diegti funkcijų saugyklas.
Komandos bendradarbiavimas ir žinių dalijimasis
Kai funkcijos yra bendroje saugykloje, bet kuris duomenų mokslininkas gali jas atrasti ir pakartotinai panaudoti, o tai užkerta kelią nereikalingam darbui ir skatina standartizavimą. Nauji komandos nariai gali naršyti esamų funkcijų kataloge, užuot jas išradę iš naujo. Ad hoc inžinerija linkusi sukurti atskirus elementus, kai kiekvienas analitikas atskirai atkuria panašias funkcijas, kartais su šiek tiek skirtingais apibrėžimais, kurie sukelia painiavą tolesniame procese. Laikui bėgant, dėl šio susiskaidymo sunkiau išlaikyti nuoseklią funkcijų strategiją visoje organizacijoje.
Eksperimentavimo greitis ir pasirengimas gamybai
Ad hoc funkcijų inžinerija sužiba ankstyvųjų eksperimentų metu, kai duomenų mokslininkams reikia greitai atlikti naujas transformacijas, nesijaudinant dėl diegimo. Naują funkciją galima išbandyti per kelias minutes. Funkcijų saugyklos padidina išlaidas, nes kiekviena funkcija turi būti užregistruota, patvirtinta ir integruota į aptarnaujančią infrastruktūrą, prieš ją naudojant gamyboje. Tačiau tos pačios išlaidos atsiperka, kai modeliai pereina į gamybą, nes funkcija jau yra paruošta gamybai, o ne reikalauja atskirų inžinerijos pastangų.
Sąnaudų ir eksploatavimo aspektai
Funkcijų saugyklos valdymas apima infrastruktūros išlaidas saugojimui, skaičiavimui ir orkestravimui, taip pat inžinerines pastangas jai prižiūrėti. Mažoms komandoms ar pavieniams projektams tai gali atrodyti kaip perteklius. Ad hoc inžinerija beveik neturi infrastruktūros išlaidų, tačiau kaupia paslėptas išlaidas dėl pasikartojančio darbo, neatitikimų derinimo ir funkcijų perrašymo gamybai. Nusipelnymo taškas paprastai pasiekiamas, kai organizacija gamyboje turi kelis modelius arba keli duomenų mokslininkai dirba su persidengiančiomis problemomis.
Privalumai ir trūkumai
Funkcijų parduotuvių sistemos
Privalumai
+Centralizuotas funkcijų pakartotinis naudojimas
+Mokymo ir aptarnavimo nuoseklumas
+Integruotas versijų valdymas
+Gamybai paruoštas pateikimas
Pasirinkta
−Didesnė įrengimo kaina
−Infrastruktūros pridėtinės išlaidos
−Lėtesnis eksperimentavimas
−Tiekėjo arba įrankių užrakinimas
Ad hoc funkcijų inžinerija
Privalumai
+Maksimalus lankstumas
+Greitai pradedama
+Nereikia jokios infrastruktūros
+Lengva pritaikyti
Pasirinkta
−Sunku pakartotinai panaudoti
−Nenuoseklūs apibrėžimai
−Sunku prižiūrėti
−Nėra integruoto valdymo
Dažni klaidingi įsitikinimai
Mitas
Funkcijų saugyklos yra tik funkcijų duomenų bazės.
Realybė
Funkcijų saugykla yra daug daugiau nei vien saugykla. Ji apima transformavimo srautus, internetinį ir neinternetinį teikimą, funkcijų atradimą, kilmės stebėjimą ir prieigos kontrolę. Laikant ją paprasta duomenų baze prarandama didžioji dalis jos vertės, ypač nuoseklumo garantijos tarp mokymo ir išvadų.
Mitas
Ad hoc funkcijų inžinerija visiškai nėra pritaikoma mastelio keitimui.
Realybė
Daugelis sėkmingų įmonių daugelį metų naudojosi ad hoc duomenų srautais, prieš pradėdamos naudoti funkcijų saugyklas. Šis metodas gana gerai pritaikomas mažoms komandoms ir keliems modeliams. Kai modelių ir duomenų mokslininkų skaičius gerokai išauga, sutrinka bendradarbiavimas, valdymas ir nuoseklumas.
Mitas
Jums reikia pasirinkti vieną požiūrį visam laikui.
Realybė
Dauguma brandžių mašininio mokymosi organizacijų naudoja abu. Duomenų mokslininkai ad hoc nagrinėja naujas idėjas užrašų knygelėse, o tada patvirtintas funkcijas įkelia į funkcijų saugyklą, skirtą naudoti gamyboje. Praktiškai geriausiai veikia traktuojant jas kaip vienas kitą papildančius, o ne konkuruojančius metodus.
Mitas
Elementų saugyklos automatiškai pagerina modelio tikslumą.
Realybė
Funkcijų saugyklos pagerina veikimo kokybę, nebūtinai modelio našumą. Jos sumažina klaidų skaičių, pagreitina diegimą ir užkerta kelią neatitikimams, tačiau pagrindinėms funkcijoms vis tiek reikia apgalvoto dizaino. Bloga saugyklos funkcija vis tiek yra bloga funkcija.
Mitas
Atvirojo kodo funkcijų saugyklos yra iš karto paruoštos gamybai.
Realybė
Tokios priemonės kaip „Feast“ ir „Hopsworks“ suteikia tvirtą pagrindą, tačiau diegimas gamybinėje aplinkoje vis dar reikalauja didelių inžinerinių darbų, susijusių su stebėjimu, mastelio keitimu, saugumu ir integravimu su esama duomenų infrastruktūra. Parengtis įvairiuose projektuose labai skiriasi.
Dažnai užduodami klausimai
Kas yra funkcijų saugykla mašininio mokymosi srityje?
Funkcijų saugykla yra centralizuota platforma, kurioje saugomos, tvarkomos ir teikiamos mašininio mokymosi funkcijos, skirtos tiek mokymui, tiek išvadoms. Ji veikia kaip tiltas tarp neapdorotų duomenų ir modelių, užtikrinant, kad tie patys funkcijų apibrėžimai būtų nuosekliai naudojami tiek paketinio mokymo užduotyse, tiek realaus laiko prognozėse. Populiarūs pavyzdžiai: „Feast“, „Hopsworks“ ir „Tecton“.
Kodėl įmonės naudoja funkcijų parduotuves, o ne ad hoc kanalus?
Įmonės naudoja funkcijų saugyklas pirmiausia tam, kad pašalintų mokymo paslaugų teikimo iškraipymus, įgalintų funkcijų pakartotinį naudojimą skirtingose komandose ir sumažintų inžinerines pastangas, reikalingas modeliams diegti. Kai keli duomenų mokslininkai dirba su persidengiančiomis problemomis, bendras funkcijų katalogas apsaugo nuo pasikartojančio darbo ir nenuoseklių apibrėžimų, kurie gali nepastebimai sumažinti modelio našumą.
Kada ad hoc funkcijų inžinerija yra tinkamas pasirinkimas?
Ad hoc funkcijų inžinerija geriausiai tinka individualiems duomenų mokslininkams, tyrimų projektams ir ankstyvosios stadijos eksperimentams, kai greitis yra svarbesnis už standartizavimą. Jei kuriate vienkartinį modelį arba tyrinėjate naują probleminę sritį, funkcijų saugyklos sukūrimo išlaidos paprastai nėra pateisinamos. Daugelis komandų pradeda ad hoc ir pereina prie funkcijų saugyklos, kai modeliai pasiekia gamybinę aplinką.
Ar funkcijų saugyklos pakeičia duomenų srautus?
Ne, funkcijų saugyklos papildo, o ne pakeičia duomenų srautus. Neapdoroti duomenys vis tiek teka per išgavimo ir transformavimo srautus, kol pasiekia funkcijų saugyklą. Funkcijų saugykla tada tvarko su funkcijomis susijusius klausimus, pvz., versijų kūrimą, pateikimą ir aptikimą. Įsivaizduokite ją kaip specializuotą sluoksnį, esantį ant esamos duomenų infrastruktūros.
Kaip funkcijų saugyklos tvarko realaus laiko funkcijas?
Dauguma šiuolaikinių funkcijų saugyklų palaiko tiek paketinį, tiek srautinį funkcijų skaičiavimą. Jos integruojasi su srautinio apdorojimo sistemomis, tokiomis kaip „Apache Kafka“ arba „Apache Flink“, kad galėtų apskaičiuoti funkcijas beveik realiuoju laiku, o tada jas pateikti per mažo delsos internetines saugyklas, tokias kaip „Redis“ arba „DynamoDB“. Tai leidžia modeliams naudoti naujas funkcijas išvadų darymo metu, neperkuriant viso srauto.
Kas yra treniruočių ir patiekimo iškraipymas ir kodėl jis svarbus?
Mokymo ir pateikimo iškraipymas įvyksta, kai funkcijos apskaičiuojamos skirtingai modelio mokymo metu ir gamybinės išvados metu, todėl modelis gamybinėje aplinkoje veikia blogiau nei tikėtasi. Tai viena iš dažniausių modelio degradacijos priežasčių po diegimo. Funkcijų saugyklos to išvengia naudodamos identišką transformacijos logiką abiem kontekstams.
Ar išskirtinės parduotuvės vertos mažoms komandoms?
Labai mažoms komandoms, turinčioms vieną ar du modelius, funkcijų saugyklos dažnai padidina sudėtingumą, nei jį pašalina. Sąrankos ir priežiūros išlaidos gali nusverti naudą, kol gamyboje nėra kelių modelių arba keli žmonės nebendradarbiauja kurdami funkcijas. Atvirojo kodo sprendimai, tokie kaip „Feast“, sumažina šį barjerą, tačiau eksploatavimo išlaidos vis tiek išlieka.
Ar galite patys susikurti funkcijų parduotuvę?
Taip, daugelis įmonių kūrė vidines funkcines parduotuves dar prieš tai, kai komercinės ir atvirojo kodo parinktys tapo plačiai prieinamos. „Uber“ „Michelangelo“ ir „Airbnb“ „Chronon“ yra gerai žinomi pavyzdžiai. Savo platformų kūrimas suteikia maksimalią kontrolę, tačiau reikalauja didelių inžinerinių investicijų, todėl dauguma komandų dabar renkasi esamas platformas, nebent jos turi labai specializuotų poreikių.
Kuo skiriasi funkcijų saugykla ir duomenų saugykla?
Duomenų saugykloje saugomi neapdoroti ir apibendrinti verslo duomenys, optimizuoti analizei, o funkcijų saugykloje saugomos ML skirtos funkcijos, optimizuotos tiek paketiniam mokymui, tiek mažo delsos teikimui. Funkcijų saugyklos prideda ML skirtas funkcijas, pvz., prisijungimus tam tikru momentu, funkcijų versijavimą ir teikimą internetu, kurių duomenų saugyklos paprastai neteikia.
Kaip funkcijų saugyklos palaiko modelio valdymą?
Funkcijų saugyklos seka funkcijų kilmę, versijas ir prieigos modelius, o tai padeda organizacijoms laikytis reguliavimo ir audito reikalavimų. Kai modelio prognozės abejojamos, komandos gali tiksliai atsekti, kurios funkcijų versijos buvo naudojamos. Tai ypač vertinga reguliuojamose pramonės šakose, tokiose kaip finansai ir sveikatos apsauga, kur reikalingas modelio skaidrumas.
Nuosprendis
Funkcijų saugyklų sistemos yra geresnis pasirinkimas organizacijoms, kurios gamyboje naudoja kelis modelius arba plečia savo mašininio mokymosi operacijas tarp komandų, kur svarbiausia yra nuoseklumas ir pakartotinis panaudojimas. Ad hoc funkcijų inžinerija išlieka vertinga individualiems duomenų mokslininkams, tyrimų projektams ir ankstyvojo etapo eksperimentams, kai greitis ir lankstumas nusveria centralizuotos infrastruktūros privalumus. Daugelis brandžių komandų iš tikrųjų naudoja abu, pasikliaudamos ad hoc darbu tyrimams ir funkcijų saugyklomis viskam, kas pasiekia gamybinę aplinką.