ControlNet e StarCoder: progressi della ricerca Roblox per l'intelligenza artificiale generativa - Roblox Blog

ControlNet e StarCoder: progressi della ricerca Roblox per l'intelligenza artificiale generativa – Roblox Blog

Nodo di origine: 2864546

Siamo profondamente impegnati a perseguire una ricerca responsabile e impegnata a livello comunitario in tutti i settori, compresa l'intelligenza artificiale (AI). Raggiungiamo questo obiettivo attraverso la trasparenza, la convalida esterna e il supporto delle istituzioni accademiche attraverso la collaborazione e la sponsorizzazione. Questo approccio ci consente di accelerare il raggiungimento dei maggiori progressi nelle nostre tre aree di interesse: intelligenza artificiale generativa, scalabilità del data center e sicurezza online. Oggi condividiamo approfondimenti e risultati di due dei nostri progetti di ricerca sull'intelligenza artificiale generativa. Rete di controllo è una rete neurale open source che aggiunge il controllo condizionale ai modelli di generazione di immagini per output di immagini più precisi. StarCoder è un modello LLM (Large Language Model) open source all'avanguardia per la generazione di codice. 

Entrambi i progetti sono collaborazioni accademiche e industriali. Entrambi si concentrano anche su strumenti radicalmente più potenti per i nostri creatori: artisti e programmatori 3D. Soprattutto, e in linea con la nostra missione di investire in una prospettiva a lungo termine attraverso la ricerca trasformativa, questi progetti mostrano indicazioni di progressi nella comprensione scientifica fondamentale e nel controllo dell’intelligenza artificiale per molte applicazioni. Crediamo che questo lavoro possa avere un impatto significativo sul futuro di Roblox e del settore nel suo insieme e siamo orgogliosi di condividerlo apertamente.

Rete di controllo

Le recenti scoperte sull’intelligenza artificiale, in particolare i metodi di machine learning (ML) basati sui dati che utilizzano reti neurali profonde, hanno portato a nuovi progressi negli strumenti di creazione. Questi progressi includono il nostro Assistenza al codice ed Generatore di materiale funzionalità disponibili pubblicamente nel nostro strumento gratuito, Roblox Studio. I moderni sistemi di intelligenza artificiale generativa contengono strutture di dati chiamate modelli che vengono perfezionati attraverso miliardi di operazioni di addestramento. I modelli più potenti oggi sono multimodali, nel senso che vengono addestrati su una combinazione di media come testo, immagini e audio. Ciò consente loro di trovare i significati sottostanti comuni tra i media anziché adattarsi eccessivamente a elementi specifici di un set di dati, come tavolozze di colori o ortografia. 

Questi nuovi sistemi di intelligenza artificiale hanno un potere espressivo significativo, ma tale potere è diretto in gran parte attraverso la “pronta ingegneria”. Farlo significa semplicemente modificare il testo di input, in modo simile a perfezionare una query del motore di ricerca se non ha restituito ciò che ti aspettavi. Sebbene questo possa essere un modo coinvolgente per giocare con una nuova tecnologia come un chatbot non indirizzato, non è un modo efficiente o efficace per creare contenuti. I creatori hanno invece bisogno di strumenti potenti che possano sfruttare in modo efficace attraverso il controllo attivo piuttosto che congetture.

Il progetto ControlNet rappresenta un passo avanti verso la risoluzione di alcune di queste sfide. Offre un modo efficiente per sfruttare la potenza di grandi modelli di intelligenza artificiale preaddestrati come Diffusione stabile, senza fare affidamento su una pronta ingegneria. ControlNet aumenta il controllo consentendo all'artista di fornire condizioni di input aggiuntive oltre alle semplici istruzioni di testo. Il ricercatore Roblox e professore dell'Università di Stanford Maneesh Agrawala e il ricercatore di Stanford Lvmin Zhang definiscono gli obiettivi del nostro progetto congiunto ControlNet come:

  1. Sviluppare un'interfaccia utente migliore per gli strumenti di intelligenza artificiale generativa. Vai oltre l'oscura manipolazione immediata e costruisci modi più naturali di comunicare un'idea o un concetto creativo.
  2. Fornire un controllo spaziale più preciso, per andare oltre la creazione di "un'immagine simile" o "un'immagine nello stile di..." per consentire di realizzare esattamente l'immagine che il creatore ha in mente.
  3. Trasforma l'addestramento con intelligenza artificiale generativa in un processo più efficiente dal punto di vista computazionale che viene eseguito più rapidamente, richiede meno memoria e consuma meno energia elettrica.
  4. Estendi l'intelligenza artificiale generativa delle immagini in un elemento costitutivo riutilizzabile. Può quindi essere integrato con pipeline di elaborazione delle immagini e rendering 3D standardizzate. 

Consentendo ai creatori di fornire un'immagine aggiuntiva per il controllo spaziale, ControlNet garantisce un maggiore controllo sull'immagine finale generata. Ad esempio, un prompt di "cervo maschio con corna" su un generatore di testo in immagine esistente ha prodotto un'ampia varietà di immagini, come mostrato di seguito:

Queste immagini generate con le precedenti soluzioni di intelligenza artificiale sono attraenti, ma sfortunatamente i risultati sono essenzialmente arbitrari: non esiste alcun controllo. Sui precedenti sistemi di generazione di immagini non esisteva alcun modo per orientare l'output, tranne che per la revisione del prompt del testo.

Con ControlNet, il creatore ora ha molto più potere. Un modo di utilizzare ControlNet è fornire sia un prompt che un'immagine sorgente per determinare la forma generale da seguire. In questo caso, le immagini risultanti offrirebbero comunque varietà ma, soprattutto, manterrebbero la forma specificata:

Il creatore avrebbe potuto anche specificare una serie di bordi, un'immagine senza alcun suggerimento o molti altri modi per fornire input espressivi al sistema.

Per creare una ControlNet, cloniamo i pesi all'interno della rete di un modello a larga diffusione in due versioni. Uno è il rete addestrabile (questo fornisce il controllo; è "il ControlNet") e l'altro è il rete bloccata. La rete bloccata preserva la capacità appresa da miliardi di immagini e potrebbe essere qualsiasi generatore di immagini precedente. Quindi addestriamo la rete addestrabile su set di dati specifici dell'attività per apprendere il controllo condizionale dall'immagine aggiuntiva. Le copie addestrabili e bloccate sono collegate a un tipo unico di livello di convoluzione che chiamiamo convoluzione zero, dove i pesi di convoluzione crescono progressivamente da zero a parametri ottimizzati in modo appreso, il che significa che inizialmente non hanno alcuna influenza e il sistema ricava il livello ottimale di controllo da esercitare sulla rete bloccata.

Poiché i pesi originali vengono conservati tramite la rete bloccata, il modello funziona bene con set di dati di addestramento di varie dimensioni. E lo strato a convoluzione zero rende il processo molto più veloce, più vicino alla messa a punto di un modello di diffusione che all’addestramento di nuovi strati da zero. 

Abbiamo eseguito un'ampia convalida di questa tecnica per la generazione di immagini. ControlNet non si limita a migliorare la qualità dell'immagine di output. Inoltre, rende la formazione di una rete per un compito specifico più efficiente e quindi pratica da implementare su larga scala per i nostri milioni di creatori. Negli esperimenti, ControlNet fornisce un guadagno di efficienza fino a 10 volte rispetto a scenari alternativi che richiedono il riaddestramento completo di un modello. Questa efficienza è fondamentale, poiché il processo di creazione di nuovi modelli richiede tempo e molte risorse rispetto allo sviluppo di software tradizionale. Rendere la formazione più efficiente consente di risparmiare energia elettrica, ridurre i costi e aumentare la velocità con cui è possibile aggiungere nuove funzionalità.

La struttura unica di ControlNet significa che funziona bene con set di dati di addestramento di varie dimensioni e su molti tipi diversi di media. È stato dimostrato che ControlNet funziona con molti tipi diversi di modalità di controllo, tra cui foto, scarabocchi disegnati a mano e posa aperta rilevamento della posa. Riteniamo che ControlNet possa essere applicato a molti tipi diversi di media per contenuti di intelligenza artificiale generativa. Questo la ricerca è aperta e disponibile al pubblico affinché la comunità possa sperimentare e sviluppare, e continueremo a presentare più informazioni man mano che facciamo più scoperte con esse.

StarCoder

L’intelligenza artificiale generativa può essere applicata per produrre immagini, audio, testo, codice sorgente di programmi o qualsiasi altra forma di rich media. Nei diversi media, tuttavia, le applicazioni con i maggiori successi tendono ad essere quelle per le quali il risultato viene giudicato soggettivamente. Ad esempio, un'immagine ha successo quando piace a uno spettatore umano. Alcuni errori nell'immagine, come strane caratteristiche sui bordi o addirittura un dito in più su una mano, potrebbero non essere notati se l'immagine complessiva è convincente. Allo stesso modo, una poesia o un racconto possono contenere errori grammaticali o alcuni salti logici, ma se l’essenza è convincente, tendiamo a perdonarli. 

Un altro modo di considerare i criteri soggettivi è che lo spazio dei risultati è continuo. Un risultato può essere migliore di un altro, ma non esiste una soglia specifica oltre la quale il risultato è completamente accettabile o inaccettabile. Per altri ambiti e forme di media l'output è giudicato oggettivamente. Ad esempio, il codice sorgente prodotto da un assistente di programmazione con intelligenza artificiale generativa è corretto oppure no. Se il codice non riesce a superare un test, fallisce, anche se è simile al codice di una soluzione valida. Questo è uno spazio dei risultati discreto. È più difficile avere successo in uno spazio discreto sia perché i criteri sono più rigorosi sia perché non è possibile avvicinarsi progressivamente a una buona soluzione: il codice viene spezzato fino a quando improvvisamente non funziona.

Gli LLM utilizzati per l'output di testo funzionano bene per applicazioni soggettive e continue come i chatbot. Sembrano funzionare bene anche per la generazione di prosa in molte lingue umane, come l'inglese e il francese. Tuttavia, i LLM esistenti non sembrano funzionare altrettanto bene programmazione lingue come fanno per quelle lingue umane. Il codice è una forma di matematica che rappresenta un modo molto diverso e oggettivo di esprimere il significato rispetto al linguaggio naturale. È uno spazio dei risultati discreto anziché uno spazio dei risultati continuo. Per ottenere la massima qualità di generazione del codice del linguaggio di programmazione per i creatori di Roblox, abbiamo bisogno di metodi di applicazione dei LLM che possano funzionare bene in questo spazio discreto e oggettivo. Abbiamo anche bisogno di metodi robusti per esprimere la funzionalità del codice indipendentemente da una particolare sintassi del linguaggio, come Lua, JavaScript o Python. 

StarCoder, un nuovo LLM open source all'avanguardia per la generazione di codice, rappresenta un grande passo avanti in questa sfida tecnica e un LLM veramente aperto per tutti. StarCoder è uno dei risultati di grande codice consorzio di ricerca, che coinvolge più di 600 membri nei laboratori di ricerca accademici e industriali. Il ricercatore Roblox e professore della Northeastern University Arjun Guha ha contribuito a guidare questo team per sviluppare StarCoder. Questi primi risultati pubblicati si concentrano esclusivamente sull’aspetto del codice, che è l’area in cui il campo necessita maggiormente di una nuova crescita dato il relativo successo dei metodi soggettivi. 

Per fornire un'intelligenza artificiale generativa tramite LLM che supporti l'ecosistema AI più ampio e la comunità Roblox, abbiamo bisogno di modelli che siano stati addestrati esclusivamente su set di dati opportunamente autorizzati e raccolti in modo responsabile. Questi dovrebbero anche avere licenze illimitate in modo che chiunque possa usarli, basarsi su di essi e contribuire all’ecosistema. Oggi, i LLM più potenti sono proprietari o concessi in licenza per forme limitate di uso commerciale, il che vieta o limita la capacità dei ricercatori di sperimentare il modello stesso. Al contrario, StarCoder è un modello veramente aperto, creato attraverso una coalizione di ricercatori industriali e accademici e concesso in licenza senza restrizioni per applicazioni commerciali su qualsiasi scala. StarCoder è addestrato esclusivamente su contenuti raccolti in modo responsabile e opportunamente concessi in licenza. Il modello è stato inizialmente addestrato su codice pubblico ed è disponibile un processo di rinuncia per coloro che preferiscono non utilizzare il proprio codice per l'addestramento.

Oggi StarCoder funziona su 86 diversi linguaggi di programmazione, tra cui Python, C++ e Java. Al momento della pubblicazione dell'articolo, il suo rendimento era superiore a quello di ogni LLM a codice aperto che supporta più lingue ed era persino competitivo con molti dei modelli chiusi e proprietari. 

StarCoder LLM è un contributo all'ecosistema, ma il nostro obiettivo di ricerca va molto più in profondità. L'impatto maggiore di questa ricerca è l'avanzamento della modellazione semantica di modelli multimodali sia oggettivi che soggettivi, inclusi codice, testo, immagini, parlato, video, e l'aumento dell'efficienza della formazione attraverso tecniche di trasferimento di dominio. Ci aspettiamo inoltre di acquisire conoscenze approfondite sulla manutenibilità e controllabilità dell’intelligenza artificiale generativa per attività oggettive come la generazione di codice sorgente. C'è una grande differenza tra un'interessante dimostrazione di tecnologia emergente e un prodotto sicuro, affidabile ed efficiente che apporta valore alla sua comunità di utenti. Per i nostri modelli ML, ottimizziamo le prestazioni in termini di spazio di memoria, risparmio energetico e tempo di esecuzione. Abbiamo anche sviluppato un'infrastruttura solida, circondato il nucleo dell'intelligenza artificiale con un software per collegarlo al resto del sistema e sviluppato un sistema ininterrotto per aggiornamenti frequenti man mano che vengono aggiunte nuove funzionalità. 

Riunire gli scienziati e gli ingegneri di Roblox con alcune delle menti più acute della comunità scientifica è un componente chiave nella nostra ricerca di una tecnologia rivoluzionaria. Siamo orgogliosi di condividere questi primi risultati e invitiamo la comunità di ricerca a collaborare con noi e a sfruttare questi progressi.

Timestamp:

Di più da Roblox