Programiranje

Kako izbrati platformo za strojno učenje v oblaku

Če želite ustvariti učinkovite modele strojnega učenja in poglobljenega učenja, potrebujete obilne količine podatkov, način za čiščenje podatkov in izvedbo inženiringa funkcij na njih ter način usposabljanja modelov za vaše podatke v razumnem času. Potem potrebujete način, kako svoje modele razporediti, jih sčasoma spremljati, da bi se premikali, in jih po potrebi prekvalificirati.

Vse to lahko storite lokalno, če ste vlagali v računalniške vire in pospeševalnike, kot so grafični procesorji, vendar boste morda ugotovili, da so, če so vaši viri ustrezni, večino časa tudi nedejavni. Po drugi strani pa je včasih stroškovno bolj učinkovito, če celoten cevovod zaženemo v oblaku, pri čemer uporabimo velike količine računskih virov in pospeševalnikov, ki jih po potrebi sprostimo.

Tech Spotlight: umetna inteligenca in strojno učenje

  • 5 zgodb o uspehu strojnega učenja: pogled od znotraj (CIO)
  • AI pri delu: vaš naslednji sodelavec bi lahko bil algoritem (Computerworld)
  • Kako varni so vaši AI in projekti strojnega učenja? (CSO)
  • Kako izbrati platformo za računalniško učenje v oblaku ()
  • Kako lahko umetna inteligenca ustvari podatkovne centre, ki se sami vozijo (Network World)

Glavni ponudniki oblakov - in tudi številni manjši oblaki - so si zelo prizadevali za izgradnjo svojih platform za strojno učenje, ki bodo podpirali celoten življenjski cikel strojnega učenja, od načrtovanja projekta do vzdrževanja modela v proizvodnji. Kako določite, kateri od teh oblakov bo ustrezal vašim potrebam? Tukaj je 12 zmožnosti, ki jih mora zagotoviti vsaka celovita platforma strojnega učenja.

Bodite blizu svojih podatkov

Če imate velike količine podatkov, potrebnih za izdelavo natančnih modelov, jih ne želite poslati na pol sveta. Vprašanje tukaj ni v razdalji, vendar je čas: hitrost prenosa podatkov je na koncu omejena s svetlobno hitrostjo, tudi v popolnem omrežju z neskončno pasovno širino. Dolge razdalje pomenijo zakasnitev.

Idealen primer za zelo velike nabore podatkov je zgraditi model, kjer že obstajajo, tako da ni potreben množičen prenos podatkov. Več baz podatkov to podpira v omejenem obsegu.

Naslednji najboljši primer je, da so podatki v istem hitrem omrežju kot programska oprema za izdelavo modelov, kar običajno pomeni znotraj istega podatkovnega centra. Tudi premik podatkov iz enega podatkovnega centra v drugega znotraj območja razpoložljivosti v oblaku lahko povzroči veliko zamudo, če imate terabajtov (TB) ali več. To lahko omilite s postopnimi posodobitvami.

Najslabše bi bilo, če bi morali premakniti velike podatke na velike razdalje po poteh z omejeno pasovno širino in veliko zakasnitvijo. V tem pogledu so posebno tihi pacifiški kabli, ki gredo v Avstralijo.

Podprite ETL ali ELT cevovod

ETL (izvoz, preoblikovanje in nalaganje) in ELT (izvoz, nalaganje in preoblikovanje) sta dve konfiguraciji cevovoda podatkov, ki sta pogosti v svetu baz podatkov. Strojno učenje in poglobljeno učenje povečujeta potrebo po njih, zlasti po preoblikovalnem delu. ELT vam omogoča večjo prilagodljivost, ko se morajo vaše transformacije spremeniti, saj je faza obremenitve običajno najbolj zamudna za velike podatke.

Na splošno so podatki v naravi hrupni. To je treba filtrirati. Poleg tega imajo podatki v naravi različna območja: ena spremenljivka ima lahko največ milijon, druga pa obseg od -0,1 do -0,001. Za strojno učenje je treba spremenljivke preoblikovati v standardizirane razpone, da tiste, ki imajo velike razpone, ne bodo prevladovale nad modelom. Kateri standardizirani obseg je natančno odvisen od algoritma, uporabljenega za model.

Podprite spletno okolje za izdelavo modelov

Včasih je veljalo, da morate za izdelavo modelov podatke uvoziti na namizje. Ogromna količina podatkov, ki je potrebna za izdelavo dobrih modelov strojnega učenja in globokega učenja, spremeni sliko: majhen vzorec podatkov lahko prenesete na namizje za raziskovalno analizo podatkov in izdelavo modelov, za proizvodne modele pa morate imeti dostop do celotnega podatkov.

Spletna razvojna okolja, kot so Jupyter Notebooks, JupyterLab in Apache Zeppelin, so zelo primerna za izdelavo modelov. Če so vaši podatki v istem oblaku kot okolje prenosnega računalnika, lahko analizo prenesete na podatke in tako zmanjšate zamudno gibanje podatkov.

Podprite usposabljanje za povečanje in zmanjšanje

Zahteve za računalnike in pomnilnik prenosnikov so na splošno minimalne, razen za modele za vadbo. Zelo pomaga, če lahko prenosni računalnik ustvari delovna mesta za usposabljanje, ki se izvajajo na več velikih navideznih strojih ali zabojnikih. Zelo pomaga tudi, če lahko vadba dostopa do pospeševalnikov, kot so GPU, TPU in FPGA; to lahko dneve treninga spremeni v ure.

Podpira AutoML in samodejni inženiring funkcij

Ni vsakdo dober pri izbiranju modelov strojnega učenja, izbiri lastnosti (spremenljivk, ki jih model uporablja) in iz surovih opazovanj oblikuje nove funkcije. Tudi če ste v teh nalogah dobri, so zamudne in jih je mogoče v veliki meri avtomatizirati.

Sistemi AutoML pogosto preizkusijo številne modele, da ugotovijo, kateri rezultat so najboljše vrednosti objektivnih funkcij, na primer najmanjša napaka na kvadrat za težave z regresijo. Najboljši sistemi AutoML lahko izvajajo tudi inženiring funkcij in učinkovito uporabljajo svoje vire za iskanje najboljših možnih modelov z najboljšimi možnimi nabori funkcij.

Podpirajte najboljše okvire strojnega učenja in globokega učenja

Večina podatkovnih znanstvenikov ima najljubše okvire in programske jezike za strojno učenje in poglobljeno učenje. Za tiste, ki imajo raje Python, je Scikit-learn pogosto priljubljen pri strojnem učenju, medtem ko so TensorFlow, PyTorch, Keras in MXNet pogosto najboljši izbor za poglobljeno učenje. V Scali je Spark MLlib najprimernejši za strojno učenje. V R obstaja veliko domačih paketov strojnega učenja in dober vmesnik za Python. V Javi H2O.ai ocenjuje visoko, prav tako Java-ML in Deep Java Library.

Platforme za strojno učenje v oblaku in za poglobljeno učenje imajo ponavadi lastno zbirko algoritmov in pogosto podpirajo zunanje okvire v vsaj enem jeziku ali kot vsebniki s posebnimi vstopnimi točkami. V nekaterih primerih lahko svoje lastne algoritme in statistične metode integrirate s sredstvi AutoML na platformi, kar je zelo priročno.

Nekatere platforme v oblaku ponujajo tudi svoje prilagojene različice glavnih okvirov za poglobljeno učenje. Na primer, AWS ima optimizirano različico TensorFlow, za katero trdi, da lahko doseže skoraj linearno razširljivost za globoko usposabljanje v nevronski mreži.

Ponudite vnaprej usposobljene modele in podprite učenje prenosa

Vsi ne želijo porabiti časa in izračunati virov za usposabljanje lastnih modelov - niti ne bi smeli, če so na voljo predhodno usposobljeni modeli. Nabor podatkov ImageNet je na primer ogromen in usposabljanje najsodobnejše globoke nevronske mreže proti njemu lahko traja tedne, zato je zanj smiselno uporabiti vnaprej usposobljen model, kadar le lahko.

Po drugi strani vnaprej usposobljeni modeli morda ne bodo vedno prepoznali predmetov, ki vas zanimajo. Učenje s prenosom vam lahko pomaga prilagoditi zadnjih nekaj slojev nevronske mreže za vaš določen nabor podatkov brez časa in stroškov za usposabljanje celotne mreže.

Ponudite prilagojene storitve umetne inteligence

Glavne platforme v oblaku ponujajo robustne, prilagojene storitve umetne inteligence za številne aplikacije, ne samo za identifikacijo slike. Primeri vključujejo prevod jezika, govor v besedilo, besedilo v govor, napovedovanje in priporočila.

Te storitve so že usposobljene in preizkušene na več podatkih, kot je običajno na voljo podjetjem. Prav tako so že razporejeni na končnih točkah storitve z dovolj računskimi viri, vključno s pospeševalniki, da se zagotovi dober odzivni čas pod svetovno obremenitvijo.

Upravljajte svoje preizkuse

Edini način, da poiščete najboljši model za svoj nabor podatkov, je, da preizkusite vse, bodisi ročno ali z uporabo AutoML. To pušča še en problem: upravljanje eksperimentov.

Dobra platforma za strojno učenje v oblaku bo imela način, da si lahko ogledate in primerjate vrednosti objektivnih funkcij vsakega eksperimenta tako za vadbene nize kot za podatke o preskusih, pa tudi za velikost modela in matriko zmede. Zmogljivost vsega tega je nedvomno plus.

Podpora uvajanju modela za napovedovanje

Ko izberete najboljši poskus glede na vaša merila, potrebujete tudi preprost način za uvedbo modela. Če namestite več modelov za isti namen, boste potrebovali tudi način za porazdelitev prometa med njimi za a / b testiranje.

Spremljajte uspešnost napovedovanja

Na žalost se svet ponavadi spreminja in s tem se spreminjajo tudi podatki. To pomeni, da ne morete uvesti modela in ga pozabiti. Namesto tega morate sčasoma spremljati podatke, predložene za napovedi. Ko se bodo podatki začeli bistveno spreminjati od izhodišča prvotnega niza podatkov o vadbi, boste morali svoj model ponovno usposobiti.

Nadzor stroškov

Na koncu potrebujete načine za nadzor stroškov, ki jih imajo vaši modeli. Uvajanje modelov za sklepanje o proizvodnji pogosto predstavlja 90% stroškov globokega učenja, medtem ko usposabljanje predstavlja le 10% stroškov.

Najboljši način za nadzor stroškov napovedovanja je odvisen od vaše obremenitve in zapletenosti vašega modela. Če imate veliko obremenitev, boste morda lahko s pospeševalnikom preprečili dodajanje več primerkov navideznih strojev. Če imate spremenljivo obremenitev, boste morda lahko dinamično spreminjali svojo velikost ali število primerkov ali vsebnikov, ko bo obremenitev naraščala ali spuščala. In če imate majhno ali občasno obremenitev, boste morda za obdelavo napovedi lahko uporabili zelo majhen primerek z delnim pospeševalnikom.

$config[zx-auto] not found$config[zx-overlay] not found