Salta al contingut principal
OpenAI

28 de juny del 2022

Publicació

Mitigacions de preentrenament de DALL·E 2

Vista aèria d'una multitud de persones d'esquena, amb barrets i banderes

DALL·E

S'està carregant…

Per compartir la màgia de DALL·E 2 amb un públic ampli, necessitàvem reduir els riscos associats als potents models de generació d'imatges. Amb aquest objectiu, vam establir diverses mesures de protecció(s'obre en una finestra nova) per evitar que les imatges generades vulneressin la nostra política de continguts(s'obre en una finestra nova).

Aquesta publicació se centra en les mitigacions de preentrenament, un subconjunt d'aquestes mesures de protecció que modifiquen directament les dades de les quals aprèn DALL·E 2. En particular, DALL·E 2 s'entrena amb centenars de milions d'imatges amb subtítols d'internet, i n'eliminem i reponderem algunes per canviar allò que el model aprèn.

Aquesta publicació s'organitza en tres seccions, cadascuna de les quals descriu una mitigació de preentrenament diferent:

  • A la primera secció, descrivim com vam filtrar imatges violentes i sexuals del conjunt de dades d'entrenament de DALL·E 2. Sense aquesta mitigació, el model aprendria a produir imatges gràfiques o explícites quan se li demanessin, i fins i tot podria retornar aquestes imatges de manera no intencionada en resposta a indicacions aparentment innòcues.
  • A la segona secció, observem que filtrar les dades d'entrenament pot amplificar biaixos i descrivim la nostra tècnica per mitigar aquest efecte. Per exemple, sense aquesta mitigació, vam observar que els models entrenats amb dades filtrades de vegades generaven més imatges que representaven homes i menys imatges que representaven dones, en comparació amb els models entrenats amb el conjunt de dades original.
  • A la secció final, abordem la qüestió de la memorització i constatem que models com DALL·E 2 de vegades poden reproduir imatges amb les quals s'han entrenat en lloc de crear imatges noves. A la pràctica, vam veure que aquesta regurgitació d'imatges està causada per imatges que es repliquen moltes vegades al conjunt de dades, i mitiguem el problema eliminant imatges visualment similars a altres imatges del conjunt de dades.

Reduir les dades d'entrenament gràfiques i explícites

Com que les dades d'entrenament determinen les capacitats de qualsevol model après, el filtratge de dades és una eina potent per limitar capacitats indesitjables del model. Vam aplicar aquest enfocament a dues categories —imatges que representen violència gràfica i contingut sexual— utilitzant classificadors per filtrar del conjunt de dades les imatges d'aquestes categories abans d'entrenar DALL·E 2. Vam entrenar internament aquests classificadors d'imatges i continuem estudiant els efectes del filtratge del conjunt de dades sobre el nostre model entrenat.

Per entrenar els nostres classificadors d'imatges, vam reutilitzar un enfocament que ja havíem emprat anteriorment per filtrar dades d'entrenament per a GLIDE(s'obre en una finestra nova). Els passos bàsics d'aquest enfocament són els següents: primer, creem una especificació per a les categories d'imatges que volem etiquetar; segon, recopilem uns quants centenars d'exemples positius i negatius per a cada categoria; tercer, utilitzem un procediment d'aprenentatge actiu per recopilar més dades i millorar el compromís entre precisió i recordatori; i finalment, executem el classificador resultant sobre tot el conjunt de dades amb un llindar de classificació conservador per afavorir el recordatori per sobre de la precisió. Per establir aquests llindars, vam prioritzar filtrar totes les dades dolentes per sobre de conservar totes les dades bones. Això es deu al fet que sempre podem ajustar finament el nostre model amb més dades més endavant per ensenyar-li coses noves, però és molt més difícil fer que el model oblidi alguna cosa que ja ha après.

S'està carregant...

Durant la fase d'aprenentatge actiu, vam millorar iterativament els nostres classificadors recopilant etiquetes humanes per a imatges potencialment difícils o mal classificades. En concret, vam utilitzar dues tècniques d'aprenentatge actiu per triar imatges del nostre conjunt de dades (que conté centenars de milions d'imatges sense etiquetar) per presentar-les a humans perquè les etiquetessin. Primer, per reduir la taxa de falsos positius del nostre classificador (és a dir, la freqüència amb què classifica erròniament una imatge benigna com a violenta o sexual), vam assignar etiquetes humanes a imatges que el model actual classificava com a positives. Perquè aquest pas funcionés bé, vam ajustar el nostre llindar de classificació per a un recordatori de gairebé el 100% però amb una taxa alta de falsos positius; d'aquesta manera, els nostres etiquetadors etiquetaven principalment casos realment negatius. Tot i que aquesta tècnica ajuda a reduir els falsos positius i redueix la necessitat que els etiquetadors vegin imatges potencialment perjudicials, no ajuda a trobar més casos positius que el model està ometent actualment.

Per reduir la taxa de falsos negatius del nostre classificador, vam emprar una segona tècnica d'aprenentatge actiu: la cerca del veí més proper. En particular, vam executar una validació creuada múltiple per trobar mostres positives al nostre conjunt de dades etiquetades actual que el model tendia a classificar erròniament com a negatives (per fer-ho, literalment vam entrenar centenars de versions del classificador amb diferents divisions d'entrenament-validació). Després vam escanejar la nostra gran col·lecció d'imatges sense etiquetar per trobar els veïns més propers d'aquestes mostres en un espai de característiques perceptives, i vam assignar etiquetes humanes a les imatges descobertes. Gràcies a la nostra infraestructura de càlcul, va ser trivial ampliar tant l'entrenament del classificador com la cerca del veí més proper a moltes GPU, cosa que va permetre que el pas d'aprenentatge actiu tingués lloc en qüestió de minuts en lloc d'hores o dies.

Per verificar l'eficàcia dels nostres filtres de dades, vam entrenar dos models GLIDE amb els mateixos hiperparàmetres: un amb dades sense filtrar i un amb el conjunt de dades després del filtratge. Ens referim al primer model com al model sense filtrar, i al segon com al model filtrat. Com era d'esperar, vam constatar que el model filtrat generalment produïa contingut menys explícit o gràfic en resposta a sol·licituds d'aquest tipus de contingut. Tanmateix, també vam detectar un efecte secundari inesperat del filtratge de dades: va crear o amplificar els biaixos del model cap a determinats grups demogràfics.

S'està carregant...

Corregir el biaix introduït pels filtres de dades

Els models generatius intenten ajustar-se a la distribució de les seves dades d'entrenament, incloent-hi qualsevol biaix que hi pugui haver. Com a resultat, filtrar les dades d'entrenament pot crear o amplificar biaixos en els models resultants. En general, corregir els biaixos del conjunt de dades original és una tasca sociotècnica difícil que continuem estudiant, i queda fora de l'abast d'aquesta publicació. El problema que abordem aquí és l'amplificació dels biaixos causada específicament pel mateix filtratge de dades. Amb el nostre enfocament, pretenem evitar que el model filtrat sigui més esbiaixat que el model sense filtrar, reduint essencialment el desplaçament de distribució causat pel filtratge de dades.

Com a exemple concret d'amplificació del biaix a causa del filtratge, considerem la indicació «a ceo». Quan el nostre model sense filtrar generava imatges per a aquesta indicació, tendia a produir més imatges d'homes que de dones, i esperem que la major part d'aquest biaix sigui un reflex de les nostres dades d'entrenament actuals. Tanmateix, quan vam passar la mateixa indicació pel nostre model filtrat, el biaix semblava haver-se amplificat; les generacions eren gairebé exclusivament imatges d'homes.

La nostra hipòtesi és que aquest cas concret d'amplificació del biaix prové de dos factors: primer, encara que dones i homes tinguin una representació aproximadament igual al conjunt de dades original, el conjunt de dades pot estar esbiaixat cap a presentar les dones en contextos més sexualitzats; i segon, els nostres classificadors mateixos poden estar esbiaixats, ja sigui per la implementació o per la definició de classe, malgrat els nostres esforços per garantir que no fos així durant les fases de recopilació i validació de dades. A causa d'aquests dos efectes, el nostre filtre pot eliminar més imatges de dones que d'homes, cosa que modifica la proporció de gènere que el model observa durant l'entrenament.

Per investigar amb més profunditat el biaix induït pels filtres, volíem una manera de mesurar fins a quin punt els nostres filtres de dades afectaven el biaix cap a diversos conceptes. En concret, els nostres filtres de violència i contingut sexual es basen exclusivament en imatges, però la naturalesa multimodal del nostre conjunt de dades ens permet mesurar directament els efectes d'aquests filtres sobre el text. Com que cada imatge va acompanyada d'un text descriptiu, vam poder observar la freqüència relativa de paraules clau seleccionades manualment entre el conjunt de dades filtrat i el sense filtrar per estimar fins a quin punt els filtres afectaven un concepte determinat.

Per posar-ho en pràctica, vam utilitzar Apache Spark per calcular les freqüències d'un grapat de paraules clau (p. ex., «parent», «woman», «kid») en tots els textos descriptius tant del nostre conjunt de dades filtrat com del sense filtrar. Tot i que el nostre conjunt de dades conté centenars de milions de parelles text-imatge, calcular aquestes freqüències de paraules clau només va requerir uns quants minuts amb el nostre clúster de càlcul.

Després de calcular les freqüències de paraules clau, vam poder confirmar que els nostres filtres del conjunt de dades efectivament havien esbiaixat les freqüències d'algunes paraules clau més que d'altres. Per exemple, els filtres van reduir la freqüència de la paraula «woman» en un 14%, mentre que la freqüència de la paraula «man» només es va reduir en un 6%. Això confirmava, a gran escala, el que ja havíem observat anecdòticament mostrejant models GLIDE entrenats amb tots dos conjunts de dades.

S'està carregant...

Ara que teníem un indicador indirecte per mesurar el biaix induït pels filtres, necessitàvem una manera de mitigar-lo. Per abordar aquest problema, vam intentar reponderar el conjunt de dades filtrat perquè la seva distribució s'ajustés millor a la distribució d'imatges sense filtrar. Com a exemple senzill per il·lustrar aquesta idea, suposem que el nostre conjunt de dades està format per un 50% de fotos de gats i un 50% de fotos de gossos, però que els nostres filtres de dades eliminen el 75% dels gossos i només el 50% dels gats. El conjunt de dades final seria de ⅔ gats i ⅓ gossos, i és probable que un model generatiu basat en versemblança entrenat amb aquest conjunt de dades generi més imatges de gats que de gossos. Podem corregir aquest desequilibri multiplicant per 2 la pèrdua d'entrenament de cada imatge d'un gos, emulant l'efecte de repetir cada imatge de gos dues vegades. Resulta que podem escalar aquest enfocament als nostres conjunts de dades i models reals d'una manera en gran part automàtica; és a dir, no cal seleccionar manualment les característiques que volem reponderar.

Calculem pesos per a les imatges del conjunt de dades filtrat utilitzant probabilitats d'un classificador especial, similar a l'enfocament utilitzat per Choi et al. (2019)(s'obre en una finestra nova). Per entrenar aquest classificador, mostregem uniformement imatges de tots dos conjunts de dades i prediem de quin conjunt de dades prové la imatge. En concret, aquest model prediu P(unfiltered|image), donat un priori P(unfiltered) = 0.5. A la pràctica, no volem que aquest model sigui massa potent, perquè si no podria aprendre exactament la funció implementada pels nostres filtres. En canvi, volem que el model sigui més suau que els nostres filtres de dades originals, capturant categories àmplies afectades pels filtres i alhora mantenint la incertesa sobre si una imatge concreta seria filtrada o no. Amb aquest objectiu, vam entrenar una sonda lineal sobre un model petit de CLIP.

Un cop tenim un classificador que prediu la probabilitat que una imatge provingui del conjunt de dades sense filtrar, encara hem de convertir aquesta predicció en un pes per a la imatge. Per exemple, suposem que P(unfiltered|image) = 0.8. Això significa que la mostra té 4 vegades més probabilitats de trobar-se a les dades sense filtrar que a les dades filtrades, i un pes de 4 hauria de corregir el desequilibri. De manera més general, podem utilitzar el pes P(unfiltered|image)/P(filtered|image).A

Fins a quin punt aquest esquema de reponderació mitiga realment el biaix amplificat? Quan vam ajustar finament el nostre model filtrat anterior amb el nou esquema de pesos, el comportament del model ajustat s'assemblava molt més al del model sense filtrar en els exemples esbiaixats que ja havíem trobat. Tot i que això era encoratjador, també volíem avaluar aquesta mitigació amb més profunditat mitjançant la nostra heurística de biaix basada en paraules clau. Per mesurar les freqüències de paraules clau tenint en compte el nostre nou esquema de pesos, podem simplement ponderar cada instància d'una paraula clau al conjunt de dades filtrat amb el pes de la mostra que la conté. Si ho fem, obtenim un nou conjunt de freqüències de paraules clau que reflecteixen els pesos de les mostres al conjunt de dades filtrat.

En la majoria de les paraules clau que vam comprovar, l'esquema de reponderació va reduir el canvi de freqüència induït pel filtratge. En els nostres exemples anteriors de «man» i «woman», les reduccions relatives de freqüència van passar a ser de l'1% i del –1%, mentre que els seus valors anteriors eren del 14% i del 6%, respectivament. Tot i que aquesta mètrica és només un indicador indirecte del biaix de filtratge real, és tranquil·litzador que el nostre esquema de reponderació basat en imatges millori una mètrica basada en text de manera tan significativa.

Continuem investigant els biaixos restants a DALL·E 2, en part mitjançant avaluacions més àmplies del comportament del model i investigacions sobre com el filtratge va afectar el desenvolupament del biaix i de les capacitats.

Prevenir la regurgitació d'imatges

Vam observar que els nostres predecessors interns de DALL·E 2 de vegades reproduïen imatges d'entrenament literalment. Aquest comportament era indesitjable, ja que volem que DALL·E 2 creï imatges originals i úniques per defecte i no que simplement «cus» fragments d'imatges existents. A més, reproduir imatges d'entrenament literalment pot plantejar qüestions legals relacionades amb la infracció de drets d'autor, la propietat i la privadesa (si hi havia fotos de persones a les dades d'entrenament).

Per entendre millor el problema de la regurgitació d'imatges, vam recopilar un conjunt de dades d'indicacions que sovint donaven lloc a imatges duplicades. Per fer-ho, vam utilitzar un model entrenat per mostrejar imatges per a 50.000 indicacions del nostre conjunt de dades d'entrenament, i vam ordenar les mostres per similitud perceptiva amb la imatge d'entrenament corresponent. Finalment, vam inspeccionar manualment les coincidències principals i només vam trobar uns quants centenars de parelles realment duplicades entre les 50.000 indicacions totals. Tot i que la taxa de regurgitació semblava ser inferior a l'1%, vam considerar necessari reduir-la a 0 pels motius exposats més amunt.

Quan vam estudiar el nostre conjunt de dades d'imatges regurgitades, vam detectar dos patrons. Primer, les imatges eren gairebé totes gràfics vectorials simples, probablement fàcils de memoritzar pel seu baix contingut informatiu. Segon, i més important, totes les imatges tenien molts quasi duplicats al conjunt de dades d'entrenament. Per exemple, hi podria haver un gràfic vectorial que sembla un rellotge marcant la 1 en punt, però després descobriríem una mostra d'entrenament amb el mateix rellotge marcant les 2, i després les 3, etc. Un cop ens en vam adonar, vam utilitzar una cerca distribuïda del veí més proper per verificar que, efectivament, totes les imatges regurgitades tenien duplicats perceptivament similars al conjunt de dades. Altres(s'obre en una finestra nova) treballs(s'obre en una finestra nova) han observat un fenomen similar en models de llenguatge grans, i han trobat que la duplicació de dades està fortament vinculada a la memorització.

La troballa anterior suggeria que, si desduplicàvem el nostre conjunt de dades, podríem resoldre el problema de la regurgitació. Per aconseguir-ho, teníem previst utilitzar una xarxa neuronal per identificar grups d'imatges que semblessin similars i, després, eliminar totes les imatges excepte una de cada grup.B

No obstant això, això exigiria comprovar, per a cada imatge, si és un duplicat de totes les altres imatges del conjunt de dades. Com que tot el nostre conjunt de dades conté centenars de milions d'imatges, de manera ingènua hauríem de comprovar centenars de quadrilions de parelles d'imatges per trobar tots els duplicats. Tot i que això és tècnicament factible, especialment en un gran clúster de càlcul, vam trobar una alternativa molt més eficient que funciona gairebé igual de bé amb una petita fracció del cost.Considerem què passa si agrupem el nostre conjunt de dades abans de fer la desduplicació. Com que les mostres properes sovint cauen al mateix clúster, la majoria de les parelles duplicades no travessarien els límits de decisió dels clústers. Aleshores podríem desduplicar mostres dins de cada clúster sense comprovar duplicats fora del clúster, i només ens perdríem una petita fracció de totes les parelles duplicades. Això és molt més ràpid que l'enfocament ingenu, ja que ja no hem de comprovar cada parella d'imatges.C

Quan vam provar aquest enfocament empíricament en un petit subconjunt de les nostres dades, va trobar el 85% de totes les parelles duplicades fent servir K=1024 clústers. Per millorar la taxa d'èxit de l'algorisme anterior, vam aprofitar una observació clau: quan agrupes diferents subconjunts aleatoris d'un conjunt de dades, els límits de decisió dels clústers resultants sovint són força diferents. Per tant, si una parella duplicada travessa el límit d'un clúster en una agrupació de les dades, la mateixa parella podria quedar dins d'un sol clúster en una agrupació diferent. Com més agrupacions proves, més probable és que descobreixis una parella duplicada determinada. A la pràctica, vam optar per utilitzar cinc agrupacions, cosa que significa que busquem duplicats de cada imatge a la unió de cinc clústers diferents. A la pràctica, això va trobar el 97% de totes les parelles duplicades en un subconjunt de les nostres dades.

Sorprenentment, gairebé una quarta part del nostre conjunt de dades es va eliminar mitjançant la desduplicació. Quan vam examinar les parelles quasi duplicades que es van trobar, moltes incloïen canvis significatius. Recordem l'exemple del rellotge d'abans: el conjunt de dades podria incloure moltes imatges del mateix rellotge a diferents hores del dia. Tot i que és probable que aquestes imatges facin que el model memoritzi l'aspecte d'aquest rellotge concret, també podrien ajudar el model a aprendre a distingir entre diferents hores del dia en un rellotge. Tenint en compte la quantitat de dades que es van eliminar, ens preocupava que eliminar imatges com aquesta pogués haver perjudicat el rendiment del model.

Per provar l'efecte de la desduplicació en els nostres models, vam entrenar dos models amb hiperparàmetres idèntics: un amb el conjunt de dades complet i un altre amb la versió desduplicada del conjunt de dades. Per comparar els models, vam utilitzar les mateixes avaluacions humanes que havíem fet servir per avaluar el nostre model GLIDE original. Sorprenentment, vam trobar que els avaluadors humans preferien lleugerament el model entrenat amb dades desduplicades, cosa que suggereix que la gran quantitat d'imatges redundants al conjunt de dades en realitat perjudicava el rendiment.

Un cop vam tenir un model entrenat amb dades desduplicades, vam tornar a executar la cerca de regurgitació que ja havíem fet abans sobre 50.000 indicacions del conjunt de dades d'entrenament. Vam veure que el nou model mai no regurgitava una imatge d'entrenament quan se li donava la indicació exacta de la imatge del conjunt de dades d'entrenament. Per portar aquesta prova un pas més enllà, també vam fer una cerca del veí més proper sobre tot el conjunt de dades d'entrenament per a cadascuna de les 50.000 imatges generades. D'aquesta manera, pensàvem que podríem detectar si el model regurgitava una imatge diferent de la que estava associada a una indicació determinada. Fins i tot amb aquesta comprovació més exhaustiva, no vam trobar mai cap cas de regurgitació d'imatges.

Passos següents

Tot i que totes les mitigacions comentades més amunt representen un progrés important cap al nostre objectiu de reduir els riscos associats amb DALL·E 2, cadascuna encara té marge de millora:

  • Uns filtres de preentrenament millors podrien permetre'ns entrenar DALL·E 2 amb més dades i potencialment reduir encara més el biaix del model. Els nostres filtres actuals estan ajustats per a una taxa baixa d'omissions al cost de molts falsos positius. Com a resultat, vam filtrar aproximadament el 5% de tot el nostre conjunt de dades tot i que la majoria d'aquestes imatges filtrades no vulneren en absolut la nostra política de continguts. Millorar els nostres filtres podria permetre'ns recuperar part d'aquestes dades d'entrenament.
  • El biaix s'introdueix i potencialment s'amplifica en moltes etapes del desenvolupament i desplegament de sistemes. Avaluar i mitigar el biaix en sistemes com DALL·E 2 i el dany induït per aquest biaix és un problema interdisciplinari important que continuem estudiant a OpenAI com a part de la nostra missió més àmplia. El nostre treball en aquest àmbit inclou crear avaluacions per entendre millor el problema, seleccionar nous conjunts de dades i aplicar tècniques com ara la retroalimentació humana i l'ajust fi per construir tecnologies més robustes i representatives.
  • També és crucial que continuem estudiant la memorització i la generalització en sistemes d'aprenentatge profund. Tot i que la desduplicació és un bon primer pas per evitar la memorització, no ens diu tot el que cal aprendre sobre per què o com models com DALL·E 2 memoritzen dades d'entrenament.

Notes a peu de pàgina

  1. Quan parametritzem P(unfiltered|image) com a sigmoid(f(x)), el pes és aleshores exp(f(x)). Això es pot derivar utilitzant la definició de la sigmoide:

1/(1+ef(x))/(11/(1+ef(x))) 1/(1+e^−f(x))/(1−1/(1+e^−f(x))) =1/(1+ef(x))/((1+ef(x)1)/(1+ef(x))) = 1/(1+e^{-f(x)}) / ((1+e^{-f(x)} - 1)/(1+e^{-f(x)})) =1/(1+ef(x))/((ef(x))/(1+ef(x))) = 1/(1+e^{-f(x)}) / ((e^{-f(x)})/(1+e^{-f(x)})) =(1+ef(x))/(1+ef(x))/(ef(x)) = (1+e^-f(x))/(1+e^-f(x)) / (e^-f(x)) =1/(ef(x))=ef(x) = 1 / (e^{-f(x)}) = e^{f(x)}

  1. B

    Per aconseguir-ho, podem calcular un vector de característiques viv_i per a cada imatge d'entrenament ii, i després eliminar totes les imatges jj tals que existeixi un i<ji < j on vivj||v_i - v_j|| <threshold. Per resoldre aquest problema de manera ingènua, hauríem de calcular cada distància per parelles vivj||v_i - v_j||, una tasca que escala quadràticament amb la mida del nostre conjunt de dades.

  2. C

    Si K K representa el nombre de clústers i N N la mida del conjunt de dades, aquest enfocament només requereix O(K(N/K)2)=O(N2/K) O(K*(N/K)^2) = O(N^2/K) càlculs de distància per parelles, en lloc del total O(N2) O(N^2) . Mentrestant, encara tenim la garantia que cap imatge no tindrà més de K K quasi duplicats en el pitjor dels casos possibles.

Autors

Alex Nichol

Col·laboradors

Alex Nichol, Aditya Ramesh, Pamela Mishkin, Prafulla Dariwal, Joanne Jang, Mark Chen

Contribucions de redacció de

Greg Brockman, Aditya Ramesh, Pamela Mishkin, Mark Chen, Pranav Shyam, Casey Chu, Che Chang, Miles Brundage