Funktsioonide talletamise süsteemid vs. ad hoc funktsioonide projekteerimine
Funktsioonide talletamise süsteemid pakuvad masinõppe töövoogude jaoks tsentraliseeritud, korduvkasutatavat ja versioonitud funktsioonide haldust, samas kui ad hoc funktsioonide projekteerimine tugineb projekti kohta loodud kohandatud skriptidele. Nende vahel valimine kujundab seda, kuidas meeskonnad mudeleid tootmiskeskkondades skaleerivad, koostööd teevad ja juurutavad.
Esiletused
Funktsioonide poed kõrvaldavad treeningu ja serveerimise vahelise kallutatuse, ühendades teisendusloogika partii- ja reaalajas töötlemise torujuhtmetes.
Ad hoc inseneritöö pakub enneolematut paindlikkust kiireks katsetamiseks ilma platvormipiiranguteta.
Funktsioonide poed muudavad funktsioonid jagatud organisatsioonilisteks ressurssideks, vähendades meeskondade vahel topelttööd.
Funktsioonipoe kasutuselevõtu tasuvuspunkt saabub tavaliselt siis, kui tootmisse jõuab mitu mudelit.
Mis on Funktsioonide poodide süsteemid?
Tsentraliseeritud platvormid, mis salvestavad, versioonivad ja pakuvad masinõppemudelite kureeritud funktsioone meeskondade ja projektide lõikes.
Tipptasemel poode populariseerisid 2010. aastate lõpus sellised ettevõtted nagu Uber (Michelangelo), Airbnb (Chronon) ja Google.
Tavaliselt toetavad nad nii võrguühendusega (madala latentsusega) kui ka võrguühenduseta (pakktöötlusega) funktsioonide serveerimist treenimiseks ja järelduste tegemiseks.
Avatud lähtekoodiga valikute hulka kuuluvad Feast, Hopsworks ja Featureform, millest igaüks pakub erinevaid salvestus- ja orkestreerimisintegratsioone.
Funktsioonide poed tagavad funktsioonide järjepidevuse, kasutades treenimisel ja serveerimisel sama teisendusloogikat, vähendades treenimise ja serveerimise vahelist kallutatust.
Need pakuvad sisseehitatud funktsioonide versioonimist, päritolu jälgimist ja juurdepääsu kontrolle, mis toetavad juhtimist ja reprodutseeritavust.
Mis on Ad hoc funktsioonide projekteerimine?
Andmeteadlaste käsitsi loodud kohandatud, projektipõhised funktsioonid skriptide, märkmike või ühekordsete torujuhtmete abil.
Ad hoc funktsioonide projekteerimine on olnud andmeteaduse vaikelähenemisviis juba valdkonna algusaegadest peale, ammu enne funktsioonipoodide olemasolu.
Tavaliselt hõlmab see Pythoni või SQL-koodi kirjutamist märkmikes nagu Jupyter, et teisendada toorandmed mudelivalmis sisenditeks.
Funktsioonid dubleeritakse projektide vahel sageli, kuna puudub ühine hoidla, mis viib vastuoluliste definitsioonideni.
See lähenemisviis annab andmeteadlastele maksimaalse paindlikkuse katsetada uudseid transformatsioone ilma platvormipiiranguteta.
Hooldus muutub aja jooksul raskemaks, kuna skriptid, sõltuvused ja andmeallikad arenevad ilma tsentraliseeritud dokumentatsioonita.
Funktsioonisalvestussüsteemid toimivad spetsiaalsete infrastruktuurikihtidena, mis paiknevad toorandmete allikate ja masinõppemudelite vahel. Need tegelevad andmete vastuvõtmise, teisendamise, salvestamise ja serveerimisega ühtse torujuhtme kaudu. Ad hoc funktsioonide projekteerimine seevastu toimub kõikjal, kus andmeteadlane töötab, tavaliselt märkmike või eraldiseisvate skriptide sees, mis hangivad andmeid, rakendavad teisendusi ja edastavad mudeleid otse. Arhitektuuriline erinevus tähendab, et funktsioonisalvestused nõuavad eelnevat investeeringut tööriistadesse, samas kui ad hoc lähenemisviisid võivad alata vaid CSV-failist ja Pandas koodist.
Koolituse ja tootmise vaheline järjepidevus
Üks masinõppe suurimaid probleeme on treeningu-serverimise moonutus, mille puhul mudel toimib arenduses hästi, kuid tootmiskeskkonnas halveneb, kuna funktsioone arvutatakse erinevalt. Funktsioonisalvestused lahendavad selle probleemi, kasutades sama teisenduskoodi nii partiipõhise treeningandmete kui ka reaalajas järelduste jaoks. Ad hoc inseneritöö puhul kirjutavad meeskonnad sageli ühe loogikakomplekti treeninguks ja teise serveerimiseks, mis toob kaasa peeneid vigu, mida on kurikuulsalt raske siluda. Ainuüksi see järjepidevuse eelis on ajendanud paljusid organisatsioone funktsioonisalvestusi kasutusele võtma.
Meeskonnatöö ja teadmiste jagamine
Kui funktsioonid asuvad ühises poes, saab iga andmeteadlane neid avastada ja taaskasutada, mis hoiab ära üleliigse töö ja soodustab standardiseerimist. Uued meeskonnaliikmed saavad sirvida olemasolevate funktsioonide kataloogi, selle asemel et neid uuesti leiutada. Ad hoc inseneritöö kipub looma eraldatud objekte, kus iga analüütik loob sarnased funktsioonid eraldi, mõnikord veidi erinevate definitsioonidega, mis põhjustavad segadust allavoolu. Aja jooksul raskendab see killustatus sidusa funktsioonistrateegia säilitamist kogu organisatsioonis.
Katsetamise kiirus vs tootmisvalmidus
Ad hoc funktsioonide projekteerimine särab varases eksperimenteerimise etapis, kui andmeteadlased peavad uute teisendustega kiiresti tegelema, ilma et peaksid muretsema juurutamise pärast. Uut funktsiooni saab testida minutitega. Funktsioonide salvestamine lisab üldkulu, kuna iga funktsioon tuleb enne tootmises kasutamist registreerida, valideerida ja teenindavasse infrastruktuuri integreerida. Sama üldkulu tasub aga ära, kui mudelid liiguvad tootmiskeskkonda, kuna funktsioon on juba tootmisvalmis ega vaja eraldi inseneritööd.
Kulud ja tegevusalased kaalutlused
Funktsioonide poe käitamine hõlmab infrastruktuurikulusid salvestusruumi, arvutusvõimsuse ja orkestreerimise jaoks, lisaks inseneritööd selle haldamiseks. Väikeste meeskondade või üksikute projektide puhul võib see tunduda liiast. Ad hoc inseneritööl on peaaegu olematud infrastruktuurikulud, kuid see kogub varjatud kulusid dubleeritud töö, ebajärjekindluse silumise ja funktsioonide ümberkirjutamise näol tootmiseks. Tasuvuspunkt saabub tavaliselt siis, kui organisatsioonil on tootmises mitu mudelit või mitu andmeteadlast, kes tegelevad kattuvate probleemidega.
Plussid ja miinused
Funktsioonide poodide süsteemid
Eelised
+Tsentraliseeritud funktsioonide taaskasutamine
+Treeningut serveeriv järjepidevus
+Sisseehitatud versioonimine
+Tootmisvalmis esitamine
Kinnitatud
−Kõrgem seadistuskulu
−Taristu üldkulud
−Aeglasem katsetamine
−Tarnija või tööriistade lukustamine
Ad hoc funktsioonide projekteerimine
Eelised
+Maksimaalne paindlikkus
+Kiire käivitamine
+Infrastruktuuri pole vaja
+Lihtne kohandada
Kinnitatud
−Raske taaskasutada
−Ebajärjekindlad definitsioonid
−Raske hooldada
−Sisseehitatud juhtimist pole
Tavalised eksiarvamused
Müüt
Funktsioonide poed on lihtsalt funktsioonide andmebaasid.
Tõelisus
Funktsioonide salvestusruum on palju enamat kui lihtsalt salvestusruum. See hõlmab teisendusprotsesse, võrgus ja võrguühenduseta serveerimist, tunnuste avastamist, liini jälgimist ja juurdepääsu kontrolli. Selle käsitlemine lihtsa andmebaasina kaotab suurema osa selle väärtusest, eriti järjepidevuse garantiid treenimise ja järelduste vahel.
Müüt
Ad hoc funktsioonide projekteerimine ei ole üldse skaleeritav.
Tõelisus
Paljud edukad ettevõtted kasutasid aastaid enne funktsioonipoodide kasutuselevõttu ad hoc andmekanaleid. See lähenemisviis skaleerub väikeste meeskondade ja käputäie mudelite puhul üsna hästi. Kui mudelite ja andmeteadlaste arv märkimisväärselt kasvab, siis hakkavad probleemid tekkima koostöö, juhtimine ja järjepidevus.
Müüt
Sa pead valima ühe lähenemisviisi igaveseks.
Tõelisus
Enamik küpseid masinõppe organisatsioone kasutab mõlemat. Andmeteadlased uurivad uusi ideid ad hoc märkmikes ja seejärel edastavad valideeritud funktsioonid funktsioonihoidlasse tootmiseks. Praktikas toimib kõige paremini nende käsitlemine üksteist täiendavate, mitte konkureerivate lähenemisviisidena.
Müüt
Tunnuste salvestamine parandab automaatselt mudeli täpsust.
Tõelisus
Funktsioonide hoidlad parandavad töö kvaliteeti, mitte tingimata mudeli jõudlust. Need vähendavad vigu, kiirendavad juurutamist ja ennetavad ebajärjekindlust, kuid aluseks olevad funktsioonid vajavad siiski läbimõeldud disaini. Halb funktsioon hoidlas on ikkagi halb funktsioon.
Müüt
Avatud lähtekoodiga funktsioonipoed on koheselt tootmisvalmis.
Tõelisus
Tööriistad nagu Feast ja Hopsworks pakuvad kindla aluse, kuid tootmiskeskkonna juurutamine nõuab siiski märkimisväärset inseneritööd jälgimise, skaleerimise, turvalisuse ja olemasoleva andmeinfrastruktuuriga integreerimise osas. Valmisolek on projektide lõikes väga erinev.
Sageli küsitud küsimused
Mis on masinõppes funktsioonide salvestusruum?
Funktsioonide salvestusruum on tsentraliseeritud platvorm, mis salvestab, haldab ja pakub masinõppe funktsioone nii treenimiseks kui ka järelduste tegemiseks. See toimib sillana toorandmete ja mudelite vahel, tagades, et samu tunnuste definitsioone kasutatakse järjepidevalt nii partiitreeningutööde kui ka reaalajas prognooside puhul. Populaarsete näidete hulka kuuluvad Feast, Hopsworks ja Tecton.
Miks ettevõtted kasutavad ad hoc torujuhtmete asemel funktsioonipoode?
Ettevõtted võtavad funktsioonisalvestusi kasutusele peamiselt selleks, et vältida treeninguga seotud ebakõlasid, võimaldada funktsioonide taaskasutamist meeskondade vahel ja vähendada mudelite juurutamiseks vajalikku inseneritööd. Kui mitu andmeteadlast töötavad kattuvate probleemide kallal, hoiab jagatud funktsioonikataloog ära dubleeritud töö ja ebajärjekindlad definitsioonid, mis võivad mudeli jõudlust märkamatult halvendada.
Millal on ad hoc funktsioonide projekteerimine õige valik?
Ad hoc funktsiooniarendus sobib kõige paremini individuaalselt tegutsevatele andmeteadlastele, uurimisprojektidele ja varajases staadiumis eksperimentidele, kus kiirus on olulisem kui standardiseerimine. Kui lood ühekordset mudelit või uurid uut probleemruumi, siis funktsioonisalvestuse loomise lisakulud tavaliselt ei ole õigustatud. Paljud meeskonnad alustavad ad hoc meetodil ja lähevad funktsioonisalvestusele üle alles siis, kui mudelid jõuavad tootmiskeskkonda.
Kas funktsioonipoed asendavad andmekanaleid?
Ei, funktsioonisalvestused täiendavad, mitte ei asenda andmekanaleid. Toorandmed liiguvad enne funktsioonisalvestusse jõudmist endiselt läbi ekstraheerimis- ja teisenduskanalite. Seejärel tegeleb funktsioonisalvestus funktsioonipõhiste probleemidega, nagu versioonimine, esitamine ja avastamine. Mõelge sellest kui spetsiaalsest kihist oma olemasoleva andmeinfrastruktuuri peal.
Kuidas funktsioonipoed reaalajas funktsioone käsitlevad?
Enamik tänapäevaseid funktsioonipoode toetab nii partii- kui ka voogedastusfunktsioonide arvutamist. Need integreeruvad voogedastussüsteemidega nagu Apache Kafka või Apache Flink, et arvutada funktsioone peaaegu reaalajas, ja seejärel pakuvad neid madala latentsusega veebipoodide (nt Redis või DynamoDB) kaudu. See võimaldab mudelitel järeldamise ajal kasutada uusi funktsioone ilma kogu torujuhet uuesti üles ehitamata.
Mis on treeningu-servimise kallutatus ja miks see on oluline?
Treeningu-serveerimise nihe tekib siis, kui funktsioone arvutatakse mudeli treenimise ajal erinevalt kui tootmiskeskkonnas, mistõttu mudel käitub tootmiskeskkonnas oodatust halvemini. See on üks levinumaid mudeli halvenemise põhjuseid pärast juurutamist. Funktsioonide salvestusruumid takistavad seda, kasutades mõlema konteksti jaoks identset teisendusloogikat.
Kas eritellimusel valmistatud poed on väikeste meeskondade jaoks oma hinda väärt?
Väga väikeste meeskondade jaoks, kus on üks või kaks mudelit, lisavad funktsioonipoed sageli rohkem keerukust kui eemaldavad. Seadistus- ja hoolduskulud võivad kaaluda üles eelised, kuni teil on tootmises mitu mudelit või mitu inimest teeb funktsioonide kallal koostööd. Avatud lähtekoodiga valikud, näiteks Feast, vähendavad barjääri, kuid tegevuskulud on endiselt olemas.
Kas saate ise funktsioonide poe luua?
Jah, paljud ettevõtted ehitasid sisemisi funktsioonidega poode enne, kui kommerts- ja avatud lähtekoodiga valikud laialdaselt kättesaadavaks muutusid. Uberi Michelangelo ja Airbnb Chronon on tuntud näited. Oma platvormi loomine annab maksimaalse kontrolli, kuid nõuab märkimisväärseid inseneriinvesteeringuid, mistõttu eelistavad enamik meeskondi nüüd olemasolevaid platvorme, välja arvatud juhul, kui neil on väga spetsiifilised vajadused.
Mis vahe on funktsioonilaol ja andmelaol?
Andmeladu salvestab analüütika jaoks optimeeritud toor- ja koondatud äriandmeid, samas kui funktsiooniladu salvestab masinõppele suunatud funktsioone, mis on optimeeritud nii partiide treenimiseks kui ka väikese latentsusega serveerimiseks. Funktsiooniladu lisab masinõppele keskendunud võimalusi, nagu ajahetkedel liitumised, funktsioonide versioonimine ja võrgus serveerimine, mida andmeladud tavaliselt ei paku.
Kuidas toetavad funktsioonipoed mudeli haldamist?
Funktsioonide salvestusruumid jälgivad funktsioonide päritolu, versioone ja juurdepääsumustreid, mis aitab organisatsioonidel täita regulatiivseid ja auditeerimisnõudeid. Kui mudeli ennustused seatakse kahtluse alla, saavad meeskonnad täpselt kindlaks teha, milliseid funktsiooniversioone kasutati. See on eriti väärtuslik reguleeritud tööstusharudes, nagu rahandus ja tervishoid, kus mudeli läbipaistvus on vajalik.
Otsus
Funktsioonisalvestussüsteemid on parem valik organisatsioonidele, mis käitavad tootmises mitut mudelit või skaleerivad oma masinõppe toiminguid meeskondade vahel, kus järjepidevus ja korduvkasutatavus on kõige olulisemad. Ad hoc funktsioonide projekteerimine on endiselt väärtuslik üksikute andmeteadlaste, uurimisprojektide ja varajase katsetuse jaoks, kus kiirus ja paindlikkus kaaluvad üles tsentraliseeritud infrastruktuuri eelised. Paljud küpsed meeskonnad kasutavad tegelikult mõlemat, tuginedes uurimiseks ad hoc tööle ja funktsioonisalvestustele kõige jaoks, mis jõuab tootmiskeskkonda.