Modelli e piattaforme di IA
La fibra di Uber è un nuovo framework di formazione del modello di intelligenza artificiale distribuito
Secondo VentureBeat, i ricercatori di intelligenza artificiale di Uber hanno recentemente pubblicato un articolo su Arxiv che descrive una nuova piattaforma progettata per assistere nella creazione di modelli di intelligenza artificiale distribuiti. La piattaforma si chiama Fiber e può essere utilizzata per eseguire sia compiti di apprendimento per rinforzo che di apprendimento basato su popolazione. Fiber è progettata per rendere più accessibile la computazione parallela su larga scala ai non esperti, consentendo loro di sfruttare il potere degli algoritmi e dei modelli di intelligenza artificiale distribuiti.
Fiber è stato recentemente reso open-source su GitHub e è compatibile con Python 3.6 o successivo, con Kubernetes in esecuzione su un sistema Linux e in esecuzione in un ambiente cloud. Secondo il team di ricercatori, la piattaforma può facilmente scalare fino a centinaia o migliaia di macchine individuali.
Il team di ricercatori di Uber spiega che molti dei progressi più recenti e rilevanti nell’intelligenza artificiale sono stati guidati da modelli più grandi e da più algoritmi addestrati utilizzando tecniche di addestramento distribuito. Tuttavia, la creazione di modelli basati su popolazione e di modelli di apprendimento per rinforzo rimane un compito difficile per gli schemi di addestramento distribuito, poiché spesso presentano problemi di efficienza e flessibilità. Fiber rende il sistema distribuito più affidabile e flessibile combinando il software di gestione del cluster con la scalabilità dinamica e consentendo agli utenti di spostare i loro lavori da una macchina a un gran numero di macchine in modo trasparente.
Fiber è composto da tre componenti diversi: un’API, un backend e un livello di cluster. Il livello API consente agli utenti di creare elementi come code, gestori e processi. Il livello backend di Fiber consente all’utente di creare e terminare lavori gestiti da cluster diversi, e il livello di cluster gestisce i cluster individuali e le relative risorse, riducendo notevolmente il numero di elementi che Fiber deve tenere traccia.
Fiber consente di mettere in coda e eseguire lavori in remoto su una macchina locale o su molte macchine diverse, utilizzando il concetto di processi supportati da lavori. Fiber utilizza anche contenitori per garantire che elementi come i dati di input e i pacchetti dipendenti siano autocontenuti. Il framework Fiber include anche una gestione degli errori integrata, in modo che se un lavoratore si blocca, possa essere rapidamente riavviato. Fiber può fare tutto ciò interagendo con i gestori del cluster, consentendo alle applicazioni Fiber di eseguire come se fossero applicazioni normali in esecuzione su un cluster di computer dato.
I risultati sperimentali hanno mostrato che in media il tempo di risposta di Fiber era di pochi millisecondi e che ha anche scalato meglio delle tecniche di intelligenza artificiale di base quando costruito con 2.048 core/worker del processore. Il tempo necessario per completare i lavori è diminuito gradualmente con l’aumentare del numero di worker. IPyParallel ha completato 50 iterazioni di addestramento in circa 1400 secondi, mentre Fiber ha completato le stesse 50 iterazioni di addestramento in circa 50 secondi con 512 worker disponibili.
I coautori del documento Fiber spiegano che Fiber può raggiungere molti obiettivi, come la scalabilità dinamica degli algoritmi e l’utilizzo di grandi volumi di potenza di calcolo:
“[Il nostro lavoro mostra] che Fiber raggiunge molti obiettivi, tra cui sfruttare efficientemente una grande quantità di hardware di calcolo eterogeneo, scalare dinamicamente gli algoritmi per migliorare l’efficienza dell’utilizzo delle risorse, ridurre l’onere ingegneristico necessario per far funzionare gli algoritmi di apprendimento per rinforzo e di apprendimento basato su popolazione sui cluster di computer, e adattarsi rapidamente a diversi ambienti di calcolo per migliorare l’efficienza della ricerca. Ci aspettiamo che ciò consenta ulteriori progressi nella risoluzione di problemi difficili di apprendimento per rinforzo con algoritmi di apprendimento per rinforzo e metodi basati su popolazione, rendendo più facile sviluppare questi metodi e addestrarli alle scale necessarie per farli realmente brillare”












