Systémy ukladania funkcií verzus ad hoc inžinierstvo funkcií
Systémy úložiska funkcií ponúkajú centralizovanú, opakovane použiteľnú a verziovanú správu funkcií pre pracovné postupy strojového učenia, zatiaľ čo ad hoc inžinierstvo funkcií sa spolieha na vlastné skripty vytvorené pre každý projekt. Výber medzi nimi formuje spôsob, akým tímy škálujú, spolupracujú a nasadzujú modely v produkčných prostrediach.
Zvýraznenia
Úložiská funkcií eliminujú skreslenie pri poskytovaní tréningu zjednotením logiky transformácie naprieč dávkovými a reálnymi kanálmi.
Ad hoc inžinierstvo ponúka bezkonkurenčnú flexibilitu pre rýchle experimentovanie bez obmedzení platformy.
Úložiská funkcií premieňajú funkcie na zdieľané organizačné aktíva, čím sa znižuje duplicitná práca medzi tímami.
Bod zlomu pre prijatie úložiska funkcií zvyčajne nastáva, keď sa viacero modelov dostane do produkcie.
Čo je Systémy ukladania funkcií?
Centralizované platformy, ktoré ukladajú, verzujú a poskytujú vybrané funkcie pre modely strojového učenia naprieč tímami a projektmi.
Obchody s prvkami boli koncom roka 2010 popularizované spoločnosťami ako Uber (Michelangelo), Airbnb (Chronon) a Google.
Zvyčajne podporujú online (nízka latencia) aj offline (dávkové) funkcie slúžiace na trénovanie a inferenciu.
Medzi možnosti s otvoreným zdrojovým kódom patria Feast, Hopsworks a Featureform, pričom každá z nich ponúka rôzne integrácie úložiska a orchestrácie.
Úložiská funkcií vynucujú konzistenciu funkcií použitím rovnakej transformačnej logiky pre trénovanie a poskytovanie, čím sa znižuje skreslenie medzi trénovaním a poskytovaním.
Poskytujú vstavané verzovanie funkcií, sledovanie pôvodu a riadenie prístupu, ktoré podporuje riadenie a reprodukovateľnosť.
Čo je Ad Hoc inžinierstvo funkcií?
Vytváranie vlastných, projektovo špecifických funkcií manuálne vykonávané dátovými vedcami pomocou skriptov, poznámkových blokov alebo jednorazových kanálov.
Ad hoc inžinierstvo prvkov je štandardným prístupom v dátovej vede už od počiatkov tejto oblasti, dávno predtým, ako existovali úložiská prvkov.
Zvyčajne ide o písanie kódu Python alebo SQL v notebookoch, ako je Jupyter, na transformáciu surových údajov do vstupov pripravených na modelovanie.
Funkcie sa často duplikujú v rôznych projektoch, pretože neexistuje zdieľaný repozitár, čo vedie k nekonzistentným definíciám.
Tento prístup poskytuje dátovým vedcom maximálnu flexibilitu experimentovať s novými transformáciami bez obmedzení platformy.
Údržba sa časom stáva náročnejšou, pretože skripty, závislosti a zdroje údajov sa vyvíjajú bez centralizovanej dokumentácie.
Tabuľka porovnania
Funkcia
Systémy ukladania funkcií
Ad Hoc inžinierstvo funkcií
Opätovné použitie funkcií
Vysoká – zdieľaná medzi tímami a projektmi
Nízka – zvyčajne špecifická pre projekt
Konzistentnosť tréningu a podávania
Vstavané cez zjednotené kanály
Manuálne, často nekonzistentné
Zložitosť nastavenia
Vyššie počiatočné nastavenie a infraštruktúra
Minimálne - len kód a dáta
Škálovateľnosť
Navrhnuté pre výrobné meradlo
Obmedzené kapacitou tímu a nástrojov
Riadenie a pôvod
Verzionovanie, riadenie prístupu, audítorské záznamy
Zvyčajne nelegálne alebo neformálne
Flexibilita pre experimentovanie
Mierne – obmedzené platformou
Veľmi vysoká - žiadne obmedzenia platformy
Čas do prvého modelu
Pomalšie kvôli réžii nastavenia
Rýchlejšie pre jednorazové projekty
Náklady na údržbu
Nižšie dlhodobé investície vo veľkom meradle
Vyššie s rastúcim počtom funkcií
Podrobné porovnanie
Pracovný postup a architektúra
Systémy úložísk funkcií fungujú ako špecializované infraštruktúrne vrstvy, ktoré sa nachádzajú medzi zdrojmi surových údajov a modelmi strojového učenia. Zabezpečujú príjem, transformáciu, ukladanie a poskytovanie prostredníctvom jednotného kanála. Ad hoc inžinierstvo funkcií sa naopak nachádza všade tam, kde pracuje dátový vedec, zvyčajne v notebookoch alebo samostatných skriptoch, ktoré sťahujú údaje, aplikujú transformácie a priamo poskytujú modely. Architektonický rozdiel znamená, že úložiská funkcií vyžadujú počiatočné investície do nástrojov, zatiaľ čo ad hoc prístupy môžu začať len s CSV súborom a trochou kódu PANDA.
Konzistentnosť medzi školením a produkciou
Jedným z najväčších problémov strojového učenia je skreslenie trénovania a poskytovania, kde model síce funguje dobre vo vývoji, ale v produkcii sa zhoršuje, pretože funkcie sa počítajú odlišne. Úložiská funkcií to riešia použitím rovnakého transformačného kódu pre dávkové trénovacie dáta aj inferenciu v reálnom čase. Pri ad hoc inžinierstve tímy často píšu jednu sadu logiky pre trénovanie a inú pre poskytovanie, čo prináša jemné chyby, ktoré sa notoricky ťažko ladia. Táto výhoda konzistencie sama o sebe prinútila mnoho organizácií prijať úložiská funkcií.
Tímová spolupráca a zdieľanie znalostí
Keď sú funkcie uložené v zdieľanom úložisku, každý dátový vedec ich môže objaviť a znovu použiť, čo zabraňuje nadbytočnej práci a podporuje štandardizáciu. Noví členovia tímu si môžu prezerať katalóg existujúcich funkcií namiesto ich nanovo vymýšľania. Ad hoc inžinierstvo má tendenciu vytvárať izolované štruktúry, kde každý analytik prestavuje podobné funkcie izolovane, niekedy s mierne odlišnými definíciami, ktoré spôsobujú zmätok v následných procesoch. Postupom času táto fragmentácia sťažuje udržiavanie koherentnej stratégie funkcií v celej organizácii.
Rýchlosť experimentovania vs. pripravenosť na produkciu
Ad hoc inžinierstvo funkcií vyniká počas skorého experimentovania, keď dátoví vedci potrebujú rýchlo iterovať na nových transformáciách bez obáv z nasadenia. Novú funkciu je možné otestovať v priebehu niekoľkých minút. Úložiská funkcií zvyšujú réžiu, pretože každá funkcia musí byť zaregistrovaná, overená a integrovaná do obslužnej infraštruktúry predtým, ako sa môže použiť v produkčnom prostredí. Rovnaká réžia sa však vyplatí, keď sa modely presunú do produkčného prostredia, pretože funkcia je už pripravená na produkčné prostredie a nevyžaduje si samostatné inžinierske úsilie.
Náklady a prevádzkové aspekty
Prevádzkovanie úložiska funkcií zahŕňa náklady na infraštruktúru pre úložisko, výpočty a orchestráciu, plus inžinierske úsilie potrebné na jeho údržbu. Pre malé tímy alebo jednotlivé projekty sa to môže zdať prehnané. Ad hoc inžinierstvo má takmer nulové náklady na infraštruktúru, ale hromadí skryté náklady na duplicitnú prácu, ladenie nekonzistentností a prepisovanie funkcií pre produkčný proces. Bod zlomu zvyčajne nastáva, keď má organizácia viacero modelov v produkčnom prostredí alebo niekoľko dátových vedcov pracuje na prekrývajúcich sa problémoch.
Výhody a nevýhody
Systémy ukladania funkcií
Výhody
+Centralizované opätovné použitie funkcií
+Konzistentnosť tréningu a podávania
+Vstavané verziovanie
+Podávanie pripravené na výrobu
Cons
−Vyššie náklady na nastavenie
−Režijné náklady na infraštruktúru
−Pomalšie experimentovanie
−Závislosť na dodávateľovi alebo nástrojoch
Ad Hoc inžinierstvo funkcií
Výhody
+Maximálna flexibilita
+Rýchly štart
+Nie je potrebná žiadna infraštruktúra
+Jednoduché prispôsobenie
Cons
−Ťažko sa znovu použije
−Nekonzistentné definície
−Ťažké na údržbu
−Žiadna vstavaná správa
Bežné mylné predstavy
Mýtus
Úložiská funkcií sú iba databázy pre funkcie.
Realita
Úložisko funkcií je oveľa viac než len úložisko. Zahŕňa transformačné kanály, online a offline poskytovanie, objavovanie funkcií, sledovanie pôvodu a riadenie prístupu. Ak sa s ním zaobchádza ako s jednoduchou databázou, stráca sa väčšina jeho hodnoty, najmä záruky konzistencie medzi trénovaním a inferenciou.
Mýtus
Ad hoc inžinierstvo funkcií sa vôbec neškáluje.
Realita
Mnoho úspešných spoločností roky fungovalo na ad hoc kanáloch, kým nezaviedli úložiská funkcií. Tento prístup sa pomerne dobre škáluje pre malé tímy a niekoľko modelov. Čo však narúša spoluprácu, riadenie a konzistentnosť, keď počet modelov a dátových vedcov výrazne narastie.
Mýtus
Musíte si zvoliť jeden prístup navždy.
Realita
Väčšina vyspelých organizácií zaoberajúcich sa strojovým učením (ML) používa oboje. Dátoví vedci skúmajú nové nápady ad hoc v poznámkových blokoch a potom overené funkcie propagujú do úložiska funkcií na produkčné použitie. V praxi zvyčajne funguje najlepšie, ak sa s nimi zaobchádza ako s doplnkovými, a nie ako s konkurenčnými prístupmi.
Mýtus
Úložiská prvkov automaticky zlepšujú presnosť modelu.
Realita
Úložiská funkcií zlepšujú prevádzkovú kvalitu, nie nevyhnutne výkon modelu. Znižujú počet chýb, zrýchľujú nasadenie a zabraňujú nekonzistentnostiam, ale základné funkcie si stále vyžadujú premyslený dizajn. Zlá funkcia v úložisku je stále zlá funkcia.
Mýtus
Obchody s funkciami s otvoreným zdrojovým kódom sú pripravené na produkciu hneď po vybalení.
Realita
Nástroje ako Feast a Hopsworks poskytujú solídny základ, ale nasadenie do produkčného prostredia si stále vyžaduje značné inžinierske práce týkajúce sa monitorovania, škálovania, zabezpečenia a integrácie s existujúcou dátovou infraštruktúrou. Pripravenosť na použitie sa medzi projektmi značne líši.
Často kladené otázky
Čo je to úložisko funkcií v strojovom učení?
Úložisko prvkov je centralizovaná platforma, ktorá ukladá, spravuje a poskytuje prvky strojového učenia na trénovanie aj inferenciu. Funguje ako most medzi surovými údajmi a modelmi, čím zabezpečuje, že rovnaké definície prvkov sa konzistentne používajú v úlohách dávkového trénovania a predpovediach v reálnom čase. Medzi obľúbené príklady patria Feast, Hopsworks a Tecton.
Prečo firmy používajú úložiská funkcií namiesto ad hoc kanálov?
Spoločnosti zavádzajú úložiská funkcií predovšetkým na elimináciu nerovnováhy v poskytovaní školení, umožnenie opätovného použitia funkcií medzi tímami a zníženie inžinierskeho úsilia potrebného na nasadenie modelov. Keď viacerí dátoví vedci pracujú na prekrývajúcich sa problémoch, zdieľaný katalóg funkcií zabraňuje duplicitnej práci a nekonzistentným definíciám, ktoré môžu nenápadne znižovať výkon modelu.
Kedy je ad hoc inžinierstvo prvkov tou správnou voľbou?
Ad hoc inžinierstvo funkcií funguje najlepšie pre samostatných dátových vedcov, výskumné projekty a experimentovanie v počiatočných fázach, kde je rýchlosť dôležitejšia ako štandardizácia. Ak vytvárate jednorazový model alebo skúmate nový problémový priestor, réžia na vytvorenie úložiska funkcií zvyčajne nie je opodstatnená. Mnoho tímov začína ad hoc a migruje do úložiska funkcií, keď sa modely dostanú do produkcie.
Nahrádzajú úložiská funkcií dátové kanály?
Nie, úložiská funkcií dopĺňajú, a nie nahrádzajú dátové kanály. Surové dáta stále pretekajú cez extrakčné a transformačné kanály predtým, ako sa dostanú do úložiska funkcií. Úložisko funkcií potom rieši záležitosti špecifické pre funkcie, ako je verzovanie, poskytovanie a vyhľadávanie. Predstavte si ho ako špecializovanú vrstvu nad vašou existujúcou dátovou infraštruktúrou.
Ako obchody s funkciami pracujú s funkciami v reálnom čase?
Väčšina moderných úložísk funkcií podporuje dávkové aj streamované výpočty funkcií. Integrujú sa so systémami na spracovanie streamov, ako sú Apache Kafka alebo Apache Flink, aby vypočítali funkcie takmer v reálnom čase a potom ich poskytli prostredníctvom online úložísk s nízkou latenciou, ako sú Redis alebo DynamoDB. To umožňuje modelom používať nové funkcie počas inferencie bez prestavovania celého pipeline.
Čo je to skreslenie tréningu a podávania a prečo je to dôležité?
skresleniu pri trénovaní a poskytovaní dochádza, keď sa funkcie počas trénovania modelu vypočítavajú inak ako počas produkčnej inferencie, čo spôsobuje, že sa model v produkčnom prostredí správa horšie, ako sa očakávalo. Je to jedna z najčastejších príčin degradácie modelu po nasadení. Úložiská funkcií tomu zabraňujú používaním identickej transformačnej logiky pre oba kontexty.
Oplatí sa obchodovať s funkciami pre malé tímy?
Pre veľmi malé tímy s jedným alebo dvoma modelmi úložiská funkcií často pridávajú viac zložitosti, ako ju odstraňujú. Náklady na nastavenie a údržbu môžu prevážiť výhody, kým nemáte v produkcii viacero modelov alebo niekoľko ľudí spolupracuje na funkciách. Možnosti s otvoreným zdrojovým kódom, ako napríklad Feast, znižujú túto bariéru, ale prevádzkové náklady stále existujú.
Viete si vytvoriť úložisko funkcií sami?
Áno, mnoho spoločností si vytvorilo interné obchody s funkciami ešte predtým, ako sa komerčné a open-source možnosti stali široko dostupnými. Michelangelo od Uberu a Chronon od Airbnb sú dobre známymi príkladmi. Vytvorenie vlastného obchodu poskytuje maximálnu kontrolu, ale vyžaduje si značné investície do inžinierstva, a preto väčšina tímov teraz uprednostňuje existujúce platformy, pokiaľ nemajú veľmi špecializované potreby.
Aký je rozdiel medzi úložiskom funkcií a dátovým skladom?
Dátový sklad uchováva nespracované a agregované obchodné dáta optimalizované pre analytiku, zatiaľ čo úložisko funkcií uchováva funkcie špecifické pre strojové učenie optimalizované pre dávkové trénovanie aj poskytovanie s nízkou latenciou. Úložiská funkcií pridávajú funkcie zamerané na strojové učenie, ako sú spojenia v čase, verziovanie funkcií a online poskytovanie, ktoré dátové sklady zvyčajne neposkytujú.
Ako úložiská funkcií podporujú riadenie modelov?
Úložiská funkcií sledujú pôvod funkcií, verzie a vzorce prístupu, čo pomáha organizáciám splniť regulačné a audítorské požiadavky. Keď sú predpovede modelu spochybnené, tímy môžu presne vysledovať, ktoré verzie funkcií boli použité. To je obzvlášť cenné v regulovaných odvetviach, ako sú financie a zdravotníctvo, kde je potrebná transparentnosť modelu.
Rozsudok
Systémy úložísk funkcií sú lepšou voľbou pre organizácie, ktoré prevádzkujú viacero modelov v produkčnom prostredí alebo škálujú svoje operácie strojového učenia naprieč tímami, kde je najdôležitejšia konzistencia a opätovná použiteľnosť. Ad hoc inžinierstvo funkcií zostáva cenné pre samostatných dátových vedcov, výskumné projekty a experimentovanie v raných fázach, kde rýchlosť a flexibilita prevažujú nad výhodami centralizovanej infraštruktúry. Mnoho zrelých tímov v skutočnosti používa oboje, pričom sa spoliehajú na ad hoc prácu pre prieskum a úložiská funkcií pre všetko, čo sa dostane do produkčného prostredia.