Kako odabrati platformu za strojno učenje u oblaku

Da biste stvorili učinkovite modele strojnog učenja i dubokog učenja, trebaju vam obilne količine podataka, način čišćenja podataka i izvođenje inženjeringa značajki na njima te način obuke modela na vašim podacima u razumnom roku. Tada vam treba način da svoje modele implementirate, nadgledate ih kako bi se vremenom pomicali i po potrebi ih prekvalificirajte.

Sve to možete učiniti lokalno ako ste uložili u računske resurse i akceleratore, poput GPU-a, ali možda ćete otkriti da ako su vaši resursi adekvatni, oni većinu vremena i ne rade. S druge strane, ponekad može biti isplativije pokrenuti cijeli cjevovod u oblaku, koristeći velike količine računalnih resursa i akceleratora po potrebi, a zatim ih osloboditi.

Tech Spotlight: AI i strojno učenje

  • 5 priča o uspjehu u strojnom učenju: Pogled iznutra (CIO)
  • AI na poslu: vaš sljedeći kolega mogao bi biti algoritam (Computerworld)
  • Koliko su sigurni vaši AI i projekti strojnog učenja? (OCD)
  • Kako odabrati platformu za računalno učenje u oblaku ()
  • Kako AI može stvoriti podatkovne centre koji se samostalno voze (Network World)

Glavni dobavljači oblaka - i niz manjih oblaka također - uložili su značajan napor u izgradnju svojih platformi za strojno učenje kako bi podržali cjelokupni životni ciklus strojnog učenja, od planiranja projekta do održavanja modela u proizvodnji. Kako odrediti koji će od ovih oblaka zadovoljiti vaše potrebe? Evo 12 mogućnosti koje bi svaka platforma za strojno učenje trebala pružiti od kraja do kraja. 

Budite blizu svojih podataka

Ako imate velike količine podataka potrebne za izradu preciznih modela, ne želite ih poslati na pola svijeta. Pitanje ovdje nije udaljenost, međutim, vrijeme je: Brzina prijenosa podataka u konačnici je ograničena brzinom svjetlosti, čak i na savršenoj mreži s beskonačnom širinom pojasa. Velike udaljenosti znače latenciju. 

Idealan slučaj za vrlo velike skupove podataka je izgradnja modela tamo gdje se podaci već nalaze, tako da nije potreban masovni prijenos podataka. Nekoliko baza podataka to podržava u ograničenoj mjeri.

Sljedeći je najbolji slučaj da se podaci nalaze na istoj brzoj mreži kao i softver za izgradnju modela, što obično znači unutar istog podatkovnog centra. Čak i premještanje podataka iz jednog podatkovnog centra u drugi unutar zone dostupnosti oblaka može dovesti do značajnog kašnjenja ako imate terabajta (TB) ili više. To možete ublažiti postupnim ažuriranjima.

Najgori bi slučaj bio ako morate premjestiti velike podatke na velike udaljenosti preko staza s ograničenom širinom pojasa i velikom kašnjenjem. Transpacifički kablovi koji vode za Australiju posebno su naočiti u ovom pogledu.

Podržati ETL ili ELT cjevovod

ETL (izvoz, transformacija i učitavanje) i ELT (izvoz, učitavanje i transformacija) dvije su konfiguracije cjevovoda podataka koje su uobičajene u svijetu baza podataka. Strojno učenje i duboko učenje pojačavaju potrebu za njima, posebno za dijelom transformiranja. ELT vam daje veću fleksibilnost kada se vaše transformacije trebaju promijeniti, jer je faza učitavanja obično najduža za velike podatke.

Općenito, podaci u divljini su bučni. To treba filtrirati. Uz to, podaci u divljini imaju različite raspone: jedna varijabla može imati maksimum u milijunima, dok druga može imati raspon od -0,1 do -0,001. Za strojno učenje, varijable se moraju transformirati u standardizirane opsege kako one s velikim rasponima ne bi dominirale modelom. Koji točno standardizirani opseg ovisi o algoritmu koji se koristi za model.

Podržite internetsko okruženje za izgradnju modela

Uobičajena je pretpostavka bila da trebate uvoziti podatke na radnu površinu za izradu modela. Količina podataka koja je potrebna za izgradnju dobrih modela strojnog učenja i dubokog učenja mijenja sliku: Možete preuzeti mali uzorak podataka na radnu površinu za istraživačku analizu podataka i izgradnju modela, ali za proizvodne modele morate imati pristup cjelovitom podaci.

Web razvojna okruženja poput Jupyter bilježnica, JupyterLab i Apache Zeppelin vrlo su pogodna za izgradnju modela. Ako su vaši podaci u istom oblaku kao i okruženje prijenosnog računala, analizu možete prenijeti na podatke, smanjujući tako dugotrajno kretanje podataka.

Podržati obuku za proširenje i smanjenje

Zahtjevi za računanjem i memorijom prijenosnih računala uglavnom su minimalni, osim za modele treninga. Puno pomaže ako prijenosno računalo može iznjedriti poslove obuke koji se izvode na više velikih virtualnih strojeva ili spremnika. Također puno pomaže ako trening može pristupiti akceleratorima poput GPU-a, TPU-a i FPGA-a; to dane treninga može pretvoriti u sate.

Podržava AutoML i automatsko inženjerstvo značajki

Nisu svi dobri u odabiru modela strojnog učenja, odabiru značajki (varijabli koje model koristi) i stvaranju novih značajki na temelju sirovih opažanja. Čak i ako ste dobri u tim zadacima, oni zahtijevaju puno vremena i mogu se u velikoj mjeri automatizirati.

Sustavi AutoML često isprobavaju mnoge modele kako bi vidjeli koji rezultat daju najbolje vrijednosti objektivnih funkcija, na primjer minimalnu kvadratnu pogrešku za probleme regresije. Najbolji sustavi AutoML također mogu izvoditi inženjering značajki i učinkovito koristiti svoje resurse za pronalaženje najboljih mogućih modela s najboljim mogućim skupovima značajki.

Podržati najbolje okvire strojnog učenja i dubokog učenja

Većina podatkovnih znanstvenika ima omiljene okvire i programske jezike za strojno učenje i duboko učenje. Za one koji preferiraju Python, Scikit-learn je često omiljen za strojno učenje, dok su TensorFlow, PyTorch, Keras i MXNet često najbolji odabir za duboko učenje. U Scali se Spark MLlib uglavnom preferira za strojno učenje. U R-u postoje mnogi nativni paketi strojnog učenja i dobro sučelje za Python. U Javi H2O.ai ima visoke ocjene, kao i Java-ML i Deep Java Library.

Platforme za strojno učenje u oblaku i duboko učenje obično imaju vlastitu kolekciju algoritama i često podržavaju vanjske okvire na barem jednom jeziku ili kao spremnike s određenim ulaznim točkama. U nekim slučajevima možete integrirati vlastite algoritme i statističke metode s objektima AutoML-a na platformi, što je vrlo povoljno.

Neke platforme u oblaku nude i svoje prilagođene verzije glavnih okvira za duboko učenje. Na primjer, AWS ima optimiziranu verziju TensorFlow-a za koju tvrdi da može postići gotovo linearnu skalabilnost za duboki trening neuronske mreže.

Ponudite unaprijed obučene modele i podržite učenje transfera

Ne žele svi trošiti vrijeme i računati resurse za obuku vlastitih modela - niti bi trebali, kada su dostupni unaprijed obučeni modeli. Na primjer, set podataka ImageNet ogroman je, a osposobljavanje najsuvremenije duboke neuronske mreže protiv njega može potrajati tjednima, pa ima smisla za to upotrijebiti unaprijed obučeni model kad god možete.

S druge strane, unaprijed obučeni modeli možda neće uvijek prepoznati predmete do kojih vam je stalo. Učenje putem prijenosa može vam pomoći prilagoditi posljednjih nekoliko slojeva neuronske mreže za svoj specifični skup podataka bez vremena i troškova obuke pune mreže.

Ponudite prilagođene AI usluge

Glavne platforme u oblaku nude robusne, prilagođene AI usluge za mnoge aplikacije, a ne samo za identifikaciju slike. Primjer uključuje prijevod jezika, govor u tekst, tekst u govor, predviđanje i preporuke.

Te su usluge već obučene i testirane na više podataka nego što je to obično dostupno tvrtkama. Oni su također već raspoređeni na krajnjim točkama usluge s dovoljno računarskih resursa, uključujući akceleratore, kako bi se osiguralo dobro vrijeme odziva pod svjetskim opterećenjem.

Upravljajte svojim eksperimentima

Jedini način da pronađete najbolji model za svoj skup podataka je isprobati sve, bilo ručno ili pomoću AutoML-a. To ostavlja još jedan problem: upravljanje eksperimentima.

Dobra platforma za strojno učenje u oblaku imat će način na koji možete vidjeti i usporediti vrijednosti objektivnih funkcija svakog eksperimenta i za skupove treninga i za podatke testa, kao i za veličinu modela i matricu zabune. Sposobnost grafičkog prikaza svega toga je definitivan plus.

Podrška implementaciji modela za predviđanje

Jednom kada odaberete najbolji eksperiment s obzirom na vaše kriterije, potreban vam je i jednostavan način primjene modela. Ako implementirate više modela u istu svrhu, trebat će vam i način raspodjele prometa među njima za a / b testiranje.

Praćenje izvedbe predviđanja

Nažalost, svijet se nastoji mijenjati, a podaci se mijenjaju s njim. To znači da ne možete primijeniti model i zaboraviti ga. Umjesto toga, tijekom vremena trebate nadzirati podatke predane radi predviđanja. Kad se podaci počnu značajno mijenjati od početne linije vašeg izvornog skupa podataka o treningu, morat ćete prekvalificirati svoj model.

Kontrola troškova

Napokon, trebaju vam načini kako kontrolirati troškove vaših modela. Primjena modela za zaključivanje proizvodnje često čini 90% troškova dubokog učenja, dok obuka čini samo 10% troškova.

Najbolji način za kontrolu troškova predviđanja ovisi o vašem opterećenju i složenosti vašeg modela. Ako imate veliko opterećenje, možda ćete moći koristiti akcelerator kako biste izbjegli dodavanje više primjeraka virtualnog stroja. Ako imate promjenjivo opterećenje, možda ćete moći dinamički mijenjati veličinu ili broj primjeraka ili spremnika dok se teret povećava ili spušta. A ako imate malo ili povremeno opterećenje, možda ćete za upravljanje predviđanjima moći koristiti vrlo mali primjerak s djelomičnim akceleratorom.