DeepMind è uno dei contributori più attivi agli stack di deep learning open source.
Il sistema continuo di ricompensa e rimprovero dell’apprendimento per rinforzo ha fatto molta strada dai suoi primi giorni. Sebbene la tecnica abbia richiesto tempo per svilupparsi e non abbia l’applicazione più semplice, è alla base di alcuni dei più importanti progressi dell’IA, come il software di guida autonoma leader nei veicoli autonomi e l’IA che accumula vittorie in giochi come il poker. Gli algoritmi di apprendimento per rinforzo come AlphaGo e AlphaZero sono stati in grado di eccellere in un gioco come Go semplicemente giocando da solo. Nonostante le sfidecoinvolgendo l’apprendimento per rinforzo, è il metodo più vicino all’apprendimento cognitivo umano. Fortunatamente, a parte il dominio dei giochi, che è più competitivo e all’avanguardia, c’è un numero crescente di framework di apprendimento per rinforzo che sono ora pubblicamente disponibili.
OpenSpiel di DeepMind
DeepMind è uno dei contributori più attivi agli stack di deep learning open source . Già nel 2019, DeepMind di Alphabet ha introdotto un framework di apprendimento per rinforzo orientato al gioco, chiamato OpenSpiel . Fondamentalmente, il framework contiene un pacchetto di ambienti e algoritmi che possono aiutare con la ricerca nell’apprendimento per rinforzo generale, specialmente nel contesto dei giochi. OpenSpiel fornisce strumenti per la ricerca e la pianificazione nei giochi, nonché l’analisi delle dinamiche di apprendimento e altre metriche di valutazione comuni.
Il framework supporta più di 20 tipi di giochi singoli e multi-agente, inclusi giochi collaborativi, a somma zero, giochi one-shot e giochi sequenziali. Cioè, oltre a giochi rigorosamente a turni, giochi d’asta, giochi a matrice e giochi a movimento simultaneo, oltre a giochi perfetti (in cui i giocatori sono perfettamente informati di tutti gli eventi che si sono verificati in precedenza al momento di prendere una decisione) e informazioni imperfette giochi (in cui le decisioni vengono prese simultaneamente).
Gli sviluppatori hanno mantenuto la semplicità e il minimalismo come etica principale durante la creazione di OpenSpiel, grazie al quale utilizza implementazioni di riferimento invece di codici completamente ottimizzati e ad alte prestazioni. Il framework ha anche dipendenze minime e mantiene le impronte di installazione al minimo, riducendo la possibilità di problemi di compatibilità. Il framework è inoltre facilmente installabile e facile da comprendere ed estendere.
OpenAI Gym
OpenAI ha creato Gym con l’intenzione di mantenere un toolkit che sviluppa e confronta algoritmi di apprendimento per rinforzo . È una libreria Python che contiene un vasto numero di ambienti di test in modo che gli utenti possano scrivere algoritmi generali e testarli sull’interfaccia condivisa degli algoritmi dell’agente RL di Gym . La palestra ha ambienti specifici che sono organizzati in uno stile agente ambientale. Ciò significa che il framework offre all’utente l’accesso a un agente in grado di eseguire determinate azioni in un ambiente. Una volta che esegue l’azione, Gym ottiene l’osservazione e la ricompensa come reazione all’azione intrapresa.
Gli ambienti che offre Gym sono: Algoritmico, Atari , controllo classico e testo giocattolo, robot 2D e 3D . Gym nasce per colmare la lacuna presente nella standardizzazione degli ambienti utilizzati nelle varie pubblicazioni. Una piccola modifica nella definizione del problema, come la ricompensa o le azioni, può aumentare il livello di difficoltà dell’attività. Inoltre, c’era anche la necessità di benchmark migliori poiché i framework RL open source preesistenti non erano sufficientemente diversificati.
TF-Agents di TensorFlow
TF-Agents di TensorFlow è stato creato come paradigma dell’infrastruttura open source per aiutare a creare algoritmi RL paralleli su TensorFlow. Il framework fornisce vari componenti che corrispondono alle parti principali di un problema RL per aiutare gli utenti a progettare e implementare facilmente algoritmi.
Invece di effettuare singole osservazioni, la piattaforma simula due ambienti paralleli ed esegue invece il calcolo della rete neurale su un batch. Ciò elimina la necessità della sincronizzazione manuale e consente al motore TensorFlow di parallelizzare il calcolo. Tutti gli ambienti all’interno del framework vengono creati utilizzando processi Python separati.
ReAgent di Meta AI
Meta AI ha rilasciato ReAgent nel 2019 come toolkit per costruire modelli che potrebbero essere utilizzati per guidare il processo decisionale in situazioni di vita reale. Coniato dopo aver combinato i termini “ragionamento” e “agenti”, il framework è attualmente utilizzato dalla piattaforma di social media Facebook per prendere milioni di decisioni ogni giorno.
ReAgent viene utilizzato per tre risorse principali: modelli che prendono decisioni sulla base del feedback, un modulo offline per valutare le prestazioni dei modelli prima che entrino in produzione e una piattaforma che distribuisce modelli su larga scala, raccoglie feedback e itera i modelli velocemente.
ReAgent è stato costruito sulla prima piattaforma RL end-to-end open source concepita per ottimizzare i sistemi su larga scala chiamata Horizon . Mentre Horizon poteva essere impiegato solo in modelli che erano in via di sviluppo invece di modelli esistenti, ReAgent è stato creato come una minuscola libreria C++ e poteva essere incorporato in qualsiasi applicazione.
Fiber di Uber AI
Con il moltiplicarsi delle attività di apprendimento automatico, si è moltiplicata anche la richiesta di potenza di calcolo. Per aiutare a risolvere questo problema, Uber AI ha rilasciato Fiber , una libreria basata su Python che funziona con i cluster di computer. La fibra è stata sviluppata con l’idea iniziale di alimentare progetti di calcolo parallelo su larga scala all’interno di Uber stesso.
La fibra è paragonabile a ipyparallel, che è iPython per il calcolo parallelo, spark e la normale libreria di multiprocessing Python . La ricerca condotta da Uber AI ha mostrato che quando i compiti erano più brevi, la fibra ha superato le sue alternative. Per poter funzionare su diversi tipi di sistemi di gestione dei cluster, Fiber è stata suddivisa in tre livelli: livello API, livello back-end e livello cluster.
La fibra è anche abile nella gestione degli errori nei pool. Una volta creato un nuovo pool, vengono create una coda attività, una coda dei risultati e una tabella in sospeso associate. Ogni nuova attività viene aggiunta alla coda che viene quindi condivisa tra i processi master e di lavoro. Un utente preleva un’attività dalla coda e quindi esegue le funzioni all’interno di tale attività. Una volta eseguita un’attività dalla coda delle attività, viene aggiunta una voce alla tabella in sospeso.