Nvidia Gpu ‘ er, data for videnskab, analytics, og distribueret machine learning ved hjælp af Python med Dask

0
118

Nvidia har nye tilgang til at træne robotter til at manipulere objekter
Med en unik kombination af syntetiske billeder, forskere fundet en måde for lettere og mere effektivt at træne en computer vision algoritme til at robotter.

Nvidia har været mere end en hardware-virksomhed i lang tid. Som sine Gpu ‘ er, er stort set brugt til at køre machine learning arbejdspres, machine learning er blevet en vigtig prioritet for Nvidia. I sin GTC begivenhed i denne uge, Nvidia har lavet en række beslægtede punkter, som sigter mod at bygge på machine learning og udvide til data videnskab og analytics.

Nvidia ønsker at “par software og hardware til at levere fremskridt inden for computer-kraft, der er nødvendig for at omdanne data til indsigt og intelligens.” Jensen Huang, Nvidia CEO, understregede den kollaborative aspekt mellem chip arkitektur, systemer, algoritmer og programmer.

Også: Salesforce Forskning: Viden grafer og machine learning til magten Einstein

Derfor, Nvidia er fokuseret på at opbygge en GPU udvikler økosystem. Ifølge Huang, GPU udvikler økosystem er i hastig vækst: antallet af udviklere er vokset til mere end 1,2 millioner fra 800,000 sidste år. Og hvad kan du bygge en udvikler økosystem på? Open source-software.

Nvidia annoncerede CUDA-X AI SDK for GPU-Accelererede Data Videnskab i GTC. Nvidia billethajer CUDA-X AI som en end-to-end platform for acceleration af data videnskab, der omfatter mange dele af de data, videnskab workflow. Målet er at bruge Gpu ‘ er til at parallelize de opgaver, der er i den grad muligt, således at hastighedsovertrædelser dem op.

En vigtig del af CUDA-X AI er RAPIDS. RAPIDS er en suite af open-source-software-biblioteker til udførelse ende-til-ende data videnskab og analytics rørledninger helt på Gpu ‘ er. Og en væsentlig del af RAPIDS er Dask. Dask er et open source framework, hvis mål er at indbygget skala Python.

Som Python er det sprog valg for de fleste data videnskab fungerer, kan du se, hvorfor Nvidia har valgt at gøre dette til en vigtig del af dens strategi. ZDNet havde en Q&A med Dask skaber, Matt Rocklin, der for nylig begyndte at arbejde for Nvidia.

Skalering Python

Rocklin sagde, at Dask voksede ud af PyData økosystem (Pandaer, NumPy Scikit-Lære, Jupyter, osv.). PyData er kendt og elsket af data forskere, både fordi det er hurtigt, (for det meste skrevet i C/C++) og let for ikke-eksperter at bruge. Problemet var, at PyData generelt ikke skalere godt, der var en begrænsning, som datasæt størrelser øget.

Også: Streamlio, en åben-core streaming data stof til cloud-æra

Dask var designet til at skalere den eksisterende PyData projekter og bringe dem i parallel computing, uden at det kræver en komplet omskrivning. Rocklin startede med Dask, mens du arbejder på Anaconda Inc (kaldet Kontinuum, der på det tidspunkt), men Dask hurtigt voksede til at blive et eu-projekt med bidragydere fra de fleste større PyData biblioteker.

a-day-in-the-life-1-1024x410.png

Data videnskab arbejdspres kan tage et stykke tid at udføre. Fremskyndelse af dem er, hvad Dask handler om, hvilket er hvorfor det er blevet vedtaget af Nvidia.

(Billede: Nvidia)

×

a-day-in-the-life-1-1024×410.png

Anaconda blev investeret i projektet, fordi de havde mange klienter, der elskede Pandaer, Scikit-Lære, og venner, men kæmpede med større data størrelser. Rocklin sagde, at der var klart både et fællesskab og et behov på markedet for at gøre PyData håndtere større skalaer, men der var også mange tekniske og sociale udfordringer:

“Vi havde at sætte huller i det økosystem, der manglede på big data” side. Der var en række teknologier i det store rum, der var ikke rigtig der er tilgængelige i Python på det tidspunkt: data formater som Parket, Orc, og Avro, data storage-systemer som HDFS, GCS, S3, implementering løsninger som GARN.”

Han fortsatte med at tilføje, at i Python økosystem, der er mange teknologier, som havde lidt eller ingen støtte, der gør dem ikke virkelig nyttige i en performance-orienteret sammenhæng. Dask startede med at fokusere på én node tunge arbejdsstation use case. Målet var at skalere Python til alle de kerner, en moderne CPU og forlænge data størrelse begrænsning fra mængden af tilgængelig RAM (~100 GB) til mængden af ledig (~10TB) på enkelte arbejdsstationer.

På den tid, var dette ses som en sweet-spot for høj produktivitet. Rocklin sagde, at “Dask blev Python-indfødte og nem at arbejde med og masser af grupper, der havde Numpy/Pandas/Scikit-lære style problemer på denne skala (som de fleste mennesker) kunne virkelig godt lide det.”

Han fortsatte med at tilføje, men at folks evne til at skalere ud til større datasæt, der ser ud til at være umættelig, så efter omkring et år Dask blev udvidet til at arbejde i en distribueret computing-miljø, som er mere eller mindre den samme skalering egenskaber som et system, som Gnist.

Apache Gnist er et yderst populært open source-platform for data videnskab og machine learning, kommercielt understøttet af Databricks. Spark støtter i-hukommelse behandling og skalerer godt via klyngedannelse. Problemet med Gnist for mange Python-brugere, dog, er, at støtte til Python er begrænset, og at implementering og tuning klynger er ikke trivielt.

Også: Graf data standardisering: Det er bare en graf, hvilket gør gravitationelle bølger i den virkelige verden

Dask blev udviklet til at håndtere dette. Så hvordan kan Dask og Spark sammenligne? Rocklin sagde, at dette er et spørgsmål, får han ofte, så ofte et detaljeret svar til dette findes. Takeaway er, at Dask er mindre og mere let. Dask har færre funktioner end Gnist og er beregnet til at blive brugt sammen med andre Python-biblioteker.

Dask hjælper med at fremskynde hele data videnskabsmand workflow med Gpu ‘ er

For nylig, Rocklin sluttede Nvidia for at hjælpe omfang ud RAPIDS med Dask. Han bemærkede, at Nvidia havde allerede gjort det i et stykke tid, men ønskede mere ildkraft bag Dask indsats:

“NVIDIA har været en støttende spiller i open source økosystem for nylig, så jeg var spændt på om den mulighed. Med STRØMFALD, NVIDIA ønsker at udvide succes GPU ud over grafik og dybe læring til den fulde data videnskab oplevelse. Dette betyder, at bygningen GPU-accelererede biblioteker for et bredere sæt af opgaver.”

nvidia-t4-gpu.jpg

Nvidia ‘ s T4 GPU. Hurtig, som den kan være, men uden den rette software stack, det vil ikke hjælpe dig meget.

(Billede: Nvidia)

×

nvidia-t4-gpu.jpg

Det planlagte resultat er at være i stand til at accelerere hele data videnskabsmand workflow, ikke bare den afsluttende træning og forudsigelse dele, når dybt læring er involveret. Traditionelle machine learning algoritmer, dataframe operationer som groupby-sammenlægninger, slutter sig til, og timeseries manipulation. Data indtagelse som CSV og JSON parsing. Og array computing som billedbehandling, og graf analytics:

“Da jeg først hørte om dette var jeg temmelig skeptisk. Jeg havde altid troet af Gpu ‘ er som værende godt for beregninger, der var meget regelmæssige og beregne intensiv, som den matrix ganger, der sker inden for dyb læring.

Men da jeg så, at NVIDIA havde bygget en CSV-parser (en meget uregelmæssig beregning), der var en fuld 20x hurtigere end Pandas standard var jeg solgt. Den præstation tal, der kommer ud af disse maskiner er ret fantastisk.”

Rocklin sagde, at i dag RAPIDS bruger Dask (og MPI) for at skalere nogle af disse biblioteker til flere Gpu ‘ er og flere noder. På samme måde, som Dask kan håndtere mange Pandaer dataframes på tværs af et distribueret klynge af Cpu ‘er, det kan også håndtere mange GPU-accelererede Pandaer dataframes på tværs af et distribueret klynge af Gpu’ er. Dette ender op med at være lettere, end man kunne forvente af to grunde, han gik på at tilføje.

For det første, fordi Dask var designet til at parallelize omkring andre biblioteker, så det håndterer ting som load balancing og robusthed, men kan ikke pålægge nogen bestemt computersystem, som passer til NVIDIA ‘ s behov, da det er ønsket om at definere sin egen on-node beregning.

For det andet, Dask, der allerede har algoritmer, der fungerer godt for Numpy, Pandaer, Scikit-Lære, og venner, og så mange af dem, der virker out-of-the-box for den tilsvarende RAPIDS biblioteker, som en kopi af disse Api ‘ er så godt.

Fordelt machine learning do ‘s og don’ ts

Men kan det virkelig være så nemt? For nylig, Viacheslav Kovalevskyi, teknisk leder hos Google Cloud AI, advaret mod brugen af distribution, medmindre det er absolut nødvendigt. Vi spekulerede på, hvad Rocklin ‘ s syn på dette er, og hvad han ser som de største udfordringer og muligheder for distribueret machine learning går fremad.

Også: For CockroachDB, transaktioner først, så kan analytics er en funktion-ikke en fejl

Rocklin påpeget, at it effektivt på denne plads, og stadig kræver en hel del af ekspertise. Der er bestemt mange machine learning problemer, som f.eks. servere, der bruges i dyb læring programmer, som du kan lide en enorm ydeevnen, hvis du går distribueret uden at være meget forsigtig.

distributeddlfairytalezone.png

“Fairytale zone”: bare at smide mere hardware på de problem vil ikke nødvendigvis gøre machine learning hurtigere. Det hele afhænger af typen af problem.

(Billede: Viacheslav Kovalevskyi)

×

distributeddlfairytalezone.png

Han tilføjede, at der er meget virkelige, menneskelige og administrative omkostninger ved hjælp af en klynge. Klynger er komplekse, typisk styret af et andet hold uden af data videnskab, de er svære at debugge, og generelt sted vejspærringer mellem analytiker og indsigt.

Single store maskiner er meget produktive, Rocklin mener, både ud fra et performance/hardware perspektiv og også fra et menneskeligt/administrativ barriere perspektiv. Hvis du kan løse dit problem på en ikke-distribuerede system, så er det næsten altid det rigtige valg:

“Men, Machine Learning er et bredt begreb, der i disse dage. Fra et beregningsmæssigt perspektiv, Machine Learning har en masse forskellige. Nogle ting virker godt for nogle problemer, andre ikke. Det er svært at gøre tæppe udsagn.

Der er tonsvis af problemer, hvor skalering ud er meget naturlig, og giver næsten ingen performance straf. Der er applikationer i vores samfund, der virkelig kræver store skalering for at gøre fremskridt (tror genomforskning, klimaændringer, billedbehandling). Ideelt set de værktøjer, vi bruger på små/medium data på en enkelt maskine kan være de samme værktøjer, vi bruger på tusind-node klynger”.

Relaterede Emner:

Open Source

Digital Transformation

CXO

Tingenes Internet

Innovation

Virksomhedens Software