Quali dimensioni delle reti neurali possono essere addestrate sulle attuali GPU consumer? (1060,1070,1080)


9

è possibile fornire una stima empirica delle dimensioni delle reti neurali che possono essere addestrate su GPU di largo consumo ? Per esempio:

Il documento The Emergence of Locomotion (Reinforcement) forma una rete usando l'attivazione tanh dei neuroni. Hanno un NN a 3 strati con 300.200.100 unità per il Planar Walker . Ma non riportano l'hardware e il tempo ...

Ma potrebbe essere sviluppata una regola empirica? Anche solo sulla base dei risultati empirici attuali, quindi ad esempio:

X Le unità che usano l'attivazione sigmoid possono eseguire Y iterazioni di apprendimento all'ora su 1060.

O l'uso della funzione di attivazione a invece di b provoca una riduzione dei tempi delle prestazioni.

Se uno studente / ricercatore / mente curiosa sta per acquistare una GPU per giocare con queste reti, come decidi cosa ottieni? A quanto pare, un 1060 è l'opzione di budget entry-level, ma come si può valutare se non è più intelligente ottenere un netbook schifoso invece di costruire un desktop ad alta potenza e spendere $ risparmiati su infrastruttura cloud on-demand.

Motivazione per la domanda: ho appena acquistato un 1060 e (intelligente, per porre la domanda dopo eh) mi chiedo se avrei dovuto semplicemente mantenere $ e creare un account Google Cloud. E se posso eseguire la mia simulazione di tesi di laurea sulla GPU.

Risposte:


5

Di solito il problema è di adattare il modello alla RAM video. In caso contrario, non è possibile addestrare il modello affatto senza grandi sforzi (come ad esempio addestrare parti del modello separatamente). Se lo fa, il tempo è il tuo unico problema. Ma la differenza nel tempo di addestramento tra GPU consumer come Nvidia 1080 e acceleratori GPU molto più costosi come Nvidia K80 non è molto grande. In realtà le migliori carte di consumo sono più veloci degli acceleratori GPU, ma mancano di altre proprietà come la VRAM. Confronti casuali e benchmark: http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/ , https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080-e-tesla-p100-per-deep-learning-81a918d5b2c7

Per calcolare se i tuoi modelli si adattano alla VRAM, devi solo approssimare quanti dati e quali iperparametri hai (input, output, pesi, layer, dimensione del batch, quale tipo di dati e così via).


1
Buona risposta, ma che tipo di modello non si adatta a una memoria da 6/8 GB? Diciamo che ogni lotto di dati di allenamento + il modello. Non ho idea di come calcolare la dimensione del modello, ma non riesco a immaginare alcune migliaia di neuroni e i loro pesi possono riempire Gigabyte di memoria. Il modello di riconoscimento delle immagini preinstallato di Google è qualche centinaia di Meg tensorflow.org/tutorials/image_recognition e che può riconoscere più della maggior parte degli altri là fuori. Apple lo gestisce su chip nell'iPhone, quindi il modello stesso deve essere molto più piccolo dei dati T. E questo non ha bisogno di essere tutto nella RAM giusto?
Pascalwhoop,

Lavoro spesso con modelli NLP, principalmente RNN multistrato, e se le dimensioni del vocabolario sono grandi, anche 8 GB potrebbero non essere sufficienti. Ricorda che l'allenamento di solito richiede più spazio della previsione (anche i gradienti occupano spazio).
C. Yduqoli il

3

Come avvertimento, suggerirei che, a meno che tu non ti spinga contro i limiti tecnologici fondamentali, la velocità e le risorse di calcolo dovrebbero essere secondarie alla logica di progettazione quando si sviluppa un'architettura di rete neurale.

Detto questo, all'inizio di quest'anno ho terminato la mia tesi sulla SM che ha coinvolto pipeline di analisi bioinformatica con dati di sequenziamento dell'intero genoma - che il progetto ha impiegato oltre 100.000 ore di tempo di elaborazione per svilupparsi secondo il responsabile del lavoro dei nostri cluster. Quando hai una scadenza, le risorse possono essere un vero vincolo e la velocità può essere fondamentale.

Quindi, per rispondere alle tue domande come le capisco:

Sarei stato meglio usare i soldi per guadagnare tempo nel cloud?

Probabilmente. Le poche centinaia di dollari che hai speso per il 1060 ti porterebbero lontano ad addestrare i tuoi modelli nel cloud. Inoltre, per quanto posso dire, non è necessario che la GPU si accenda al 100% del tempo (lo si farebbe se, diciamo, si estraesse valute crittografiche). Infine, con le istanze cloud è possibile ridimensionare, addestrando più modelli contemporaneamente, il che può accelerare l'esplorazione e la convalida di qualsiasi architettura su cui ti accontenti.

Esiste un modo per misurare il tempo di calcolo di una rete neurale su una determinata GPU

Bene, Big O è uno stimatore, ma sembra che tu voglia un metodo più preciso. Sono sicuro che esistono, ma ribatterei che puoi fare una stima con semplici calcoli sul retro della busta che tengono conto di thread, memoria, iterazioni di codice, ecc. Vuoi davvero scavare nella pipeline di elaborazione GPU sul 1060? Potresti essere in grado di elaborare una stima molto buona comprendendo tutto ciò che accade tra il tuo codice e il metal, ma alla fine probabilmente non vale la pena il tempo e lo sforzo; probabilmente confermerà che la notazione Big O (il modello semplice, se vuoi) acquisisce la maggior parte della variazione nel tempo di calcolo. Una cosa che puoi fare se noti colli di bottiglia è la profilazione delle prestazioni.


2

Dipende da cosa ti serve. Puoi addestrare qualsiasi dimensione della rete su qualsiasi risorsa. Il problema è il momento dell'allenamento. Se vuoi addestrare Inception su una CPU media ci vorranno mesi per convergere. Quindi, tutto dipende da quanto tempo puoi aspettare per vedere i tuoi risultati in base alla tua rete. Come nelle reti neurali non abbiamo una sola operazione ma molte (come la concatenazione, il pooling massimo, il riempimento, ecc.), È impossibile fare una stima mentre stai cercando. Basta iniziare ad addestrare alcune reti infame e misurare il tempo. Quindi, puoi interpolare il tempo necessario per addestrare le reti che stai cercando.


Sei a conoscenza di una risorsa che raccoglie informazioni per diversi lavori NN? Quindi un elenco di: tipo NN, numero di unità, iperparametri, dimensione del set di dati, hardware utilizzato, tempo impiegato? Ciò contribuirebbe a sviluppare una regola empirica
pascalwhoop il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.