mašininis mokymasisduomenų inžinerijadebesų infrastruktūramlopsdirbtinio intelekto sistemos
Duomenų infrastruktūros sluoksnis ir modelio mokymo sluoksnis
Duomenų infrastruktūros sluoksnis tvarko neapdorotų duomenų srautų saugojimą, apdorojimą ir valdymą, o modelių mokymo sluoksnis daugiausia dėmesio skiria algoritmų vykdymui, siekiant apmokyti mašininio mokymosi modelius. Abu jie yra būtini dirbtinio intelekto sistemose, tačiau atlieka iš esmės skirtingus vaidmenis kūrimo gyvavimo cikle.
Akcentai
Duomenų infrastruktūros sluoksnis orientuotas į duomenų judėjimą ir patikimumą, o modelių mokymo sluoksnis – į skaičiavimus ir mokymąsi.
Jie naudoja iš esmės skirtingą aparatinę įrangą, kur duomenų perdavimo kanalai pirmenybę teikia procesoriams, o mokymas – GPU arba TPU.
Sąnaudų modeliai labai skiriasi: duomenų sąnaudos yra pastovios, o mokymo sąnaudos – staigios ir priklauso nuo projektų.
Kiekvienam sluoksniui reikalinga skirtinga patirtis – nuo paskirstytųjų sistemų inžinerijos iki taikomųjų mašininio mokymosi tyrimų.
Kas yra Duomenų infrastruktūros sluoksnis?
Pagrindinė sistema, atsakinga už duomenų rinkimą, saugojimą, apdorojimą ir pateikimą tolesnėms programoms ir ML srautams.
Sukurta remiantis tokiomis technologijomis kaip duomenų ežerai, sandėliai ir srautinio perdavimo platformos, tokios kaip „Apache Kafka“ ir „Apache Spark“.
Tvarko tiek paketinį, tiek realaus laiko duomenų įkėlimą petabaitų mastu įmonės sistemose.
Paprastai dėl patvarumo naudoja paskirstytas saugojimo sistemas, tokias kaip HDFS, „Amazon S3“ arba „Google Cloud Storage“.
Apima duomenų valdymą, schemų tvarkymą ir kokybės patvirtinimą kaip pagrindines pareigas.
Dažnai organizuojamas naudojant tokias priemones kaip „Apache Airflow“, „Prefect“ arba „Dagster“, skirtas darbo eigos planavimui.
Kas yra Modelio mokymo sluoksnis?
Skaičiavimo sluoksnis, kuriame mašininio mokymosi modeliai mokosi šablonų iš paruoštų duomenų, taikydami iteracinius optimizavimo procesus.
Lygiagrečiam skaičiavimui labai priklauso nuo tokių tiekėjų kaip NVIDIA, AMD ir „Google“ GPU ir TPU greitintuvų.
Neuroniniams tinklams apibrėžti ir mokyti dažniausiai naudoja tokias sistemas kaip „TensorFlow“, „PyTorch“ ir „JAX“.
Reikalingas didelis atminties pralaidumas ir didelio našumo jungtys, tokios kaip NVLink, kad būtų galima keisti mastelį tarp įrenginių.
Dažnai naudoja paskirstytas mokymo strategijas, įskaitant duomenų lygiagretumą ir modelių lygiagretumą tarp klasterių.
Tokios platformos kaip „AWS SageMaker“, „Google Vertex AI“ ir „Azure ML“ teikia valdomas šio sluoksnio aplinkas.
Palyginimo lentelė
Funkcija
Duomenų infrastruktūros sluoksnis
Modelio mokymo sluoksnis
Pagrindinis tikslas
Patikimai saugokite, apdorokite ir pateikite duomenis
Mokykitės ir optimizuokite ML modelius su duomenimis
Pagrindinės technologijos
Kafka, kibirkštis, oro srautas, snaigė, S3
PyTorch, TensorFlow, CUDA, Horovod, Ray
Skaičiavimo reikalavimai
CPU optimizuotas, didelis įvesties / išvesties pralaidumas
GPU/TPU optimizuotas, didelis atminties pralaidumas
Pasauliniai vamzdynai stringa arba pateikia pasenusius duomenis
Mokymo darbai vėl pradeda veikti arba sukuria prastus modelius
Tipiniai vartotojai
Duomenų inžinieriai, platformų komandos
ML inžinieriai, mokslininkai
Sąnaudų veiksniai
Saugyklos apimtis ir tinklo išėjimas
GPU valandos ir greitintuvo naudojimas
Išsamus palyginimas
Vaidmuo ML gyvavimo cikle
Duomenų infrastruktūros sluoksnis yra prieš srovę, tiekdamas švarius ir patikimus duomenų rinkinius į mokymo srautą. Be jo modelių mokymo sluoksnis neturėtų nieko prasmingo, iš ko mokytis. Ir atvirkščiai, modelių mokymo sluoksnis naudoja tuos paruoštus duomenis ir sukuria apmokytus artefaktus, kurie galiausiai yra diegiami. Jie sudaro nuoseklią priklausomybę, o ne konkuruojančias alternatyvas.
Skaičiavimo ir aparatinės įrangos profilis
Duomenų infrastruktūros darbo krūviai paprastai teikia pirmenybę didelės atminties talpos ir greito tinklo procesoriams, nes dauguma operacijų apima didelių duomenų kiekių perkėlimą ir transformavimą. Kita vertus, modelių mokymui reikalingi specializuoti greitintuvai, tokie kaip GPU arba TPU, kurie puikiai atlieka matricų daugybą, kuri yra gilaus mokymosi pagrindas. Aparatinės įrangos profiliai yra tokie skirtingi, kad debesijos paslaugų teikėjai dažnai juos įkainoja visiškai atskiroms egzempliorių šeimoms.
Mastelio keitimo modeliai
Duomenų infrastruktūros sluoksnio mastelio keitimas paprastai reiškia daugiau saugyklos mazgų pridėjimą, skaidinių skaičiaus didinimą arba duomenų skaidymą tarp regionų. Modelių mokymo sluoksnis mastelio keitimas vyksta skirtingai, dažnai paskirstant modelio svorius tarp daugelio GPU arba skaidant vieną didelį modelį tarp kelių greitintuvų. Abu šie sluoksniai susiduria su kliūtimis, tačiau sprendimai retai sutampa.
Operatyviniai rūpesčiai
Duomenų komandos nerimauja dėl schemų dreifo, vėlai gaunamų duomenų ir srauto užpildymo. ML komandos nerimauja dėl gradiento sprogimų, kontrolinių taškų sugadinimo ir atkuriamumo tarp paleidimų. Kiekvienas sluoksnis turi savo stebimumo rinkinį, kuriame duomenų pusėje yra tokie įrankiai kaip „Great Expectations“ arba „Monte Carlo“, o mokymo pusėje – „Weights & Biases“ arba „MLflow“.
Sąnaudų struktūra
Duomenų infrastruktūros išlaidos paprastai yra pastovios ir nuspėjamos, daugiausia priklausomos nuo saugyklos apimties ir nuolatinio duomenų įkėlimo. Modelių mokymo išlaidos yra staigios ir priklausomos nuo projekto, nes vienas mokymo vykdymas per trumpą laiką gali sunaudoti tūkstančius GPU valandų. Organizacijos dažnai pastebi, kad mokymo išlaidos dominuoja modelio kūrimo metu, o duomenų išlaidos – pastovios gamybos metu.
Reikalingi įgūdžių rinkiniai
Duomenų infrastruktūros sluoksnyje dirbantys inžinieriai paprastai turi duomenų inžinerijos arba paskirstytųjų sistemų patirties, turi gilių SQL, srautinių sistemų ir saugojimo variklių žinių. Modelių mokymo sluoksnyje dirbantys asmenys paprastai turi taikomosios matematikos arba mašininio mokymosi tyrimų patirties, turi skaitmeninio optimizavimo, neuroninių tinklų architektūrų ir greitintuvų programavimo patirties.
Privalumai ir trūkumai
Duomenų infrastruktūros sluoksnis
Privalumai
+Patikimas duomenų perdavimas
+Skaluoja horizontaliai
+Tvirti valdymo įrankiai
+Daugkartinio naudojimo įvairiuose projektuose
Pasirinkta
−Didelės sandėliavimo išlaidos
−Sudėtingas vamzdynų derinimas
−Schemos evoliucijos iššūkiai
−Lėtesni iteracijos ciklai
Modelio mokymo sluoksnis
Privalumai
+Greitas eksperimentavimas
+Tiesioginis modelio valdymas
+Remia pažangiausius tyrimus
+Atkuriama su kontroliniais taškais
Pasirinkta
−Brangus GPU naudojimas
−Ilgas treniruočių laikas
−Sunku derinti gedimus
−Jautrus duomenų kokybei
Dažni klaidingi įsitikinimai
Mitas
Jei turite pakankamai GPU, galite praleisti stipraus duomenų sluoksnio kūrimą.
Realybė
Net ir galingiausia mokymo sistema sukuria prastus modelius, kai tiekiami triukšmingi, pasenę ar neteisingai paženklinti duomenys. Dauguma mašininio mokymosi (ML) gedimų gamyboje kyla dėl duomenų problemų, o ne dėl skaičiavimo trūkumo. Tvirtas duomenų pagrindas yra tai, kas lemia, kad GPU laikas iš tikrųjų atsiperka.
Gamybos mokymai apima paskirstytą orkestravimą, kontrolinių taškų kūrimą, hiperparametrų valdymą, eksperimentų stebėjimą ir gedimų atkūrimą. Jei tai bus traktuojama kaip paprastas scenarijus, prarandama pažanga, rezultatai neatkuriami ir švaistomi skaičiavimo biudžetai.
Mitas
Duomenų infrastruktūrą ir modelių mokymą galima optimizuoti atskirai.
Realybė
Du sluoksniai yra glaudžiai susiję. Duomenų schemos, žymėjimo ar paskirstymo pakeitimai tiesiogiai veikia modelio našumą. Komandos, kurios juos optimizuoja atskirai, dažnai pastebi, kad jų modeliai tyliai blogėja, kai pasikeičia ankstesnių etapų duomenys.
Mitas
Daugiau duomenų visada pagerina modelio tikslumą.
Realybė
Kokybė yra daug svarbesnė nei kiekybė. Milijonų neteisingai paženklintų ar nesusijusių įrašų pridėjimas gali iš tikrųjų pakenkti modelio našumui. Kuruoti, gerai valdomi duomenų rinkiniai beveik visada pranoksta neapdorotus, nefiltruotus, nepriklausomai nuo dydžio.
Valdomos platformos gerai atlieka įprastines operacijas, tačiau komandoms vis tiek reikia gilaus abiejų lygių supratimo, kad būtų galima reguliuoti našumą, kontroliuoti išlaidas ir derinti gedimus. Abstrakcija sumažina darbo krūvį, bet nepakeičia pagrindinių žinių.
Dažnai užduodami klausimai
Kuo pagrindinis skirtumas tarp duomenų infrastruktūros sluoksnio ir modelio mokymo sluoksnio?
Duomenų infrastruktūros sluoksnis yra atsakingas už patikimą duomenų įkėlimą, saugojimą, apdorojimą ir pateikimą visoje organizacijoje. Modelių mokymo sluoksnis paima šiuos paruoštus duomenis ir naudoja juos mašininio mokymosi modeliams apmokyti taikant iteracinį optimizavimą. Vienas sluoksnis skirtas duomenų perkėlimui ir valdymui, o kitas – mokymuisi iš šių duomenų.
Ar gali vienas sluoksnis egzistuoti be kito?
Teoriškai duomenų infrastruktūrą galima turėti be modelių mokymo, teikiant tik analizę ir ataskaitų teikimą. Modelius taip pat galima mokyti viename nešiojamajame kompiuteryje be oficialaus duomenų sluoksnio. Tačiau gamybinėse dirbtinio intelekto sistemose reikalingi abu. Duomenų sluoksnis maitina mokymo sluoksnį, o mokymo sluoksnis sukuria modelius, kurie priklauso nuo nuoseklių, aukštos kokybės duomenų.
Kuris sluoksnis kainuoja daugiau tipiškame ML projekte?
Tai priklauso nuo fazės. Aktyvaus modelio kūrimo metu mokymo išlaidos paprastai dominuoja, nes GPU valandos yra brangios, o vykdymas gali trukti kelias dienas ar savaites. Pastovios gamybos metu duomenų infrastruktūros išlaidos dažnai dominuoja, nes saugojimas ir nuolatinis įkėlimas veikia visą parą. Brandžios organizacijos stebi abu atskirai, kad išvengtų netikėtumų.
Kokia įranga geriausiai tinka kiekvienam sluoksniui?
Duomenų infrastruktūrai naudingi didelės atminties procesoriai, greiti SSD diskai ir stiprus tinklas, leidžiantis perkelti didelius duomenų rinkinius. Modelių mokymui naudingi matricų operacijas pagreitinantys GPU arba TPU, taip pat didelės spartos atmintis ir greiti sujungimai, tokie kaip NVLink, skirti kelių GPU sistemoms. Šių dviejų derinimas toje pačioje aparatinėje įrangoje paprastai lemia neefektyvų išteklių naudojimą.
Kaip šie du sluoksniai praktiškai bendrauja?
Paprastai duomenų sluoksnis įrašo kuruojamus duomenų rinkinius į funkcijų saugyklą arba duomenų ežerą, o mokymo sluoksnis nuskaito iš ten užduoties paleidimo arba srautinio perdavimo metu. Funkcijų saugyklos, tokios kaip „Feast“ ar „Tecton“, veikia kaip tiltas, teikdamos nuoseklius funkcijų apibrėžimus tiek mokymo, tiek išvados metu. Taip išvengiama mokymo aptarnavimo iškraipymų, kurie yra dažna gamybinių modelių gedimų priežastis.
Kurį sluoksnį sunkiau derinti?
Abu gali būti skausmingi, tačiau dėl skirtingų priežasčių. Duomenų sluoksnio klaidos dažnai pasireiškia kaip tylios duomenų kokybės problemos, kurios išryškėja tik modeliams suprastėjus. Mokymo sluoksnio klaidos paprastai yra labiau matomos, pavyzdžiui, gedimai ar skirtumai, tačiau jas atkurti paskirstytose sistemose gali būti sudėtinga. Daugelis komandų daug investuoja į abiejų sluoksnių stebimumą.
Ar mažoms komandoms reikia abiejų sluoksnių?
Taip, nors dažnai jie jas sujungia į vieną komandą ar net vieną asmenį. Mažos komandos gali naudoti valdomas paslaugas, tokias kaip „Snowflake“ duomenims ir „Vertex AI“ mokymams, kad sumažintų operacinę naštą. Koncepcinis atskyrimas vis tiek svarbus, net kai tas pats inžinierius atlieka abi pareigas.
Kaip MLOps yra susijęs su šiais dviem sluoksniais?
MLOps veikia ant abiejų sluoksnių ir užtikrina sklandų perdavimą tarp jų. Jis apima duomenų versijų kūrimą, srauto orkestravimą, eksperimentų stebėjimą, modelių registrų valdymą ir diegimo automatizavimą. Be MLOps praktikos abu sluoksniai dažnai nutolsta vienas nuo kito, todėl kyla atkuriamumo problemų ir gamybos sutrikimų.
Kokie įrankiai dažniausiai naudojami kiekviename sluoksnyje?
Duomenų sluoksnyje dažniausiai naudojama „Apache Spark“, „Kafka“, „Airflow“, „dbt“, „Snowflake“ ir „BigQuery“. Mokymo sluoksnyje dažniausiai naudojama „PyTorch“, „TensorFlow“, JAX, „Ray“, „Horovod“ ir „Weights & Biases“. Debesijos paslaugų teikėjai siūlo integruotus paketus, apimančius abu sluoksnius, tokius kaip „AWS SageMaker“, „Google Vertex AI“ ir „Azure Machine Learning“.
Kaip nuspręsti, kur investuoti pirmiausia?
Jei jūsų modeliai veikia nepakankamai gerai, pradėkite nuo duomenų sluoksnio audito, nes dauguma tikslumo problemų kyla būtent jame. Jei jūsų modeliai yra tikslūs, bet lėtai apmokomi arba brangūs paleisti, investuokite į mokymo sluoksnį, naudodami geresnę aparatinę įrangą, paskirstytas strategijas arba efektyvesnes architektūras. Subalansuotas požiūris paprastai geriausiai veikia laikui bėgant.
Nuosprendis
Duomenų infrastruktūros sluoksnį rinkitės, kai jūsų prioritetas yra patikimas duomenų perkėlimas, valdymas ir analitikos teikimas dideliu mastu. Modelių mokymo sluoksnį rinkitės, kai daugiausia dėmesio skiriate mašininio mokymosi modelių kūrimui, eksperimentavimui ir optimizavimui. Praktiškai brandžioms dirbtinio intelekto sistemoms reikia, kad abu sluoksniai veiktų darniai, o stipri duomenų infrastruktūra leistų greičiau ir lengviau atkuriamai mokyti modelius.