ControlNet en StarCoder: vooruitgang in Roblox-onderzoek naar generatieve AI

We zetten ons volledig in voor verantwoord en maatschappelijk betrokken onderzoek op alle gebieden, inclusief kunstmatige intelligentie (AI). We bereiken dit door middel van transparantie, externe validatie en het ondersteunen van academische instellingen via samenwerking en sponsoring. Deze aanpak stelt ons in staat om de grootste vooruitgang te boeken op onze drie aandachtsgebieden: generatieve AI, schaalbaarheid van datacenters en online veiligheid. Vandaag delen we inzichten en resultaten van twee van onze onderzoeksprojecten op het gebied van generatieve AI. ControlNet is een open-source neuraal netwerk dat voorwaardelijke controle toevoegt aan modellen voor het genereren van afbeeldingen, voor nauwkeurigere afbeeldingsuitvoer. StarCoder is een geavanceerd open-source groot taalmodel (LLM) voor het genereren van code.
Beide projecten zijn samenwerkingen tussen de academische wereld en de industrie. Beide zijn ook gericht op radicaal krachtigere tools voor onze makers: 3D-artiesten en programmeurs. Het belangrijkste is dat deze projecten, in lijn met onze missie om te investeren in de lange termijn door middel van transformatief onderzoek, tekenen vertonen van vooruitgang in het fundamentele wetenschappelijke begrip en de beheersing van AI voor vele toepassingen. Wij geloven dat dit werk een aanzienlijke impact kan hebben op de toekomst van Roblox en het vakgebied als geheel, en we zijn er trots op dit openlijk te delen.
ControlNet
Recente doorbraken op het gebied van AI — met name datagestuurde machine learning (ML)-methoden die gebruikmaken van diepe neurale netwerken — hebben geleid tot nieuwe ontwikkelingen in creatietools. Deze ontwikkelingen omvatten onze Code Assist- en Material Generator-functies die openbaar beschikbaar zijn in onze gratis tool, Roblox Studio. Moderne generatieve AI-systemen bevatten datastructuren, zogenaamde modellen, die worden verfijnd door middel van miljarden trainingsoperaties. De krachtigste modellen van dit moment zijn multimodaal, wat betekent dat ze zijn getraind op een mix van media zoals tekst, afbeeldingen en audio. Hierdoor kunnen ze de gemeenschappelijke onderliggende betekenissen in verschillende media vinden, in plaats van zich te veel aan te passen aan specifieke elementen van een dataset, zoals kleurenpaletten of spelling.
Deze nieuwe AI-systemen hebben een aanzienlijke expressieve kracht, maar die kracht wordt grotendeels gestuurd door 'prompt engineering'. Dit houdt simpelweg in dat de invoertekst wordt aangepast, vergelijkbaar met het verfijnen van een zoekopdracht in een zoekmachine als deze niet het verwachte resultaat oplevert. Hoewel dit een boeiende manier kan zijn om te spelen met een nieuwe technologie, zoals een ongestuurde chatbot, is het geen efficiënte of effectieve manier om content te creëren. Makers hebben in plaats daarvan krachtige tools nodig die ze effectief kunnen inzetten door middel van actieve controle in plaats van giswerk.
Het ControlNet-project is een stap in de richting van het oplossen van een aantal van deze uitdagingen. Het biedt een efficiënte manier om de kracht van grote, vooraf getrainde AI-modellen zoals Stable Diffusion te benutten, zonder afhankelijk te zijn van prompt engineering. ControlNet vergroot de controle door de kunstenaar in staat te stellen aanvullende invoervoorwaarden te bieden die verder gaan dan alleen tekstprompts. Roblox-onderzoeker en Stanford-professor Maneesh Agrawala en Stanford-onderzoeker Lvmin Zhang formuleren de doelstellingen voor ons gezamenlijke ControlNet-project als volgt:
- Ontwikkel een betere gebruikersinterface voor generatieve AI-tools. Ga verder dan obscure promptmanipulatie en bouw voort op meer natuurlijke manieren om een idee of creatief concept over te brengen.
- Zorg voor nauwkeurigere ruimtelijke controle, zodat we verder gaan dan het maken van "een afbeelding zoals" of "een afbeelding in de stijl van...", zodat precies die afbeelding kan worden gerealiseerd die de maker in gedachten heeft.
- Het trainen van generatieve AI omzetten in een reken-efficiënter proces dat sneller wordt uitgevoerd, minder geheugen vereist en minder elektriciteit verbruikt.
- Beeldgeneratieve AI uitbreiden tot een herbruikbare bouwsteen. Deze kan dan worden geïntegreerd met gestandaardiseerde beeldverwerkings- en 3D-renderingpijplijnen.
Door makers de mogelijkheid te bieden een extra afbeelding te leveren voor ruimtelijke controle, biedt ControlNet meer controle over de uiteindelijke gegenereerde afbeelding. Een prompt als 'mannelijk hert met gewei' op een bestaande tekst-naar-afbeelding-generator leverde bijvoorbeeld een grote verscheidenheid aan afbeeldingen op, zoals hieronder te zien is:

Deze afbeeldingen, gegenereerd met eerdere AI-oplossingen, zijn aantrekkelijk, maar helaas in wezen willekeurige resultaten – er is geen controle. Bij die eerdere systemen voor het genereren van afbeeldingen is er geen manier om de output te sturen, behalve door de tekstprompt te herzien.
Met ControlNet heeft de maker nu veel meer mogelijkheden. Een manier om ControlNet te gebruiken is door zowel een prompt als een bronafbeelding aan te leveren om de algemene vorm te bepalen die gevolgd moet worden. In dit geval zouden de resulterende afbeeldingen nog steeds variatie bieden, maar, cruciaal, de gespecificeerde vorm behouden:

De maker had ook een reeks randen kunnen specificeren, een afbeelding zonder enige prompt, of vele andere manieren om expressieve input aan het systeem te geven.
Om een ControlNet te maken, klonen we de gewichten binnen het netwerk van een groot diffusiemodel naar twee versies. De ene is het trainbare netwerk (dit zorgt voor de controle; het is "het ControlNet") en de andere is het vergrendelde netwerk. Het vergrendelde netwerk behoudt de capaciteit die is geleerd uit miljarden afbeeldingen en kan elke eerdere afbeeldingsgenerator zijn. Vervolgens trainen we het trainbare netwerk op taakspecifieke datasets om de voorwaardelijke controle te leren van de extra afbeelding. De trainbare en vergrendelde kopieën zijn verbonden met een uniek type convolutielaag dat we 'zero convolution' noemen, waarbij de convolutiegewichten op een aangeleerde manier geleidelijk groeien van nullen naar geoptimaliseerde parameters, wat betekent dat ze aanvankelijk geen invloed hebben en het systeem het optimale niveau van controle afleidt om uit te oefenen op het vergrendelde netwerk.
Omdat de oorspronkelijke gewichten via het vergrendelde netwerk behouden blijven, werkt het model goed met trainingsdatasets van verschillende grootte. En de zero convolution-laag maakt het proces veel sneller — het lijkt meer op het finetunen van een diffusiemodel dan op het trainen van nieuwe lagen vanaf nul.
We hebben deze techniek uitgebreid gevalideerd voor het genereren van afbeeldingen. ControlNet verbetert niet alleen de kwaliteit van de outputafbeelding. Het maakt het trainen van een netwerk voor een specifieke taak ook efficiënter en daarmee praktisch om op schaal in te zetten voor onze miljoenen makers. In experimenten biedt ControlNet een efficiëntiewinst tot wel 10x vergeleken met alternatieve scenario's waarbij een model volledig opnieuw getraind moet worden. Deze efficiëntie is cruciaal, aangezien het proces van het creëren van nieuwe modellen tijdrovend en resource-intensief is in vergelijking met traditionele softwareontwikkeling. Door training efficiënter te maken, wordt elektriciteit bespaard, worden kosten verlaagd en neemt de snelheid waarmee nieuwe functionaliteit kan worden toegevoegd toe.
Dankzij de unieke structuur van ControlNet werkt het goed met trainingsdatasets van verschillende grootte en op veel verschillende soorten media. ControlNet blijkt te werken met veel verschillende soorten besturingsmodaliteiten, waaronder foto's, handgetekende krabbels en OpenPose-positieherkenning. Wij zijn van mening dat ControlNet kan worden toegepast op veel verschillende soorten media voor generatieve AI-content. Dit onderzoek is open en publiekelijk beschikbaar voor de gemeenschap om mee te experimenteren en op voort te bouwen, en we zullen meer informatie blijven presenteren naarmate we er meer ontdekkingen mee doen.
StarCoder
Generatieve AI kan worden toegepast om afbeeldingen, audio, tekst, broncode van programma's of elke andere vorm van rijke media te produceren. Over verschillende media heen zijn de toepassingen met het grootste succes echter meestal die waarbij de output subjectief wordt beoordeeld. Een afbeelding is bijvoorbeeld geslaagd als deze een menselijke kijker aanspreekt. Bepaalde fouten in de afbeelding, zoals vreemde kenmerken aan de randen of zelfs een extra vinger aan een hand, worden misschien niet opgemerkt als de afbeelding als geheel boeiend is. Evenzo kan een gedicht of kort verhaal grammaticale fouten of enkele logische sprongen bevatten, maar als de kern boeiend is, zijn we geneigd deze te vergeven.
Een andere manier om subjectieve criteria te beschouwen, is dat de uitgangsruimte continu is. Het ene resultaat kan beter zijn dan het andere, maar er is geen specifieke drempel waarbij het resultaat volledig aanvaardbaar of onaanvaardbaar is. Voor andere domeinen en mediavormen wordt de output objectief beoordeeld. De broncode die door een generatieve AI-programmeerassistent wordt geproduceerd, is bijvoorbeeld correct of niet. Als de code een test niet doorstaat, is deze onvoldoende, zelfs als deze lijkt op de code voor een geldige oplossing. Dit is een discrete uitgangsruimte. Het is moeilijker om in een discrete ruimte te slagen, zowel omdat de criteria strenger zijn als omdat men zich niet geleidelijk naar een goede oplossing kan werken – de code is kapot totdat deze plotseling werkt.
LLM's die worden gebruikt voor tekstoutput werken goed voor subjectieve, continue toepassingen zoals chatbots. Ze lijken ook goed te werken voor het genereren van proza in veel menselijke talen, zoals Engels en Frans. Bestaande LLM's lijken echter niet zo goed te werken voor programmeertalen als voor die menselijke talen. Code is een vorm van wiskunde die een heel andere, objectieve manier is om betekenis uit te drukken dan natuurlijke taal. Het is een discrete resultaatruimte in plaats van een continue resultaatruimte. Om de hoogste kwaliteit van codegeneratie in programmeertalen te bereiken voor Roblox-makers, hebben we methoden nodig om LLM's toe te passen die goed werken in deze discrete, objectieve ruimte. We hebben ook robuuste methoden nodig om codefunctionaliteit uit te drukken, onafhankelijk van een bepaalde taalsyntaxis, zoals Lua, JavaScript of Python.
StarCoder, een nieuwe, geavanceerde open-source LLM voor codegeneratie, is een belangrijke stap voorwaarts in deze technische uitdaging en een echt open LLM voor iedereen. StarCoder is een resultaat van het BigCode-onderzoeksconsortium, waaraan meer dan 600 leden uit academische en industriële onderzoekslaboratoria deelnemen. Roblox-onderzoeker en Northeastern University-professor Arjun Guha hielp dit team leiden bij de ontwikkeling van StarCoder. Deze eerste gepubliceerde resultaten richten zich uitsluitend op het code-aspect, het gebied waar het veld de meeste nieuwe groei nodig heeft gezien het relatieve succes van subjectieve methoden.
Om generatieve AI te leveren via LLM's die het bredere AI-ecosysteem en de Roblox-gemeenschap ondersteunen, hebben we modellen nodig die uitsluitend zijn getraind op datasets met de juiste licenties en die op verantwoorde wijze zijn verzameld. Deze moeten ook voorzien zijn van onbeperkte licenties, zodat iedereen ze kan gebruiken, erop kan voortbouwen en weer een bijdrage kan leveren aan het ecosysteem. Tegenwoordig zijn de krachtigste LLM's eigendom van een bedrijf of gelicentieerd voor beperkte vormen van commercieel gebruik, wat het vermogen van onderzoekers om met het model zelf te experimenteren belemmert of beperkt. StarCoder daarentegen is een echt open model, gecreëerd door een samenwerkingsverband van onderzoekers uit de industrie en de academische wereld en gelicentieerd zonder beperkingen voor commerciële toepassing op elke schaal. StarCoder is uitsluitend getraind op verantwoord verzamelde, correct gelicentieerde inhoud. Het model werd aanvankelijk getraind op openbare code en er is een opt-out-procedure beschikbaar voor degenen die liever niet hebben dat hun code voor training wordt gebruikt.
Vandaag de dag werkt StarCoder met 86 verschillende programmeertalen, waaronder Python, C++ en Java. Op het moment van publicatie van het artikel presteerde het beter dan elke open-source LLM die meerdere talen ondersteunt en was het zelfs concurrerend met veel van de gesloten, propriëtaire modellen.
De StarCoder LLM is een bijdrage aan het ecosysteem, maar ons onderzoeksdoel reikt veel verder. De grootste impact van dit onderzoek is het bevorderen van semantische modellering van zowel objectieve als subjectieve multimodale modellen, waaronder code, tekst, afbeeldingen, spraak en video, en het verhogen van de trainingsefficiëntie door middel van domeinoverdrachtstechnieken. We verwachten ook diepgaande inzichten te verkrijgen in de onderhoudbaarheid en controleerbaarheid van generatieve AI voor objectieve taken zoals het genereren van broncode. Er is een groot verschil tussen een intrigerende demonstratie van opkomende technologie en een veilig, betrouwbaar en efficiënt product dat waarde toevoegt voor de gebruikersgemeenschap. Voor onze ML-modellen optimaliseren we de prestaties op het gebied van geheugengebruik, energieverbruik en uitvoeringstijd. We hebben ook een robuuste infrastructuur ontwikkeld, de AI-kern omringd met software om deze te verbinden met de rest van het systeem, en een naadloos systeem ontwikkeld voor frequente updates naarmate er nieuwe functies worden toegevoegd.
Het samenbrengen van de wetenschappers en ingenieurs van Roblox met enkele van de scherpste geesten in de wetenschappelijke gemeenschap is een essentieel onderdeel van ons streven naar baanbrekende technologie. We zijn trots om deze eerste resultaten te delen en nodigen de onderzoeksgemeenschap uit om met ons samen te werken en voort te bouwen op deze vorderingen.


