ControlNet en StarCoder: Roblox-onderzoeksvooruitgang voor generatieve AI - Roblox Blog

ControlNet en StarCoder: Roblox-onderzoeksvooruitgang voor generatieve AI – Roblox Blog

Bronknooppunt: 2864546

We zijn zeer toegewijd aan het nastreven van onderzoek dat verantwoordelijk en gemeenschapsbetrokken is op alle gebieden, inclusief kunstmatige intelligentie (AI). We bereiken dit door transparantie, externe validatie en het ondersteunen van academische instellingen door samenwerking en sponsoring. Deze aanpak stelt ons in staat om versneld de grootste vooruitgang te boeken op onze drie focusgebieden: generatieve AI, schaalvergroting van datacenters en online veiligheid. Vandaag delen we inzichten en resultaten van twee van onze generatieve AI-onderzoeksprojecten. ControleNet is een open-source neuraal netwerk dat voorwaardelijke controle toevoegt aan modellen voor het genereren van afbeeldingen voor nauwkeurigere beelduitvoer. Starcoder is een geavanceerd open-source large-taalmodel (LLM) voor het genereren van code. 

Beide projecten zijn academische en industriële samenwerkingen. 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, indicaties vertonen van vooruitgang in fundamenteel wetenschappelijk begrip en controle van AI voor veel toepassingen. Wij geloven dat dit werk een aanzienlijke impact kan hebben op de toekomst van Roblox en het veld als geheel en zijn er trots op dit openlijk te delen.

ControleNet

Recente AI-doorbraken – met name datagestuurde machine learning (ML)-methoden die gebruik maken van diepe neurale netwerken – hebben geleid tot nieuwe ontwikkelingen op het gebied van creatietools. Deze vooruitgang omvat ook onze Code-assistentie en Materiële generator functies die openbaar beschikbaar zijn in onze gratis tool Roblox Studio. Moderne generatieve AI-systemen bevatten datastructuren die modellen worden genoemd en die worden verfijnd door middel van miljarden trainingsoperaties. De krachtigste modellen van vandaag 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 alle media vinden, in plaats van zich te veel te richten op 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 betekent eenvoudigweg het wijzigen van de invoertekst, vergelijkbaar met het verfijnen van een zoekopdracht in een zoekmachine als deze niet oplevert wat u had verwacht. Hoewel dit een boeiende manier kan zijn om met een nieuwe technologie, zoals een ongerichte chatbot, te spelen, is het geen efficiënte of effectieve manier om inhoud te creëren. Makers hebben in plaats daarvan krachtige hulpmiddelen 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 enkele van deze uitdagingen. Het biedt een efficiënte manier om de kracht van grote, vooraf getrainde AI-modellen zoals Stabiele diffusie, zonder te vertrouwen op snelle engineering. ControlNet vergroot de controle doordat de artiest aanvullende invoervoorwaarden kan bieden die verder gaan dan alleen tekstprompts. Roblox-onderzoeker en Stanford University-professor Maneesh Agrawala en Stanford-onderzoeker Lvmin Zhang formuleren de doelen voor ons gezamenlijke ControlNet-project als:

  1. Ontwikkel een betere gebruikersinterface voor generatieve AI-tools. Ga verder dan obscure, prompte manipulatie en bouw rond meer natuurlijke manieren om een ​​idee of creatief concept te communiceren.
  2. Zorg voor een preciezere ruimtelijke controle, om verder te gaan dan het maken van “een afbeelding zoals” of “een afbeelding in de stijl van…”, zodat precies het beeld kan worden gerealiseerd dat de maker in gedachten heeft.
  3. Transformeer generatieve AI-training naar een computerefficiënter proces dat sneller wordt uitgevoerd, minder geheugen vereist en minder elektrische energie verbruikt.
  4. Breid beeldgenererende AI uit tot een herbruikbare bouwsteen. Het kan vervolgens worden geïntegreerd met gestandaardiseerde beeldverwerking en 3D-renderingpijplijnen. 

Door makers toe te staan ​​een extra afbeelding aan te bieden voor ruimtelijke controle, geeft ControlNet meer controle over de uiteindelijk gegenereerde afbeelding. Een prompt van 'mannelijk hert met gewei' op een bestaande tekst-naar-afbeelding-generator leverde bijvoorbeeld een grote verscheidenheid aan afbeeldingen op, zoals hieronder weergegeven:

Deze beelden die met eerdere AI-oplossingen zijn gegenereerd, zijn aantrekkelijk, maar helaas in wezen willekeurige resultaten: er is geen controle. Er is geen manier op de vorige beeldgenererende systemen om de uitvoer te sturen, behalve het herzien van de tekstprompt.

Met ControlNet heeft de maker nu veel meer macht. Eén manier om ControlNet te gebruiken is door zowel een prompt als een bronafbeelding te leveren om de algemene vorm te bepalen die moet worden gevolgd. In dit geval bieden de resulterende afbeeldingen nog steeds variatie, maar behouden ze, cruciaal, de gespecificeerde vorm:

De maker had ook een reeks randen kunnen specificeren, een afbeelding zonder enige prompt, of vele andere manieren om expressieve invoer aan het systeem te geven.

Om een ​​ControlNet te creëren, klonen we de gewichten binnen het netwerk van een groot diffusiemodel in twee versies. Eén is de trainbaar netwerk (dit zorgt voor de controle; het is “het ControlNet”) en de andere is de vergrendeld netwerk. Het vergrendelde netwerk behoudt de mogelijkheden die zijn geleerd uit miljarden afbeeldingen en kan elke eerdere afbeeldingsgenerator zijn. Vervolgens trainen we het trainbare netwerk op taakspecifieke datasets om de voorwaardelijke controle van de extra afbeelding te leren. De trainbare en vergrendelde kopieën zijn verbonden met een uniek type convolutielaag dat we noemen nul convolutie, waarbij de convolutiegewichten op een aangeleerde manier geleidelijk groeien van nullen naar geoptimaliseerde parameters, wat betekent dat ze aanvankelijk geen invloed hebben en dat 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 groottes. En de nulconvolutielaag maakt het proces veel sneller – dichter bij het verfijnen van een diffusiemodel dan het helemaal opnieuw trainen van nieuwe lagen. 

We hebben deze techniek voor het genereren van afbeeldingen uitgebreid gevalideerd. ControlNet verbetert niet alleen de kwaliteit van het uitvoerbeeld. Het maakt het trainen van een netwerk voor een specifieke taak ook efficiënter en dus praktischer om op schaal in te zetten voor onze miljoenen makers. In experimenten biedt ControlNet een efficiëntiewinst die tot tien keer groter is dan in alternatieve scenario's waarbij een model volledig opnieuw moet worden getraind. Deze efficiëntie is van cruciaal belang, omdat het proces van het creëren van nieuwe modellen tijdrovend en arbeidsintensief is in vergelijking met traditionele softwareontwikkeling. Door training efficiënter te maken, bespaart u elektriciteit, verlaagt u de kosten en verhoogt u de snelheid waarmee nieuwe functionaliteit kan worden toegevoegd.

De unieke structuur van ControlNet zorgt ervoor dat het goed werkt met trainingsdatasets van verschillende groottes en op veel verschillende soorten media. Er is aangetoond dat ControlNet werkt met veel verschillende soorten controlemodaliteiten, waaronder foto's, handgetekende krabbels en openstellen detectie van poses. Wij zijn van mening dat ControlNet kan worden toegepast op veel verschillende soorten media voor generatieve AI-inhoud. Dit onderzoek is open en openbaar beschikbaar voor de gemeenschap om mee te experimenteren en op voort te bouwen, en we zullen doorgaan met het presenteren van meer informatie naarmate we er meer ontdekkingen mee doen.

Starcoder

Generatieve AI kan worden toegepast om afbeeldingen, audio, tekst, programmabroncode of elke andere vorm van rijke media te produceren. In de verschillende media zijn de toepassingen met de grootste successen echter vaak de toepassingen waarvoor de output subjectief wordt beoordeeld. Een beeld slaagt bijvoorbeeld als het een menselijke kijker aanspreekt. Bepaalde fouten in het beeld, zoals vreemde kenmerken aan de randen of zelfs een extra vinger aan een hand, worden mogelijk niet opgemerkt als het totaalbeeld overtuigend is. Op dezelfde manier kan een gedicht of kort verhaal grammaticale fouten of enkele logische sprongen bevatten, maar als de essentie overtuigend is, zijn we geneigd deze te vergeven. 

Een andere manier om subjectieve criteria te beschouwen is dat de resultaatruimte continu is. Het ene resultaat kan beter zijn dan het andere, maar er is geen specifieke drempel waarbij het resultaat volledig acceptabel 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 kan doorstaan, mislukt deze, zelfs als deze vergelijkbaar is met de code voor een geldige oplossing. Dit is een discrete resultaatruimte. Het is moeilijker om in een discrete ruimte te slagen, zowel omdat de criteria strenger zijn als omdat je niet progressief tot een goede oplossing kunt komen: de code wordt helemaal opgebroken totdat deze plotseling werkt.

LLM's die worden gebruikt voor tekstuitvoer 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 programmering talen zoals ze dat doen 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 het genereren van programmeertaalcodes voor Roblox-makers te bereiken, hebben we methoden nodig voor het toepassen van LLM's die goed kunnen werken in deze discrete, objectieve ruimte. We hebben ook robuuste methoden nodig om codefunctionaliteit uit te drukken, onafhankelijk van de syntaxis van een bepaalde taal, zoals Lua, JavaScript of Python. 

StarCoder, een nieuwe, ultramoderne open-source LLM voor het genereren van code, is een grote stap voorwaarts in deze technische uitdaging en een werkelijk open LLM voor iedereen. StarCoder is een resultaat van de grote code onderzoeksconsortium, dat meer dan 600 leden uit academische en industriële onderzoekslaboratoria omvat. Roblox-onderzoeker en professor aan de Northeastern University, Arjun Guha, hielp dit team te leiden bij de ontwikkeling van StarCoder. Deze eerste gepubliceerde resultaten richten zich uitsluitend op het code-aspect, het gebied waarop het vakgebied het meest behoefte heeft aan nieuwe groei, gezien het relatieve succes van subjectieve methoden. 

Om generatieve AI te leveren via LLM's die het grotere AI-ecosysteem en de Roblox-gemeenschap ondersteunen, hebben we modellen nodig die uitsluitend zijn getraind op de juiste gelicentieerde en op verantwoorde wijze verzamelde datasets. Deze moeten ook voorzien zijn van onbeperkte licenties, zodat iedereen ze kan gebruiken, erop kan voortbouwen en kan bijdragen aan het ecosysteem. Tegenwoordig zijn de krachtigste LLM's eigendom van of zijn ze gelicentieerd voor beperkte vormen van commercieel gebruik, wat de mogelijkheid van onderzoekers om met het model zelf te experimenteren verbiedt of beperkt. StarCoder is daarentegen een werkelijk open model, gecreëerd door een coalitie van industriële en academische onderzoekers en zonder beperkingen gelicentieerd voor commerciële toepassing op elke schaal. StarCoder is uitsluitend getraind in verantwoord verzamelde inhoud met de juiste licentie. Het model werd aanvankelijk getraind op openbare code en er is een opt-outproces beschikbaar voor degenen die liever niet willen dat hun code wordt gebruikt voor training.

Tegenwoordig werkt StarCoder op 86 verschillende programmeertalen, waaronder Python, C++ en Java. Vanaf de publicatie van het artikel presteerde het beter dan elke open-code 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 gaat veel dieper. De grootste impact van dit onderzoek is het bevorderen van de 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 technieken voor domeinoverdracht. We verwachten ook diepgaande inzichten te verwerven in de onderhoudbaarheid en beheersbaarheid 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 aan de gebruikersgemeenschap. Voor onze ML-modellen optimaliseren we de prestaties op het gebied van geheugenvoetafdruk, energiebesparing en uitvoeringstijd. We hebben ook een robuuste infrastructuur ontwikkeld, de AI-kern omringd met software om deze met de rest van het systeem te verbinden, en een naadloos systeem ontwikkeld voor frequente updates als 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 sleutelcomponent in ons streven naar baanbrekende technologie. We zijn er trots op deze eerste resultaten te kunnen delen en nodigen de onderzoeksgemeenschap uit om met ons samen te werken en voort te bouwen op deze vooruitgang.

Tijdstempel:

Meer van roblox