IBM ha annunciato di aver sviluppato e contribuito al progetto di apprendimento automatico open source PyTorch per consentire alla tecnologia di funzionare in modo più efficiente con reti basate su Ethernet commodity. IBM ha anche creato un operatore open source che aiuta a ottimizzare l’implementazione di PyTorch sulla piattaforma Red Hat OpenShift, basata sul progetto open source Kubernetes cloud container orchestration.
I modelli di base hanno il potenziale per cambiare il modo in cui le organizzazioni costruiscono l’intelligenza artificiale (AI) e si addestrano con l’apprendimento automatico (ML). Una sfida fondamentale per la creazione di modelli di fondazione è che, fino ad oggi, hanno generalmente richiesto l’uso di tipi specifici di hardware di rete e infrastruttura per funzionare in modo efficiente. C’è stato anche un supporto limitato per gli sviluppatori che desiderano costruire un modello di base con uno stack interamente open source. È una sfida che IBM Research sta cercando di aiutare a risolvere in diversi modi.
“La nostra domanda era: possiamo addestrare modelli di fondazione in modo tale da farlo su hardware di base? E renderlo più accessibile piuttosto che essere solo nelle mani di pochi ricercatori selezionati?”, afferma Raghu Ganti, membro principale dello staff di ricerca di IBM.
Come IBM ha contribuito a estendere PyTorch
Ad oggi, molti modelli di base sono addestrati su hardware che supporta lo stack di rete InfiniBand, che in genere si trova solo su hardware HPC (High Performance Computing). Mentre le GPU sono il fondamento dell’AI, al fine di ottenere più GPU per connettersi tra loro, c’è bisogno di una tecnologia di rete ad alte prestazioni. Ganti ha spiegato che è possibile addestrare modelli di grandi dimensioni senza la rete InfiniBand, ma è inefficiente in diversi modi.
Ad esempio, con la tecnologia PyTorch predefinita, l’addestramento di un modello da 11 miliardi di parametri, su una rete basata su Ethernet, potrebbe essere eseguito con solo il 20% di efficienza GPU. Migliorare questa efficienza è ciò che IBM ha fatto insieme alla comunità PyTorch.
Occorre assicurarsi che ci sia un utilizzo ottimizzato della GPU e della rete. Ganti ha affermato che l’obiettivo è quello di tenere occupati contemporaneamente sia la rete che la GPU per accelerare il processo di formazione complessivo.
Il codice per rendere PyTorch ottimizzato per funzionare meglio su Ethernet è stato unito all’aggiornamento PyTorch 1.13, disponibile dal 28 ottobre.
“Siamo stati in grado di passare dal 20% di utilizzo della GPU fino al 90%, e questo è come un miglioramento di 4,5 volte in termini di velocità di allenamento“, afferma Ganti.
Cambiare PyTorch per un allenamento più rapido
Oltre ai miglioramenti del codice in PyTorch, IBM ha anche lavorato per abilitare la piattaforma open source Red Hat OpenShift Kubernetes per supportare lo sviluppo di modelli di fondazione.
Ganti ha detto che parte di ciò che hanno fatto è garantire che qualsiasi larghezza di banda massima che la rete Ethernet può fornire sia esposta a livello di pod in OpenShift.
L’uso di Kubernetes per addestrare i modelli di base non è un’idea nuova. OpenAI, che è l’organizzazione dietro alcuni dei modelli più utilizzati, tra cui GPT-3 e DALL-E, ha discusso pubblicamente di come utilizza Kubernetes. Ciò che IBM afferma essere nuovo è avere la tecnologia per farlo disponibile come open source. IBM ha reso open source un operatore Kubernetes che fornisce la configurazione necessaria per aiutare le organizzazioni a scalare un cluster per supportare il training di modelli di grandi dimensioni.
Con la PyTorch Foundation è ora possibile una maggiore innovazione open source
Fino a settembre, PyTorch era stato gestito come un progetto open source gestito da Meta. Dal 12 settembre, quando la PyTorch Foundation è diventata un nuovo ente organizzativo gestito dalla Linux Foundation, ciò è cambiato.
Secondo Ganti, lo sforzo di IBM per contribuire al codice in PyTorch in realtà è iniziato prima dell’annuncio della nuova PyTorch Foundation. Sotto la governance di Meta, IBM in realtà non poteva impegnare direttamente il codice nel progetto. Invece il codice doveva essere impegnato da membri dello staff di Meta che avevano accesso.
Ganti si aspetta che sotto la guida della Linux Foundation, PyTorch diventerà più collaborativo e aperto.