Infrastruttura di Deep Learning basata su GPU per la ricerca sul Trading Quantistico

Infrastruttura di Deep Learning basata su GPU per la ricerca sul Trading Quantistico

Sommario

SCRIVIMI SU TELEGRAM

Per informazioni, suggerimenti, collaborazioni...

Se è la prima volta che atterri su DataTrading, BENVENUTO!

Lascia che mi presenti. Sono Gianluca, ingegnere, trekker e appassionato di coding, finanza e trading. Leggi la mia storia.

Ho creato DataTrading per aiutare le altre persone ad utilizzare nuovi approcci e nuovi strumenti, ed applicarli correttamente al mondo del trading.

DataTrading vuole essere un punto di ritrovo per scambiare esperienze, opinioni ed idee.

TUTORIAL

Di recente abbiamo il deep learning come metodologia per l’addestramento di nuovi modelli di trading quantitativo. Tali modelli hanno dimostrato di essere “irragionevolmente efficaci” nei campi della visione artificiale, dell’elaborazione del linguaggio naturale e dei giochi di strategia. Questo ci motiva a verificare se questi modelli possono essere applicati alle strategie di trading quantitativo.

Finora abbiamo esaminato le basi matematiche  attraverso una nuova serie di articoli sull’algebra lineare per il deep learning , ma non abbiamo ancora descritto i modelli di deep learning al di là di una rapida introduzione alla regressione logistica utilizzando Theano .

Prima di approfondire l’architettura del modello di deep learning, è necessario creare un ambiente di ricerca da usare per l’addestramento dei modelli prima della loro aggiunta in un’infrastruttura di trading. Questo articolo motiva la necessità di hardware specializzato. Fornisce anche un’analisi sull’opportunità di acquistare direttamente questo hardware o noleggiarlo da un fornitore di cloud computing.

I modelli di deep learning sono incredibilmente ad alta intensità di calcolo. I tempi di addestramento su hardware non ottimizzato possono essere dell’ordine di settimane o mesi. Questo periodo di tempo può rallentare rapidamente la natura iterativa della ricerca sul trading quantitativo e impedire l’implementazione di strategie potenzialmente redditizie.

A causa della forte dipendenza dalle routine di base dell’algebra lineare, l’allenamento di deep learning è estremamente adatto a una parallelizzazione massiccia. Quindi è un candidato perfetto per l’esecuzione su le unità di elaborazione grafica (GPU). Le GPU sono architetture hardware specializzate, originariamente progettate per la grafica di videogiochi in tempo reale, e ora sono diventate una piattaforma HPC (High Performance Computing) matura.

Le GPU possono ridurre i tempi di addestramento di un fattore significativo e sono quasi uno strumento essenziale per i seri professionisti del deep learning. Tuttavia, le stesse GPU, così come l’hardware necessario per gestirle efficacemente, rappresentano un investimento significativo. Oltre a questo, i trader quantitativi hanno requisiti molto diversi, a seconda della frequenza del trading, degli asset in gestione e se il capitale viene gestito in modo istituzionale o tramite un conto retail personale.

Questo articolo è in gran parte scritto per i trader retail che possiedono il tempo e il capitale per investire in ricerca e sviluppo di deep learning come mezzo per diversificare un portafoglio di strategie. Tuttavia, dovrebbe essere utile anche ai piccoli investitori istituzionali nei fondi che stanno valutando una componente di deep learning nella loro offerta.

Per coloro che hanno budget più modesti, non si dovrebbe investire una grande quantità di denaro nella immediata creazione di un’infrastruttura di deep learning di fascia alta. Dal momento che la potenza di calcolo del deep learning è diventata una risorsa così mercificata, è molto semplice “provare prima di acquistare” utilizzando i fornitori di cloud. Una volta acquisita maggiore esperienza sui modelli di  addestramento, insieme a un solido piano di ricerca sul trading quantitativo, le specifiche hardware e l’esborso finanziario possono essere adattati alle tue esigenze specifiche.

Affitto vs acquisto

Dopo aver stabilito la necessità di hardware GPU, il compito successivo è determinare se noleggiare  dal “cloud” le risorse di elaborazione GPU o se acquistare una workstation desktop GPU locale.

La risposta dipende fortemente dal tipo di modelli addestrati, dallo spazio dei parametri (iper) ricercati, dal costo dell’elettricità nella tua località, dalla  corrente configurazione dei dati di trading algoritmici insieme alle tue preferenze personali e allo stile di ricerca.

Noleggio di GPU tramite le istanze P2 di Amazon Web Services

Il confronto di una selezione trasversale di fornitori di cloud va oltre lo scopo di un articolo come questo. È probabile che qualsiasi informazione su prezzi e prestazioni diventi obsoleta, in particolare in un campo in rapida evoluzione come quello del deep learning. Quindi abbiamo deciso di prendere in considerazione Amazon Web Services, uno dei principali fornitori (se non il principale fornitore), tramite la loro piattaforma Elastic Compute Cloud (EC2) .

La piattaforma EC2 offre un’ampia gamma di tipi di istanze. Siamo particolarmente interessati alle istanze P2 disponibili in Accelerated Computing Instances. In questo momento sono disponibili tre istanze, vale a dire p2.xlarge, p2.8xlarge e p2.16xlarge. Variano nella quantità di GPU, unità CPU virtuali e RAM disponibile. Attualmente hanno un prezzo, nel blocco US East/Ohio con valori spot, rispettivamente di $ 0,90/ora, $ 7,20/ora e $ 14,40/ora.

Ad esempio, l’uso continuo della macchina p2.xlarge, che contiene una singola GPU Nvidia K80 con 12 GB di RAM video integrata, costerà circa $ 650 al mese. Da notare che questo include il prezzo dell’elettricità. Ci sono altri costi da tenere in considerazione, come il trasferimento dei dati da EC2 e il costo dell’Elastic Block Storage (EBS) necessario per archiviare sia il sistema operativo che i set di dati di deep learning. Tutti questi costi dovranno essere considerati al momento del noleggio.

Nonostante ciò, è ragionevolmente semplice configurare un’istanza GPU e sarà oggetto di un prossimo articolo. Tuttavia, poiché queste istanze sono server Linux anziché desktop, vengono eseguite headless cioè significa che l’unico modo per accedervi è tramite uno strumento come SSH. Quindi tutto il lavoro deve essere eseguito da riga di comando. Questo è un bel cambiamento per coloro che sono abituati a un ambiente locale  con Windows desktop.

Un altro importante vantaggio del noleggio è che una volta che il modello è stato addestrato, può essere esportato e l’istanza GPU può essere terminata. Il modello può quindi essere eseguito altrove su hardware molto più economico (possibilmente on locale). Questo non è il caso delle macchine locali in cui tutto il costo è anticipato. Quindi, una volta terminata la ricerca sul deep learning, potresti rimanere con una macchina di deep learning ad alta potenza senza farci nulla!

Acquisto di una workstation desktop locale abilitata per GPU

L’acquisto di un sistema di deep learning completo sta diventando sempre più popolare a causa delle significative riduzioni di prezzo delle GPU retail. Mentre i motivi per scegliere una specifica GPU sono lasciati per un altro articolo (vedi qui per un’ampia discussione), è possibile consigliare una o due schede. In particolare la Nvidia GeForce GTX 1080 Ti, con 11Gb di VRAM, è attualmente in vendita a circa $700. Per chi ha un budget limitato la Geforce GTX 1060, versione 3Gb VRAM, è attualmente in vendita a circa $250. Quest’ultima ha una memoria video significativamente inferiore, che può limitare le dimensioni del singolo modello.

Il principale vantaggio dell’acquisto rispetto al noleggio è che tutti i costi, ad eccezione dell’elettricità, vengono pagati in anticipo. È ora possibile creare workstation di ricerca di deep learning entry-level per meno di $ 1.000 . Tuttavia si consiglia di spendere circa $ 2.000 per una macchina ragionevolmente che duri nel tempo, poiché consente l’inclusione di un singolo 1080 Ti. Un secondo 1080 Ti può essere aggiunto in futuro, se il budget lo consente.

Anche la possibilità di personalizzare l’hardware è vantaggiosa. Ottenendo un case per workstation di grandi dimensioni è possibile espandere a buon mercato la capacità di archiviazione interna, il che è estremamente utile se si eseguono modelli affamati di dati o si desidera una replica locale di un database master dei titoli . Potrebbe anche essere un requisito necessario nell’organizzazione per cui lavori, che potrebbe impedire l’utilizzo delle risorse cloud per motivi di sicurezza.

Gli svantaggi dell’acquisto e della costruzione di una workstation di deep learning sono i costi iniziali e la necessità di costruirla da soli. Al giorno d’oggi è relativamente semplice costruire una workstation partendo dai singoli componenti. Non dovrebbero volerci più di un paio d’ore per ottenere un’installazione funzionante di Ubuntu.

Tuttavia, la configurazione degli attuali popolari stack software di deep learning può essere problematica. L’installazione di Nvidia CUDA e Tensorflow è un esercizio impegnativo anche sulle ultime versioni di Ubuntu (al momento in cui scrivo 18.04 LTS è una scelta popolare). Per questo dedichiamo un intero articolo su questo processo in un secondo momento.

Prossimi passi

Per coloro che sono interessati a “provare prima di acquistare”, il prossimo articolo mostra come eseguire il provisioning di un’istanza AWS EC2 P2.xlarge a $ 0,90/ora e descrive il processo per l’installazione di Tensorflow e Keras.

Torna su