Le Gpu Nvidia per la scienza di dati, analisi e distribuito macchina di apprendimento, utilizzando Python con Dask

0
109

Nvidia ha nuovo approccio al treno robot per manipolare gli oggetti
Con una combinazione unica di immagini sintetiche, i ricercatori hanno trovato un modo per raggiungere più facilmente e più efficacemente treno un computer vision algoritmo per il robot.

Nvidia è stata più di una società di hardware per un lungo periodo di tempo. Come Gpu sono ampiamente utilizzati per l’esecuzione di apprendimento automatico dei carichi di lavoro, l’apprendimento automatico è diventata una priorità chiave per Nvidia. Nella sua GTC evento di questa settimana, Nvidia ha fatto una serie di punti collegati, allo scopo di costruire su di machine learning e di estendere alla scienza di dati e analisi.

Nvidia vuole “coppia di hardware e software per fornire i progressi nella potenza di calcolo necessaria per trasformare i dati in conoscenza e l’intelligenza.” Jensen Huang, CEO di Nvidia, ha sottolineato l’aspetto collaborativo tra l’architettura del chip, sistemi, algoritmi e applicazioni.

Anche: Salesforce Ricerca: la Conoscenza grafici e di apprendimento automatico per l’alimentazione di Einstein

Pertanto, Nvidia è incentrata sulla costruzione di una GPU sviluppatore ecosistema. Secondo Huang, la GPU sviluppatore ecosistema è in rapida crescita: il numero di sviluppatori è cresciuto fino a più di 1,2 milioni di euro da 800.000 l’anno scorso. E cosa si può costruire un ecosistema di sviluppatore? Il software Open source.

Nvidia ha annunciato il CUDA-X AI SDK per l’Accelerazione GPU in Data Science in CG. Nvidia bagarini CUDA-X IA come un end-to-end della piattaforma per l’accelerazione della scienza di dati, che coprono molte parti della scienza di dati di flusso di lavoro. L’obiettivo è quello di utilizzare la Gpu per parallelizzare tali compiti, nei limiti del possibile, in questo modo si accelera.

Una parte fondamentale di CUDA-X AI è RAPIDS. RAPIDS è una suite di software open-source librerie per l’esecuzione di end-to-end dei dati scienza e analitiche condotte interamente su Gpu. Una parte fondamentale del RAPIDS è Dask. Dask è un framework open source il cui obiettivo è nativamente scala Python.

Python è il linguaggio di scelta per la maggior parte dei dati la scienza, si può vedere perché Nvidia ha scelto di rendere questo un elemento chiave della sua strategia. ZDNet ha avuto un Q&A con Dask creatore, Matteo Rocklin, che di recente ha iniziato a lavorare per Nvidia.

Scala Python

Rocklin detto che Dask è cresciuto fuori PyData ecosistema (Panda, NumPy, Scikit Imparare, Jupyter, ecc). PyData è amato da scienziati dati sia perché è veloce (la maggior parte scritti in C/C++) e facile per i non esperti da utilizzare. Il problema era che PyData generalmente non scala bene, che era una limitazione come set di dati di dimensioni aumentate.

Anche: Streamlio, un nucleo di dati in streaming in tessuto per l’era del cloud

Dask è stato progettato per scala esistente PyData progetti e li ricondurrò nel calcolo parallelo, senza la necessità di una riscrittura completa. Rocklin iniziato con Dask mentre lavorava in Anaconda Inc (chiamato Continuum, al momento), ma Dask rapidamente crebbe fino a diventare un progetto di comunità con i collaboratori principali PyData librerie.

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

Scienza di dati i carichi di lavoro possono richiedere del tempo per eseguire. Accelerando è quello che Dask, che è il motivo per cui è stato adottato da Nvidia.

(Immagine: Nvidia)

×

un-giorno-in-la-vita-1-1024×410.png

Anaconda è stato investito nel progetto, perché ha avuto molti clienti che amava Panda, Scikit Imparare e amici, ma con fatica e con grandi volumi di dati. Rocklin ha detto che c’era chiaramente sia di una comunità e di una esigenza di mercato per rendere PyData gestire grandi scale, ma c’erano anche molte tecniche e sfide sociali:

“Abbiamo dovuto tappare questi buchi nell’ecosistema che erano mancanti sul grande lato dati. Ci sono stati un certo numero di tecnologie nel grande spazio per i dati che non erano realmente disponibili in Python: formati di dati come Parquet, Orc, e Avro, sistemi di memorizzazione dati come HDFS, CGS, S3, soluzioni di distribuzione come il FILO.”

Ha poi aggiunto che in Python ecosistema, molte tecnologie avuto poco o nessun supporto, il che li rende poco utile in una performance-oriented contesto. Dask ha iniziato concentrandosi su un singolo nodo pesante workstation caso d’uso. L’obiettivo era quello di scala Python per tutti i core di una CPU moderna e di estendere la dimensione dei dati di limitare la quantità di RAM disponibile (~100 GB) per la quantità di spazio disponibile su disco (~10 TB) sulle singole postazioni di lavoro.

Al momento, questo era vista come una sweet-spot ad alta produttività. Rocklin, ha detto che “Dask stato Python-native e permette di lavorare con un sacco di gruppi che avevano Numpy/Panda/Scikit-per saperne di stile problemi a questa scala (che è la maggior parte delle persone) è veramente piaciuto.”

Ha poi aggiunto, tuttavia, che la capacità delle persone di scala a set di dati più grandi sembra essere insaziabile, così dopo circa un anno Dask è stata estesa a lavorare in un ambiente di calcolo distribuito che ha più o meno le stesse proprietà di scalatura come un sistema come Scintilla.

Apache Spark è una popolarissima piattaforma open source per i dati della scienza e del machine learning, supportato commercialmente da Databricks. Scintilla supporta l’elaborazione in memoria e scale e via di clustering. Il problema con la Scintilla per molti Python utenti, tuttavia, è che il supporto per Python è limitata, e la distribuzione e ottimizzazione di cluster non è banale.

Anche: Grafico la standardizzazione dei dati: È solo un grafico, rendendo le onde gravitazionali nel mondo reale

Dask è stato sviluppato per affrontare questo. Così come Dask e Scintilla confrontare? Rocklin ha detto questa è una domanda che viene spesso, tanto spesso una risposta dettagliata per questo esiste. L’asporto è che Dask è più piccolo e più leggero. Dask ha meno funzionalità rispetto a Scintilla e che è destinato a essere utilizzato in combinazione con altre librerie Python.

Dask consente di accelerare tutti i dati scienziato flusso di lavoro con le Gpu

Recentemente, Rocklin aderito Nvidia per aiutare le scale-out RAPIDE con Dask. Egli ha osservato che Nvidia aveva già fatto questo per un po’, ma voleva di più potenza di fuoco dietro la Dask sforzo:

“NVIDIA è stato un appoggio player open source ecosistema di recente, quindi ero entusiasta di questa opportunità. Con RAPIDS, NVIDIA vuole estendere il successo della GPU al di là della grafica e profondo di apprendimento per i dati completi della scienza esperienza. Questo significa costruire con accelerazione GPU librerie di un insieme più ampio di attività.”

nvidia-t4-gpu.jpg

Nvidia T4 GPU. Veloce come può essere, tuttavia, senza l’adeguata stack di software non vi aiuterà molto.

(Immagine: Nvidia)

×

nvidia-t4-gpu.jpg

L’obiettivo previsto è quello di essere in grado di accelerare l’intero dati scienziato flusso di lavoro, non solo la formazione finale di stima e di parti profonde di apprendimento è coinvolto. Tradizionali algoritmi di machine learning, dataframe operazioni come groupby-aggregazioni, join e timeseries manipolazione. L’importazione dei dati, come CSV e JSON analisi. E la matrice di calcolo come l’elaborazione delle immagini, e il grafico analytics:

“Quando ho sentito parlare di questo ero abbastanza scettico. Avevo sempre pensato di Gpu come buone solo per i calcoli che sono stati molto regolari e di calcolo per la cpu, come la matrice moltiplica che avvengono all’interno di un profondo apprendimento.

Tuttavia, quando ho visto che NVIDIA aveva costruito un CSV parser (altamente irregolare di calcolo) che è stata una vera e 20 volte più veloce rispetto alla Panda standard mi è stato venduto. Il numero di prestazioni venuta fuori di queste macchine è abbastanza sbalorditivo.”

Rocklin detto che oggi RAPIDS utilizza Dask (e MPI) per la scala di alcune di queste librerie a più Gpu e più nodi. Nello stesso modo In cui Dask possono gestire molte Panda dataframes attraverso distribuito cluster di Cpu può anche gestire molti accelerazione GPU Panda dataframes attraverso distribuito cluster di Gpu. Questo finisce per essere più facile di quanto ci si potrebbe aspettare per due motivi, ha poi aggiunto.

Primo, perché Dask è stato progettato per parallelizzare intorno ad altre biblioteche, di cui gestisce le cose come il bilanciamento del carico e la resistenza, ma non impone alcuna particolare sistema computazionale, che si adatta NVIDIA ha bisogno di ben, dato che è la volontà di definire un proprio nodo di calcolo.

Secondo, Dask ha già algoritmi che funzionano bene per Numpy, Panda, Scikit Imparare, e amici, e così molti di loro il lavoro out-of-the-box per l’equivalente RAPIDS librerie, che copia le Api.

Distribuito machine learning fare e cosa non fare

Ma sono davvero così facile? Recentemente, Viacheslav Kovalevskyi, technical lead di Google Cloud AI, messo in guardia contro l’uso di distribuzione, a meno che assolutamente necessario. Ci siamo chiesti che cosa Rocklin il punto di vista che è, e ciò che egli vede come la più grande delle sfide e opportunità per la distribuzione di apprendimento automatico e di andare avanti.

Inoltre: Per CockroachDB, transazioni, analytics è una feature, non un bug

Rocklin sottolineato che l’informatica in modo efficiente in questo spazio richiede ancora un po ‘ di esperienza. Certamente ci sono molti problemi di apprendimento, come ad esempio il parametro server utilizzati nel profondo applicazioni per l’apprendimento, per cui si può soffrire di un grave degrado delle prestazioni se si va distribuito senza essere molto attenti.

distributeddlfairytalezone.png

La “Fiaba di zona”: gettando più di hardware che il problema non rende necessariamente macchina di apprendimento più veloce. Tutto dipende dal tipo di problema.

(Immagine: Viacheslav Kovalevskyi)

×

distributeddlfairytalezone.png

Egli ha aggiunto che ci sono umani reali e costi amministrativi per l’uso di un cluster. I cluster sono complesse, in genere gestiti da un’altra squadra al di fuori della scienza di dati, sono di difficile eseguire il debug, e in generale luogo ostacoli tra analista e insight.

Unico grande macchine altamente produttive, Rocklin pensa, sia per le prestazioni di hardware e di prospettiva e anche umano/amministrativo barriera di prospettiva. Se si può risolvere il tuo problema in un non-sistema distribuito, quindi, che quasi sempre è la scelta giusta:

“Tuttavia, l’Apprendimento automatico è un termine ampio che, in questi giorni. Da una prospettiva computazionale, Machine Learning ha un sacco di varietà. Alcune cose funzionano bene per alcuni problemi, altri no. È difficile fare dichiarazioni coperta.

Ci sono tonnellate di problemi in cui ridimensionamento è molto naturale, e fornisce quasi per niente le prestazioni. Ci sono applicazioni critiche nella nostra società che hanno realmente bisogno di grande scala per fare progressi (si pensi genomica, il cambiamento climatico, imaging). Idealmente, gli strumenti che uso su piccole/medie di dati su una singola macchina può essere la stessa di strumenti che usiamo su migliaia nodo del cluster.”

Argomenti Correlati:

Open Source

La Trasformazione Digitale

CXO

Internet delle Cose

L’innovazione

Enterprise Software