ControlNet in StarCoder: raziskovalni napredek Roblox za Generative AI – Blog Roblox

ControlNet in StarCoder: raziskovalni napredek Roblox za Generative AI – Blog Roblox

Izvorno vozlišče: 2864546

Globoko smo zavezani izvajanju raziskav, ki so odgovorne in sodelujejo v skupnosti na vseh področjih, vključno z umetno inteligenco (AI). To dosegamo s preglednostjo, zunanjim potrjevanjem in podpiranjem akademskih ustanov s sodelovanjem in sponzorstvom. Ta pristop nam omogoča, da pospešimo doseganje največjih napredkov na naših treh osredotočenih področjih: generativni AI, skaliranje podatkovnega centra in spletna varnost. Danes delimo vpoglede in rezultate dveh naših generativnih raziskovalnih projektov AI. ControlNet je odprtokodna nevronska mreža, ki dodaja pogojni nadzor modelom generiranja slik za natančnejše slikovne rezultate. StarCoder je najsodobnejši odprtokodni model velikega jezika (LLM) za ustvarjanje kode. 

Oba projekta sta akademsko in industrijsko sodelovanje. Oba sta osredotočena tudi na radikalno močnejša orodja za naše ustvarjalce: 3D umetnike in programerje. Najpomembneje in v skladu z našo misijo dolgoročnega vlaganja s transformativnimi raziskavami ti projekti kažejo znake napredka v temeljnem znanstvenem razumevanju in nadzoru AI za številne aplikacije. Verjamemo, da lahko to delo pomembno vpliva na prihodnost Robloxa in področja kot celote, in s ponosom ga lahko odkrito delimo.

ControlNet

Nedavni preboji umetne inteligence – zlasti metode strojnega učenja na podlagi podatkov (ML) z uporabo globokih nevronskih mrež – so spodbudili nov napredek v orodjih za ustvarjanje. Ti napredki vključujejo naše Code Assist in Generator materiala funkcije, ki so javno dostopne v našem brezplačnem orodju Roblox Studio. Sodobni generativni sistemi umetne inteligence vsebujejo podatkovne strukture, imenovane modeli, ki so izpopolnjeni z milijardami operacij usposabljanja. Najzmogljivejši modeli danes so multimodalni, kar pomeni, da so usposobljeni za mešanico medijev, kot so besedilo, slike in zvok. To jim omogoča, da najdejo skupne temeljne pomene v medijih, namesto da bi pretiravali s posebnimi elementi nabora podatkov, kot so barvne palete ali črkovanje. 

Ti novi sistemi umetne inteligence imajo veliko izrazno moč, vendar je ta moč usmerjena predvsem s "hitrim inženiringom". To pomeni preprosto spremembo vnesenega besedila, podobno kot izboljšanje poizvedbe v iskalniku, če ni vrnila tistega, kar ste pričakovali. Čeprav je to morda privlačen način za igranje z novo tehnologijo, kot je neusmerjeni chatbot, ni učinkovit ali učinkovit način za ustvarjanje vsebine. Ustvarjalci namesto tega potrebujejo močna orodja, ki jih lahko učinkovito uporabljajo z aktivnim nadzorom in ne z ugibanjem.

Projekt ControlNet je korak k reševanju nekaterih od teh izzivov. Ponuja učinkovit način za izkoriščanje moči velikih vnaprej usposobljenih modelov AI, kot je npr Stabilna difuzija, brez zanašanja na hiter inženiring. ControlNet poveča nadzor tako, da umetniku omogoča, da poleg besedilnih pozivov zagotovi dodatne pogoje vnosa. Raziskovalec Robloxa in profesor Univerze Stanford Maneesh Agrawala ter raziskovalec Stanforda Lvmin Zhang oblikujeta cilje našega skupnega projekta ControlNet kot:

  1. Razvijte boljši uporabniški vmesnik za generativna orodja AI. Presegnite obskurno takojšnjo manipulacijo in gradite na bolj naravnih načinih sporočanja ideje ali ustvarjalnega koncepta.
  2. Zagotovite natančnejši prostorski nadzor, da presežete izdelavo "podobe kot" ali "podobe v slogu ...", da omogočite uresničitev točno tiste podobe, ki jo ima ustvarjalec v mislih.
  3. Pretvorite generativno usposabljanje z umetno inteligenco v računalniško učinkovitejši proces, ki se izvaja hitreje, zahteva manj pomnilnika in porabi manj električne energije.
  4. Razširite umetno inteligenco za ustvarjanje slik v gradnik za večkratno uporabo. Nato ga je mogoče integrirati s standardizirano obdelavo slik in cevovodi za 3D upodabljanje. 

S tem ko ustvarjalcem omogoča, da zagotovijo dodatno sliko za prostorski nadzor, ControlNet zagotavlja večji nadzor nad končno ustvarjeno sliko. Na primer, poziv »samec jelena z rogovjem« na obstoječem generatorju besedila v sliko je ustvaril veliko različnih slik, kot je prikazano spodaj:

Te slike, ustvarjene s prejšnjimi rešitvami umetne inteligence, so privlačne, a na žalost v bistvu samovoljni rezultati – ni nadzora. Na prejšnjih sistemih za generiranje slik ni nobenega načina za usmerjanje izhoda, razen za revizijo besedilnega poziva.

S ControlNet ima ustvarjalec zdaj veliko več moči. Eden od načinov uporabe ControlNet je, da zagotovite poziv in izvorno sliko za določitev splošne oblike, ki ji je treba slediti. V tem primeru bi dobljene slike še vedno nudile raznolikost, vendar, kar je ključno, ohranile določeno obliko:

Ustvarjalec bi lahko določil tudi niz robov, sliko brez kakršnega koli poziva ali številne druge načine zagotavljanja ekspresivnega vnosa v sistem.

Da ustvarimo ControlNet, kloniramo uteži znotraj mreže velikega difuzijskega modela v dve različici. Ena je usposobljivo omrežje (to zagotavlja nadzor; to je "ControlNet"), drugi pa je zaklenjeno omrežje. Zaklenjeno omrežje ohranja zmožnost, pridobljeno iz milijard slik, in je lahko kateri koli prejšnji generator slik. Nato usposobimo omrežje, ki ga je mogoče učiti, na naborih podatkov, specifičnih za nalogo, da se naučimo pogojnega nadzora iz dodatne slike. Učljive in zaklenjene kopije so povezane z edinstveno vrsto konvolucijske plasti, ki jo imenujemo ničelna konvolucija, kjer konvolucijske uteži postopoma rastejo od nič do optimiziranih parametrov na naučen način, kar pomeni, da sprva nimajo vpliva in sistem izpelje optimalno raven nadzora za izvajanje zaklenjenega omrežja.

Ker se izvirne uteži ohranijo prek zaklenjenega omrežja, model dobro deluje z nabori podatkov za usposabljanje različnih velikosti. Zaradi ničelne konvolucijske plasti je proces veliko hitrejši - bližje fini nastavitvi difuzijskega modela kot urjenju novih plasti iz nič. 

Izvedli smo obsežno validacijo te tehnike za ustvarjanje slik. ControlNet ne izboljša le kakovosti izhodne slike. Omogoča tudi bolj učinkovito usposabljanje omrežja za določeno nalogo in tako praktično za uvedbo v velikem obsegu za naše milijone ustvarjalcev. V poskusih ControlNet zagotavlja do 10-kratno povečanje učinkovitosti v primerjavi z alternativnimi scenariji, ki zahtevajo, da je model popolnoma ponovno usposobljen. Ta učinkovitost je ključnega pomena, saj je proces ustvarjanja novih modelov dolgotrajen in zahteva veliko virov v primerjavi s tradicionalnim razvojem programske opreme. Učinkovitejše usposabljanje prihrani elektriko, zmanjša stroške in poveča hitrost dodajanja novih funkcij.

Edinstvena struktura ControlNeta pomeni, da dobro deluje z nabori podatkov za usposabljanje različnih velikosti in na številnih različnih vrstah medijev. Dokazano je, da ControlNet deluje s številnimi različnimi vrstami načinov upravljanja, vključno s fotografijami, ročno narisanimi čečkami in odprti zaznavanje poze. Verjamemo, da je ControlNet mogoče uporabiti za veliko različnih vrst medijev za generativno vsebino AI. to raziskava je odprta in javno dostopna da skupnost eksperimentira in nadgrajuje, mi pa bomo še naprej predstavljali več informacij, ko bomo z njimi odkrili več.

StarCoder

Generativno umetno inteligenco je mogoče uporabiti za ustvarjanje slik, zvoka, besedila, izvorne kode programa ali katere koli druge oblike obogatene predstavnosti. V različnih medijih pa so aplikacije z največjim uspehom ponavadi tiste, katerih rezultati se ocenjujejo subjektivno. Na primer, slika je uspešna, ko pritegne gledalca. Nekatere napake na sliki, kot so nenavadne poteze na robovih ali celo dodaten prst na roki, morda ne bodo opažene, če je celotna slika prepričljiva. Podobno ima lahko pesem ali kratka zgodba slovnične napake ali nekaj logičnih preskokov, a če je bistvo prepričljivo, jih ponavadi odpustimo. 

Drug način upoštevanja subjektivnih meril je, da je prostor rezultatov zvezen. En rezultat je lahko boljši od drugega, vendar ni določenega praga, pri katerem bi bil rezultat popolnoma sprejemljiv ali nesprejemljiv. Za druga področja in oblike medijev se rezultati ocenjujejo objektivno. Na primer, izvorna koda, ki jo je ustvaril generativni programski pomočnik AI, je pravilna ali ne. Če koda ne prestane preizkusa, ne uspe, tudi če je podobna kodi za veljavno rešitev. To je diskretni prostor rezultatov. V diskretnem prostoru je težje uspeti, ker so merila strožja in ker se ne moremo postopno približati dobri rešitvi – koda se pokvari, dokler nenadoma ne deluje.

LLM-ji, ki se uporabljajo za izpis besedila, dobro delujejo za subjektivne, neprekinjene aplikacije, kot so chatboti. Zdi se, da dobro delujejo tudi pri ustvarjanju proze v mnogih človeških jezikih, kot sta angleščina in francoščina. Vendar se zdi, da obstoječi LLM-ji ne delujejo tako dobro programiranje jezike, kot to počnejo za tiste človeške jezike. Koda je oblika matematike, ki je zelo drugačen, objektiven način izražanja pomena kot naravni jezik. Je diskretni prostor rezultatov namesto neprekinjenega prostora rezultatov. Da bi dosegli najvišjo kakovost generiranja kode programskega jezika za ustvarjalce Roblox, potrebujemo metode uporabe LLM-jev, ki lahko dobro delujejo v tem diskretnem, objektivnem prostoru. Potrebujemo tudi robustne metode za izražanje funkcionalnosti kode, neodvisne od sintakse določenega jezika, kot so Lua, JavaScript ali Python. 

StarCoder, nov najsodobnejši odprtokodni LLM za ustvarjanje kode, je velik napredek pri tem tehničnem izzivu in resnično odprt LLM za vsakogar. StarCoder je eden od rezultatov velika koda raziskovalni konzorcij, ki vključuje več kot 600 članov iz akademskih in industrijskih raziskovalnih laboratorijev. Raziskovalec Robloxa in profesor Northeastern University Arjun Guha je pomagal voditi to ekipo pri razvoju StarCoderja. Ti prvi objavljeni rezultati se osredotočajo izključno na vidik kode, ki je področje, na katerem področje glede na relativno uspešnost subjektivnih metod najbolj potrebuje novo rast. 

Za zagotavljanje generativne umetne inteligence prek LLM-jev, ki podpirajo večji ekosistem umetne inteligence in skupnost Roblox, potrebujemo modele, ki so bili usposobljeni izključno na ustrezno licenciranih in odgovorno zbranih nizih podatkov. Ti bi morali imeti tudi neomejene licence, tako da jih lahko kdorkoli uporablja, gradi na njih in prispeva k ekosistemu. Danes so najmočnejši LLM-ji lastniški ali licencirani za omejene oblike komercialne uporabe, kar raziskovalcem prepoveduje ali omejuje možnost eksperimentiranja s samim modelom. Nasprotno pa je StarCoder resnično odprt model, ustvarjen s koalicijo industrijskih in akademskih raziskovalcev ter brez omejitev licenciran za komercialno uporabo v katerem koli obsegu. StarCoder je usposobljen izključno za odgovorno zbrano vsebino z ustrezno licenco. Model je bil prvotno učen na javni kodi in tistim, ki ne želijo, da se njihova koda uporablja za usposabljanje, je na voljo postopek odjave.

Danes StarCoder deluje v 86 različnih programskih jezikih, vključno s Pythonom, C++ in Javo. Od objave časopisa je bil boljši od vseh LLM z odprto kodo, ki podpirajo več jezikov, in je bil celo konkurenčen številnim zaprtim, lastniškim modelom. 

StarCoder LLM je prispevek k ekosistemu, vendar je naš raziskovalni cilj veliko globlji. Največji vpliv te raziskave je napredovanje semantičnega modeliranja objektivnih in subjektivnih multimodalnih modelov, vključno s kodo, besedilom, slikami, govorom, videom, in povečanje učinkovitosti usposabljanja s tehnikami prenosa domene. Prav tako pričakujemo, da bomo pridobili globok vpogled v vzdržljivost in nadzorljivost generativne umetne inteligence za objektivne naloge, kot je ustvarjanje izvorne kode. Med zanimivo predstavitvijo nastajajoče tehnologije in varnim, zanesljivim in učinkovitim izdelkom, ki prinaša vrednost skupnosti uporabnikov, je velika razlika. Za naše modele ML optimiziramo zmogljivost za pomnilniški odtis, varčevanje z energijo in čas izvajanja. Razvili smo tudi robustno infrastrukturo, jedro AI obdali s programsko opremo za povezavo s preostalim sistemom in razvili brezhiben sistem za pogoste posodobitve, ko so dodane nove funkcije. 

Združevanje Robloxovih znanstvenikov in inženirjev z nekaterimi najostrejšimi umi v znanstveni skupnosti je ključna sestavina našega prizadevanja za prodorno tehnologijo. Ponosni smo, da delimo te zgodnje rezultate in vabimo raziskovalno skupnost, da sodeluje z nami in gradi na tem napredku.

Časovni žig:

Več od Roblox