ControlNet și StarCoder: progrese în cercetarea Roblox pentru IA generativă - Roblox Blog

ControlNet și StarCoder: progrese în cercetarea Roblox pentru IA generativă – Blog Roblox

Nodul sursă: 2864546

Suntem profund angajați să urmărim cercetări responsabile și implicate în comunitate în toate domeniile, inclusiv în inteligența artificială (AI). Realizam acest lucru prin transparență, validare externă și sprijinirea instituțiilor academice prin colaborare și sponsorizare. Această abordare ne permite să accelerăm realizarea celor mai mari progrese în cele trei domenii de interes: AI generativă, scalarea centrelor de date și siguranța online. Astăzi, împărtășim perspective și rezultate din două dintre proiectele noastre de cercetare AI generativă. ControlNet este o rețea neuronală open-source care adaugă control condiționat modelelor de generare a imaginilor pentru rezultate mai precise ale imaginii. StarCoder este un model de limbă mare (LLM) open source de ultimă generație pentru generarea de cod. 

Ambele proiecte sunt colaborări academice și industriale. Ambele sunt, de asemenea, concentrate pe instrumente radical mai puternice pentru creatorii noștri: artiști 3D și programatori. Cel mai important și aliniat cu misiunea noastră de a investi în perspectiva lungă prin cercetare transformatoare, aceste proiecte prezintă indicii ale progreselor în înțelegerea științifică fundamentală și controlul AI pentru multe aplicații. Credem că această muncă poate avea un impact semnificativ asupra viitorului Roblox și al domeniului în ansamblu și suntem mândri să o împărtășim în mod deschis.

ControlNet

Descoperirile recente ale inteligenței artificiale – în special metodele de învățare automată (ML) bazate pe date care utilizează rețele neuronale profunde – au condus la noi progrese în instrumentele de creație. Aceste progrese includ noastre Cod Asist și Generator de materiale funcții care sunt disponibile public în instrumentul nostru gratuit, Roblox Studio. Sistemele AI generative moderne conțin structuri de date numite modele care sunt perfecționate prin miliarde de operațiuni de antrenament. Cele mai puternice modele de astăzi sunt multimodale, ceea ce înseamnă că sunt antrenate pe un amestec de medii, cum ar fi text, imagini și audio. Acest lucru le permite să găsească semnificațiile de bază comune în medii, mai degrabă decât să se adapteze la anumite elemente ale unui set de date, cum ar fi paletele de culori sau ortografia. 

Aceste noi sisteme AI au o putere expresivă semnificativă, dar această putere este direcționată în mare parte prin „inginerie promptă”. A face acest lucru înseamnă pur și simplu schimbarea textului de intrare, similar cu rafinarea unei interogări de motor de căutare dacă nu a returnat ceea ce vă așteptați. Deși aceasta poate fi o modalitate captivantă de a te juca cu o nouă tehnologie, cum ar fi un chatbot nedirecționat, nu este o modalitate eficientă sau eficientă de a crea conținut. În schimb, creatorii au nevoie de instrumente electrice pe care le pot folosi eficient prin control activ, mai degrabă decât prin presupuneri.

Proiectul ControlNet este un pas către rezolvarea unora dintre aceste provocări. Oferă o modalitate eficientă de a valorifica puterea modelelor mari AI pre-antrenate, cum ar fi Difuzie stabilă, fără a ne baza pe o inginerie promptă. ControlNet mărește controlul, permițând artistului să ofere condiții suplimentare de introducere dincolo de mesajele text. Cercetătorul Roblox și profesorul de la Universitatea Stanford, Maneesh Agrawala, și cercetătorul de la Stanford, Lvmin Zhang, încadrează obiectivele proiectului nostru comun ControlNet astfel:

  1. Dezvoltați o interfață de utilizator mai bună pentru instrumentele AI generative. Treceți dincolo de manipularea promptă obscure și construiți în jurul unor moduri mai naturale de a comunica o idee sau un concept creativ.
  2. Oferiți un control spațial mai precis, pentru a depăși realizarea „o imagine ca” sau „o imagine în stilul...” pentru a permite realizarea exactă a imaginii pe care creatorul o are în minte.
  3. Transformați antrenamentul AI generativ într-un proces mai eficient din punct de vedere al calculului, care se execută mai rapid, necesită mai puțină memorie și consumă mai puțină energie electrică.
  4. Extindeți IA generatoare de imagini într-un bloc de construcție reutilizabil. Apoi poate fi integrat cu procesarea imaginilor standardizate și conducte de randare 3D. 

Permițând creatorilor să ofere o imagine suplimentară pentru controlul spațial, ControlNet oferă un control mai mare asupra imaginii finale generate. De exemplu, un mesaj de „cerb mascul cu coarne” pe un generator text-to-image existent a produs o mare varietate de imagini, după cum se arată mai jos:

Aceste imagini generate cu soluții AI anterioare sunt atractive, dar, din păcate, rezultate în esență arbitrare - nu există control. Nu există nicio modalitate pe acele sisteme anterioare de generare de imagini de a direcționa rezultatul, cu excepția revizuirii promptului de text.

Cu ControlNet, creatorul are acum mult mai multă putere. O modalitate de a utiliza ControlNet este de a oferi atât o imagine promptă, cât și o imagine sursă pentru a determina forma generală de urmat. În acest caz, imaginile rezultate ar oferi în continuare varietate, dar, în mod esențial, păstrează forma specificată:

Creatorul ar fi putut specifica, de asemenea, un set de margini, o imagine fără nicio solicitare sau multe alte modalități de a furniza o intrare expresivă sistemului.

Pentru a crea un ControlNet, clonăm greutățile din rețeaua unui model de difuzie mare în două versiuni. Unul este rețea antrenabilă (acesta oferă controlul; este „ControlNet”), iar celălalt este rețea blocată. Rețeaua blocată păstrează capacitatea învățată din miliarde de imagini și ar putea fi orice generator de imagini anterior. Apoi antrenăm rețeaua antrenabilă pe seturi de date specifice sarcinii pentru a învăța controlul condiționat din imaginea suplimentară. Copiile antrenabile și blocate sunt conectate cu un tip unic de strat de convoluție pe care îl numim convoluție zero, unde greutățile de convoluție cresc progresiv de la zero la parametri optimizați într-o manieră învățată, ceea ce înseamnă că inițial nu au nicio influență și sistemul obține nivelul optim de control pe care să-l exercite asupra rețelei blocate.

Deoarece greutățile originale sunt păstrate prin intermediul rețelei blocate, modelul funcționează bine cu seturi de date de antrenament de diferite dimensiuni. Iar stratul de convoluție zero face procesul mult mai rapid - mai aproape de reglarea fină a unui model de difuzie decât antrenarea de noi straturi de la zero. 

Am efectuat o validare extinsă a acestei tehnici pentru generarea de imagini. ControlNet nu îmbunătățește doar calitatea imaginii de ieșire. De asemenea, face formarea unei rețele pentru o anumită sarcină mai eficientă și, prin urmare, practică de implementat la scară pentru milioanele noștri de creatori. În experimente, ControlNet oferă un câștig de eficiență de până la 10x în comparație cu scenariile alternative care necesită reantrenarea completă a unui model. Această eficiență este critică, deoarece procesul de creare a noilor modele necesită mult timp și consumă mult resurse în comparație cu dezvoltarea de software tradițională. Eficientizarea antrenamentului economisește energia electrică, reduce costurile și crește rata la care pot fi adăugate noi funcționalități.

Structura unică a ControlNet înseamnă că funcționează bine cu seturi de date de antrenament de diferite dimensiuni și pe multe tipuri diferite de medii. S-a demonstrat că ControlNet funcționează cu multe tipuri diferite de modalități de control, inclusiv fotografii, mâzgăliri desenate manual și scop deschis detectarea pozitiei. Credem că ControlNet poate fi aplicat la multe tipuri diferite de media pentru conținut generativ AI. Acest cercetarea este deschisă și disponibilă publicului pentru ca comunitatea să experimenteze și pe care să le construiască, și vom continua să prezentăm mai multe informații pe măsură ce facem mai multe descoperiri cu acestea.

StarCoder

AI generativ poate fi aplicat pentru a produce imagini, sunet, text, cod sursă de program sau orice altă formă de rich media. Cu toate acestea, pe diferite medii, aplicațiile cu cele mai mari succese tind să fie acelea pentru care rezultatul este judecat subiectiv. De exemplu, o imagine reușește atunci când se adresează unui spectator uman. Anumite erori din imagine, cum ar fi caracteristici ciudate pe margini sau chiar un deget suplimentar pe o mână, pot să nu fie observate dacă imaginea generală este convingătoare. De asemenea, o poezie sau o nuvelă poate avea erori gramaticale sau unele salturi logice, dar dacă esenția este convingătoare, avem tendința de a le ierta. 

Un alt mod de a considera criteriile subiective este ca spațiul rezultat să fie continuu. Un rezultat poate fi mai bun decât altul, dar nu există un prag specific la care rezultatul este complet acceptabil sau inacceptabil. Pentru alte domenii și forme de media, rezultatul este judecat în mod obiectiv. De exemplu, codul sursă produs de un asistent de programare AI generativ este fie corect, fie nu. Dacă codul nu poate trece un test, eșuează, chiar dacă este similar cu codul pentru o soluție validă. Acesta este un spațiu de rezultat discret. Este mai greu să reușești într-un spațiu discret atât pentru că criteriile sunt mai stricte, cât și pentru că nu se poate aborda progresiv o soluție bună – codul este rupt până când funcționează brusc.

LLM-urile utilizate pentru ieșirea textului funcționează bine pentru aplicații subiective și continue, cum ar fi chatbot-urile. De asemenea, par să funcționeze bine pentru generarea de proză în multe limbi umane, cum ar fi engleza și franceza. Cu toate acestea, LLM-urile existente nu par să funcționeze la fel de bine pentru de programare limbi cum o fac pentru acele limbi umane. Codul este o formă de matematică care este un mod foarte diferit și obiectiv de a exprima sensul decât limbajul natural. Este un spațiu de rezultat discret în loc de un spațiu de rezultat continuu. Pentru a obține cea mai înaltă calitate a generării de cod al limbajului de programare pentru creatorii Roblox, avem nevoie de metode de aplicare a LLM-urilor care pot funcționa bine în acest spațiu discret și obiectiv. De asemenea, avem nevoie de metode robuste pentru a exprima funcționalitatea codului independent de sintaxa unui anumit limbaj, cum ar fi Lua, JavaScript sau Python. 

StarCoder, un nou LLM cu sursă deschisă de ultimă generație pentru generarea de cod, reprezintă un progres major în această provocare tehnică și un LLM cu adevărat deschis pentru toată lumea. StarCoder este un rezultat al cod mare consorțiu de cercetare, care implică peste 600 de membri din laboratoarele de cercetare academice și industriale. Arjun Guha, cercetător Roblox și profesor de la Universitatea Northeastern, a ajutat la conducerea acestei echipe la dezvoltarea StarCoder. Aceste prime rezultate publicate se concentrează exclusiv pe aspectul codului, care este zona în care domeniul are cea mai mare nevoie de o nouă creștere, având în vedere succesul relativ al metodelor subiective. 

Pentru a furniza AI generativă prin LLM-uri care sprijină ecosistemul AI mai mare și comunitatea Roblox, avem nevoie de modele care au fost instruite exclusiv pe seturi de date licențiate corespunzător și colectate în mod responsabil. Acestea ar trebui să aibă, de asemenea, licențe nerestrictive, astfel încât oricine să le poată utiliza, să le poată construi și să contribuie înapoi la ecosistem. Astăzi, cele mai puternice LLM-uri sunt proprietare sau licențiate pentru forme limitate de utilizare comercială, ceea ce interzice sau limitează capacitatea cercetătorilor de a experimenta cu modelul în sine. În schimb, StarCoder este un model cu adevărat deschis, creat printr-o coaliție de cercetători din industrie și academicieni și licențiat fără restricții pentru aplicare comercială la orice scară. StarCoder este instruit exclusiv pentru conținutul colectat în mod responsabil și licențiat corespunzător. Modelul a fost instruit inițial pe codul public și un proces de renunțare este disponibil pentru cei care preferă să nu fie folosit codul pentru instruire.

Astăzi, StarCoder lucrează pe 86 de limbaje de programare diferite, inclusiv Python, C++ și Java. Începând cu publicarea lucrării, acesta a depășit fiecare LLM cu cod deschis care acceptă mai multe limbi și a fost chiar competitiv cu multe dintre modelele închise, proprietare. 

StarCoder LLM este o contribuție la ecosistem, dar obiectivul nostru de cercetare merge mult mai profund. Cel mai mare impact al acestei cercetări este promovarea modelării semantice atât a modelelor multimodale obiective, cât și subiective, inclusiv cod, text, imagini, vorbire, video și creșterea eficienței antrenamentului prin tehnici de transfer de domenii. De asemenea, ne așteptăm să obținem informații profunde despre mentenabilitatea și controlabilitatea AI generativă pentru sarcini obiective, cum ar fi generarea de cod sursă. Există o mare diferență între o demonstrație intrigantă a tehnologiei emergente și un produs sigur, fiabil și eficient, care aduce valoare comunității sale de utilizatori. Pentru modelele noastre ML, optimizăm performanța pentru amprenta memoriei, conservarea energiei și timpul de execuție. De asemenea, am dezvoltat o infrastructură robustă, am înconjurat nucleul AI cu software pentru a-l conecta la restul sistemului și am dezvoltat un sistem perfect pentru actualizări frecvente pe măsură ce sunt adăugate noi funcții. 

Aducerea oamenilor de știință și inginerii Roblox împreună cu unele dintre cele mai ascuțite minți din comunitatea științifică este o componentă cheie în căutarea tehnologiei revoluționare. Suntem mândri să împărtășim aceste rezultate timpurii și să invităm comunitatea de cercetare să se implice cu noi și să construiască pe aceste progrese.

Timestamp-ul:

Mai mult de la Roblox