Пређите на главни садржај
OpenAI

28. јун 2022.

Публикација

Ublažavanja u predobuci za DALL·E 2

Pogled iz vazduha na mnoštvo ljudi okrenutih leđima, sa šeširima i zastavama

DALL·E

Учитавање…

Da bismo podelili čaroliju DALL·E 2 sa širom publikom, morali smo da smanjimo rizike povezane sa moćnim modelima za generisanje slika. U tu svrhu, uveli smo različite zaštitne mere(отвара се у новом прозору) kako bismo sprečili da generisane slike krše našu politiku sadržaja(отвара се у новом прозору).

Ovaj tekst se fokusira na ublažavanja u predobuci, podskup ovih zaštitnih mera koje direktno menjaju podatke iz kojih DALL·E 2 uči. Konkretno, DALL·E 2 se obučava na stotinama miliona slika sa natpisima sa interneta, a neke od tih slika uklanjamo i ponovo ponderišemo da bismo promenili ono što model uči.

Ovaj tekst je organizovan u tri celine, od kojih svaka opisuje drugačije ublažavanje u predobuci:

  • U prvoj celini opisujemo kako smo iz skupa podataka za obuku DALL·E 2 filtrirali nasilne i seksualne slike. Bez ovog ublažavanja, model bi naučio da proizvodi grafičke ili eksplicitne slike kada se to od njega traži, a mogao bi čak i nenamerno da vrati takve slike kao odgovor na naizgled bezazlene instrukcije.
  • U drugoj celini pokazujemo da filtriranje podataka za obuku može pojačati pristrasnosti i opisujemo našu tehniku za ublažavanje tog efekta. Na primer, bez ovog ublažavanja primetili smo da modeli obučeni na filtriranim podacima ponekad generišu više slika koje prikazuju muškarce, a manje slika koje prikazuju žene u poređenju sa modelima obučenim na originalnom skupu podataka.
  • U završnoj celini bavimo se problemom memorisanja i utvrđujemo da modeli poput DALL·E 2 ponekad mogu reprodukovati slike na kojima su obučeni umesto da stvaraju nove slike. U praksi smo ustanovili da je ovo vraćanje slika uzrokovano slikama koje su mnogo puta replicirane u skupu podataka, a problem ublažavamo uklanjanjem slika koje su vizuelno slične drugim slikama u skupu podataka.

Smanjenje grafičkih i eksplicitnih podataka za obuku

Pošto podaci za obuku oblikuju sposobnosti svakog naučenog modela, filtriranje podataka je moćan alat za ograničavanje neželjenih sposobnosti modela. Ovaj pristup smo primenili na dve kategorije — slike koje prikazuju grafičko nasilje i seksualni sadržaj — koristeći klasifikatore za filtriranje slika u tim kategorijama iz skupa podataka pre obuke DALL·E 2. Ove klasifikatore slika obučili smo interno i nastavljamo da proučavamo efekte filtriranja skupa podataka na naš obučeni model.

Za obuku naših klasifikatora slika, ponovo smo upotrebili pristup koji smo prethodno primenili za filtriranje podataka za obuku za GLIDE(отвара се у новом прозору). Osnovni koraci tog pristupa su sledeći: prvo, pravimo specifikaciju za kategorije slika koje želimo da označimo; drugo, prikupljamo nekoliko stotina pozitivnih i negativnih primera za svaku kategoriju; treće, koristimo postupak aktivnog učenja da prikupimo više podataka i poboljšamo kompromis između preciznosti i odziva; i na kraju, pokrećemo rezultujući klasifikator nad celim skupom podataka uz konzervativan prag klasifikacije kako bismo dali prednost odzivu u odnosu na preciznost. Pri postavljanju ovih pragova prioritet nam je bio da filtriramo sve loše podatke umesto da zadržimo sve dobre podatke. To je zato što uvek kasnije možemo fino podesiti naš model sa više podataka da ga naučimo novim stvarima, ali je mnogo teže naterati model da zaboravi nešto što je već naučio.

Учитавање...

Tokom faze aktivnog učenja, iterativno smo poboljšavali naše klasifikatore prikupljanjem ljudskih oznaka za potencijalno teške ili pogrešno klasifikovane slike. Značajno je da smo koristili dve tehnike aktivnog učenja da izaberemo slike iz našeg skupa podataka (koji sadrži stotine miliona neoznačenih slika) koje ćemo prikazati ljudima radi označavanja. Prvo, da bismo smanjili stopu lažno pozitivnih rezultata našeg klasifikatora (tj. učestalost kojom bezazlenu sliku pogrešno klasifikuje kao nasilnu ili seksualnu), dodeljivali smo ljudske oznake slikama koje je trenutni model klasifikovao kao pozitivne. Da bi ovaj korak dobro funkcionisao, podesili smo prag klasifikacije na skoro 100% odziva, ali uz visoku stopu lažno pozitivnih rezultata; na taj način, naši označivači su uglavnom označavali zaista negativne slučajeve. Iako ova tehnika pomaže da se smanje lažno pozitivni rezultati i umanjuje potreba da označivači gledaju potencijalno štetne slike, ona ne pomaže da se pronađe više pozitivnih slučajeva koje model trenutno propušta.

Da bismo smanjili stopu lažno negativnih rezultata našeg klasifikatora, primenili smo drugu tehniku aktivnog učenja: pretragu najbližih suseda. Konkretno, sproveli smo višestruku unakrsnu validaciju da bismo pronašli pozitivne uzorke u našem trenutno označenom skupu podataka koje je model imao tendenciju da pogrešno klasifikuje kao negativne (da bismo to uradili, doslovno smo trenirali stotine verzija klasifikatora sa različitim podelama na skupove za obuku i validaciju). Zatim smo u našoj velikoj kolekciji neoznačenih slika tražili najbliže susede tih uzoraka u prostoru perceptivnih karakteristika i dodeljivali ljudske oznake otkrivenim slikama. Zahvaljujući našoj računarskoj infrastrukturi, bilo je trivijalno skalirati i obuku klasifikatora i pretragu najbližih suseda na mnogo GPU-ova, što je omogućilo da se korak aktivnog učenja odvija tokom nekoliko minuta, a ne sati ili dana.

Da bismo proverili efikasnost naših filtera podataka, obučili smo dva GLIDE modela sa istim hiperparametrima: jedan na nefiltriranim podacima, a drugi na skupu podataka nakon filtriranja. Prvi model nazivamo nefiltrirani model, a drugi filtrirani model. Kao što se i očekivalo, ustanovili smo da filtrirani model uglavnom proizvodi manje eksplicitan ili grafički sadržaj kao odgovor na zahteve za ovom vrstom sadržaja. Međutim, otkrili smo i neočekivani sporedni efekat filtriranja podataka: ono je stvorilo ili pojačalo pristrasnosti modela prema određenim demografskim grupama.

Учитавање...

Otklanjanje pristrasnosti koju uvode filteri podataka

Generativni modeli nastoje da usklade raspodelu svojih podataka za obuku, uključujući i eventualne pristrasnosti u njima. Kao rezultat toga, filtriranje podataka za obuku može stvoriti ili pojačati pristrasnosti u nizvodnim modelima. Uopšteno, ispravljanje pristrasnosti u originalnom skupu podataka je težak sociotehnički zadatak koji nastavljamo da proučavamo i izlazi iz okvira ovog teksta. Problem kojim se ovde bavimo jeste pojačavanje pristrasnosti izazvano konkretnije samim filtriranjem podataka. Našim pristupom nastojimo da sprečimo da filtrirani model bude više pristrasan od nefiltriranog modela, u suštini smanjujući pomeranje raspodele izazvano filtriranjem podataka.

Kao konkretan primer pojačavanja pristrasnosti usled filtriranja, razmotrite instrukciju „a ceo”. Kada je naš nefiltrirani model generisao slike za ovu instrukciju, imao je tendenciju da proizvodi više slika muškaraca nego žena, i očekujemo da je najveći deo te pristrasnosti odraz naših trenutnih podataka za obuku. Međutim, kada smo istu instrukciju pokrenuli kroz naš filtrirani model, činilo se da je pristrasnost pojačana; generacije su bile gotovo isključivo slike muškaraca.

Pretpostavljamo da ovaj konkretan slučaj pojačavanja pristrasnosti potiče iz dva izvora: prvo, čak i ako žene i muškarci imaju približno jednaku zastupljenost u originalnom skupu podataka, skup podataka može biti pristrasan ka prikazivanju žena u više seksualizovanim kontekstima; i drugo, naši klasifikatori sami mogu biti pristrasni bilo zbog implementacije bilo zbog definicije klase, uprkos našim naporima da osiguramo da to nije bio slučaj tokom faza prikupljanja i validacije podataka. Zbog oba ova efekta, naš filter može ukloniti više slika žena nego muškaraca, što menja odnos polova koji model posmatra tokom obuke.

Da bismo temeljitije istražili pristrasnost izazvanu filterima, želeli smo način da izmerimo koliko naši filteri podataka utiču na pristrasnost prema različitim konceptima. Važno je da su naši filteri za nasilje i seksualni sadržaj zasnovani isključivo na slikama, ali multimodalna priroda našeg skupa podataka nam omogućava da direktno merimo efekte tih filtera na tekst. Pošto je svaka slika praćena tekstualnim opisom, mogli smo da posmatramo relativnu učestalost ručno odabranih ključnih reči u filtriranom i nefiltriranom skupu podataka kako bismo procenili koliko filteri utiču na dati koncept.

Da bismo ovo sproveli u praksi, koristili smo Apache Spark da izračunamo učestalosti nekoliko ključnih reči (npr. „parent”, „woman”, „kid”) u svim opisima i u filtriranom i u nefiltriranom skupu podataka. Iako naš skup podataka sadrži stotine miliona parova tekst-slika, izračunavanje ovih učestalosti ključnih reči trajalo je svega nekoliko minuta koristeći naš računarski klaster.

Nakon izračunavanja učestalosti ključnih reči, mogli smo da potvrdimo da su naši filteri skupa podataka zaista iskrivili učestalosti određenih ključnih reči više nego drugih. Na primer, filteri su smanjili učestalost reči „woman” za 14%, dok je učestalost reči „man” smanjena za samo 6%. To je u velikim razmerama potvrdilo ono što smo već anegdotski primetili uzorkovanjem iz GLIDE modela obučenih na oba skupa podataka.

Учитавање...

Sada kada smo imali posrednu meru za pristrasnost izazvanu filterima, bio nam je potreban način da je ublažimo. Da bismo rešili ovaj problem, cilj nam je bio da ponovo ponderišemo filtrirani skup podataka tako da njegova raspodela bolje odgovara raspodeli nefiltriranih slika. Kao pojednostavljen primer za ilustraciju ove ideje, pretpostavimo da se naš skup podataka sastoji od 50% fotografija mačaka i 50% fotografija pasa, ali da naši filteri podataka uklanjaju 75% pasa, a samo 50% mačaka. Konačni skup podataka bi sadržao ⅔ mačaka i ⅓ pasa, a generativni model zasnovan na verovatnoći obučen na ovom skupu podataka verovatno bi generisao više slika mačaka nego pasa. Ovu neravnotežu možemo ispraviti tako što ćemo gubitak pri obuci za svaku sliku psa pomnožiti sa 2, oponašajući efekat ponavljanja svake slike psa dva puta. Ispostavlja se da ovaj pristup možemo skalirati na naše stvarne skupove podataka i modele na način koji je uglavnom automatski – to jest, ne moramo ručno birati karakteristike koje želimo da ponovo ponderišemo.

Težine za slike u filtriranom skupu podataka računamo pomoću verovatnoća iz posebnog klasifikatora, slično pristupu koji koriste Choi i sar. (2019)(отвара се у новом прозору). Da bismo obučili ovaj klasifikator, ravnomerno uzorkujemo slike iz oba skupa podataka i predviđamo iz kog skupa podataka slika potiče. Konkretno, ovaj model predviđa P(unfiltered|image), uz apriornu verovatnoću P(unfiltered) = 0.5. U praksi ne želimo da ovaj model bude previše moćan, jer bi u suprotnom mogao prvo da nauči tačnu funkciju koju naši filteri implementiraju. Umesto toga, želimo da model bude glađi od naših originalnih filtera podataka, da obuhvati široke kategorije na koje filteri utiču, a da pritom i dalje bude nesiguran da li bi određena slika bila filtrirana ili ne. U tu svrhu smo obučili linearni probe povrh malog CLIP modela.

Kada imamo klasifikator koji predviđa verovatnoću da je slika iz nefiltriranog skupa podataka, i dalje moramo da pretvorimo to predviđanje u težinu za sliku. Na primer, pretpostavimo da je P(unfiltered|image) = 0.8. To znači da je veća verovatnoća 4 puta da se uzorak pronađe u nefiltriranim nego u filtriranim podacima, i težina 4 bi trebalo da ispravi neravnotežu. Uopštenije, možemo koristiti težinu P(unfiltered|image)/P(filtered|image).A

Koliko dobro ova šema ponovnog ponderisanja zapravo ublažava pojačanu pristrasnost? Kada smo fino podesili naš prethodni filtrirani model novom šemom ponderisanja, ponašanje fino podešenog modela mnogo se više približilo nefiltriranom modelu na pristrasnim primerima koje smo ranije pronašli. Iako je to bilo ohrabrujuće, želeli smo i temeljitije da procenimo ovo ublažavanje koristeći našu heuristiku pristrasnosti zasnovanu na ključnim rečima. Da bismo merili učestalost ključnih reči uzimajući u obzir našu novu šemu ponderisanja, možemo jednostavno ponderisati svaku pojavu ključne reči u filtriranom skupu podataka težinom uzorka koji je sadrži. Time dobijamo novi skup učestalosti ključnih reči koji odražava težine uzoraka u filtriranom skupu podataka.

Kod većine ključnih reči koje smo proveravali, šema ponovnog ponderisanja smanjila je promenu učestalosti izazvanu filtriranjem. Za naše prethodne primere „man” i „woman”, relativna smanjenja učestalosti postala su 1% i –1%, dok su njihove prethodne vrednosti bile 14% i 6%, respektivno. Iako je ova metrika samo posredna mera stvarne pristrasnosti filtriranja, ohrabruje to što naša šema ponovnog ponderisanja zasnovana na slikama zapravo toliko značajno poboljšava metriku zasnovanu na tekstu.

Nastavljamo da istražujemo preostale pristrasnosti u DALL·E 2, delom kroz veće evaluacije ponašanja modela i istraživanja načina na koji je filtriranje uticalo na razvoj pristrasnosti i sposobnosti modela.

Sprečavanje vraćanja slika

Primetili smo da su naši interni prethodnici DALL·E 2 ponekad doslovno reprodukovali slike za obuku. Takvo ponašanje bilo je nepoželjno, jer želimo da DALL·E 2 podrazumevano stvara originalne, jedinstvene slike, a ne samo da „spaja” delove postojećih slika. Pored toga, doslovna reprodukcija slika za obuku može otvoriti pravna pitanja u vezi sa kršenjem autorskih prava, vlasništvom i privatnošću (ako su fotografije ljudi bile prisutne u podacima za obuku).

Da bismo bolje razumeli problem vraćanja slika, prikupili smo skup podataka sa instrukcijama koje su često rezultirale dupliranim slikama. Da bismo to uradili, koristili smo obučeni model da uzorkuje slike za 50.000 instrukcija iz našeg skupa podataka za obuku, a zatim smo uzorke sortirali po perceptivnoj sličnosti sa odgovarajućom slikom za obuku. Na kraju smo ručno pregledali najbolje podudarnosti i pronašli samo nekoliko stotina pravih duplikatnih parova od ukupno 50 hiljada instrukcija. Iako je stopa vraćanja delovala manja od 1%, smatrali smo da je neophodno da je spustimo na 0 iz gore navedenih razloga.

Kada smo proučavali naš skup podataka sa vraćenim slikama, primetili smo dva obrasca. Prvo, slike su gotovo sve bile jednostavna vektorska grafika, koju je verovatno bilo lako memorisati zbog male količine informacija. Drugo, i još važnije, sve slike su imale mnogo skoro identičnih primeraka u skupu podataka za obuku. Na primer, mogla je postojati vektorska grafika koja izgleda kao sat koji pokazuje 1 sat — ali bismo zatim otkrili uzorak za obuku koji sadrži isti sat koji pokazuje 2 sata, pa 3 sata itd. Kada smo to shvatili, upotrebili smo distribuiranu pretragu najbližih suseda da proverimo da li sve vraćene slike zaista imaju perceptivno slične duplikate u skupu podataka. Drugi(отвара се у новом прозору) radovi(отвара се у новом прозору) uočili su sličan fenomen kod velikih jezičkih modela i utvrdili da je dupliranje podataka snažno povezano sa memorisanjem.

Ovaj nalaz je sugerisao da bismo, ako deduplikujemo naš skup podataka, mogli rešiti problem vraćanja sadržaja. Da bismo to postigli, planirali smo da koristimo neuronsku mrežu za identifikaciju grupa slika koje izgledaju slično, a zatim da uklonimo sve osim jedne slike iz svake grupe.B

Međutim, to bi zahtevalo proveru, za svaku sliku, da li je duplikat svake druge slike u skupu podataka. Pošto naš ceo skup podataka sadrži stotine miliona slika, naivan pristup bi zahtevao proveru stotina kvadriliona parova slika da bismo pronašli sve duplikate. Iako je to tehnički ostvarivo, naročito na velikom računarskom klasteru, pronašli smo mnogo efikasniju alternativu koja radi skoro jednako dobro uz mali deo troška.Razmotrite šta se dešava ako naš skup podataka grupišemo u klastere pre deduplikacije. Pošto obližnji uzorci često upadaju u isti klaster, većina duplikatnih parova ne bi prelazila granice odlučivanja između klastera. Tada bismo mogli da deduplikujemo uzorke unutar svakog klastera bez provere duplikata izvan klastera, pri čemu bismo propustili samo mali deo svih duplikatnih parova. Ovo je mnogo brže od naivnog pristupa, jer više ne moramo da proveravamo svaki pojedinačni par slika.C

Kada smo empirijski testirali ovaj pristup na malom podskupu naših podataka, pronašao je 85% svih duplikatnih parova pri korišćenju K=1024 klastera. Da bismo poboljšali stopu uspeha gorenavedenog algoritma, oslonili smo se na jedno ključno zapažanje: kada klasterujete različite nasumične podskupove skupa podataka, dobijene granice odlučivanja klastera često su prilično različite. Stoga, ako duplikatni par pređe granicu klastera u jednom grupisanju podataka, isti par može pasti unutar jednog klastera u drugačijem grupisanju. Što više grupisanja isprobate, veća je verovatnoća da ćete otkriti dati duplikatni par. U praksi smo se odlučili za pet grupisanja, što znači da tražimo duplikate svake slike u uniji pet različitih klastera. U praksi je to pronašlo 97% svih duplikatnih parova na podskupu naših podataka.

Iznenađujuće, gotovo četvrtina našeg skupa podataka uklonjena je deduplikacijom. Kada smo pogledali pronađene skoro duplikatne parove, mnogi od njih su uključivali smislene promene. Prisetite se primera sa satom odozgo: skup podataka može sadržati mnogo slika istog sata u različito doba dana. Iako je verovatno da takve slike navode model da memoriše izgled tog konkretnog sata, one takođe mogu pomoći modelu da nauči da razlikuje različita doba dana na satu. S obzirom na to koliko je podataka uklonjeno, brinuli smo da je uklanjanje ovakvih slika možda narušilo performanse modela.

Da bismo testirali uticaj deduplikacije na naše modele, obučili smo dva modela sa identičnim hiperparametrima: jedan na punom skupu podataka, a drugi na deduplikovanoj verziji skupa podataka. Da bismo uporedili modele, koristili smo iste ljudske evaluacije koje smo koristili za procenu našeg originalnog GLIDE modela. Iznenađujuće, otkrili smo da su ljudski evaluatori blago preferirali model obučen na deduplikovanim podacima, što sugeriše da je velika količina redundantnih slika u skupu podataka zapravo narušavala performanse.

Kada smo dobili model obučen na deduplikovanim podacima, ponovo smo pokrenuli pretragu vraćanja sadržaja koju smo prethodno radili nad 50 hiljada instrukcija iz skupa podataka za obuku. Ustanovili smo da novi model nikada nije vratio sliku za obuku kada bi dobio tačnu instrukciju za tu sliku iz skupa podataka za obuku. Da bismo ovaj test otišli korak dalje, takođe smo sproveli pretragu najbližih suseda nad celim skupom podataka za obuku za svaku od 50 hiljada generisanih slika. Na taj način smo mislili da bismo mogli uhvatiti model kako vraća drugu sliku od one povezane sa datom instrukcijom. Čak ni uz ovu temeljniju proveru, nikada nismo pronašli slučaj vraćanja slike.

Sledeći koraci

Iako sva gore razmotrena ublažavanja predstavljaju značajan napredak ka našem cilju smanjenja rizika povezanih sa DALL·E 2, svako od njih i dalje ima prostora za poboljšanje:

  • Bolji filteri za predobuku mogli bi nam omogućiti da treniramo DALL·E 2 na više podataka i potencijalno dodatno smanjimo pristrasnost u modelu. Naši trenutni filteri su podešeni na nisku stopu propuštanja po cenu velikog broja lažno pozitivnih rezultata. Kao posledica toga, filtrirali smo otprilike 5% celokupnog skupa podataka iako većina tih filtriranih slika uopšte ne krši našu politiku sadržaja. Poboljšanje naših filtera moglo bi nam omogućiti da povratimo deo tih podataka za obuku.
  • Pristrasnost se uvodi i potencijalno pojačava u mnogim fazama razvoja i primene sistema. Evaluacija i ublažavanje pristrasnosti u sistemima kao što je DALL·E 2 i štete koju ta pristrasnost izaziva važan je interdisciplinarni problem koji nastavljamo da proučavamo u OpenAI-u kao deo naše šire misije. Naš rad na tome uključuje izgradnju evaluacija radi boljeg razumevanja problema, kuriranje novih skupova podataka i primenu tehnika kao što su ljudske povratne informacije i fino podešavanje radi izgradnje robusnijih i reprezentativnijih tehnologija.
  • Takođe je ključno da nastavimo da proučavamo memorisanje i generalizaciju u sistemima dubokog učenja. Iako je deduplikacija dobar prvi korak ka sprečavanju memorisanja, ona nam ne govori sve što treba naučiti o tome zašto ili kako modeli poput DALL·E 2 memorišu podatke za obuku.

Fusnote

  1. Kada parametrišemo P(unfiltered|image) kao sigmoid(f(x)), težina je tada exp(f(x)). Ovo se može izvesti pomoću definicije sigmoidne funkcije:

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

    Da bismo to postigli, možemo izračunati vektor karakteristika viv_i za svaku sliku za obuku ii, a zatim ukloniti sve slike jj takve da postoji neko i<ji < j za koje je vivj||v_i - v_j|| <threshold. Da bismo ovaj problem rešili naivan način, morali bismo da izračunamo svako parno rastojanje vivj||v_i - v_j||, što je zadatak čija složenost raste kvadratno sa veličinom našeg skupa podataka.

  2. C

    Ako K K predstavlja broj klastera, a N N veličinu skupa podataka, ovaj pristup zahteva samo O(K(N/K)2)=O(N2/K) O(K*(N/K)^2) = O(N^2/K) proračuna parnih rastojanja, umesto punog O(N2) O(N^2) . U međuvremenu, i dalje nam je garantovano da nijedna slika neće imati više od K K skoro duplikata u najgorem mogućem slučaju.

Autori

Alex Nichol

Saradnici

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

Pisali

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