Dietro ogni applicazione di intelligenza artificiale c'è un'infrastruttura specifica che consente di mettere a disposizione tool e servizi agli utenti nel modo più efficiente possibile. Man mano che i modelli di IA diventeranno sempre più grandi e potenti, necessiteranno di uno stack robusto capace di bilanciare performance, costi e sicurezza.
Emily Zhao di Salesforce Ventures ha messo in luce l'importanza di conoscere l'architettura di IA approfondendo le componenti base dello stack e il loro ruolo nel processo di innovazione. Zhao spiega che nello stack di IA sono tre elementi fondamentali che bisogna conoscere per comprendere il funzionamento dell'infrastruttura: le GPU, il software che permette l'uso delle GPU e i provider cloud che uniscono l'hardware al software.
Le GPU
Le GPU, sottolinea Salesforce, sono l'hardware che consente l'esecuzione dell'IA. Rispetto alle CPU, le GPU sono specializzate per computazioni numeriche parallele, necessarie per task di deep learning.
Vista la loro importanza per le esecuzioni di IA, le GPU sono diventate di grande interesse per il mercato: oltre alle grandi compagnie come NVIDIA, la quale detiene l'80% delle quote di mercato, AMD e Intel, ci sono anche diverse startup che stanno cercando di inserirsi nel mondo del design dei chip.
Queste piccole realtà si focalizzano per lo più sull'ottimizzazione del design per casi d'uso, problemi o carichi di lavoro specifici.
Il software per le GPU
Salendo di un livello, un'altra componente fondamentale dello stack di IA è il software che interagisce coi nodi, i rack e i cluster delle GPU per abilitare la computazione.
Di questo livello fanno parte diversi tipi di software, primi tra tutti i sistemi operativi che gestiscono l'esecuzione di processi e thread tra CPU e GPU, allocando correttamente la memoria e le risorse di input-output.
Ci sono poi i driver per le GPU che controllano direttamente l'hardware delle unità e i software di gestione dei cluster e schedulazione dei job che si occupano di allocare le risorse di computazione in base alle richieste dei carichi di lavoro e alla disponibilità delle GPU.
A seguire troviamo tool di provisioning, come Docker e Singularity, che mettono a disposizione container e ambienti isolati per le applicazioni che garantiscono anche la portabilità in diversi ambienti.
Altri software fondamentali sono quelli usati per il monitoraggio che tracciano diverse metriche relative alle operazioni di IA. Salesforce elenca Prometheus, Grafana ed Elastic Stack tra i tool di questo più utilizzati.
Di questo livello fanno parte anche i framework di deep learning ideati specificamente per trarre il massimo vantaggio dall'hardware. Queste librerie, come PyTorch e TensorFlow, consentono di sviluppare algoritmi ottimizzati e adatti a diversi task.
Infine, i compilatori come NVCC e HCC/HIP permettono di sviluppare codice ottimizzato per le GPU.
La scelta dei software più adatti per la gestione dell'hardware consente di utilizzare al meglio le risorse a disposizione. La giusta combinazione di hardware/software dipende dal tipo di lavoro da eseguire e deve essere studiata a dovere per limitare lo spreco di risorse e massimizzare la produttività.
I diversi tipi provider cloud
Oggi sul mercato esistono tre tipi di provider cloud GPU: gli hyperscaler, come AWS; Google Cloud o Azure; i provider specializzati, come Crusoe o RunPod; infine, i provider Interference-as-a-Service/Serverless Endpoint, come Baseten o Anyscale.
Gli hyperscaler sono fornitori di cloud che gestiscono data center distribuiti a livello globale e offrono un'ampia gamma di servizi di elaborazione. Negli ultimi anni, in particolare con la diffusione dell'IA, questi fornitori hanno ampliato la loro offerta concentrandosi anche sulle GPU.
Gli hyperscaler possiedono le proprie GPU e in molti casi le co-locano ad altri operatori. I fornitori possono offrire diversi tipi di software, dalla gestione di cluster a tool per astrazioni di livello superiore.
I fornitori di cloud specializzati sono, come dice il nome, focalizzati su infrastrutture specifiche per la gestione di GPU per carichi di lavoro di IA e ad alte performance. Questi provider offrono sia cluster GPU bare-metal che con un layer software e di virtualizzazione.
Questi due tipi di provider richiedono investimenti di una certa entità che non tutte le imprese possono affrontare; per questo, negli ultimi anni stanno emergendo dei fornitori che ricadono sotto la categoria "Inference-as-a-Service" o "Serverless Endpoint", i quali offrono software di astrazione che consentono ai clienti di interagire solo con gli endpoint dove i modelli sono già ottimizzati e pronti per l'inferenza.
Generalmente questi provider usano le GPU degli altri fornitori e di fatto rappresentano un livello di astrazione ulteriore tra gli hyperscaler o i fornitori specializzati e gli utenti.
Ai clienti di queste compagnie non serve conoscere le configurazioni utilizzate e usano il software a disposizione per attività come l'autoscaling o il miglioramento delle performance.
L'offerta di queste compagnie si rivela particolarmente adatta per le startup: invece di dover selezionare l'istanza della GPU, installare il software necessario e creare un container per il modello, le aziende si limitano a selezionare il modello più adatto ai loro scopi tra quelli disponibili, eseguirlo e integrarlo nelle applicazioni di IA.
Comprendere l'organizzazione dell'infrastruttura di IA e i diversi tool e attori coinvolti è fondamentale per le aziende per individuare le opzioni migliori che ottimizzano gli investimenti e permettono di sfruttare al meglio le capacità dell'intelligenza artificiale.
"La comprensione di questi tre elementi - come funzionano, come vengono forniti e come si presenta il mercato - aiuterà investitori e innovatori a lavorare in modo più efficace e a identificare nuove opportunità" afferma Zhao.