Zephyrnet-logo

Beperkingen voorafgaand aan de training van DALL·E 2

Datum:

Om de magie van te delen DALL E 2 met een breed publiek moesten we de risico's verminderen die gepaard gaan met krachtige modellen voor het genereren van afbeeldingen. Hiervoor zetten we verschillende vangrails om te voorkomen dat gegenereerde afbeeldingen onze inhoudsbeleid. Dit bericht richt zich op mitigaties voorafgaand aan de training, een subset van deze vangrails die rechtstreeks de gegevens wijzigen waarvan DALL·E 2 leert. DALL·E 2 is met name getraind op honderden miljoenen ondertitelde afbeeldingen van internet, en we verwijderen en herwegen sommige van deze afbeeldingen om te veranderen wat het model leert.

Dit bericht is onderverdeeld in drie secties, die elk een andere pre-trainingsbeperking beschrijven:

  • In de eerste sectie beschrijven we hoe we gewelddadige en seksuele beelden uit de trainingsdataset van DALL·E 2 hebben gefilterd. Zonder deze beperking zou het model leren om grafische of expliciete afbeeldingen te produceren wanneer daarom wordt gevraagd, en zou het zelfs onbedoeld dergelijke afbeeldingen kunnen retourneren als reactie op schijnbaar onschuldige prompts.
  • In de tweede sectie ontdekken we dat het filteren van trainingsgegevens vooroordelen kan versterken, en beschrijven we onze techniek om dit effect te verminderen. Zonder deze beperking merkten we bijvoorbeeld dat modellen die waren getraind op gefilterde gegevens soms meer afbeeldingen van mannen genereerden en minder afbeeldingen van vrouwen in vergelijking met modellen die waren getraind op de originele dataset.
  • In het laatste deel gaan we in op de kwestie van onthouden, waarbij we ontdekken dat modellen zoals DALL·E 2 soms afbeeldingen kunnen reproduceren waarop ze zijn getraind in plaats van nieuwe afbeeldingen te creëren. In de praktijk vonden we dat dit beeld oprispingen wordt veroorzaakt door afbeeldingen die vele malen in de gegevensset worden gerepliceerd en verzacht het probleem door afbeeldingen te verwijderen die visueel lijken op andere afbeeldingen in de gegevensset.

Grafische en expliciete trainingsgegevens verminderen

Aangezien trainingsgegevens de mogelijkheden van elk geleerd model vormen, is gegevensfiltering een krachtig hulpmiddel om ongewenste modelmogelijkheden te beperken. We hebben deze benadering toegepast op twee categorieën - afbeeldingen met grafisch geweld en seksuele inhoud - door classifiers te gebruiken om afbeeldingen in deze categorieën uit de dataset te filteren voordat we DALL·E 2 trainden. We hebben deze beeldclassifiers intern getraind en blijven de effecten van datasetfiltering op ons getrainde model.

Om onze beeldclassificaties te trainen, hebben we een aanpak hergebruikt die we eerder hadden gebruikt om trainingsgegevens te filteren voor GLIJDEN. De basisstappen voor deze aanpak zijn als volgt: eerst maken we een specificatie voor de afbeeldingscategorieën die we willen labelen; ten tweede verzamelen we voor elke categorie een paar honderd positieve en negatieve voorbeelden; ten derde gebruiken we een actieve leerprocedure om meer gegevens te verzamelen en de afweging tussen precisie en herinnering te verbeteren; en ten slotte voeren we de resulterende classificator uit op de hele dataset met een conservatieve classificatiedrempel om recall boven precisie te verkiezen. Om deze drempels in te stellen, hebben we prioriteit gegeven aan het uitfilteren van alle slecht gegevens over het verlaten in alle van de goed gegevens. Dit komt omdat we ons model later altijd kunnen verfijnen met meer gegevens om het nieuwe dingen te leren, maar het is veel moeilijker om het model iets te laten vergeten dat het al heeft geleerd.

beeld
beeld
We beginnen met een kleine dataset van gelabelde afbeeldingen (bovenaan de afbeelding). Vervolgens trainen we een classifier op deze gegevens. Het actieve leerproces gebruikt vervolgens de huidige classifier om een ​​handvol niet-gelabelde afbeeldingen te selecteren die de classificatieprestaties waarschijnlijk zullen verbeteren. Ten slotte produceren mensen labels voor deze afbeeldingen en voegen ze deze toe aan de gelabelde dataset. Het proces kan worden herhaald om de prestaties van de classifier iteratief te verbeteren.

Tijdens de actieve leerfase hebben we onze classificaties iteratief verbeterd door menselijke labels te verzamelen voor mogelijk moeilijke of verkeerd geclassificeerde afbeeldingen. We hebben met name twee actieve leertechnieken gebruikt om afbeeldingen uit onze dataset (die honderden miljoenen niet-gelabelde afbeeldingen bevat) te kiezen om aan mensen te presenteren voor labeling. Ten eerste, om het aantal fout-positieven van onze classificatie te verminderen (dwz de frequentie waarmee het een goedaardige afbeelding ten onrechte als gewelddadig of seksueel classificeert), hebben we menselijke labels toegekend aan afbeeldingen die het huidige model als positief classificeerde. Om deze stap goed te laten werken, hebben we onze classificatiedrempel afgestemd op bijna 100% terugroepactie, maar een hoog percentage fout-positieven; op deze manier labelden onze labelers meestal echt negatieve gevallen. Hoewel deze techniek helpt om valse positieven te verminderen en de noodzaak voor labelers om naar potentieel schadelijke afbeeldingen te kijken, vermindert, helpt het niet om meer positieve gevallen te vinden die het model momenteel mist.

Om het percentage fout-negatieven van onze classifier te verminderen, hebben we een tweede actieve leertechniek gebruikt: het zoeken naar de naaste buur. We hebben met name veelvoudige kruisvalidatie uitgevoerd om positieve monsters te vinden in onze huidige gelabelde dataset die het model de neiging had om verkeerd te classificeren als negatief (om dit te doen, hebben we letterlijk honderden versies van de classifier getraind met verschillende treinvalidatiesplitsingen). Vervolgens hebben we onze grote verzameling niet-gelabelde afbeeldingen gescand op naaste buren van deze monsters in een perceptuele functieruimte, en menselijke labels toegewezen aan de ontdekte afbeeldingen. Dankzij onze rekeninfrastructuur was het triviaal om zowel classificatietraining als het zoeken naar naaste buren op te schalen naar veel GPU's, waardoor de actieve leerstap over een aantal minuten in plaats van uren of dagen kon plaatsvinden.

Om de effectiviteit van onze datafilters te verifiëren, hebben we twee GLIDE-modellen met dezelfde hyperparameters getraind: een op ongefilterde data en een op de dataset na filtering. We verwijzen naar het voormalige model als de ongefilterd model, en de laatste als de gefilterd model. Zoals verwacht, ontdekten we dat het ongefilterde model over het algemeen minder expliciete of grafische inhoud produceerde als reactie op verzoeken om dit soort inhoud. We vonden echter ook een onverwacht neveneffect van gegevensfiltering: het creëerde of versterkte de vooroordelen van het model ten aanzien van bepaalde demografische gegevens.

ongefilterde

beeld
Gefilterd

Generaties voor het prompte "militaire protest" van ons ongefilterde model (links) en gefilterde model (rechts). Het gefilterde model produceert met name bijna nooit afbeeldingen van wapens.

Bias corrigeren geïntroduceerd door gegevensfilters

Generatieve modellen proberen de verdeling van hun trainingsgegevens te matchen, inclusief eventuele vooroordelen daarin. Als gevolg hiervan heeft het filteren van de trainingsgegevens het potentieel om vooroordelen in downstream-modellen te creëren of te versterken. Over het algemeen is het corrigeren van vooroordelen in de originele dataset een moeilijke sociotechnische taak die we blijven bestuderen, en valt buiten het bestek van dit bericht. Het probleem dat we hier behandelen, is de versterking van vooroordelen die specifiek worden veroorzaakt door het filteren van gegevens zelf. Met onze aanpak willen we voorkomen dat het gefilterde model meer bevooroordeeld dan het ongefilterde model, waardoor de distributieverschuiving die wordt veroorzaakt door gegevensfiltering in wezen wordt verminderd.

Als een concreet voorbeeld van bias-versterking door filtering, overweeg dan de prompt "een ceo". Toen ons ongefilterde model afbeeldingen voor deze prompt genereerde, produceerde het meestal meer afbeeldingen van mannen dan van vrouwen, en we verwachten dat het grootste deel van deze vooringenomenheid een weerspiegeling is van onze huidige trainingsgegevens. Toen we echter dezelfde prompt door ons gefilterde model lieten lopen, leek de vertekening te worden versterkt; de generaties waren bijna uitsluitend afbeeldingen van mannen.

We veronderstellen dat dit specifieke geval van bias-amplificatie van twee plaatsen komt: ten eerste, zelfs als vrouwen en mannen ongeveer gelijk vertegenwoordigd zijn in de originele dataset, kan de dataset bevooroordeeld zijn om vrouwen in meer geseksualiseerde contexten te presenteren; en ten tweede kunnen onze classificaties zelf bevooroordeeld zijn vanwege de implementatie of de klassedefinitie, ondanks onze inspanningen om ervoor te zorgen dat dit niet het geval was tijdens de gegevensverzamelings- en validatiefasen. Vanwege deze beide effecten kan ons filter meer afbeeldingen van vrouwen dan mannen verwijderen, waardoor de genderverhouding verandert die het model tijdens de training waarneemt.

Om filter-geïnduceerde bias grondiger te onderzoeken, wilden we een manier om te meten hoeveel onze datafilters de bias ten opzichte van verschillende concepten beïnvloedden. Met name onze filters voor geweld en seksuele inhoud zijn puur op afbeeldingen gebaseerd, maar het multimodale karakter van onze dataset stelt ons in staat om de effecten van deze filters op tekst direct te meten. Omdat elke afbeelding vergezeld gaat van een tekstbijschrift, konden we kijken naar de relatieve frequentie van handmatig geselecteerde trefwoorden in de gefilterde en ongefilterde dataset om in te schatten hoeveel de filters van invloed waren op een bepaald concept.

Om dit in de praktijk te brengen, hebben we Apache Spark gebruikt om de frequenties van een handvol trefwoorden (bijvoorbeeld 'ouder', 'vrouw', 'kind') te berekenen voor alle bijschriften in zowel onze gefilterde als ongefilterde datasets. Hoewel onze dataset honderden miljoenen tekst-beeldparen bevat, duurde het berekenen van deze zoekwoordfrequenties slechts een paar minuten met behulp van ons rekencluster.

Na het berekenen van zoekwoordfrequenties konden we bevestigen dat onze datasetfilters inderdaad de frequenties van bepaalde zoekwoorden meer scheef hadden getrokken dan andere. Zo verminderden de filters de frequentie van het woord 'vrouw' met 14%, terwijl de frequentie van het woord 'man' slechts met 6% werd verminderd. Dit bevestigde op grote schaal wat we anekdotisch al hadden waargenomen door middel van steekproeven uit GLIDE-modellen die op beide datasets waren getraind.

beeld
beeld
Een illustratie van herweging van datasets. We beginnen met een gebalanceerde dataset (links). Als ons filter de ene categorie meer beïnvloedt dan de andere, kan het een vertekende dataset (midden) creëren. Met behulp van herweging "herhalen" we sommige gegevens in feite meer dan andere, waardoor we de vertekening die door de filters wordt veroorzaakt, opnieuw in evenwicht kunnen brengen (rechts).

Nu we een proxy hadden voor het meten van door filters veroorzaakte vertekening, hadden we een manier nodig om deze te verminderen. Om dit probleem aan te pakken, wilden we de gefilterde dataset opnieuw wegen, zodat de distributie beter overeenkwam met de distributie van ongefilterde afbeeldingen. Als speelgoedvoorbeeld om dit idee te illustreren, stel dat onze dataset bestaat uit 50% kattenfoto's en 50% hondenfoto's, maar onze gegevensfilters verwijderen 75% van de honden, maar slechts 50% van de katten. De uiteindelijke dataset zou ⅔ katten en ⅓ honden zijn, en een op waarschijnlijkheid gebaseerd generatief model dat op deze dataset is getraind, zou waarschijnlijk meer afbeeldingen van katten dan honden genereren. We kunnen deze onbalans herstellen door het trainingsverlies van elke afbeelding van een hond met 2 te vermenigvuldigen, waardoor het effect wordt nagebootst van het tweemaal herhalen van elke afbeelding van een hond. Het blijkt dat we deze benadering kunnen schalen naar onze echte datasets en modellen op een manier die grotendeels automatisch gaat, dat wil zeggen dat we de kenmerken die we opnieuw willen wegen niet handmatig hoeven te selecteren.

We berekenen gewichten voor afbeeldingen in de gefilterde dataset met behulp van waarschijnlijkheden van een speciale classificatie, vergelijkbaar met de benadering die wordt gebruikt door Choi et al. (2019). Om deze classificatie te trainen, nemen we uniforme voorbeelden van afbeeldingen uit beide datasets en voorspellen we uit welke dataset de afbeelding afkomstig is. In het bijzonder voorspelt dit model P(ongefilterd|afbeelding), vooraf gegeven P(ongefilterd) = 0.5. In de praktijk willen we niet dat dit model te krachtig is, anders zou het in de eerste plaats de exacte functie kunnen leren die door onze filters is geïmplementeerd. In plaats daarvan willen we dat het model vloeiender is dan onze oorspronkelijke gegevensfilters, en brede categorieën vastlegt die door de filters worden beïnvloed, terwijl we nog steeds niet zeker weten of een bepaalde afbeelding zou worden gefilterd of niet. Hiertoe hebben we een lineaire sonde getraind bovenop een kleine CLIP model.

Als we eenmaal een classifier hebben die de kans voorspelt dat een afbeelding uit de ongefilterde dataset komt, moeten we deze voorspelling nog omzetten in een gewicht voor de afbeelding. Stel bijvoorbeeld dat P(ongefilterd|afbeelding) = 0.8. Dit betekent dat het monster 4 keer meer kans heeft om gevonden te worden in de ongefilterde data dan in de gefilterde data, en een gewicht van 4 zou de onbalans moeten corrigeren. Meer in het algemeen kunnen we het gewicht gebruiken: P(ongefilterd|afbeelding)/P(gefilterd|afbeelding).

Hoe goed verzacht dit herwegingsschema de versterkte bias eigenlijk? Toen we ons vorige gefilterde model verfijnden met het nieuwe wegingsschema, kwam het gedrag van het verfijnde model veel beter overeen met het ongefilterde model op de bevooroordeelde voorbeelden die we eerder hadden gevonden. Hoewel dit bemoedigend was, wilden we deze beperking ook grondiger evalueren met behulp van onze op trefwoorden gebaseerde bias-heuristiek. Om zoekwoordfrequenties te meten, rekening houdend met ons nieuwe wegingsschema, kunnen we eenvoudig elke instantie van een zoekwoord in de gefilterde dataset wegen op basis van het gewicht van de steekproef die het bevat. Als we dit doen, krijgen we een nieuwe set zoekwoordfrequenties die de steekproefgewichten in de gefilterde dataset weerspiegelen.

Voor de meeste zoekwoorden die we hebben gecontroleerd, verminderde het herwegingsschema de frequentieverandering die door filteren werd veroorzaakt. Voor onze eerdere voorbeelden van "man" en "vrouw", werden de relatieve frequentieverminderingen 1% en -1%, terwijl hun vorige waarden respectievelijk 14% en 6% waren. Hoewel deze statistiek slechts een indicatie is voor daadwerkelijke filterbias, is het geruststellend dat ons op afbeeldingen gebaseerde herwegingsschema een op tekst gebaseerde statistiek zo aanzienlijk verbetert.

We blijven de resterende vooroordelen in DALL·E 2 onderzoeken, deels door grotere evaluaties van het gedrag van het model en onderzoek naar de invloed van filtering op vooringenomenheid en de ontwikkeling van vaardigheden.

Oprispingen van afbeeldingen voorkomen

We zagen dat onze interne voorgangers van DALL·E 2 soms trainingsbeelden letterlijk reproduceerden. Dit gedrag was ongewenst, omdat we willen dat DALL·E 2 standaard originele, unieke afbeeldingen maakt en niet alleen stukjes van bestaande afbeeldingen aan elkaar 'aan elkaar plakt'. Bovendien kan het letterlijk reproduceren van trainingsafbeeldingen juridische vragen doen rijzen over inbreuk op het auteursrecht, eigendom en privacy (als foto's van mensen aanwezig waren in trainingsgegevens).

Om het probleem van het terugkeren van afbeeldingen beter te begrijpen, hebben we een dataset met prompts verzameld die vaak resulteerden in dubbele afbeeldingen. Om dit te doen, hebben we een getraind model gebruikt om afbeeldingen te samplen voor 50,000 prompts uit onze trainingsgegevensset, en de monsters gesorteerd op perceptuele gelijkenis met de overeenkomstige trainingsafbeelding. Ten slotte hebben we de topovereenkomsten met de hand geïnspecteerd en slechts een paar honderd echte dubbele paren gevonden van de 50k totale prompts. Hoewel het regurgitatiepercentage minder dan 1% bleek te zijn, vonden we het nodig om het percentage naar 0 te brengen om de hierboven genoemde redenen.

Toen we onze dataset van uitgebraakte afbeeldingen bestudeerden, merkten we twee patronen op. Ten eerste waren de afbeeldingen bijna allemaal eenvoudige vectorafbeeldingen, die waarschijnlijk gemakkelijk te onthouden waren vanwege hun lage informatie-inhoud. Ten tweede, en wat nog belangrijker is, hadden de afbeeldingen allemaal veel bijna-duplicaten in de trainingsdataset. Er kan bijvoorbeeld een vectorafbeelding zijn die eruitziet als een klok die de tijd 1 uur aangeeft, maar dan zouden we een trainingsvoorbeeld ontdekken met dezelfde klok die 2 uur aangeeft, en dan 3 uur, enz. Eenmaal we realiseerden ons dit, we gebruikten een gedistribueerde zoekopdracht voor naaste buren om te verifiëren dat inderdaad alle uitgebraakte afbeeldingen perceptueel vergelijkbare duplicaten in de dataset hadden. Overige Bedrijven hebben een soortgelijk fenomeen waargenomen in grote taalmodellen, waarbij ze ontdekten dat gegevensduplicatie sterk verband houdt met onthouden.

De bovenstaande bevinding suggereerde dat, als we onze dataset zouden ontdubbelen, we het regurgitatieprobleem zouden kunnen oplossen. Om dit te bereiken, waren we van plan een neuraal netwerk te gebruiken om groepen afbeeldingen te identificeren die op elkaar leken, en vervolgens alle afbeeldingen op één na uit elke groep te verwijderen. Hiervoor zou echter voor elke afbeelding moeten worden gecontroleerd of het een duplicaat is van elke andere afbeelding in de dataset. Aangezien onze hele dataset honderden miljoenen afbeeldingen bevat, zouden we naïef honderden quadriljoenen afbeeldingsparen moeten controleren om alle duplicaten te vinden. Hoewel dit technisch binnen handbereik is, vooral op een groot rekencluster, hebben we een veel efficiënter alternatief gevonden dat bijna net zo goed werkt tegen een kleine fractie van de kosten.

Bedenk wat er gebeurt als we onze dataset clusteren voordat we deduplicatie uitvoeren. Omdat monsters in de buurt vaak in hetzelfde cluster vallen, zouden de meeste dubbele paren de clusterbeslissingsgrenzen niet overschrijden. We zouden vervolgens monsters binnen elk cluster kunnen dedupliceren zonder te controleren op duplicaten buiten het cluster, terwijl we slechts een klein deel van alle dubbele paren missen. Dit is veel sneller dan de naïeve benadering, omdat we niet langer elk paar afbeeldingen hoeven te controleren. Toen we deze aanpak empirisch testten op een kleine subset van onze gegevens, vond 85% van alle dubbele paren bij gebruik van K = 1024 clusters.

Om het slagingspercentage van het bovenstaande algoritme te verbeteren, hebben we gebruik gemaakt van één belangrijke observatie: wanneer u verschillende willekeurige subsets van een dataset clustert, zijn de resulterende clusterbeslissingsgrenzen vaak behoorlijk verschillend. Als een duplicaatpaar een clustergrens overschrijdt voor één clustering van de gegevens, kan hetzelfde paar daarom binnen een enkel cluster in een andere clustering vallen. Hoe meer clusterings u probeert, hoe groter de kans dat u een bepaald duplicaatpaar ontdekt. In de praktijk hebben we gekozen voor het gebruik van vijf clusterings, wat betekent dat we zoeken naar duplicaten van elke afbeelding in de vereniging van vijf verschillende clusters. In de praktijk vond dit 97% van alle dubbele paren op een subset van onze gegevens.

Verrassend genoeg werd bijna een kwart van onze dataset verwijderd door deduplicatie. Toen we keken naar de bijna dubbele paren die werden gevonden, bevatten veel ervan betekenisvolle veranderingen. Denk aan het klokvoorbeeld van hierboven: de dataset kan veel afbeeldingen van dezelfde klok op verschillende tijdstippen van de dag bevatten. Hoewel deze afbeeldingen ervoor zorgen dat het model het uiterlijk van deze specifieke klok onthoudt, kunnen ze het model ook helpen om onderscheid te maken tussen tijdstippen van de dag op een klok. Gezien de hoeveelheid gegevens die zijn verwijderd, waren we bang dat het verwijderen van dergelijke afbeeldingen de prestaties van het model zou kunnen schaden.

Om het effect van deduplicatie op onze modellen te testen, hebben we twee modellen met identieke hyperparameters getraind: een op de volledige dataset en een op de gededupliceerde versie van de dataset. Om de modellen te vergelijken, gebruikten we dezelfde menselijke evaluaties die we gebruikten om ons oorspronkelijke GLIDE-model te evalueren. Verrassend genoeg ontdekten we dat menselijke beoordelaars enigszins bij voorkeur het model trainde op gededupliceerde gegevens, wat suggereert dat de grote hoeveelheid overtollige afbeeldingen in de dataset de prestaties nadelig beïnvloedde.

Nadat we een model hadden getraind op gededupliceerde gegevens, hebben we de regurgitatie-zoekopdracht opnieuw uitgevoerd die we eerder hadden gedaan met meer dan 50 prompts uit de trainingsgegevensset. We ontdekten dat het nieuwe model nooit een trainingsafbeelding uitbraakte wanneer de exacte prompt voor de afbeelding uit de trainingsgegevensset werd gegeven. Om deze test nog een stap verder te brengen, hebben we ook een naaste buur-zoekopdracht uitgevoerd over de volledige trainingsdataset voor elk van de 50k gegenereerde afbeeldingen. Op deze manier dachten we dat we het model zouden kunnen betrappen op een andere afbeelding dan de afbeelding die bij een bepaalde prompt hoort. Zelfs met deze meer grondige controle hebben we nooit een geval van beeldregurgitatie gevonden.

Volgende stappen

Hoewel alle hierboven besproken oplossingen een aanzienlijke vooruitgang betekenen in de richting van ons doel om de risico's van DALL·E 2 te verminderen, is er bij elke beperking nog ruimte voor verbetering:

  • Met betere pre-trainingsfilters kunnen we DALL·E 2 op meer gegevens trainen en mogelijk de vertekening in het model verder verminderen. Onze huidige filters zijn afgestemd op een laag mispercentage ten koste van veel valse positieven. Als gevolg hiervan hebben we ongeveer 5% van onze volledige dataset weggefilterd, hoewel de meeste van deze gefilterde afbeeldingen ons inhoudsbeleid helemaal niet schenden. Door onze filters te verbeteren, kunnen we een deel van deze trainingsgegevens terugwinnen.
  • Bias wordt geïntroduceerd en mogelijk versterkt in vele stadia van systeemontwikkeling en -implementatie. Het evalueren en verminderen van de bias in systemen zoals DALL·E 2 en de schade die door deze bias wordt veroorzaakt, is een belangrijk interdisciplinair probleem dat we bij OpenAI blijven bestuderen als onderdeel van onze bredere missie. Ons werk hieraan omvat het bouwen van evaluaties om het probleem beter te begrijpen, het samenstellen van nieuwe datasets en het toepassen van technieken zoals menselijke feedback en fine-tuning om robuustere en representatievere technologieën te bouwen.
  • Het is ook van cruciaal belang dat we memorisatie en generalisatie in deep learning-systemen blijven bestuderen. Hoewel deduplicatie een goede eerste stap is om memoriseren te voorkomen, vertelt het ons niet alles wat er te leren valt over waarom of hoe modellen zoals DALL·E 2 trainingsgegevens onthouden.
spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?