GPU-Powered Data Science (NE poglobljeno učenje) z RAPIDS

Izvorno vozlišče: 997659

GPU-Powered Data Science (NE poglobljeno učenje) z RAPIDS

Kako izkoristiti moč svojega GPE-ja za redno znanost o podatkih in strojno učenje, tudi če ne opravljate veliko poglobljenega učenja.



glava slike
Vir slikpixabay (Brezplačna slika)

Iščete »podatkovna znanost, ki jo poganja GPE«?

 
 
Predstavljajte si, da ste podatkovni znanstvenik, poslovni analitik ali akademski raziskovalec na področju fizike/ekonomije/nevroznanosti ...

Delaš veliko prepiranje podatkov, čiščenje, statistični testi, vizualizacije redno. Veliko se tudi poigravate linearni modeli prilagajanje podatkov in se občasno podajte vanj RandomForest. Tudi vi ste v grozdenje velike zbirke podatkov. Se sliši dovolj znano?

Vendar se glede na naravo naborov podatkov, s katerimi delate (večinoma tabelarni in strukturirani), ne podajate toliko v globoko učenje. Vse vire strojne opreme, ki jih imate, bi raje vložili v stvari, ki jih dejansko počnete vsak dan, kot pa da bi porabili za kak modni model globokega učenja. Spet poznano?

Slišali boste o osupljivi moči in izjemno hitrem računskem zmožnosti GPU sistemi, kot so tisti NVidia za vse vrste industrijskih in znanstvenih aplikacij.

In še naprej razmišljaš - "Kaj je tam zame? Kako lahko izkoristim te zmogljive kose polprevodnikov v svojem specifičnem delovnem procesu? "

Iščete podatkovno znanost, ki jo poganja GPU.

Ena najboljših (in najhitrejših) možnosti za oceno tega pristopa je uporaba kombinacije Saturnov oblak + HITRINaj vam podrobno razložim ...

GPU-ji v folklori AI/ML so bili predvsem namenjeni globokemu učenju

 
 
Medtem ko se o uporabi grafičnih procesorjev in porazdeljenega računalništva na veliko razpravlja v akademskih in poslovnih krogih za osnovne naloge AI/ML (npr. 1000-slojna globoka nevronska mreža za slikovno klasifikacijo oz milijardni parameter BERT model sinteze govora), so našli manj pokritosti, ko gre za njihovo uporabnost za običajne naloge podatkovne znanosti in podatkovnega inženiringa.

Kljub temu, naloge, povezane s podatki, so bistveni predhodnik vsake delovne obremenitve ML v kanalu AI in pogosto predstavljajo večinski odstotek časa in intelektualnega napora porabi podatkovni znanstvenik ali celo inženir ML. Nedavno slavni pionir AI
Andrew Ng govoril prehod od pristopa k umetni inteligenci, osredotočenega na model, k pristopu, ki je osredotočen na podatke razvoj orodij. To pomeni, da porabite veliko več časa s surovimi podatki in jih predhodno obdelate, preden se na vašem kanalu izvede dejanska delovna obremenitev AI.

Torej, pomembno vprašanje je: Ali lahko izkoristimo moč GPE in porazdeljenega računalništva za običajna opravila obdelave podatkov?



Vir slik: Avtor je ustvaril kolaž iz brezplačnih slik (pixabay)

 

Medtem ko se o uporabi grafičnih procesorjev in porazdeljenega računalništva na veliko razpravlja v akademskih in poslovnih krogih za osnovne naloge AI/ML, so našli manj pokritosti v njihovi uporabnosti za redne naloge podatkovne znanosti in podatkovnega inženiringa.

Fantastičen ekosistem RAPIDS

 
 
RAPIDS zbirka programskih knjižnic in API-jev vam – navadnemu podatkovnemu znanstveniku (in ne nujno izvajalcu poglobljenega učenja) – možnost in prilagodljivost za izvajanje cevovodi podatkovne znanosti in analitike od konca do konca v celoti na grafičnih procesorjih.

Ta odprtokodni projekt je inkubirala Nvidia z gradnjo orodij za izkoriščanje primitivov CUDA. Posebej se osredotoča na razkrivanje paralelizma GPU in hitrosti pomnilnika z visoko pasovno širino prek podatkovno-znanstvenega jezika Python.

Skupne naloge priprave in prerekanja podatkov so zelo cenjeni v ekosistemu RAPIDS. Posodi tudi precejšen znesek podpora za uvajanje z več vozlišči, z več GPU in porazdeljeno obdelavo. Kjer je le mogoče, se integrira z drugimi knjižnicami, ki izdelujejo zmanjkalo je spomina (tj. velikost nabora podatkov večja od RAM -a posameznega računalnika) obdelava podatkov enostavna in dostopna za posamezne znanstvenike.



Vir slik: Avtor je ustvaril kolaž

 

Tri najvidnejše (in Pythonic) komponente, ki so še posebej zanimive za običajne podatkovne znanstvenike, so:

  • CuPy: matrična knjižnica, ki jo poganja CUDA, ki je videti in deluje tako kot Numpy, medtem ko uporablja različne knjižnice CUDA, npr. cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT in NCCL, da v celoti izkoristijo arhitekturo GPE pod njim.
  • CuDF: To je knjižnica GPU DataFrame za nalaganje, združevanje, združevanje, filtriranje in upravljanje podatkov z pandas podoben API. Podatkovni inženirji in podatkovni znanstveniki ga lahko uporabijo za preprosto pospešitev svojih tokov opravil z uporabo zmogljivih grafičnih procesorjev, ne da bi se kdaj naučili osnov programiranja CUDA.
  • CuML: Ta knjižnica omogoča podatkovnim znanstvenikom, analitikom in raziskovalcem zagon tradicionalnih/klasičnih algoritmov ML in povezanih nalog obdelave, ki v celoti izkoriščajo moč GPE. Seveda se to večinoma uporablja s tabelarnimi nabori podatkov. Pomislite na Scikit-learn in kaj bi lahko naredil z vsemi tistimi stotinami Cuda in Tensor Cores na vaši GPU kartici! Na podlagi tega se v večini primerov Python API cuML ujema s programom Scikit-learn. Poleg tega poskuša ponuditi podporo za več GPU in več vozlišč by elegantno integracijo z Armaturna plošča, kjer koli lahko, za izkoriščanje prave porazdeljene obdelave/računalništva v gruče.


Ali lahko izkoristimo moč GPE in porazdeljenega računalništva za običajna opravila obdelave podatkov in strojno učenje s strukturiranimi podatki?

Se razlikuje od uporabe Apache Spark?

 
 
Morda se boste vprašali, kako se ta obdelava podatkov, ki jo poganja GPE, razlikuje od uporabe Apache Spark. Pravzaprav obstaja nekaj subtilnih razlik in šele pred kratkim, s Spark 3.0, so grafični procesorji glavni vir za delovne obremenitve Spark.

Pospeševanje Apache Spark 3.0 z grafičnimi procesorji in RAPIDS | Blog za razvijalce NVIDIA
 

Nimamo časa ali prostora, da bi razpravljali o edinstvenih razlikah med tem pristopom podatkovne znanosti, ki ga poganja GPE, in nalogami velikih podatkov, ki so posebej primerne za Apache Spark. Toda zastavite si ta vprašanja in verjetno boste razumeli subtilno razliko,

"Kot podatkovni znanstvenik, ki modelira ekonomske transakcije in upravljanje portfelja, želim rešiti a linearni sistem enačb s 100,000 spremenljivkami. Ali uporabljam čisto knjižnico Linear Algebra ali Apache Spark?? "

"Kot del cevovoda za stiskanje slik, ki ga želim uporabiti Razgradnja singularne vrednosti na veliki matriki milijonov vnosov. Je Apache Spark dobra izbira za to? "

Velika velikost problema ne pomeni vedno ekosistema Apache Spark ali Hadoop. Big Computation ni enakovreden Big Data. Kot dobro zaokrožen podatkovni znanstvenik morate poznati oboje, če se želite spopasti z vsemi vrstami težav.

RAPIDS se posebej osredotoča na razkrivanje paralelizma GPE in funkcij hitrosti pomnilnika z visoko pasovno širino prek API-jev Python.

Kaj prikazujemo v tem članku?

 
 

Samo jasni primeri CuPy in CuML

 
Torej, v tem članku bomo samo prikazali jasne primere CuPy in CuML,

  • kako se primerjajo (po hitrosti) z ustreznimi funkcijami/ocenjevalci učenja Numpy in Scikit
  • kako pomembna je velikost podatkov/problema pri tej primerjavi hitrosti.

Primeri CuDF v kasnejšem članku

 
Čeprav so primeri podatkovnega inženiringa, podobni obdelavi podatkov Panda, zelo zanimivi za mnoge podatkovne znanstvenike, bomo primere CuDF obravnavali v poznejšem članku.

Kakšna je moja strojna platforma, ki temelji na GPU?

 
Uporabljam a Saturnov oblak Primerek GPU Tesla T4, saj je treba dobesedno 5 minut dela, da zavrtite a popolnoma opremljen in naložen (s knjižnicama DS in AI) računalniški vir v oblaku za vse moje delo na področju podatkovne znanosti z njihovo storitvijo. Dokler ne presežem 10 ur uporabe prenosnika Jupyter na mesec, je brezplačen! Če želite prebrati več o njihovi storitvi,

Saturn Cloud Hosted se je predstavil: GPU Data Science za vsakogar!

Računalništvo GPU je prihodnost podatkovne znanosti. Paketi, kot so RAPIDS, TensorFlow in PyTorch, omogočajo bliskovito ...

Poleg tega, da imate Tesla T4 GPU, gre za 4-jedrni procesor Intel(R) Xeon(R) Platinum 8259CL @ 2.50 GHz stroj s 16 GB RAM-a in 10 GB trajnim diskom. Torej je to povsem običajna nastavitev z vidika konfiguracije strojne opreme (omejen trdi disk zaradi brezplačne ravni), tj. vsak podatkovni znanstvenik ima lahko takšno strojno opremo v svoji lasti. Edini razlikovalni dejavnik je prisotnost grafičnega procesorja in nastavitev vseh knjižnic CUDA in Python na ustrezen način, tako da paket RAPIDS deluje brez kakršnih koli težav.


Velika velikost problema ne pomeni vedno ekosistema Apache Spark ali Hadoop. Big Computation ni enakovreden Big Data. Kot dobro zaokrožen podatkovni znanstvenik morate poznati oboje, če se želite spopasti z vsemi vrstami težav.

Reševanje linearnega sistema enačb

 
Ustvarjamo linearne sisteme enačb različnih velikosti in uporabljamo Numpy (in CuPy) linalg.solverutino za rešitev tega problema z naslednjo kodo,



In koda se spremeni za eno črko (v več klicih) za izvedbo CuPy!



Upoštevajte tudi, kako lahko kot argumente ustvarimo nize CuPy iz nizov Numpy.

Vendar je rezultat dramatičen. CuPy začne počasi ali s podobnim tempom kot Numpy, vendar ga pri velikih velikostih problemov (število enačb) močno premaga.



Razčlenitev singularne vrednosti

 
Nato se lotimo problema dekompozicije singularne vrednosti z uporabo naključno generirane kvadratne matrike (izvlečene iz normalne porazdelitve) različnih velikosti. Tukaj ne ponavljamo bloka kode, ampak samo prikažemo rezultat za kratkost.



Pomembno je omeniti, da algoritem CuPy v tem problemskem razredu ne kaže izrazito boljše zmogljivosti kot algoritem Numpy. Morda je to nekaj, kar bi razvijalci CuPy morali izboljšati.

Če se vrnem k osnovnemu: inverzija matrice

 
Na koncu se vrnemo k osnovam in razmislimo o temeljnem problemu inverzije matrike (ki se uporablja v skoraj vseh algoritmih strojnega učenja). Rezultat ponovno kaže močno ugodno izboljšanje zmogljivosti algoritma CuPy v primerjavi s paketom Numpy.



Reševanje problema združevanja v gruče K-means

 
Nato obravnavamo nenadzorovan učni problem združevanja v gruče z uporabo vsem dobro znanega algoritma k-means. Tukaj primerjamo funkcijo CuML z enakovrednim ocenjevalcem iz paketa Scikit-learn.

Samo za referenco je tukaj primerjava API med tema dvema ocenjevalcema.



Vir slikScikit-učite se in Spletno mesto CuML (Odprtokodni projekti)

 

Tukaj je rezultat za nabor podatkov z 10 funkcijami/dimenzijami.



In tukaj je rezultat drugega poskusa z naborom podatkov s 100 funkcijami.



Jasno je, da sta tako velikost vzorca (število vrstic) kot dimenzionalnost (število stolpcev) pomembni pri tem, kako je pospešek, ki temelji na GPU, deloval boljše.

Vsem dobro znan problem linearne regresije

 
Kdo lahko prezre problem linearne regresije za primerjavo hitrosti, medtem ko se ukvarja s tabelarnimi nabori podatkov? Po kadenci kot prej spreminjamo velikost problema - tokrat število vzorcev in dimenzij hkrati - in primerjamo zmogljivost CuML LinearRegression ocenjevalca tistemu, pridobljenemu iz Scikit-learn stable.

Os X na naslednji sliki predstavlja velikost problema – od 1,000 vzorcev/50 funkcij do 20,000 vzorcev/1000 funkcij.

Ponovno, ocenjevalec CuML deluje veliko bolje, ko se kompleksnost problema (velikost in dimenzionalnost vzorca) povečuje.



Povzetek

 
 
Osredotočili smo se na dve najbolj temeljni komponenti ogrodja RAPIDS, katerega cilj je prenesti moč GPU-ja v vsakodnevne naloge analize podatkov in strojnega učenja, tudi ko podatkovni znanstvenik ne izvaja nobene naloge globokega učenja.



Vir slik: Izdelal avtor z brezplačnimi slikami Pixabay (Link-1Link-2Link-3)

 

Uporabili smo a Saturnov oblak Primerek za Tesla T4 enostavna, brezplačna in hitra nastavitev in pokazal nekaj funkcij knjižnic CuPy in CuML ter primerjave zmogljivosti pogosto uporabljenih algoritmov.

  • Vsi algoritmi iz knjižnic RAPIDS niso bistveno boljši, večina pa jih je.
  • Na splošno se izboljšanje zmogljivosti hitro povečuje z večanjem kompleksnosti problema (velikost in dimenzionalnost vzorca).
  • Če imate grafično procesorsko enoto, vedno preizkusite RAPIDS, primerjajte in preizkusite, ali pridobivate na zmogljivosti, in ga naredite kot zaupanja vrednega delovnega konja v vašem cevovodu podatkovne znanosti.
  • Sprememba kode je minimalna, skoraj ne obstaja za preklop.

Naj moč grafičnega procesorja spodbudi vaš potek dela pri analitiki in podatkih.

Lahko preverite avtorjevo GitHub odlagališča za kodo, ideje in vire v strojnem učenju in znanosti o podatkih. Če ste, podobno kot jaz, navdušeni nad AI / strojnim učenjem / znanosti o podatkih, vas prosimo, dodaj me na LinkedIn or sledi mi na tviterju.

Hvala Mel.

 
prvotni. Poročeno z dovoljenjem.

Povezano:

Vir: https://www.kdnuggets.com/2021/08/gpu-powered-data-science-deep-learning-rapids.html

Časovni žig:

Več od KDnuggets