મુખ્ય વિષય-સામગ્રી પર જાવો
OpenAI

28 જૂન, 2022

પ્રકાશન

DALL·E 2 પ્રી-ટ્રેનિંગ મિટિગેશન્સ

ટોપીઓ પહેરેલા અને ઝંડા ધારણ કરેલા, વિપરીત દિશામાં મોખું કરેલા લોકોના સમૂહનું ઉપરથી દૃશ્ય.

DALL·E

લોડિંગ…

DALL·E 2નો જાદુ વિશાળ પ્રેક્ષકો સાથે વહેંચવા માટે, અમને શક્તિશાળી ઇમેજ જનરેશન મોડેલ્સ સાથે જોડાયેલા જોખમો ઘટાડવાની જરૂર હતી. આ હેતુસર, ઉત્પન્ન થયેલી છબીઓ અમારી content policy(નવી વિન્ડોમાં ખૂલે છે)નું ઉલ્લંઘન ન કરે તે માટે અમે વિવિધ guardrails(નવી વિન્ડોમાં ખૂલે છે) લાગુ કર્યા.

આ પોસ્ટ પ્રી-ટ્રેનિંગ મિટિગેશન્સ પર કેન્દ્રિત છે, જે આ guardrailsનો એવો ઉપસમૂહ છે જે સીધા DALL·E 2 શેમાંથી શીખે છે તે ડેટામાં ફેરફાર કરે છે. ખાસ કરીને, DALL·E 2ને ઇન્ટરનેટ પરથી મળેલી કરોડો captioned images પર ટ્રેન કરવામાં આવે છે, અને મોડલ શું શીખે છે તે બદલવા માટે અમે આમાંથી કેટલીક છબીઓને દૂર કરીએ છીએ અને કેટલીકનું reweighting કરીએ છીએ.

આ પોસ્ટ ત્રણ વિભાગોમાં ગોઠવાયેલ છે, જેમાંથી દરેક જુદી જુદી પ્રી-ટ્રેનિંગ મિટિગેશનનું વર્ણન કરે છે.

  • પ્રથમ વિભાગમાં, અમે સમજાવીએ છીએ કે DALL·E 2ના ટ્રેનિંગ ડેટાસેટમાંથી હિંસક અને યૌન છબીઓ કેવી રીતે ફિલ્ટર આઉટ કરી. આ મિટિગેશન વિના, જ્યારે આવા કન્ટેન્ટ માટે પ્રોમ્પ્ટ આપવામાં આવે ત્યારે મોડલ graphic અથવા explicit images બનાવવાનું શીખી જાય, અને ક્યારેક નિર્દોષ લાગતા પ્રોમ્પ્ટ્સના જવાબમાં પણ આવી છબીઓ અજાણતાં આપી શકે.
  • બીજા વિભાગમાં, અમે દર્શાવીએ છીએ કે ટ્રેનિંગ ડેટાનું ફિલ્ટરિંગ બાયસિસને વધારી શકે છે, અને આ અસર ઘટાડવા માટેની અમારી ટેકનિક વર્ણવીએ છીએ. ઉદાહરણ તરીકે, આ મિટિગેશન વિના, અમે નોંધ્યું કે ફિલ્ટર્ડ ડેટા પર ટ્રેન થયેલા મોડલ્સ ક્યારેક મૂળ ડેટાસેટ પર ટ્રેન થયેલા મોડલ્સની તુલનામાં પુરુષોને દર્શાવતી વધુ અને સ્ત્રીઓને દર્શાવતી ઓછી છબીઓ જનરેટ કરતા હતા.
  • અંતિમ વિભાગમાં, અમે memorizationની સમસ્યા તરફ વળીએ છીએ અને જણાય છે કે DALL·E 2 જેવા મોડલ્સ ક્યારેક નવી છબીઓ બનાવવાને બદલે ટ્રેન થયેલી છબીઓને જ ફરી ઉત્પન્ન કરી શકે છે. વ્યવહારમાં, અમે જોયું કે આ ઇમેજ રિગર્જિટેશન એ ડેટાસેટમાં ઘણી વાર પુનરાવર્તિત થયેલી છબીઓના કારણે થાય છે, અને અમે અન્ય છબીઓ સાથે દૃશ્યમાન રીતે સમાન હોય એવી છબીઓ દૂર કરીને આ સમસ્યા ઘટાડીએ છીએ.

ગ્રાફિક અને explicit ટ્રેનિંગ ડેટા ઘટાડવું

કારણ કે ટ્રેનિંગ ડેટા કોઈપણ શીખેલા મોડલની ક્ષમતાઓને આકાર આપે છે, ડેટા ફિલ્ટરિંગ અનિચ્છનીય મોડલ ક્ષમતાઓને મર્યાદિત કરવા માટે શક્તિશાળી સાધન છે. અમે આ અભિગમ બે કેટેગરીઓ પર લાગુ કર્યો. હિંસક દૃશ્યો દર્શાવતી છબીઓ અને યૌન સામગ્રી ધરાવતી છબીઓ. આ કેટેગરીઓમાંની છબીઓને DALL·E 2ને ટ્રેન કરતા પહેલાં ડેટાસેટમાંથી ફિલ્ટર કરવા માટે અમે ક્લાસિફાયર્સનો ઉપયોગ કર્યો. અમે આ ઇમેજ ક્લાસિફાયર્સ ઘરઆંગણે ટ્રેન કર્યા હતા અને અમારા ટ્રેન્ડ મોડલ પર ડેટાસેટ ફિલ્ટરિંગના પ્રભાવનો અભ્યાસ ચાલુ રાખી રહ્યા છીએ.

અમારા ઇમેજ ક્લાસિફાયર્સને ટ્રેન કરવા માટે, અમે અગાઉ GLIDE(નવી વિન્ડોમાં ખૂલે છે) માટે ટ્રેનિંગ ડેટા ફિલ્ટર કરવા ઉપયોગમાં લીધી હતી એવી પદ્ધતિ ફરી ઉપયોગમાં લીધી. આ અભિગમના મૂળભૂત પગલાં આ પ્રમાણે છે: પ્રથમ, અમે એવી ઇમેજ કેટેગરીઓ માટે specification બનાવીએ છીએ જેને અમે લેબલ કરવા માંગીએ છીએ. બીજું, દરેક કેટેગરી માટે અમે થોડા સો પોઝિટિવ અને નેગેટિવ ઉદાહરણો એકત્ર કરીએ છીએ. ત્રીજું, વધુ ડેટા એકત્ર કરવા અને precision/recall trade-off સુધારવા માટે અમે એક્ટિવ લર્નિંગ પ્રક્રિયાનો ઉપયોગ કરીએ છીએ. અને અંતે, રીકૉલને precision કરતાં વધુ મહત્વ આપતું સંરક્ષાત્મક classification threshold રાખીને, ઉત્પન્ન થયેલા classifierને સમગ્ર ડેટાસેટ પર ચલાવીએ છીએ. આ thresholds નક્કી કરતી વખતે, અમે તમામ ખરાબ ડેટાને ફિલ્ટર આઉટ કરવાની પ્રાથમિકતા રાખી, તમામ સારા ડેટાને અંદર રાખવાની નહિ. કારણ કે અમે પછી વધુ ડેટા સાથે fine-tune કરીને મોડલને નવી વસ્તુઓ શીખવી શકીએ છીએ, પરંતુ મોડલએ પહેલેથી શીખી લીધેલી કોઈ વસ્તુ તેને ભૂલાવવી ઘણું વધુ મુશ્કેલ છે.

લોડ થઈ રહ્યું છે...

એક્ટિવ લર્નિંગ તબક્કા દરમિયાન, અમે સંભવિત રીતે મુશ્કેલ અથવા ખોટી રીતે વર્ગીકૃત થયેલી છબીઓ માટે માનવીય લેબલ્સ એકત્ર કરીને અમારા ક્લાસિફાયર્સમાં પુનરાવર્તિત રીતે સુધારો કર્યો. ખાસ કરીને, અમે અમારા ડેટાસેટમાંથી છબીઓ પસંદ કરવા માટે બે એક્ટિવ લર્નિંગ ટેકનિક્સનો ઉપયોગ કર્યો, જેને પછી લેબલિંગ માટે મનુષ્યોને બતાવવામાં આવી હતી. આ ડેટાસેટમાં કરોડો અનલેબલ્ડ છબીઓ સામેલ છે. પ્રથમ, અમારા ક્લાસિફાયરનો ફોલ્સ પોઝિટિવ દર ઘટાડવા માટે, એટલે કે નિર્દોષ છબીને હિંસક અથવા યૌન તરીકે ખોટી રીતે વર્ગીકૃત કરવાની આવર્તનતા ઘટાડવા માટે, અમે એવી છબીઓને માનવીય લેબલ્સ આપ્યા જેને વર્તમાન મોડલે પોઝિટિવ તરીકે વર્ગીકૃત કરી હતી. આ પગલું સારી રીતે કાર્ય કરે તે માટે, અમે અમારી વર્ગીકરણ થ્રેશોલ્ડને લગભગ 100% રીકૉલ માટે ટ્યૂન કરી, પરંતુ સાથે ઊંચો ફોલ્સ-પોઝિટિવ દર રાખ્યો. આ રીતે, અમારા લેબલર્સ મોટાભાગે ખરેખર નેગેટિવ કેસોને લેબલ કરી રહ્યા હતા. આ ટેકનિક ફોલ્સ પોઝિટિવ્સ ઘટાડવામાં મદદ કરે છે અને લેબલર્સને સંભવિત રીતે હાનિકારક છબીઓ જોવાની જરૂરિયાત પણ ઘટાડે છે, પરંતુ તે મોડલ હાલમાં ચૂકી રહ્યું હોય એવા વધુ પોઝિટિવ કેસો શોધવામાં મદદ કરતું નથી.

અમારા ક્લાસિફાયરનો ફોલ્સ નેગેટિવ દર ઘટાડવા માટે, અમે બીજી એક્ટિવ લર્નિંગ ટેકનિકનો ઉપયોગ કર્યો: નીયરેસ્ટ નેઇબર સર્ચ. ખાસ કરીને, અમે અમારા હાલના લેબલ્ડ ડેટાસેટમાં એવા પોઝિટિવ નમૂનાઓ શોધવા માટે ઘણી વાર ક્રોસ-વેલિડેશન ચલાવ્યું, જેને મોડલ નેગેટિવ તરીકે ખોટી રીતે વર્ગીકૃત કરવાની વૃત્તિ રાખતું હતું. આ માટે, અમે અલગ અલગ train-validation splits સાથે ક્લાસિફાયરના શાબ્દિક રીતે સૈંકડો વર્ઝન્સ ટ્રેન કર્યા. પછી અમે perceptual feature spaceમાં આ નમૂનાઓના નીયરેસ્ટ નેઇબર્સ માટે અમારી અનલેબલ્ડ છબીઓના વિશાળ સંગ્રહને સ્કેન કર્યો અને મળી આવેલી છબીઓને માનવીય લેબલ્સ આપ્યા. અમારી compute infrastructureને કારણે, ક્લાસિફાયર ટ્રેનિંગ અને નીયરેસ્ટ નેઇબર સર્ચ બંનેને ઘણાં GPUs સુધી સ્કેલ અપ કરવું સરળ હતું, જેથી એક્ટિવ લર્નિંગ પગલું કલાકો કે દિવસોની બદલે મિનિટોમાં પૂર્ણ થઈ શક્યું.

અમારા ડેટા ફિલ્ટર્સની અસરકારકતા ચકાસવા માટે, અમે સમાન hyperparameters સાથે બે GLIDE મોડલ્સ ટ્રેન કર્યા: એક અનફિલ્ટર્ડ ડેટા પર, અને એક ફિલ્ટરિંગ પછીના ડેટાસેટ પર. અમે પહેલા મોડલને અનફિલ્ટર્ડ મોડલ અને બીજાને ફિલ્ટર્ડ મોડલ તરીકે ઓળખાવીએ છીએ. અપેક્ષા મુજબ, અમે જોયું કે ફિલ્ટર્ડ મોડલ સામાન્ય રીતે આ પ્રકારના કન્ટેન્ટ માટેની વિનંતીઓના જવાબમાં ઓછું explicit અથવા graphic કન્ટેન્ટ ઉત્પન્ન કરતું હતું. પરંતુ, અમને ડેટા ફિલ્ટરિંગનો એક અનપેક્ષિત સાઇડ-ઇફેક્ટ પણ મળ્યો: તેણે ચોક્કસ ડેમોગ્રાફિક્સ તરફ મોડલના બાયસિસ સર્જ્યા અથવા વધાર્યા.

લોડ થઈ રહ્યું છે...

ડેટા ફિલ્ટર્સથી સર્જાયેલા બાયસને સુધારવું

જનરેટિવ મોડેલ્સ તેમના ટ્રેનિંગ ડેટાના વિતરણને મેળ કરવાનો પ્રયાસ કરે છે, જેમાં તેમાં રહેલા કોઈપણ બાયસિસ પણ સામેલ છે. પરિણામે, ટ્રેનિંગ ડેટાનું ફિલ્ટરિંગ downstream મોડલ્સમાં બાયસિસ સર્જવાની અથવા વધારવાની ક્ષમતા ધરાવે છે. સામાન્ય રીતે, મૂળ ડેટાસેટમાંના બાયસિસ સુધારવા એક મુશ્કેલ સામાજિક-તકનીકી કાર્ય છે, જેને અમે હજુ પણ અભ્યાસ કરી રહ્યા છીએ, અને તે આ પોસ્ટના વ્યાપ બહાર છે. અહીં અમે ખાસ કરીને ડેટા ફિલ્ટરિંગના કારણે વધતા બાયસિસની સમસ્યાને સંબોધીએ છીએ. અમારા અભિગમથી, અમે filtered model, unfiltered model કરતાં વધુ બાયસ્ડ ન બને તે અટકાવવાનો હેતુ રાખીએ છીએ, એટલે કે ડેટા ફિલ્ટરિંગથી સર્જાયેલા distribution shiftને મૂળભૂત રીતે ઓછું કરવું.

ફિલ્ટરિંગને કારણે બાયસ amplificationનું એક સ્પષ્ટ ઉદાહરણ તરીકે, “a ceo” પ્રોમ્પ્ટ લો. જ્યારે અમારી અનફિલ્ટર્ડ મોડલે આ પ્રોમ્પ્ટ માટે છબીઓ જનરેટ કરી, ત્યારે તેણે સ્ત્રીઓ કરતાં પુરુષોની વધુ છબીઓ ઉત્પન્ન કરવાની વૃત્તિ દેખાડી, અને અમે અપેક્ષા રાખીએ છીએ કે આ બાયસનો મોટો ભાગ અમારા હાલના ટ્રેનિંગ ડેટાનું પ્રતિબિંબ છે. પરંતુ જ્યારે અમે એ જ પ્રોમ્પ્ટ અમારા ફિલ્ટર્ડ મોડલમાં ચલાવ્યો, ત્યારે બાયસ વધેલો દેખાયો. જનરેશન્સ લગભગ સંપૂર્ણપણે પુરુષોની છબીઓ જ હતી.

અમારો અનુમાન છે કે બાયસ amplificationનો આ ખાસ કેસ બે કારણોસર આવે છે. પ્રથમ, ભલે મૂળ ડેટાસેટમાં સ્ત્રીઓ અને પુરુષોનું પ્રતિનિધિત્વ લગભગ સમાન હોય, ડેટાસેટ કદાચ સ્ત્રીઓને વધુ યૌનાત્મક સંદર્ભોમાં રજૂ કરતો બાયસ ધરાવતા હોઈ શકે. બીજું, અમારા ક્લાસિફાયર્સ પોતે પણ અમલીકરણ અથવા વર્ગની વ્યાખ્યાના કારણે બાયસ્ડ હોઈ શકે, ભલે ડેટા સંગ્રહ અને વેલિડેશન તબક્કાઓ દરમિયાન અમે આવું ન થાય તેની કાળજી લીધી હોય. આ બંને અસરોને કારણે, અમારો ફિલ્ટર પુરુષો કરતાં સ્ત્રીઓની વધુ છબીઓ દૂર કરી શકે છે, જે ટ્રેનિંગ દરમિયાન મોડલ જોતા લિંગ અનુપાતને બદલી નાખે છે.

ફિલ્ટર-પ્રેરિત બાયસને વધુ સઘન રીતે તપાસવા માટે, અમને એવો રસ્તો જોઈએ હતો કે અમારા ડેટા ફિલ્ટર્સ વિવિધ સંકલ્પનાઓ તરફના બાયસને કેટલું પ્રભાવિત કરે છે તે માપી શકાય. ખાસ કરીને, અમારી હિંસા અને યૌન સામગ્રી ફિલ્ટર્સ સંપૂર્ણપણે ઇમેજ-આધારિત છે, પરંતુ અમારા ડેટાસેટની multimodal પ્રકૃતિ અમને આ ફિલ્ટર્સનો ટેક્સ્ટ પરનો પ્રભાવ સીધો માપવાની મંજૂરી આપે છે. કારણ કે દરેક ઇમેજ સાથે ટેક્સ્ટ કૅપ્શન જોડાયેલું છે, અમે filtered અને unfiltered ડેટાસેટ્સમાં હાથથી પસંદ કરેલા keywordsની relative frequency જોઈને અંદાજ લગાવી શક્યા કે ફિલ્ટર્સ કોઈ આપેલી સંકલ્પનાને કેટલું અસર કરી રહ્યા હતા.

આને વ્યવહારમાં મૂકાશે માટે, અમે Apache Sparkનો ઉપયોગ કરીને અમારા filtered અને unfiltered બંને ડેટાસેટ્સમાંના બધા captions પર થોડાંક keywords, જેમ કે “parent”, “woman”, “kid”, ની frequencies ગણાવી. ભલે અમારા ડેટાસેટમાં કરોડો text-image pairs હોય, અમારી compute clusterનો ઉપયોગ કરીને આ keyword frequencies ગણાવવા માટે ફક્ત થોડા મિનિટો લાગ્યા.

keyword frequencies ગણાવ્યા પછી, અમે ખાતરી કરી શક્યા કે અમારા ડેટાસેટ ફિલ્ટર્સે ખરેખર કેટલાક keywordsની frequenciesને બીજાઓ કરતાં વધુ વાંકડી કરી હતી. ઉદાહરણ તરીકે, ફિલ્ટર્સે “woman” શબ્દની આવર્તનતા 14% ઘટાડીને મૂકી, જ્યારે “man” શબ્દની આવર્તનતા ફક્ત 6% ઘટી. આથી મોટા પ્રમાણ પર એ જ વાત પુષ્ટિ થઈ, જે અમે બંને ડેટાસેટ્સ પર ટ્રેન કરાયેલા GLIDE મોડલ્સમાંથી સેમ્પલિંગ કરીને પહેલાંથી જ પ્રસંગોપાત રીતે નિરીક્ષી હતી.

લોડ થઈ રહ્યું છે...

હવે જ્યારે અમારી પાસે filter-induced bias માપવા માટે એક proxy હતી, ત્યારે અમને તેને mitigate કરવાની રીતની જરૂર હતી. આ સમસ્યાનો સામનો કરવા માટે, અમે filtered datasetને re-weight કરવાનો હેતુ રાખ્યો જેથી તેનું વિતરણ unfiltered imagesના વિતરણ સાથે વધુ સારું મેળ ખાય. આ વિચાર સમજાવવા માટે એક સરળ ઉદાહરણ લો: માનીએ કે અમારા ડેટાસેટમાં 50% બિલાડીના ફોટા અને 50% કૂતરાના ફોટા છે, પરંતુ અમારા ડેટા ફિલ્ટર્સ 75% કૂતરાઓને દૂર કરે છે અને ફક્ત 50% બિલાડીઓને દૂર કરે છે. ત્યારે અંતિમ ડેટાસેટ ⅔ બિલાડીઓ અને ⅓ કૂતરાઓનું રહેશે, અને આ ડેટાસેટ પર ટ્રેન કરાયેલ likelihood-based જનરેટિવ મોડેલ કદાચ કૂતરાઓ કરતાં બિલાડીઓની વધુ છબીઓ બનાવશે. અમે આ અસંતુલનને સુધારી શકીએ છીએ જો દરેક કૂતરાની ઇમેજ માટેના training lossને 2થી ગુણીએ, એટલે કે દરેક કૂતરાની ઇમેજને બે વાર દોહરાવ્યાની અસર ઊભી કરીએ. જાણવા મળ્યું કે અમે આ અભિગમને અમારા વાસ્તવિક ડેટાસેટ્સ અને મોડલ્સ સુધી મોટા ભાગે સ્વચાલિત રીતે સ્કેલ કરી શકીએ છીએ. એટલે કે, અમને કયા લક્ષણોને reweight કરવા છે તે હાથથી પસંદ કરવાની જરૂર નથી.

અમે filtered datasetમાં રહેલી છબીઓ માટે weights એક વિશેષ classifierમાંથી મળતી probabilitiesનો ઉપયોગ કરીને ગણીએ છીએ. આ અભિગમ Choi et al. (2019)(નવી વિન્ડોમાં ખૂલે છે) દ્વારા ઉપયોગમાં લેવાયેલ પદ્ધતિ સમાન છે. આ classifierને ટ્રેન કરવા માટે, અમે બંને ડેટાસેટ્સમાંથી સમાન રીતે છબીઓનું સેમ્પલિંગ કરીએ છીએ અને આગાહી કરીએ છીએ કે ઇમેજ કયા ડેટાસેટમાંથી આવી છે. ખાસ કરીને, આ મોડલ prior P(unfiltered) = 0.5 આપેલ હોય ત્યારે P(unfiltered|image)ની આગાહી કરે છે. વ્યવહારમાં, અમે નથી ઇચ્છતા કે આ મોડલ ખૂબ શક્તિશાળી બને, નહિતર તે કદાચ શરૂઆતમાં જ અમારા ફિલ્ટર્સ દ્વારા અમલમાં મૂકાયેલ ચોક્કસ ફંક્શન શીખી જાય. તેના બદલે, અમે ઇચ્છીએ છીએ કે મોડલ અમારા મૂળ ડેટા ફિલ્ટર્સ કરતાં વધુ smooth હોય, જેથી તે ફિલ્ટર્સથી પ્રભાવિત વ્યાપક કેટેગરીઓ પકડે, છતાં કોઈ ચોક્કસ છબી ફિલ્ટર થશે કે નહીં તે વિશે સંપૂર્ણ નિશ્ચિત ન હોય. આ માટે, અમે નાના CLIP મોડલની ઉપર linear probe ટ્રેન કરી.

એકવાર અમારી પાસે એવો classifier હોય જે આગાહી કરે કે કોઈ ઇમેજ unfiltered datasetમાંથી છે તેની probability કેટલી છે, ત્યાર પછી અમારે આ આગાહીને ઇમેજ માટેના weightમાં રૂપાંતરિત કરવાની જરૂર પડે છે. ઉદાહરણ તરીકે, માનીએ કે P(unfiltered|image) = 0.8. તેનો અર્થ એ છે કે આ નમૂનો filtered data કરતાં unfiltered dataમાં 4 ગણો વધુ મળવાની સંભાવના ધરાવે છે, અને 4નો weight આ અસંતુલન સુધારવો જોઈએ. વધુ સામાન્ય રીતે, અમે weight P(unfiltered|image)/P(filtered|image)નો ઉપયોગ કરી શકીએ.A

આ reweighting scheme વાસ્તવમાં amplified biasને કેટલું mitigate કરે છે? જ્યારે અમે અમારી અગાઉની filtered modelને નવી weighting scheme સાથે fine-tune કરી, ત્યારે fine-tuned modelનું વર્તન અમારા અગાઉ મળેલા biased examples પર unfiltered model સાથે ઘણું વધુ નજીકથી મેળ ખાતું હતું. આ ઉત્સાહજનક હતું, છતાં અમે અમારી keyword-based bias heuristicનો ઉપયોગ કરીને આ mitigationનું વધુ વ્યાપક મૂલ્યાંકન પણ કરવું ઇચ્છતા હતા. નવી weighting schemeને ધ્યાનમાં રાખીને keyword frequencies માપવા માટે, અમે filtered datasetમાં આવેલા keywordના દરેક instanceને તે keyword ધરાવતા sampleના weightથી સરળતાથી વજનિત કરી શકીએ છીએ. આવું કરતાં અમને keyword frequenciesનો નવો સમૂહ મળે છે, જે filtered datasetમાં રહેલા sample weightsને પ્રતિબિંબિત કરે છે.

અમારે તપાસેલા મોટા ભાગના keywordsમાં, reweighting schemeએ filteringથી સર્જાયેલા frequency changeને ઘટાડ્યો. અમારા અગાઉના “man” અને “woman” ઉદાહરણોમાં, relative frequency reductions અનુક્રમે 1% અને –1% થઈ ગયા, જ્યારે તેમની અગાઉની કિંમતો અનુક્રમે 14% અને 6% હતી. ભલે આ metric actual filtering bias માટે માત્ર એક proxy છે, છતાં તે આશ્વાસક છે કે અમારી image-based reweighting scheme ટેક્સ્ટ આધારિત metricને એટલી નોંધપાત્ર રીતે સુધારે છે.

અમે DALL·E 2માં બાકી રહેલા બાયસિસની તપાસ ચાલુ રાખી રહ્યા છીએ, ભાગરૂપે મોડલના વર્તનના વધુ મોટા evaluations અને filteringએ bias તથા capability development પર કેવી અસર પાડી તેની તપાસો દ્વારા.

ઇમેજ રિગર્જિટેશન અટકાવવું

અમે જોયું કે DALL·E 2 પહેલાંના અમારા આંતરિક પૂર્વવર્તી મોડલ્સ ક્યારેક ટ્રેનિંગ છબીઓને શબ્દશઃ ફરી ઉત્પન્ન કરતા હતા. આ વર્તન અનિચ્છનીય હતું, કારણ કે અમે ઇચ્છીએ છીએ કે DALL·E 2 ડિફૉલ્ટરૂપે મૂળ, અનન્ય છબીઓ બનાવે અને ફક્ત હાલની છબીઓના ટુકડાઓને “જોડી” ન દે. વધુમાં, ટ્રેનિંગ છબીઓનું શબ્દશઃ પુનરુત્પાદન કૉપીરાઇટ ઉલ્લંઘન, માલિકી અને ગોપનીયતા અંગે કાનૂની પ્રશ્નો ઊભા કરી શકે છે, ખાસ કરીને જો લોકોના ફોટા ટ્રેનિંગ ડેટામાં સામેલ હોય.

ઇમેજ રિગર્જિટેશનની સમસ્યાને વધુ સારી રીતે સમજવા માટે, અમે એવા પ્રોમ્પ્ટ્સનો ડેટાસેટ એકત્ર કર્યો જે વારંવાર ડુપ્લિકેટ છબીઓ તરફ દોરી જતા હતા. આ માટે, અમે અમારા ટ્રેનિંગ ડેટાસેટમાંથી 50,000 પ્રોમ્પ્ટ્સ માટે છબીઓનું સેમ્પલિંગ કરવા ટ્રેન્ડ મોડલનો ઉપયોગ કર્યો અને પછી આ સેમ્પલ્સને સંબંધિત ટ્રેનિંગ ઇમેજ સાથેની perceptual similarity મુજબ સૉર્ટ કર્યા. અંતે, અમે ટોચના મેળખાઓને હાથથી તપાસ્યા અને કુલ 50k પ્રોમ્પ્ટ્સમાંથી ફક્ત થોડા સો સાચા ડુપ્લિકેટ જોડી મળી. ભલે રિગર્જિટેશન દર 1% કરતા ઓછો લાગતો હતો, છતાં ઉપર જણાવેલા કારણોસર અમને આ દર 0 સુધી લાવવો જરૂરી લાગ્યો.

જ્યારે અમે રિગર્જિટેટ થયેલી છબીઓનો અમારો ડેટાસેટ અભ્યાસ કર્યો, ત્યારે અમને બે પેટર્ન્સ દેખાયા. પ્રથમ, લગભગ બધી છબીઓ સરળ vector graphics હતી, જેને તેમના ઓછા માહિતી-સામગ્રીને કારણે યાદ રાખવી સહેલી હતી. બીજું, અને વધુ મહત્વનું, બધી છબીઓના ટ્રેનિંગ ડેટાસેટમાં ઘણા near-duplicates હતા. ઉદાહરણ તરીકે, કોઈ vector graphic હોઈ શકે જે 1 વાગ્યાનો સમય બતાવતી ઘડિયાળ જેવી લાગે. પરંતુ પછી અમને એ જ ઘડિયાળ 2 વાગ્યાનો સમય બતાવતી ટ્રેનિંગ નમૂનામાં મળે, પછી 3 વાગ્યાનો સમય બતાવતી, આ રીતે આગળ. એકવાર અમે આ સમજ્યા પછી, અમે distributed nearest neighbor searchનો ઉપયોગ કરીને ખાતરી કરી કે ખરેખર તમામ રિગર્જિટેટ થયેલી છબીઓના ડેટાસેટમાં perceptually similar duplicates હતા. અન્ય(નવી વિન્ડોમાં ખૂલે છે) કૃતિઓ(નવી વિન્ડોમાં ખૂલે છે)એ મોટા ભાષા મોડલ્સમાં સમાન ઘટના નિરીક્ષી છે અને બતાવ્યું છે કે ડેટા ડુપ્લિકેશનનો memorization સાથે મજબૂત સંબંધ છે.

ઉપરોક્ત શોધે સૂચવ્યું કે જો અમે અમારો ડેટાસેટ deduplicate કરીએ, તો કદાચ રિગર્જિટેશનની સમસ્યા ઉકેલી શકીએ. આ હાંસલ કરવા માટે, અમે મળતી આવતી દેખાતી છબીઓના જૂથોને ઓળખવા માટે neural networkનો ઉપયોગ કરવાની અને પછી દરેક જૂથમાંથી ફક્ત એક સિવાયની બધી છબીઓ દૂર કરવાની યોજના બનાવી.B

પરંતુ, આ માટે દરેક છબી માટે એ તપાસવું જરૂરી બનતું કે શું તે ડેટાસેટની બાકીની દરેક છબીની ડુપ્લિકેટ છે કે નહીં. કારણ કે અમારા સમગ્ર ડેટાસેટમાં કરોડો છબીઓ છે, તમામ ડુપ્લિકેટ્સ શોધવા માટે અમને સાદી રીતે સૈંકડો quadrillions ઇમેજ જોડી તપાસવી પડે. તંત્રજ્ઞાનની દ્રષ્ટિએ આ શક્ય છે, ખાસ કરીને મોટા compute cluster પર, પરંતુ અમને બહુ વધુ કાર્યક્ષમ વિકલ્પ મળ્યો જે લગભગ એટલું જ સારું કામ કરે છે અને ખર્ચના નાના ભાગે શક્ય છે. વિચાર કરો કે જો અમે deduplication પહેલાં અમારા ડેટાસેટને ક્લસ્ટર કરીએ તો શું થાય. કારણ કે નજીકના નમૂનાઓ ઘણીવાર એક જ ક્લસ્ટરમાં આવે છે, મોટાભાગની ડુપ્લિકેટ જોડીઓ ક્લસ્ટર decision boundaries પાર નહીં કરે. પછી અમે દરેક ક્લસ્ટર અંદર નમૂનાઓનું deduplication કરી શકીએ, ક્લસ્ટરની બહાર ડુપ્લિકેટ્સ તપાસ્યા વગર, અને છતાં કુલ ડુપ્લિકેટ જોડીઓનો ફક્ત નાનો ભાગ જ ચૂકી જઈએ. આ પદ્ધતિ સાદી રીત કરતાં ઘણી ઝડપી છે, કારણ કે હવે અમને દરેક એકલ ઇમેજ જોડી તપાસવાની જરૂર રહેતી નથી.C

જ્યારે અમે આ પદ્ધતિને અમારા ડેટાના નાના ઉપસેટ પર પ્રાયોગિક રીતે ચકાસી, ત્યારે K=1024 ક્લસ્ટર્સ સાથે તેણે તમામ ડુપ્લિકેટ જોડીઓમાંથી 85% શોધી કાઢી. ઉપરોક્ત અલ્ગોરિધમની સફળતા દર સુધારવા માટે, અમે એક મુખ્ય અવલોકનનો લાભ લીધો: જ્યારે તમે ડેટાસેટના અલગ અલગ રૅન્ડમ ઉપસેટ્સને ક્લસ્ટર કરો છો, ત્યારે ઉત્પન્ન થતી cluster decision boundaries ઘણીવાર બહુ જુદી હોય છે. તેથી, જો ડુપ્લિકેટ જોડી ડેટાની એક ક્લસ્ટરિંગમાં cluster boundary પાર કરે, તો એ જ જોડી બીજી ક્લસ્ટરિંગમાં એક જ ક્લસ્ટર અંદર આવી શકે. જેટલી વધુ clusterings અજમાવો, તેટલી ચોક્કસ ડુપ્લિકેટ જોડી શોધવાની શક્યતા વધે. વ્યવહારમાં, અમે પાંચ clusterings ઉપયોગમાં લીધી, એટલે કે દરેક છબીના ડુપ્લિકેટ્સ માટે અમે પાંચ અલગ અલગ ક્લસ્ટર્સના સંયુક્ત સમૂહમાં શોધ કરીએ છીએ. વ્યવહારમાં, આ રીતે અમારા ડેટાના ઉપસેટમાં તમામ ડુપ્લિકેટ જોડીઓમાંથી 97% મળી આવી.

આશ્ચર્યજનક રીતે, deduplication દ્વારા અમારા ડેટાસેટનો લગભગ એક ચોથો ભાગ દૂર થઈ ગયો. જ્યારે અમે મળેલી near-duplicate જોડીઓ જોઈ, ત્યારે તેમાંની ઘણીમાં અર્થપૂર્ણ ફેરફારો સામેલ હતા. ઉપરનું ઘડિયાળ ઉદાહરણ યાદ કરો: ડેટાસેટમાં દિવસના અલગ અલગ સમયે એ જ ઘડિયાળની ઘણી છબીઓ હોઈ શકે. ભલે આવી છબીઓ મોડલને આ ખાસ ઘડિયાળનો દેખાવ યાદ રાખવામાં મદદ કરે, પરંતુ તે મોડલને ઘડિયાળ પર દિવસના જુદા જુદા સમય વચ્ચે ભેદ શીખવામાં પણ મદદ કરી શકે. એટલું મોટું પ્રમાણમાં ડેટા દૂર થયું હોવાથી, અમને ચિંતા હતી કે આવી છબીઓ દૂર કરવાથી કદાચ મોડલના પ્રદર્શનને નુકસાન થયું હશે.

અમારા મોડલ્સ પર deduplicationની અસર તપાસવા માટે, અમે સમાન hyperparameters ધરાવતા બે મોડલ્સ ટ્રેન કર્યા: એક સંપૂર્ણ ડેટાસેટ પર અને બીજું ડેટાસેટની deduplicated આવૃત્તિ પર. મોડલ્સની તુલના કરવા માટે, અમે એ જ માનવીય evaluationsનો ઉપયોગ કર્યો જે અમે અમારા મૂળ GLIDE મોડલનું મૂલ્યાંકન કરવા માટે કર્યા હતા. આશ્ચર્યની વાત એ હતી કે માનવીય મૂલ્યાંકનકારોએ deduplicated ડેટા પર ટ્રેન થયેલા મોડલને થોડું વધુ પસંદ કર્યું, જે સૂચવે છે કે ડેટાસેટમાં રહેલી મોટી માત્રાની વધારાની છબીઓ હકીકતમાં પ્રદર્શનને નુકસાન પહોંચાડી રહી હતી.

એકવાર અમારી પાસે deduplicated ડેટા પર ટ્રેન કરાયેલું મોડલ આવ્યું, પછી અમે અગાઉ ટ્રેનિંગ ડેટાસેટમાંથી 50k પ્રોમ્પ્ટ્સ પર કરેલી રિગર્જિટેશન શોધ ફરીથી ચલાવી. અમે જોયું કે નવા મોડલે ટ્રેનિંગ ડેટાસેટમાંથી તે છબી માટેનો ચોક્કસ પ્રોમ્પ્ટ આપ્યા પછી ક્યારેય ટ્રેનિંગ ઇમેજનું રિગર્જિટેશન કર્યું નહીં. આ પરીક્ષણને વધુ આગળ વધારવા માટે, અમે 50k જનરેટ થયેલી દરેક છબી માટે સમગ્ર ટ્રેનિંગ ડેટાસેટ પર nearest neighbor search પણ કરી. આ રીતે, અમને લાગ્યું કે કદાચ કોઈ આપેલા પ્રોમ્પ્ટ સાથે જોડાયેલી છબી સિવાય બીજી છબીનું મોડલ રિગર્જિટેશન કરે છે કે કેમ તે પણ પકડી શકીએ. આ વધુ સઘન તપાસ પછી પણ, અમને ક્યારેય ઇમેજ રિગર્જિટેશનનો કેસ મળ્યો નહીં.

આગલા પગલાં

ઉપર ચર્ચાયેલ બધી મિટિગેશન્સ DALL·E 2 સાથે જોડાયેલા જોખમો ઘટાડવાના અમારા હેતુ તરફ મહત્વપૂર્ણ પ્રગતિ દર્શાવે છે, છતાં દરેક મિટિગેશનમાં હજુ સુધારાની જગ્યા છે.

  • વધુ સારા પ્રી-ટ્રેનિંગ ફિલ્ટર્સ અમને DALL·E 2ને વધુ ડેટા પર ટ્રેન કરવાની અને શક્ય હોય તો મોડલમાં બાયસ વધુ ઘટાડવાની તક આપી શકે. અમારા હાલના ફિલ્ટર્સ ઓછા miss-rate માટે ટ્યૂન કરવામાં આવ્યા છે, પણ તેની કીમતે ઘણા false positives મળે છે. પરિણામે, અમે અમારા સમગ્ર ડેટાસેટમાંથી અંદાજે 5% ડેટા ફિલ્ટર આઉટ કર્યો, જોકે આમાંથી મોટા ભાગની ફિલ્ટર થયેલી છબીઓ અમારી content policyનું બિલકુલ ઉલ્લંઘન કરતી નથી. અમારા ફિલ્ટર્સ સુધારવાથી અમે આ ટ્રેનિંગ ડેટામાંથી થોડો ભાગ પાછો મેળવી શકીએ.
  • બાયસ સિસ્ટમના વિકાસ અને ડિપ્લોયમેન્ટના ઘણા તબક્કાઓમાં દાખલ થાય છે અને કદાચ વધે પણ છે. DALL·E 2 જેવી સિસ્ટમોમાં રહેલા બાયસનું મૂલ્યાંકન કરવું અને તેને ઘટાડવું, તથા આ બાયસથી થતી હાનિ સમજવી, એક મહત્વપૂર્ણ આંતરવિષયક સમસ્યા છે, જેના પર OpenAI અમારી વ્યાપક મિશનના ભાગરૂપે સતત અભ્યાસ કરી રહ્યું છે. આ ક્ષેત્રમાં અમારા કાર્યમાં સમસ્યાને વધુ સારી રીતે સમજવા માટે evaluations બનાવવી, નવા ડેટાસેટ્સ ક્યુરેટ કરવા, અને વધુ મજબૂત તથા પ્રતિનિધિત્વશીલ ટેક્નોલોજીઓ બનાવવા માટે માનવીય પ્રતિસાદ અને fine-tuning જેવી ટેકનિક્સ લાગુ કરવી સામેલ છે.
  • ડીપ લર્નિંગ સિસ્ટમોમાં memorization અને generalizationનો અભ્યાસ ચાલુ રાખવો પણ અત્યંત જરૂરી છે. Deduplication memorization અટકાવવા માટે સારો પહેલો પગલું છે, પરંતુ DALL·E 2 જેવા મોડલ્સ ટ્રેનિંગ ડેટાને શા માટે અથવા કેવી રીતે યાદ રાખે છે તે અંગે જાણવાનું બધું તે જણાવતું નથી.

ફૂટનોટ્સ

  1. જ્યારે અમે P(unfiltered|image)ને sigmoid(f(x)) તરીકે પરિમાણીકૃત કરીએ છીએ, ત્યારે weight exp(f(x)) બને છે. આ sigmoidની વ્યાખ્યા ઉપયોગ કરીને કાઢી શકાય છે.

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

    આ હાંસલ કરવા માટે, અમે દરેક ટ્રેનિંગ ઇમેજ ii માટે feature vector viv_i ગણાવી શકીએ છીએ, અને પછી એવી બધી છબીઓ jj દૂર કરી શકીએ જેમાં કોઈ i<ji < j માટે vivj||v_i - v_j|| threshold કરતાં ઓછું હોય. આ સમસ્યાને સીધી રીતે ઉકેલવા માટે, અમને દરેક pairwise distance vivj||v_i - v_j|| ગણાવવી પડશે, જે કામ અમારા ડેટાસેટના કદની સરખામણીએ quadratic રીતે સ્કેલ થાય છે.

  2. C

    અહીં K K ક્લસ્ટર્સની સંખ્યા અને N N ડેટાસેટનું કદ દર્શાવે છે. આ અભિગમને ફક્ત O(K(N/K)2)=O(N2/K) O(K*(N/K)^2) = O(N^2/K) જેટલી pairwise distance ગણતરીઓ જરૂરી પડે છે, સંપૂર્ણ O(N2) O(N^2) ને બદલે. આ દરમિયાન, સૌથી ખરાબ સંભવિત પરિસ્થિતિમાં પણ કોઈ એક ઇમેજ પાસે K K કરતાં વધુ near-duplicates નહીં હોય તેની અમને ખાતરી રહે છે.

લેખકો

Alex Nichol

યોગદાનકર્તાઓ

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

લેખન યોગદાન આપનાર

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