Infrastruttura di Deep Learning basata su GPU per il Trading

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

Di recente abbiamo introdotto il deep learning come metodologia per addestrare nuovi modelli di trading quantitativo. Questi modelli si sono rivelati “irragionevolmente efficaci” nella visione artificiale, nell’elaborazione del linguaggio naturale e nei giochi strategici. Descriviamo ora l’infrastruttura di deep learning necessaria per impiegare e addestrare modelli per strategie di trading quantitativo.

Infrastruttura di Deep Learning

Prima di esplorare l’architettura dei modelli di deep learning, configuriamo un ambiente di ricerca per addestrare i modelli prima di integrarli in un’infrastruttura di trading. Dobbiamo comprendere l’importanza dell’hardware specializzato in una infrastruttura di deep learning ed analizzare se conviene acquistarlo o noleggiarlo da un provider cloud.

I modelli di deep learning richiedono una potenza di calcolo elevatissima. Addestrarli su hardware non ottimizzato può richiedere settimane o addirittura mesi. Questo rallenta il ciclo iterativo della ricerca sul trading quantitativo e limita l’implementazione di strategie potenzialmente redditizie.

Poiché ci basiamo fortemente sulle routine fondamentali dell’algebra lineare, possiamo sfruttare la parallelizzazione massiccia durante l’addestramento. Per questo motivo utilizziamo le GPU, ovvero unità di elaborazione grafica, nate per la grafica dei videogiochi ma ora fondamentali per l’High Performance Computing (HPC).

Le GPU

Le GPU ci permettono di ridurre significativamente i tempi di addestramento e risultano quasi indispensabili per lavorare seriamente con il deep learning. Tuttavia, rappresentano un investimento importante, così come l’hardware che le supporta. Le nostre esigenze cambiano in base alla frequenza di trading, al tipo di asset gestiti e alla natura del capitale, sia esso istituzionale o retail.

Questa lezione è pensata soprattutto per i trader retail con tempo e capitale da destinare alla ricerca e sviluppo nel deep learning, ma può essere utile anche a piccoli fondi istituzionali interessati a integrare il deep learning nella loro offerta.

Con un budget limitato, preferiamo non investire subito in una infrastruttura di deep learning costosa. Oggi possiamo “provare prima di acquistare” grazie ai fornitori cloud. Dopo aver acquisito esperienza e definito un piano di ricerca solido, possiamo adattare hardware e spese alle nostre necessità.

Affitto vs acquisto

Una volta chiarita la necessità di utilizzare GPU nella nostra infrastruttura di trading, decidiamo se noleggiare risorse GPU dal cloud oppure acquistare una workstation desktop locale con supporto GPU.

La scelta dipende dal tipo di modelli che addestriamo, dallo spazio iperparametrico, dal costo dell’elettricità, dalla nostra infrastruttura dati attuale e dal nostro stile di lavoro.

Noleggio di GPU tramite le istanze P2 di Amazon Web Services

Un confronto tra i vari provider cloud va oltre questa lezione. Poiché prezzi e prestazioni cambiano rapidamente, ci concentriamo su Amazon Web Services, uno dei principali provider, attraverso la piattaforma Elastic Compute Cloud (EC2).

EC2 ci offre un’ampia varietà di tipi di istanze. Le istanze P2, parte delle Accelerated Computing Instances, ci interessano particolarmente. Troviamo tre opzioni: p2.xlarge, p2.8xlarge e p2.16xlarge. Differiscono per numero di GPU, CPU virtuali e RAM. I prezzi spot nella regione US East/Ohio sono di $0,90/ora, $7,20/ora e $14,40/ora rispettivamente.

Ad esempio, una p2.xlarge con GPU Nvidia K80 e 12 GB di VRAM costa circa $650 al mese per uso continuo, elettricità inclusa. Consideriamo anche altri costi, come trasferimento dati da EC2 e spazio EBS per sistema operativo e dataset. Dobbiamo tenerli presenti nel nostro bilancio.

Nonostante ciò, configuriamo facilmente un’istanza GPU, argomento che approfondiremo in una prossima lezione. Queste istanze, essendo server Linux, funzionano in modalità headless, quindi le gestiamo solo da riga di comando con strumenti come SSH. Questo rappresenta un cambiamento per chi è abituato a lavorare su desktop Windows.

Uno dei vantaggi principali del noleggio consiste nel fatto che, una volta completato l’addestramento, possiamo esportare il modello e spegnere l’istanza GPU. In seguito possiamo eseguire il modello su hardware più economico, anche in locale. Diversamente, con una macchina locale l’investimento è tutto anticipato e potremmo ritrovarci con una workstation inutilizzata al termine della ricerca.

Acquisto di una workstation desktop locale abilitata per GPU

Negli ultimi anni l’acquisto di una infrastruttura di deep learning è diventato più accessibile grazie al calo dei prezzi delle GPU retail. Anche se affronteremo in dettaglio la scelta della GPU in un’altra lezione (vedi qui), consigliamo alcune schede. La Nvidia GeForce GTX 1080 Ti con 11GB di VRAM costa circa $700. Per budget ridotti, la GTX 1060 da 3GB si trova a circa $250, ma la memoria limitata può ridurre la dimensione dei modelli gestibili.

Il vantaggio principale dell’acquisto rispetto al noleggio è che paghiamo tutto in anticipo, eccetto l’elettricità. Possiamo costruire una workstation per meno di $1.000, ma consigliamo di spendere circa $2.000 per una macchina duratura, includendo una 1080 Ti. Se il budget lo consente, aggiungiamo in futuro una seconda scheda.

Personalizzare l’hardware rappresenta un altro vantaggio. Con un case ampio possiamo espandere facilmente lo storage, utile per dataset voluminosi o per ospitare una replica locale di un database master dei titoli. In alcune aziende è necessario evitare il cloud per motivi di sicurezza, quindi una soluzione locale diventa obbligatoria.

Gli svantaggi dell’acquisto includono il costo iniziale e la necessità di assemblare il sistema. Fortunatamente, oggi possiamo costruire facilmente una workstation partendo dai componenti. In un paio d’ore otteniamo un’installazione Ubuntu funzionante.

Configurare gli attuali stack software di deep learning può comunque essere complesso. Installare Nvidia CUDA e Tensorflow richiede impegno, anche con le ultime versioni di Ubuntu (al momento, la 18.04 LTS è molto usata). Per questo motivo dedicheremo un’intera lezione a questo argomento.

Conclusione

La scelta tra noleggio e acquisto di risorse hardware per il deep learning non ha una risposta univoca: dipende dagli obiettivi specifici, dal budget disponibile e dall’esperienza tecnica dell’utente. Il noleggio tramite provider cloud come AWS offre flessibilità e basso rischio iniziale, ideale per chi è ancora nella fase esplorativa della ricerca. 

Al contrario, l’acquisto di una workstation GPU consente maggiore controllo e risparmi nel lungo periodo, a patto di affrontare l’investimento iniziale e le complessità tecniche dell’assemblaggio e della configurazione software. In entrambi i casi, ciò che conta è sviluppare un’infrastruttura di deep learning efficiente, che consenta iterazioni rapide e affidabili durante la fase di addestramento dei modelli. 

Solo con una base solida sarà possibile integrare efficacemente queste tecnologie nelle strategie di trading quantitativo. Nelle prossime lezioni ci concentreremo sulla configurazione software e sull’ottimizzazione del flusso di lavoro, per completare il nostro ambiente operativo e renderlo produttivo e scalabile.

Torna in alto