Google Translate
Kirish
Google Translate — Google tomonidan taqdim etiladigan, keng qo'llaniladigan til tarjimasi xizmati. Xizmat matnni tillar o'rtasida tushunish va tarjima qilish uchun machine learning (ML) modellariga tayanadi. 2024-yil holatiga ko'ra, xizmat 130 dan ortiq tilni qo'llab-quvvatlaydi va milliarddan ortiq foydalanuvchiga ega [1]. Ushbu bob til tarjimasi xizmatining tizim dizayni haqida so'z yuritadi.
Talablarni aniqlashtirish
Quyida nomzod va suhbatdosh o'rtasidagi tipik muloqot keltirilgan:
Nomzod: Tizim dastlab qaysi tillarni qo'llab-quvvatlashi kerak? Suhbatdosh: To'rtta tilga e'tibor qarataylik: ingliz, ispan, koreys va fransuz. Keyinchalik ko'proq tillarni qo'shish mumkin.
Nomzod: Tillar xilma-xilligini hisobga olgan holda, o'qitish uchun yetarlicha katta va xilma-xil datasetga kirishimiz bormi? Suhbatdosh: Ha. Bizda to'rtta tildagi rasmiy hujjatlar, veb-kontent va suhbat matnlarini o'z ichiga olgan ko'p tilli katta korpusga kirish imkonimiz bor. Dataset 300 million misoldan iborat bo'lib, bir misol manba va maqsad tillardagi juft gaplar sifatida aniqlanadi.
Nomzod: Umumiy matn ma'lumotlariga kirishimiz bormi? Bu muhim, chunki bu bizga umumiy matn ma'lumotlari asosida modelni oldindan o'qitish (pretrain) imkonini beradi va natijada modelga umumiy bilim orttirishga ruxsat etadi. Suhbatdosh: Har bir tilda turli manbalardan olingan terabaytlab umumiy matn ma'lumotlariga kirishimiz bor deb faraz qiling.
Nomzod: Foydalanuvchilar matn tilini o'zlari ko'rsatadimi yoki tizim uni avtomatik tarzda aniqlashi kerakmi? Suhbatdosh: Foydalanuvchilar har doim ham matn tilini aniqlay olmaydi. Tasavvur qiling, foydalanuvchi tanish bo'lmagan tildagi kitob sarlavhasi bilan duch keldi. Tizimimiz kirish tilini avtomatik ravishda aniqlab olishi kerak.
Nomzod: Kirish matni uzunligiga cheklov bormi? Suhbatdosh: Tizim 1 000 tagacha so'zdan iborat kirishlarni qo'llab-quvvatlashini ta'minlab qurайлик.
Nomzod: Tizim internet aloqasisiz tarjimani qo'llab-quvvatlashi kerakmi? Boshqacha aytganda, model qurilmada ishlashi kerakmi? Suhbatdosh: Ushbu suhbatning asosiy yo'nalishi qurilmada joylashtirish uchun samaradorlik va model optimallashuvi emas. Internet aloqasi talab etiladi va model cloud-da joylashtiriladi deb faraz qiling.
Nomzod: Tizim real vaqtda tarjimani qo'llab-quvvatlashi kerakmi? Suhbatdosh: Hozircha yo'q.
Muammoni ML vazifasi sifatida shakllantirish
Ushbu bo'limda biz tarjima tizimini yaratish muammosini ML vazifasi sifatida shakllantirамиз. Bu tizimning kirishlari va chiqishlarini tushunishni hamda mos ML yondashuvini tanlashni o'z ichiga oladi.
Tizimning kirish va chiqishini aniqlash
Tarjima tizimiga kirish — foydalanuvchi tomonidan ko'rsatilgan manba tili va maqsad tilida so'zlar ketma-ketligi. Chiqish esa maqsad tildagi so'zlar ketma-ketligidir.
Mos ML yondashuvini tanlash
Til tarjimasida bir tildagi so'zlar ketma-ketligi boshqa tildagi so'zlar ketma-ketligiga aylantiriladi. Bu ketma-ketlikdan-ketma-ketlikka (seq2seq) tuzilma matnni qisqartirish va nutqni tanib olish kabi boshqa vazifalarda ham uchraydi.
ML modellari sinfi bo'lgan Seq2seq modellari aynan ana shunday vazifalarni hal qilish uchun mo'ljallangan. Ushbu modellar kirish ketma-ketligini chiqish ketma-ketligiga aylantiradi, bu chiqish uzunligi kirishdan farq qilishi mumkin. Seq2seq modellari encoder-decoder arxitekturasiga amal qiladi va uning ikkita asosiy komponenti bor:
- Encoder: Kirish ketma-ketligini qayta ishlaydi va uni kontekst vektorlari ketma-ketligiga aylantiradi, shu tariqa kirish ketma-ketligidagi ma'lumotni kodlaydi.
- Decoder: Chiqish ketma-ketligini bir vaqtda bitta token hosil qilish uchun encoder-ning kontekst vektorlaridan foydalanadi.
Encoder va decoder komponentlari uchun bir nechta arxitektura mavjud. Xususan, LSTM, GRU va Transformer kabi ketma-ket ma'lumotlarni qayta ishlash uchun mo'ljallangan arxitekturalardan foydalanish mumkin. Ulardan Transformer-lar tarjima vazifalarida, ayniqsa uzoq masofali bog'liqliklarni boshqarishda GRU va LSTM kabi oldingi modellarga qaraganda ustunroq natijalar ko'rsatgan. E'tiborli joyi shundaki, attention mexanizmi dastlab til tarjimasi kontekstida taqdim etilgan [2].
2-bobda tasvirlangan Transformer-larning uchta varianti bor: faqat encoder, faqat decoder va encoder-decoder arxitekturasi. BERT [3] kabi faqat encoder modellari kirish ketma-ketligini tushunish va qayta ishlashda yaxshi, ammo chiqish hosil qilish uchun odatda qo'shimcha mexanizmlar talab etadi. OpenAI-ning GPT [4] va Anthropic-ning Claude [5] kabi faqat decoder modellari generativ vazifalarda juda samarali.
Uchala arxitektura ham kuchli natijalar ko'rsatadi va prompt engineering kabi usullar orqali til tarjimasi vazifalariga moslashtirish mumkin bo'lsa-da, encoder-decoder modellari odatda uchta asosiy sabab tufayli afzal ko'riladi. Birinchidan, encoder-decoder arxitekturasi kirish tushunishini va chiqish hosil qilishni ajratadi, bu esa til tarjimasi kabi seq2seq vazifalari uchun ideal. Bu encoder-ga manba tilida ixtisoslashish va decoder chiqishni hosil qilishdan oldin kirish ketma-ketligini to'liq tushunish imkonini beradi. Masalan, encoder-lar ko'pincha ikki yo'nalishli LSTM [6] yoki Transformer kabi ikki yo'nalishli mexanizmlardan foydalanadi, bu esa ularga kontekstni har ikkala yo'nalishdan tushunishga imkon beradi.
Ikkinchidan, bu arxitektura o'zgaruvchan uzunlikdagi ketma-ketliklarni tabiiy ravishda boshqaradi. Encoder-decoder modellari turli uzunlikdagi kirish/chiqish ketma-ketliklarini qabul qilish uchun mo'ljallangan bo'lib, ularni turli xil ilovalar bo'yicha juda ko'p maqsadli qiladi. Bu moslashuvchanlik kirish va chiqish o'rtasida qat'iy uzunlik munosabati bo'lmagan vazifalarda muhim ahamiyat kasb etadi.
Va nihoyat, encoder-decoder Transformer-lardagi cross-attention mexanizmi decoder-ga chiqish hosil qilish davomida kirish ketma-ketligining tegishli qismlariga dinamik ravishda e'tibor qaratish imkonini beradi. Bu maqsadli attention chiqish ketma-ketligi manba ketma-ketligining muhim elementlari bilan yaqin muvofiqligini ta'minlaydi va shu tariqa tarjimaning aniqligi va sifatini yaxshilaydi. Cross-attention-ni arxitektura bo'limida batafsil ko'rib chiqamiz.
Ma'lumotlarni tayyorlash
Ushbu bo'limda biz xom matn ma'lumotlarini encoder-decoder Transformer uchun tayyorlaymiz. O'qitish uchun ikki turdagi ma'lumotimiz bor: umumiy ma'lumotlar va tarjima ma'lumotlari. Umumiy ma'lumotlar internetdagi ochiq matnlarni o'z ichiga oladi. Tarjima ma'lumotlari 300 million juft gapdan iborat bo'lib, har biri manba tildagi gap va maqsad tildagi mos tarjimasini o'z ichiga oladi.
Ham umumiy, ham tarjima ma'lumotlaridagi xom matn ko'pincha shovqinli va ML modeli kutgan formatda bo'lmaydi. 2-bobda umumiy ma'lumotlarni tayyorlashni ko'rganimiz uchun tarjima ma'lumotlarini tayyorlashga e'tibor qaratамиз. Xususan, quyidagi ikki qadamga to'xталамиз:
- Matnni oldindan qayta ishlash
- Matnni tokenizatsiya qilish
Matnni oldindan qayta ishlash
Tarjima ma'lumotlaridagi xom matnga quyidagi oldindan qayta ishlash usullarini qo'llaymiz:
- Yo'qolgan ma'lumotlarni olib tashlash: Manba yoki maqsad matni yo'q bo'lgan juftlarni olib tashlang.
- Shovqinli ma'lumotlarni olib tashlash: HTML teglari yoki noto'g'ri til juftlamalarini o'z ichiga olgan juftlarni olib tashlang.
- Takrorlanishni bartaraf etish: Modelning ma'lum misollarga haddan tashqari moslashib ketishining (overfitting) oldini olish uchun datasetdan takroriy juft gaplarni olib tashlang.
- Nomlangan obyektlarni boshqarish: Til tarjimasi modellari ko'pincha nomlangan obyektlar bilan kurashadi. Biz matndagi bu obyektlarni aniqlaymiz va ularni placeholder tokenlar bilan almashtiramiz. Tarjimadan so'ng tokenlarni asl obyektlar bilan almashtiramiz. Masalan, quyidagi gapni ko'rib chiqaylik: "Kaliforniyaning Burlingame shahri diplomat Anson Burlingame sharafiga nomlangan." Avval nomlangan obyektlarni aniqlaymiz: "Kaliforniya (joy nomi)," "Burlingame (joy nomi)" va "Anson Burlingame (shaxs ismi)." Keyin bu obyektlarni placeholder tokenlar bilan almashtiramiz: "ENTITY_1-ning ENTITY_2 shahri diplomat ENTITY_3 sharafiga nomlangan." Bu yondashuv modelga o'qitish davomida noodatiy atamalar bilan chalkashmasdan gap kontekstiga e'tibor qaratishga yordam beradi.
Zamonaviy til tarjimasida, ayniqsa Transformer kabi modellar bilan, ba'zi an'anaviy oldindan qayta ishlash qadamlari kamroq muhim bo'lib qoldi yoki boshqacha tarzda bajarilmoqda. Quyida bir vaqtlar an'anaviy tarjima modellarida zaruriy bo'lgan, ammo endi kerak bo'lmagan yoki kamroq dolzarb bo'lgan bir nechta oldindan qayta ishlash qadamlari keltirilgan:
- Kichik harfga aylantirish: Zamonaviy til tarjimasi modellari harflar holatiga sezgirlikni o'qitishning bir qismi sifatida boshqara oladi. Ular so'zlarning turli shakllarini harflar holatiga qarab farqlashni o'rganadi (masalan, kompaniya sifatida "Apple" va meva sifatida "apple") va hamma narsani kichik harfga aylantirish shart emas. Shuning uchun asl harflar holati ma'lumotini saqlab qolish uchun kichik harfga aylantirish ko'pincha o'tkazib yuboriladi.
- Stop so'zlarni olib tashlash: Stop so'zlar (masalan, "the", "and", "in") gaplarning grammatik tuzilishi uchun zaruriy. Ularni olib tashlash tarjimaning ravonligi va ma'nosini buzishi mumkin. Zamonaviy til tarjimasi modellari kontekstni to'liq tushunish va yanada tabiiy tarjimalar yaratish uchun stop so'zlarni o'z ichiga olgan to'liq gaplardan foyda ko'radi.
- Stemming va lemmatizatsiya: Stemming (so'zlarni asosiy yoki ildiz shakliga keltirish) va lemmatizatsiya (so'zlarni lug'at shakliga keltirish) zamonaviy til tarjimasida odatda talab etilmaydi, chunki bu modellar so'zlarning morfologik variantlarini boshqarish uchun mo'ljallangan. Modellar kontekst asosida so'zlarni to'g'ri shaklda tarjima qilishni o'rganadi, shuning uchun ularni asosiy shaklga keltirish aslida qimmatli ma'lumotni yo'qotishi mumkin.
- Tinish belgilarini olib tashlash: Tinish belgilari gap tuzilishi va ma'nosini tushunish uchun muhim. Zamonaviy til tarjimasi modellari tinish belgilarini tabiiy ravishda boshqarishga o'qitilgan, shuning uchun ularni olib tashlash tarjima sifatini pasaytirishi mumkin. Tinish belgilari modelga gaplarning grammatik yaxlitligini saqlashda yordam berish uchun odatda saqlab qolinadi.
Matnni tokenizatsiya qilish
Bir nechta til bilan ishlashimiz tufayli til tarjimasi kontekstida matnni tokenizatsiya qilish algoritmini tanlash muhim ahamiyat kasb etadi. Masalan, so'z darajasidagi tokenizatorni tanlaganimizda, barcha tillardagi lug'atimizda yuz minglab noyob so'zlar bo'lar edi, bu esa juda katta va samarasiz.
Til tarjimasida tillar bo'yicha so'zlar xilma-xilligini boshqarish asosiy muammo hisoblanadi. An'anaviy so'z darajasidagi tokenizatsiya modellari ko'pincha lug'atdan tashqaridagi (OOV) so'zlar bilan kurashadi, holbuki pastki so'z darajasidagi tokenizatsiya algoritmlari samaraliroq va OOV muammosini samarali hal qila oladi. Ularning ahamiyati va keng tarqalganligi tufayli Byte-Pair Encoding (BPE) [7] — keng qo'llaniladigan pastki so'z darajasidagi tokenizatsiya algoritmini batafsil ko'rib chiqish maqsadga muvofiq.
Byte-Pair Encoding (BPE)
BPE takroriy birlashtirish orqali pastki so'z darajasidagi lug'at yaratadi. U belgilardan boshlaydi va eng ko'p uchraydigan kombinatsiyalarni yangi pastki so'zlarga iterativ ravishda birlashtiradi. Bu modelga so'zlarni, hatto kamdan-kam uchraydigan yoki ko'rilmagan so'zlarni ham ma'lum komponentlarga ajratish imkonini beradi va shu tariqa aniq tushunish va tarjimaga erishishni ta'minlaydi. BPE-ni yaxshiroq tushunish uchun aniq misolni ko'rib chiqaylik.
Dastlabki sozlash
Faraz qilaylik, bizda quyidagi so'zlar to'plamiga ega korpus bor: "cat", "cats", "dog" va "dogs".
Dastlabki sozlashda maqsadimiz korpusdagi turli belgilar va ularning uchraш chastotasidan iborat lug'atni ishga tushirishdir. Bunga erishish uchun quyidagi qadamlarni bajaramiz:
- Har bir so'zning chegarasini belgilash uchun har bir so'zning oxiriga maxsus tugash tokeni "</w>" qo'shing. Bu maxsus token modelga so'z qachon tugaganini bilishga yordam beradi.
- Har bir so'zni alohida belgilarga ajratib korpusni tokenizatsiya qiling.
- Lug'atni alohida belgilar va ularning uchraш chastotasi bilan ishga tushiring.
Iterativ birlashtirish
Dastlabki lug'at yaratilgandan so'ng, BPE eng ko'p uchraydigan belgi juftlarini pastki so'zlarga iterativ ravishda birlashtiradi. Bu lug'at oldindan belgilangan hajmga yetguncha yoki to'xtash mezonlariga javob berguncha davom etadi.
Quyida BPE-ning dastlabki beshta iteratsiyasi keltirilgan:
- 1-iteratsiya: Avval eng ko'p uchraydigan belgi juftini aniqlaymiz — bu "dog" va "dogs" so'zlarida birga 10 marta uchraydigan "d" va "o". Ularni birlashtirish orqali "do" yangi tokenini yaratamiz. "og" ham 10 marta uchrasa-da, "do" alifbo tartibida birinchi keladi. "do" tokeni lug'atga qo'shiladi va chastota hisoblagichlar yangilanadi. "do" endi 10 marta uchraydi, "d" va "o" alohida hisobi mos ravishda kamayadi. 7-rasm: BPE 1-iteratsiyasi
- 2-iteratsiya: Endi keyingi eng ko'p uchraydigan juftni izlaymiz — bu "dog" va "dogs" so'zlaridan "do" va "g". Bu belgilar birga 10 marta uchraydi, shuning uchun ularni birlashtirish orqali "dog" tokenini yaratamiz.
- 3-iteratsiya: Oldinga siljib, "cat" va "cats" so'zlaridan "c" va "a" birga 8 marta uchrayotganini sezamiz. Ularni birlashtirish orqali "ca" tokenini yaratamiz. Birlashtirishdan so'ng, "cat" so'zi "ca" va "t" sifatida ifodalanishi mumkin. "ca" tokeni endi 8 ta chastotaga ega.
- 4-iteratsiya: "cat" va "cats" so'zlaridan birga 8 marta uchraydigan "ca" va "t" ni birlashtirish orqali davom etamiz. Ularni birlashtirish orqali "cat" tokenini hosil qilamiz. Endi "cats" so'zi "cat" va "s" sifatida, "dogs" so'zi esa "dog" va "s" sifatida ifodalanishi mumkin. "cat" uchun chastota hisoblagich 8 ga yangilanadi.
- 5-iteratsiya: Va nihoyat, keyingi eng ko'p uchraydigan juft — "dogs" va "cats" so'zlaridan "s" va "</w>" bo'lib, u 7 marta uchraydi. "s" va "</w>" ni birlashtirish orqali "s</w>" tokenini hosil qilamiz.
BPE eng ko'p uchraydigan belgi juftlarini iterativ ravishda birlashtiradi va bu korpusning yanada ixcham ifodasiga olib keladi. Birlashtirish istalgan token yoki iteratsiyalar soniga yetguncha davom etadi.
Maxsus "</w>" tokeni turli so'z shakllarini farqlashda muhim rol o'ynaydi. Masalan, "</w>" bilan tugagan "cat" tokeni "cat" so'zining oxirini bildiradi, holbuki "</w>" siz "cat" tokeni boshqa so'zning qismi ham bo'lishi mumkin. Bu farq BPE-ga tarjima davomida so'zlarni aniq ifodalash va talqin etish imkonini beradi va u tanish hamda ko'rilmagan so'zlarni samarali boshqarishga qodir.
Lug'at yaratilgandan so'ng, biz tokenizatsiya qilingan har bir gapni butun sonlar ketma-ketligi bilan almashtirish orqali o'quv ma'lumotlarimizni tuzamiz. Bu har biri ma'lum bir til juftiga mo'ljallangan bir nechta jadvalga olib keladi. 11-rasm inglizcha–fransuzcha va inglizcha–koreycha til juftlari uchun tayyorlangan tarjima ma'lumotlarini ko'rsatadi.
Modelni ishlab chiqish
Biz til tarjimasini o'qitish uchun encoder-decoder Transformer-dan foydalandik. Ushbu bo'limda encoder va decoder arxitekturasi, o'qitish strategiyalari va namuna olish usullarini o'rganamiz.
Arxitektura
Encoder-decoder Transformer arxitekturasidagi asosiy komponentlar 2-bobda tushuntirilgan faqat decoder Transformer-nikiga juda o'xshash. Encoder va decoder-ni alohida ko'rib chiqamiz va ularning asosiy farqlarini ta'kidlaymiz.
Encoder
Encoder kirish ketma-ketligini qayta ishlaydi va har bir kirish tokeni uchun embedding ketma-ketligini chiqaradi.
Encoder quyidagi komponentlardan iborat:
- Matn embedding
- Positional encoding
- Transformer
Matn embedding: Bu komponent har bir kirish tokenini embedding vektoriga aylantiradi. Bu embedding-lar har bir tokenning semantik ma'lumotini o'z ichiga oladi.
Positional encoding: Positional encoding komponenti kirish ketma-ketligidagi har bir tokenning pozitsiyasi haqida ma'lumot kiritadi. Oldingi bobda muhokama qilinganidek, ham qat'iy, ham o'rganilgan usullar amalda samarali. Soddalik uchun biz sinus–kosinus kodlash kabi qat'iy positional encoding usulini tanlaymiz.
Transformer: Transformer token embedding-lar ketma-ketligini Transformer bloklari to'plami orqali qayta ishlaydi. Har bir blok kirish ketma-ketligida multi-head attention (MHA) mexanizmidan foydalanadigan self-attention qatlamini va feed-forward qatlamni o'z ichiga oladi, o'qitish davomida barqarorlikni ta'minlash uchun ular orasida normalizatsiya qatlamlari joylashgan. Talab 1 000 so'zlik kirish ketma-ketligini qo'llab-quvvatlashni belgilaganligidan, samaradorlik uchun optimallashtirilgan attention mexanizmlarini qo'llash shart emas, chunki standart attention mexanizmi ushbu ketma-ketlik uzunligini sezilarli ishlash muammosisiz boshqarish uchun yetarli.
Decoder
Decoder encoder-ning chiqishi va avval hosil qilingan tokenlardan foydalanib chiqish ketma-ketligini bir vaqtda bitta token hosil qiladi. Decoder quyidagi komponentlarga ega:
- Matn embedding: Maqsad ketma-ketligidagi har bir tokenni embedding-ga aylantiradi
- Positional encoding: Har bir tokenning pozitsiyasi haqida ma'lumot kiritadi
- Transformer: Maqsad ketma-ketligini qayta ishlaydi va yangilangan embedding-lar ketma-ketligini chiqaradi
- Prediction head: Keyingi tokenni bashorat qilish uchun yangilangan embedding-lardan foydalanadi.
Encoder va decoder o'rtasidagi asosiy farqlar nimalar?
Encoder va decoder o'rtasida uchta asosiy farq mavjud:
- Cross-attention qatlami
- Self-attention mexanizmi
- Prediction head
Cross-attention qatlami
Decoder-dagi Transformer komponenti cross-attention qatlamini o'z ichiga oladi. Bu qatlam encoder chiqishi ustida MHA mexanizmini amalga oshiradi. U decoder-dagi har bir tokenga encoder-dagi barcha embedding-larga e'tibor qaratish imkonini beradi. Bu cross-attention-ga chiqish ketma-ketligi hosil qilinishi davomida kirish ketma-ketligidagi ma'lumotni samarali birlashtirish imkonini beradi.
Self-attention mexanizmi
Self-attention qatlami encoder va decoder-da har xil ishlaydi. Encoder-da har bir token ketma-ketlikdagi boshqa barcha tokenlarga e'tibor qaratadi. Bu encoder-ga butun ketma-ketlikni keng qamrovli tushunishga yordam beradi. Aksincha, decoder-da har bir token faqat ketma-ketlikdagi undan oldin kelgan tokenlarga e'tibor qaratishga cheklanadi, buning uchun ketma-ketlikdagi kelajakdagi tokenlar maskalanadi. Bu farq generativ vazifalar uchun muhim, chunki model keyingi tokenni bashorat qilish uchun faqat avval hosil qilingan tokenlardan, kelajakdagilaridan emas, foydalanishi kerak.
Prediction head
Decoder-da Transformer komponenti ustida prediction head mavjud. Prediction head odatda Transformer chiqishini lug'at bo'yicha ehtimolliklarga aylantirish uchun softmax qatlamidan oldin keladigan chiziqli qatlamni o'z ichiga oladi. Bu ehtimolliklar keyingi eng ehtimoliy tokenni aniqlash uchun ishlatiladi.
O'qitish
Til tarjimasi modelini o'qitish uchun ikki bosqichli strategiyadan foydalanamiz:
- Nazorat qilinmagan oldindan o'qitish (unsupervised pretraining)
- Nazorat ostidagi nozik sozlash (supervised finetuning)
. Nazorat qilinmagan oldindan o'qitish
Ushbu bosqichda biz katta umumiy ma'lumotlar korpusi yordamida asosiy modelni o'qitamiz. Bu til, grammatika va kontekstni tushunishga qodir asosiy modelni yaratadi.
Oldindan o'qitish bosqichi uchun pretraining ma'lumotlari, ML maqsadi va yo'qotish funksiyasini ko'rib chiqaylik.
Pretraining ma'lumotlari
C4 [8], Wikipedia [9] va StackExchange [10] kabi mashhur pretraining datasetlaridan foydalanamiz. Faqat ingliz tili uchun til modeli pretrain qilishga e'tibor qaratgan 2-bobdan farqli o'laroq, til tarjimasi uchun bir nechta tilni umumiy tushunishga ega asosiy modelga muhtojmiz. Shuning uchun biz bu datasetlardan ingliz bo'lmagan matn ma'lumotlarini olib tashlamaymiz. Buning o'rniga, modelning tarjima qilishini kutgan tillar to'plamini saqlab qolamiz va bu to'plamdan tashqari tillarga tegishli har qanday matn ma'lumotlarini olib tashlaymiz.
ML maqsadi va yo'qotish funksiyasi
2-bobda biz til generatsiyasi uchun asosiy ML maqsadi sifatida keyingi tokenni bashorat qilishni ko'rib chiqdik. Keyingi tokenni bashorat qilish encoder-decoder pretrain qilishda ideal tanlov emas, chunki o'qitish nazorat qilinmagan. Agar biz encoder-ga butun gapni bersak, u decoder-ga har doim keyingi so'zni aniq bashorat qilish imkonini beradigan tarzda ma'lumotni kodlaydi va bu aslida "aldash" bo'ladi. Buning o'rniga biz encoder-decoder Transformer-ni oldindan o'qitishda keng tarqalgan ML maqsadi bo'lgan "masked language modeling" dan foydalanamiz. Uni batafsil ko'rib chiqaylik.
Masked language modeling (MLM)
Masked token prediction deb ham ataladigan MLM-da kirish tokenlarining bir qismi maskalanadi va model ana shu maskalangan tokenlarni bashorat qilishga o'qitiladi.
MLM encoder-ga kirish gapini qayta ishlash va decoder maskalangan so'zlarni bashorat qila olishi uchun uni kodlash imkonini beradi. Maskalangan so'zlar kodlash jarayonida hech qachon ko'rinmaydi, bu esa modelning aldashini oldini oladi.
Maskalangan tokenlarni bashorat qilishdagi model samaradorligini o'lchash uchun cross-entropy yo'qotishidan foydalanamiz. Bu keng qo'llaniladigan yo'qotish funksiyasi bashorat qilingan ehtimolliklar va haqiqiy tokenlar o'rtasidagi nomuvofiqliklarni o'lchaydi va shu tariqa o'qitish jarayonini yo'naltiradi. MLM maqsadi yordamida yo'qotishni qanday hisoblash qadama-qadam tushuntirilgan:
- Kirish ketma-ketligidagi tokenlarning bir qismini tasodifiy tanlang va ularni mask tokeni ("[MASK]") bilan almashtiring. Masalan, "Thank you for inviting me" kirish gapi "Thank [MASK] for inviting [MASK]" ga aylanishi mumkin.
- Maskalangan ketma-ketlikni encoder-ga bering, u yo'qolgan tokenlariga qaramasdan kontekstni tushunib oladi. Encoder har bir token uchun yangi embedding-lar ketma-ketligini chiqaradi.
- Decoder-ni xuddi shu kirish ketma-ketligi bilan ta'minlang, lekin bu safar tokenlarning hech biri maskalanmagan va ketma-ketlik boshlash tokeni ("<BOS>") qo'shilishi orqali bir pozitsiyaga o'ngga siljitilgan. O'qitish davomida nima uchun kirish ketma-ketligini siljitishimizni tushunish uchun 2-bob yoki [11] ga qarang.
- Decoder ketma-ketlikdagi har bir pozitsiya uchun keyingi tokenni bashorat qiladi. Har bir bashorat barcha oldingi kirish tokenlarini va encoder-dan kodlangan ma'lumotni ishlatadi.
- Faqat maskalangan tokenlar uchun bashorat qilingan ehtimolliklar va haqiqiy qiymat ustida cross-entropy yo'qotishini hisoblang.
Xulosa qilib aytganda, biz encoder-decoder Transformer-larni oldindan o'qitishda asosan MLM maqsadini qo'llaymiz, chunki u ham encoder, ham decoder-ni jalb etadi. Encoder maskalangan kirish matnini kodlash orqali tilni tushunishini rivojlantiradi. Decoder bu kodlangan ma'lumotni qayta ishlashni va maskalangan tokenlarni bashorat qilishni o'rganadi. Bu maqsad ham encoder, ham decoder-ni nazorat ostidagi nozik sozlash bosqichiga tayyorlaydi.
Nazorat ostidagi nozik sozlash bosqichini ko'rib chiqishdan oldin shuni ta'kidlash kerakki, asosiy modelni oldindan o'qitish resurs talab qiluvchi va shuning uchun qimmat. Amalda biz ko'pincha Google-ning T5 [12] yoki Meta-ning BART [13] kabi ochiq encoder-decoder modellaridan foydalanamiz, ular keng datasetlarda oldindan o'qitilgan. Bu yondashuv oldindan o'qitish uchun zarur bo'lgan xarajatlar va resurslarni sezilarli darajada kamaytiradi.
. Nazorat ostidagi nozik sozlash
O'qitish jarayonimizning ikkinchi bosqichi bo'lgan nazorat ostidagi nozik sozlash asosiy modelni til tarjimasining muayyan vazifasiga moslashtiradi. U buni asosiy modelni tarjima ma'lumotlari ustida nozik sozlash orqali amalga oshiradi. Asosiy modelni til tarjimasiga moslashtirish uchun ikkita variant mavjud:
- Ikki tilli yondashuv (bilingual)
- Ko'p tilli yondashuv (multilingual)
Ikki tilli yondashuv
Bu yondashuvda har bir til jufti uchun maxsus modellar o'qitamiz. Tilga xos modellarni o'qitishning bir nechta afzalliklari bor. Birinchidan, ular har bir til juftining o'ziga xos lingvistik nozikliklarini qamrab oladi. Ikkinchidan, ular ixtisoslashgan tabiati tufayli odatda yuqori tarjima aniqligini namoyish etadi. Va nihoyat, tilga xos modellarda samaradorlikni oshirish sodda, chunki har bir til jufti uchun yuzaga kelishi mumkin bo'lgan muayyan muammolarni osongina ajratib ko'rsatish va hal qilish mumkin. Biroq, bir nechta modelni o'qitish, joylashtirish va ularga texnik xizmat ko'rsatish resurs talab qiluvchi va qimmat.
Ko'p tilli yondashuv
Bu yerda bitta model bir nechta til o'rtasida tarjima qilish uchun o'qitiladi. Ko'p tilli modellar ikki tilli modellarga qaraganda oddiyroq, arzonroq va ularni joylashtirish hamda texnik xizmat ko'rsatish osonroq. mT5 [14] va mBART [15] kabi yaqinda o'tkazilgan tadqiqotlar ko'p tilli tarjima modellariga yo'nalish borligini ta'kidladi; ular ko'pincha ikki tilli modellar samaradorligiga mos keladi yoki undan oshib ketadi.
Ushbu bob uchun biz soddalik emas, tarjima aniqligini ustuvor ko'ramiz va shuning uchun ikki tilli yondashuvni tanlaymiz.
O'quv ma'lumotlari
20-rasmda tayyorlangan o'quv ma'lumotlarining misoli ko'rsatilgan bo'lib, har bir jadval til juftini ifodalaydi. Har bir jadvalda bir qator bir misolni o'z ichiga oladi — manba tildagi gap uchun token ID-lar ketma-ketligi va maqsad tildagi tarjima uchun token ID-lar ketma-ketligi.
ML maqsadi va yo'qotish funksiyasi
Pretraining bosqichi nazorat qilinmagan bo'lsa, finetuning bosqichi nazorat ostida amalga oshiriladi. Encoder har bir o'quv misoli uchun manba gap tokenlarini qayta ishlaydi, decoder esa maqsad gap tokenlarini hosil qiladi. Decoder o'qitishdan so'ng tokenlarni ketma-ket hosil qilishi kerakligi sababli, biz ML maqsadi sifatida keyingi tokenni bashorat qilishdan foydalanamiz. Bashorat qilingan keyingi tokenning aniqligini o'lchash uchun yo'qotish funksiyasi sifatida cross-entropy-dan foydalanamiz.
21-rasm finetuning bosqichida yo'qotishni hisoblashni ko'rsatadi. Soddalik uchun u bitta bashoratni vizuallashtiradi. Amalda, 2-bobda ko'rganimizdek, decoder barcha pozitsiyalar uchun bir vaqtda keyingi tokenni bashorat qiladi va yo'qotishlar barcha bashoratlar uchun hisoblanadi.
Namuna olish
Namuna olish davomida o'qitilgan model kirish ketma-ketligining konteksti va avval hosil qilingan tokenlar asosida har bir keyingi tokenni bashorat qilib, potentsial tarjimani hosil qiladi.
2-bobda muhokama qilinganidek, generativ modellarda matn namunasini olishning ikkita asosiy strategiyasi mavjud: deterministik usullar (masalan, beam search) va stokastik namuna olish. Bu yerda ikkita asosiy sabab tufayli beam search-ni tanlaymiz:
- Tarjima aniqligi: Beam search odatda aniqroq tarjimalarga olib keladi. Buning sababi shundaki, algoritm bir nechta mumkin bo'lgan ketma-ketliklarni baholaydi va eng ehtimoliy birini tanlaydi.
- Izchillik: Beam search deterministik, ya'ni bir xil kirish berilganda har doim bir xil chiqish ishlab chiqaradi. Bu izchillik tarjimalarning kam kutilmagan natijalar berishini ta'minlaydi, bu esa aksariyat tarjima tizimlarida muhim. Xilma-xillik foydali bo'lishi mumkin bo'lsa-da, u til tarjimasi tizimlari uchun na zaruriy, na maqsadga muvofiq.
Shuni ta'kidlash kerakki, ijodiy yozish kabi xilma-xillik va ijodkorlik ko'proq qadrlanadigan ilovalarda stokastik namuna olish usullari odatda afzal ko'riladi. 4-bobda biz top-k va top-p namuna olish kabi stokastik usullarni batafsil ko'rib chiqamiz.
| Xususiyat | Deterministik usullar | Stokastik usullar |
|---|---|---|
| Yondashuv | Chiqishni hosil qilish uchun oldindan aytish mumkin bo'lgan jarayonni kuzatadi | Ehtimollik taqsimoti asosida chiqishni hosil qiladi |
| Samaradorlik | Bir nechta yo'llarni kuzatish tufayli odatda kamroq samarali | Tasodifiylik tezroq tanlovga imkon bergani uchun samaraliroq |
| Sifat | Izchil va oldindan aytish mumkin | Xilma-xil va ijodiy |
| Xavf | Uzunroq ketma-ketliklar uchun odatda takroriy chiqishga olib keladi | Ijodkorligi tufayli noto'g'ri chiqish hosil qilishi mumkin |
| Qo'llanilishi | Til tarjimasi kabi izchillikni talab qiluvchi vazifalar uchun mos | Ochiq matn generatsiyasi kabi ijodkorlikni talab qiluvchi vazifalar uchun mos |
| Usullar | Greedy search, beam search | Multinomial, top-k, top-p |
1-jadval: Deterministik va stokastik usullarni taqqoslash
Baholash
Offline baholash metrikalari
Til tarjimasi modelini to'liq baholash uchun metrikalar tarjima aniqligini ham, kontekstga mosligini ham o'lchashi kerak. Tadqiqot jamoasi ko'plab metrikalar taklif qildi va yillar davomida ular keng qabul qilingan standartlarga aylandi. Keng qo'llaniladigan metrikalardan ba'zilari:
- BLEU
- ROUGE
- METEOR
BLEU
BLEU (BiLingual Evaluation Understudy) [16] — nomzod tarjimasining n-gramlarini ("n" so'zdan iborat ketma-ketlik) mos yozuvlar tarjimalarining n-gramlari bilan taqqoslaydigan va mos kelishlar nisbatini hisoblaydigan aniqlikka asoslangan metrika. U 0 dan 1 gacha o'zgaradi, yuqoriroq qiymat aniqroq tarjimani bildiradi.
BLEU score quyidagi formula yordamida hisoblanadi:
quyidagi belgilar bilan:
- N — baholash uchun hisobga olingan maksimal n-gram uzunligi
- BP — qisqalik jarima bali (brevity penalty)
- pn — n-gramlar aniqligi
- wn — turli n-gram aniqliklari uchun og'irlik
Ushbu atamalarni batafsil ko'rib chiqaylik.
Qisqalik jarima bali (BP) BP — mos yozuvlar tarjimasidan qisqaroq tarjimalarni jazolaydigan doimiy atama. Formula:
quyidagi belgilar bilan:
- c — tarjima uzunligi
- r — mos yozuvlar tarjimasi uzunligi
Agar nomzod tarjimasi uzunligi c mos yozuvlar tarjimasi uzunligi r dan katta bo'lsa, qisqalik jarima bali 1 ga teng (ya'ni jarima yo'q). Agar nomzod tarjimasi uzunligi mos yozuvlar tarjimasi uzunligiga teng yoki undan kichik bo'lsa, qisqalik jarima bali uzunliklar nisbatiga asoslangan eksponentsial kamayishga teng.
Aniqlik (pn): Aniqlik nomzod tarjimasidagi n-gramlardan qanchasi mos yozuvlar tarjimalarida mavjudligini o'lchaydi. U mos keluvchi n-gramlar sonini nomzod tarjimasidagi umumiy n-gramlar soniga bo'lish yo'li bilan hisoblanadi. 23-rasm nomzod va bitta mos yozuvlar gapi uchun p2 ni hisoblash misolini keltiradi.
Og'irliklar (wn) Bu og'irliklar har bir n-gram o'lchamining aniqligiga to'g'ri keladi. Odatda ularni teng taqsimlaymiz va har bir n-gram aniqligiga bir xil ahamiyat beramiz. Masalan, 4-gramlargacha bo'lgan n-gramlar uchun har bir wn 1/4 ga teng bo'ladi.
BLEU-ning asosiy afzalligi shundaki, u oddiy va hisoblash oson. Biroq uning jiddiy kamchiligi bor: u to'g'ri, lekin mos yozuvlar tarjimasidan farqli tarjimalarni adolatsiz jazolab qo'yishi mumkin. Masalan, mos yozuvlar tarjimasi "The engineer discovered a new algorithm" bo'lsa va hosil qilingan tarjima "The engineer found a new method" bo'lsa, BLEU hosil qilingan tarjimani bir xil ma'noni ifodalasiga qaramay jazolab qo'yishi mumkin. Bu cheklashiga qaramay, BLEU til tarjimasi modellarini baholashda amalda tushuncha beruvchi va keng qo'llaniladigan metrika bo'lib qolaveradi.
ROUGE
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) [17] — aniqlik o'rniga eslashni (recall) e'tiborga olish orqali BLEU-ni to'ldiruvchi mashhur metrika. U nomzod va mos yozuvlar matnlari o'rtasidagi n-gram o'xshashliklarining nisbatini o'lchaydi. Masalan, ROUGE-N eslashi quyidagicha aniqlanadi:
ROUGE va uning formulasi haqida ko'proq bilishni xohlasangiz, [17] ga murojaat qiling.
BLEU ga o'xshab, ROUGE ham amalga oshirish oson va hisoblashda samarali. Biroq uning asosiy kamchiligi kontekstni tushunishning etishmasligi. Har xil, lekin semantik jihatdan o'xshash so'zlarga ega tarjima past ROUGE skorini olishi mumkin.
METEOR
METEOR (Metric for Evaluation of Translation with Explicit ORdering) [18] — til tarjimasi modellarini baholash uchun mashhur metrika. U aniqlik va eslashni hisoblab, so'ngra bu o'lchovlarni og'irlikli garmonik o'rtacha yordamida birlashtiradi.
Aniq n-gram mosliklariga tayyanadigan BLEU va ROUGE-dan farqli o'laroq, METEOR sinonimlar va so'zlarning morfologiyasini hisobga oladi. Masalan, mos yozuvlar tarjimasi "run" dan foydalanib, hosil qilingan tarjima "running" dan foydalansa, METEOR ularni bog'liq atamalar sifatida tan oladi. Bu sinonimlar sinonim lug'atlar yoki leksik bazalar kabi lingvistik resurslar yordamida topiladi. Keng qo'llaniladigan resurslardan biri — so'zlarni turli turdagi sinonimlar to'plamiga tartiblaydigan va bu sinonimlar to'plamlari o'rtasidagi munosabatlarni ko'rsatadigan WordNet [19].
METEOR yanada to'liq metrika bo'lsa-da, uning ba'zi kamchiliklari bor. Keling, uning ijobiy va salbiy tomonlarini ko'rib chiqaylik.
Ijobiy tomonlari:
- Semantik tushunish: METEOR tarjima baholash davomida sinonimlar va stemmingni hisobga olganligidan, turli so'z ifodalari bir xil ma'noni bildirganida tarjima sifatini aniqroq baholaydi.
- Muvozanatli baholash: METEOR aniqlik va eslashni birlashtirganligidan muvozanatli baholash taqdim etadi. Bu ham aniq, ham to'liq bo'lgan tarjimalarni aniqlashga yordam beradi.
- Inson xulosalari bilan korrelyatsiya: METEOR BLEU va ROUGE-ga qaraganda inson xulosalari bilan yaxshiroq korrelyatsiya qiladi.
Salbiy tomonlari:
- Hisoblash murakkabligi: METEOR BLEU va ROUGE-ga qaraganda amalga oshirish qiyinroq va hisoblash ko'proq vaqt oladi. Buning sababi u sinonim va stemming mosligi kabi qo'shimcha qadamlarni talab etadi.
- Resurs bog'liqligi: METEOR sinonim lug'atlar va stemming algoritmlari kabi lingvistik resurslarga tayanadi, ular barcha tillar uchun mavjud bo'lmasligi mumkin.
Xulosa qilib aytganda, uchala metrika ham model samaradorligi haqida tushuncha beradi va amalda keng qo'llaniladi. Modelimizning real dunyo stsenariylarida qanday ishlashini tushunish uchun online baholashga o'tamiz.
Online baholash metrikalari
Online baholash davomida biz til tarjimasi tizimimizning ishlab chiqarishdagi samaradorligini baholaymiz. Foydalanuvchilarimizning qanchalik mamnun va faol ekanligini o'lchash uchun quyidagi ikki metrikadan foydalanamiz:
- Foydalanuvchi fikri: Tarjimalar sifati bo'yicha foydalanuvchilardan reytinglar yoki fikrlar to'plang. Metrika to'g'ridan-to'g'ri foydalanuvchi qoniqishini aks ettirganligidan tushuncha beruvchi. 25-rasm: Foydalanuvchi fikrini to'plash
- Foydalanuvchi faolligi: Foydalanuvchilar tarjima funksiyasidan qanchalik tez-tez foydalanishini, u bilan qancha vaqt muloqot qilishini va qanchalik tez-tez qaytib kelishini kuzatish orqali ularning faolligini o'lchang. Bu tarjima vositasining real hayotda qanchalik qimmatli va samarali ekanligini tushunishga yordam beradi.
Offline va online baholash metrikalarini birlashtirish bizga til tarjimasining samaradorligi haqida yanada to'liq tasavvur beradi. Ushbu keng qamrovli baholash modellar texnik standartlarga javob berishini va foydalanuvchi kutganlarini qondirishini ta'minlaydi.
Umumiy ML tizimi dizayni
Ushbu bo'limda biz til tarjimasi tizimining ML dizaynini o'rganamiz. Xususan, ikkita asosiy komponentni ko'rib chiqamiz:
- Til detektori
- Tarjima xizmati
Til detektori
Til detektori berilgan matnning tilini aniqlaydi va bu bizga shu til uchun maxsus o'qitilgan modeldan foydalanish imkonini beradi. Bu vazifani ketma-ketlik klassifikatsiyasi vazifasi sifatida shakllantirish mumkin va bunday vazifa uchun faqat encoder arxitekturasi yaxshi nomzod arxitektura. Kirish gaplarini klassifikatsiya qilish uchun faqat encoder Transformer-ni (27-rasm) ikki yo'l bilan o'zgartirishimiz mumkin:
- O'rtacha pooling: Transformer chiqishlarini o'rtacha pooling qatlamiga, so'ngra til sinfi ehtimolliklarini chiqaruvchi prediction head-ga uzating.
- Oxirgi token ifodasidan foydalanish: Transformer chiqishidan oxirgi token ifodasini oling va uni ehtimollik bashorati uchun prediction head-ga uzating.
Tarjima xizmati
Tarjima xizmati aniqlangan va kerakli tillarga asoslanib muayyan model bilan o'zaro munosabatda bo'ladi. Keyin u maqsad tilda tokenlar ketma-ketligini hosil qilish uchun beam search-ni qo'llaydi va tokenlarni qaytadan matnga aylantiradi. Yakuniy tarjima so'ngra foydalanuvchiga ko'rsatiladi.
Qo'shimcha muhokama mavzulari
Suhbat oxirida vaqt bo'lsa, quyidagi qo'shimcha mavzularni muhokama qilishni ko'rib chiqing:
- Transfer learning va ko'p tilli modellar yordamida cheklangan o'quv ma'lumotlariga ega tillar uchun tarjimani qo'llab-quvvatlash [20].
- Faqat decoder Transformer yordamida til tarjimasiga yondashish [21].
- Foydalanuvchi fikri orqali tarjima modellarini uzluksiz takomillashtirish [22].
- Samarali inference va qurilmada tarjima uchun optimallashtirish usullari [23].
- Yagona ko'p tilli model yaratish [24].
- WER kabi boshqa avtomatik metrikalar va ularni hisoblash usullari [25][26].
- Til aniqlash modelini qanday qurish [27].
Xulosa
Manba materiallar
[1] Google Translate service. https://blog.google/products/translate/google-translate-new-languages-2024/. [2] Neural Machine Translation by Jointly Learning to Align and Translate. https://arxiv.org/abs/1409.0473. [3] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. https://arxiv.org/abs/1810.04805. [4] GPT models. https://platform.openai.com/docs/models. [5] Claude models. https://www.anthropic.com/claude. [6] Bidirectional Long Short-Term Memory (BLSTM) neural networks for reconstruction of top-quark pair decay kinematics. https://arxiv.org/abs/1909.01144. [7] BPE tokenization. https://huggingface.co/learn/nlp-course/en/chapter6/5. [8] C4 dataset. https://www.tensorflow.org/datasets/catalog/c4. [9] Wikipedia dataset. https://www.tensorflow.org/datasets/catalog/wikipedia. [10] Stack Exchange dataset. https://huggingface.co/datasets/HuggingFaceH4/stack-exchange-preferences. [11] How Transformers work. https://huggingface.co/learn/nlp-course/en/chapter1/4. [12] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. https://arxiv.org/pdf/1910.10683.pdf. [13] BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension. https://arxiv.org/abs/1910.13461. [14] mT5: A massively multilingual pre-trained text-to-text transformer. https://arxiv.org/abs/2010.11934. [15] Multilingual denoising pre-training for neural machine translation. https://arxiv.org/abs/2001.08210. [16] BLEU metric. https://en.wikipedia.org/wiki/BLEU. [17] ROUGE metric. https://en.wikipedia.org/wiki/ROUGE_(metric). [18] METEOR metric. https://www.cs.cmu.edu/~alavie/METEOR/pdf/Banerjee-Lavie-2005-METEOR.pdf. [19] WordNet. https://wordnet.princeton.edu/. [20] No Language Left Behind: Scaling Human-Centered Machine Translation. https://research.facebook.com/publications/no-language-left-behind/. [21] Decoder-Only or Encoder-Decoder? Interpreting Language Model as a Regularized Encoder-Decoder. https://arxiv.org/abs/2304.04052. [22] Towards Continual Learning for Multilingual Machine Translation via Vocabulary Substitution. https://arxiv.org/abs/2103.06799. [23] Efficient Inference For Neural Machine Translation. https://arxiv.org/abs/2010.02416. [24] Meta's multilingual model. https://ai.meta.com/blog/nllb-200-high-quality-machine-translation/. [25] Machine translation evaluation. https://en.wikipedia.org/wiki/Evaluation_of_machine_translation. [26] Word error rate (WER) metric. https://en.wikipedia.org/wiki/Word_error_rate. [27] Automatic Language Identification using Deep Neural Networks. https://research.google.com/pubs/archive/42538.pdf.
Image Captioning
Kirish
Image captioning — bu rasm mazmunini tavsiflovchi matn yaratish jarayoni. Yaratilgan matn, ya'ni caption, rasmning tarkibini aniq aks ettirishi kerak.
Image captioning tizimining bir qancha qo'llanilish sohalari mavjud. Masalan, ijtimoiy tarmoq platformalarida u rasm uchun captionlarni avtomatik tavsiya etib, kontent yaratuvchilarning vaqtini tejaydi. Onlayn savdoda esa mahsulot rasmlari uchun captionlar generatsiya qiladi, bu esa xarid tajribasini yaxshilaydi.
Foydalanuvchilarga to'g'ridan-to'g'ri mo'ljallangan ilovalardan tashqari, image captioning fon rejimida ishlaydigan tizimlarda ham qo'llaniladi. Masalan, NSFW (Not Safe for Work) kontent moderatsiyasida image captioning tizimlari rasmlarni matnli talqin orqali nomaqbul yoki oshkora kontentni aniqlash va belgilashga yordam beruvchi tavsiflovchi captionlar generatsiya qilishi mumkin. Bundan tashqari, image captioning tavsiya tizimlaridagi «cold-start» muammosini hal qilishga yordam beradi — bu muammo tizimda yangi foydalanuvchilar yoki elementlar haqida aniq tavsiyalar berish uchun yetarli ma'lumot bo'lmaganda yuzaga keladi. Tavsiflovchi captionlar generatsiya qilish orqali tizim matniy ma'lumot oladi va yangi elementlarni ularning tarkibiga qarab kategoriyalash hamda tavsiya qilish imkoniyatiga ega bo'ladi.
Ushbu bobda biz rasmlar uchun tavsiflovchi captionlar yaratuvchi machine learning (ML) tizimini loyihalashtiramiz.
Talablarni Aniqlash
Nomzod va suhbatdosh o'rtasidagi tipik muloqot:
Nomzod: Rasmlarning turli xillari mavjud: umumiy kundalik rasmlar va tibbiy tasvirlar yoki texnik diagrammalar kabi soha-spesifik rasmlar. Faqat umumiy kundalik rasmlarga e'tibor qaratishim mumkinmi? Suhbatdosh: Albatta.
Nomzod: Ushbu tizim bilan qaysi muayyan ilovalar yoki foydalanish holatlari ko'zda tutilgan? Suhbatdosh: Dizaynerlar o'z assetlarini yuklashlarida nom tavsiyalarini berishga qaratilgan.
Nomzod: Image captioner asset nomlarini tavsiya qilish uchun ishlatilganligi sababli, captionlar juda uzun va batafsil bo'lmasligi kerak. Bu to'g'ri taxminmi? Suhbatdosh: Mantiqiy. Captionlar qisqa, lekin tavsifli va aniq bo'lishi kerak.
Nomzod: Tizim bir nechta tillarni qo'llab-quvvatlashi kerakmi, yoki faqat ingliz tiliga e'tibor qaratamizmi? Suhbatdosh: Faqat ingliz tiliga e'tibor qarataylik.
Nomzod: Dataset hajmi va xilma-xilligi qanday? Suhbatdosh: Kundalik rasmlarga yo'naltirilgan 400 million rasm–caption juftlikdan iborat katta datasetga kirishimiz bor.
Nomzod: Dataset faqat inglizcha captionlardan iboratmi? Suhbatdosh: Dataset oldindan qayta ishlanmagan. Turli tillardagi captionlar bo'lishi mumkin, ba'zilari shovqinli yoki noto'g'ri bo'lishi mumkin. Bundan tashqari, ba'zi rasmlar uchun captionlar umuman yo'q bo'lishi mumkin.
Nomzod: Real vaqt rejimida captioning talab qilinadimi? Suhbatdosh: Tizim tezda caption yaratishi kerak, lekin real vaqt tezligi shart emas. 1–2 soniyalik kechikish qabul qilinadi.
Nomzod: Tizim noaniq tarkibli yoki yomon ifoda etilgan rasmlarga qanday munosabatda bo'lishi kerak? Suhbatdosh: Bunday hollarda tizim caption tavsiya qilishni o'tkazib yuborishi kerak.
Nomzod: Tizim noto'g'ri tarafkashlikka ega captionlar yoki haqoratli so'zlar bilan captionlar yaratmasligini ta'minlashim kerak deb o'ylayman. Bu to'g'ri taxminmi? Suhbatdosh: Ajoyib mulohaza. Ha, tizimimiz foydalanuvchilar uchun adolatli va xavfsiz bo'lishini ta'minlash juda muhim.
Nomzod: Rasmlarning odatdagi o'lchamlari qanday? Juda kichik rasmlar noaniq bo'lishi mumkin va bu noto'g'ri captionlarga olib kelishi mumkin. Suhbatdosh: Tizim faqat minimal 256 x 256 piksel o'lchamidagi rasmlar uchun nom tavsiya qiladi, deb faraz qilaylik.
Muammoni ML Vazifasi Sifatida Shakllantirish
Tizimning kirish va chiqishini aniqlash
Image captioning tizimiga kirish — bu rasm. Ushbu rasm model tomonidan qayta ishlanib, tavsiflovchi caption yaratiladi. Chiqish, demak, rasmning mazmunini aniq tavsiflovchi matndir.
Mos ML yondashuvini tanlash
Image captioning muammosi o'ziga xos qiyinchilikni keltirib chiqaradi: ML modeli kirish rasmini qayta ishlash uchun vizual tushunchaga, caption yaratish uchun til tushunchasiga va vizual hamda matnli modalliklar o'rtasidagi tafovutni bartaraf etish qobiliyatiga ega bo'lishi kerak. Bu esa multi-modal tizimni ishlab chiqishni talab qiladi.
Multi-modal tizimlarni qurish uchun umumiy yondashuv — encoder-decoder freymvorkidan foydalanish. Til tarjimasiga o'xshab — encoder-decoder arxitekturasidan foydalanganimizdek — bu kontekstda rasmni yangi «til» sifatida ko'rib chiqamiz. Xususan, har biri bitta modallikni boshqaradigan ikkita asosiy komponentdan foydalanamiz:
- Image encoder
- Text decoder
Image encoder
Image encoder rasmning vizual tarkibini tushunish va rasmni pastroq o'lchamli reprezentatsiyaga kodlash uchun javobgardir.
Text decoder
Text decoder image encoderdan olingan kodlangan vizual ma'lumotdan foydalanib, tavsiflovchi caption yaratadi.
Ushbu komponentlarning arxitekturasini model ishlab chiqish bo'limida batafsil ko'rib chiqamiz. Shuni ta'kidlash kerakki, image captioning muammosini hal qilishning turli usullari mavjud. Biz bu yerda encoder-decoder freymvorkiga e'tibor qaratsak-da, BLIP-2 [1], BLIP-3 [2] va InternVL [3] kabi muqobil modellar captionlar yaratish uchun turli texnikalar va arxitekturalarni taklif etadi. Ushbu boshqa usullar bilan qiziqsangiz, image captioning sohasini kengroq tushunish uchun [1] [2] [3] manbalarga murojaat qilishingiz mumkin.
Ma'lumotlarni Tayyorlash
Ushbu bo'limda image captioning tizimimizni o'qitish uchun datasetni tayyorlaymiz.
Dataset 400 million rasm va caption juftliklaridan iborat. Biroq barcha rasmlar yoki captionlar o'qitish uchun mos emas. Captionlar va rasmlar uchun ma'lumotlarni tayyorlashni alohida ko'rib chiqaylik.
Captionlarni tayyorlash
Xom captionlar ko'pincha shovqinli bo'ladi va ML modeli uchun mos formatda bo'lmaydi. Caption tayyorlash davomida biz noto'g'ri captionlarni o'chirib tashlaymiz va qolganlarini izchil hamda tokenize qilingan holda ta'minlaymiz. Xususan, quyidagi qadamlarni bajaramiz:
- Ingliz tilida bo'lmagan captionli juftliklarni olib tashlash: Bu model ingliz tiliga yo'naltirilganligi sababli, captioni inglizcha bo'lmagan rasm–caption juftliklarini o'chirib tashlaymiz.
- Takroriy rasmlar yoki captionlarni olib tashlash: O'qitish ma'lumotlarining xilma-xilligi va sifatini ta'minlash uchun takroriy rasmlar va captionlarni yo'q qilamiz. Takroriy rasmlar perceptual hashing texnikasi yoki rasm o'xshashligi modellari (masalan, CLIP image encoder) yordamida aniqlanadi, takroriy captionlar esa aniq moslik yoki semantik o'xshashlik tekshiruvi (masalan, CLIP text encoder) orqali topiladi. Takrorliqni olib tashlash modelning ortiqcha ma'lumotlarga nisbatan overfitting qilishini oldini oladi va uning rasmlar va matn o'rtasidagi keng assotsiatsiyalarni o'rganishiga yordam beradi.
- Aloqasiz captionlarni olib tashlash: Rasmlar va ularning captionlari o'rtasidagi aloqadorlikni baholash uchun oldindan o'qitilgan vision–language modelidan (masalan, CLIP) foydalanamiz. Yuqori ball odatda rasm va matn o'rtasidagi kuchli semantik aloqani bildiradi. 0,25 kabi ma'lum bir chegaradan past ballga ega juftliklarni o'chirib tashlaymiz. Bu modelimizning yuqori sifatli, aloqador juftliklardan o'rganishini ta'minlaydi. CLIP matn va rasmlar o'rtasidagi aloqadorlikni qanday baholashi haqida ko'proq ma'lumot olish uchun 9-bobga murojaat qiling.
- Uzun captionlarni qisqartirish: Captionlar ko'pincha uzun va batafsil bo'ladi. Modelni bu captionlar bilan o'qitish unga o'xshash uzun captionlar yaratishga olib keladi, bu esa bizning foydalanish holatimizga mos kelmaydi. Buni bartaraf etish uchun Llama [4] kabi katta til modeli yordamida captionlarni qisqartirip, talablarimizga mos qisqa va ixcham tavsiflar yaratamiz.
- Captionlarni normallashtirish: Captionlar o'rtasidagi izchillikni ta'minlash uchun kichik harflarga o'tkazish va bo'sh joylarni kesish kabi standart matn normalizatsiyasi texnikalarini qo'llaymiz.
- Captionlarni tokenize qilish: Captionlarni ID ketma-ketligiga tokenize qilish uchun Byte-Pair Encoding (BPE) [5] kabi subword darajadagi tokenizatsiya algoritmidan foydalanamiz. Matn tokenizatsiyasi metodlari va BPE algoritmi haqida batafsil ko'rib chiqish uchun 2-bob va 3-bobga murojaat qiling.
Rasmlarni tayyorlash
Captionlarga o'xshab, barcha rasmlar ham foydali emas. O'qitishga zarar yetkazishi mumkin bo'lgan rasmlarni olib tashlaymiz va qolganlarning izchil va model o'qitish uchun mos ekanligini ta'minlaymiz. Xususan, quyidagi qadamlarni bajaramiz:
- Past rezolyutsiyali rasmlarni olib tashlash: Rasm rezolyutsiyasi 256×\times×256 dan past bo'lgan rasm–caption juftliklarini o'chirib tashlaymiz, chunki bunday past rezolyutsiyali rasmlar aniq caption yaratish uchun yetarli detal bermaydi.
- Rasmlarni normallashtirish: Piksel qiymatlarini 0 dan 1 gacha bo'lgan normallashtirilgan diapazoniga o'lchaymiz. Bu normalizatsiya o'qitish jarayonini barqarorroq qiladi.
- Past sifatli rasmlarni olib tashlash: Yuqori sifatli o'qitish ma'lumotlarini saqlash uchun xiralashish, ortiqcha yorug'lik, kam yorug'lik yoki vizual aniqlikni pasaytiradigan boshqa nuqsonlar kabi holatlarni ko'rsatadigan rasmlarni filtrlash qilamiz. LAION Aesthetics Predictor [6] kabi rasm sifatini baholash metodlari rasmlarni o'tkirlik, kontrast va yoritish kabi omillar bo'yicha baholab, sifatsiz rasmlarni aniqlash va olib tashlashga yordam beradi.
- Rasm o'lchamlarini moslashtirish: Rasmlar odatda turli hajm va nisbatlarga ega. Barcha rasmlarni bir xil o'lchamga keltiriamiz. Bu ML modellari o'qitish davomida qat'iy o'lchamli kirish talab qilganligi sababli muhimdir. Rasmlarni bir xil o'lchamga moslashtirishda ularning asl nisbatlarini saqlab qolish muhim. Buning uchun odatda ikki qadamli jarayon qo'llaniladi:
- Resizing: Avval, rasmni kichikroq o'lcham maqsadli o'lchamga mos kelguncha kattalashtirish yoki kichiklashtirish kerak. Masalan, agar maqsadli o'lcham 256×\times×256 bo'lsa va bizning asl rasmimiz 512×\times×768 bo'lsa, uni 256×\times×384 ga o'lchaymiз.
- Center-cropping: Keyin, o'lchangan rasmni maqsadli o'lchamlarga markazdan kesib olamiz. Oldingi misolimizdan davom etib, 256×\times×384 rasmini 256×\times×256 ga markazdan kesib olamiz.
Ushbu ikki qadamli metod rasmlarimiz o'z nisbatlarini saqlab, ML modelimiz uchun talab qilinadigan o'lchamga mos kelishini ta'minlaydi.
Modelni Ishlab Chiqish
Arxitektura
Biz image captioningni image encoder kirish rasmini qayta ishlaydigan va text decoder tavsiflovchi caption yaratadigan multi-modal til generatsiyasi vazifasi sifatida shakllantirdik. Ushbu bo'limda image encoder va text decoderning arxitekturasini ko'rib chiqamiz.
Image encoder
Image encoder rasmni qayta ishlash va undagi ma'lumotlarni kodlash uchun javobgardir.
Encoderning chiqishi yaratilgan captionlarning sifati va aniqligini belgilashda muhim rol o'ynaydi. Encoderning chiqishi bitta token bo'lishi mumkin — bu butun rasmni bitta feature vektori sifatida ifodalaydi — yoki tokenlar ketma-ketligi bo'lishi mumkin, bu holda har bir token rasmning muayyan hududiga yoki jihatiga mos keladi. Bu ikki yondashuv o'rtasidagi tanlov tizimning vizual tarkibni qanchalik samarali qamrab olishi va ifodalashida muhim ahamiyatga ega; tadqiqotlar ularning kuchli va zaif tomonlarini tushunish uchun ikkala variantni ham o'rgangan.
Encoder bitta tokenni chiqarish sifatida ishlab chiqarganida, u butun rasmni bitta vektorga samarali ravishda siqib chiqaradi. Ushbu vektor rasmning global xususiyatlarini va umumiy kontekstini o'z ichiga olgan xulosa sifatida xizmat qiladi. Ushbu yondashuvning asosiy afzalligi uning soddaligida; arxitektura kamroq hisoblash murakkabligi va past resurs talablari bilan to'g'ridan-to'g'ri bo'lib qoladi. Bitta vektor rasmning umumiy mazmunini ta'kidlaydi, bu esa sahnaning umumiy mohiyatini aks ettiruvchi qisqa va yuqori darajali captionlar yaratishda ayniqsa foydali bo'lishi mumkin. Biroq bu yondashuvning sezilarli kamchiliklari ham bor. Barcha vizual ma'lumotlarni bitta vektorga siqish ko'pincha mahalliy detallar va muayyan nozikliklarning yo'qolishini anglatadi, bu esa tavsiflovchi va kontekstual jihatdan boy captionlar yaratishda muhimdir. Natijada, bitta tokenli chiqishlardan yaratilgan captionlar yanada umumiy bo'lishga moyil va batafsil ifodalashni talab qiladigan murakkab rasmlar bilan kurashishi mumkin.
Boshqa tomondan, encoderdan tokenlar ketma-ketligini olish tizimga rasmning yanada batafsil ko'rinishini qamrab olish imkonini beradi. Ketma-ketlikdagi har bir token rasmning alohida qismiga yoki patchiga mos keladi, bu esa global va mahalliy xususiyatlarni o'z ichiga olgan boyroq va to'liqroq reprezentatsiyaga olib keladi. Bu yondashuv ayniqsa Transformerlar kabi zamonaviy generativ modellarin asosi bo'lgan attention mexanizmi bilan mos keladi. Attention mexanizmi ketma-ketlik kirishlari bilan eng yaxshi ishlaydi, chunki u decoderga caption yaratish davomida rasmning turli hududlariga dinamik ravishda e'tibor qaratish imkonini beradi. Rasmning turli qismlariga tanlab e'tibor qaratish qobiliyati yanada aniq, aloqador va batafsil captionlarga olib keladi. Tokenlar ketma-ketligidan foydalanib, model nafaqat yanada tavsiflovchi, balki rasmda mavjud muayyan ob'ektlar, harakatlar va kontekstlar bilan yaxshiroq mos keladigan captionlar yarata oladi.
Image encoder arxitekturalari quyidagilarga bo'linishi mumkin:
- CNN-based
- Transformer-based
CNN-based
Convolutional Neural Network (CNN) lar an'anaviy ravishda rasm kodlash vazifalari uchun ishlatiladi. CNN lar konvolyutsion filtrlardan foydalanib rasmlardagi fazoviy ierarxiyalarni qamrab olishda ustun turadi. Ushbu filtrlar turli masshtablarda qirralar, teksturalar va ob'ektlar kabi naqshlarni aniqlaydi.
CNN-based encoderlar kirish rasmini qayta ishlaydi va feature vektorlar to'rini chiqaradi. Masalan, 7-rasmda ko'rsatilganidek, kirish rasm CNN orqali o'tib, 3 x 3 x c o'lchamdagi feature vektori hosil qiladi. Bu yerda c arxitekturaga qarab belgilangan kanal o'lchami. CNN 3 x 3 x c chiqish ishlab chiqarsa-da, text decoderdagi Transformer xususiyatlar ketma-ketligini (ya'ni 9 x c) talab qiladi. Bunga erishish uchun to'qqizta pozitsiyaning har biridan 3 x 3 to'rdagi xususiyatlarni ketma-ket formatga qayta tartiblaydigan tekislash yoki qayta shakllantirish operatsiyasidan foydalanamiz.
Transformer-based
Dastlab natural language processing uchun ishlab chiqilgan Transformer modellari yaqinda rasm kodlash uchun ham muvaffaqiyatli moslashtirilgan. Ushbu arxitekturada Transformer rasmlarni tahlil qiladi, xususiyatlarni ajratib oladi va ularni embeddinglar ketma-ketligiga kodlaydi. Xususan, Transformer-based image encoder quyidagilardan iborat:
- Patchify
- Positional encoding
- Transformer
Patchify
Transformerlar ketma-ketliklar bilan ishlashi sababli, avval rasmni ketma-ketlikka aylantirish kerak. Bu jarayon uch qadamni o'z ichiga oladi:
- Rasmni qat'iy o'lchamli patchlarga bo'lish
- Har bir patchni tekislashtirish
- Har bir patchni chiziqli proyeksiya qilish
Masalan, 256 x 256 kirish rasm 64 x 64 o'lchamdagi patchlarga bo'linadi. Bu patchlar 4096 o'lchamli vektorlarga tekislanadi va c o'lchamli embedding vektorlariga chiziqli proyeksiya qilinadi, bu yerda c kerakli embedding hajmi.
Positional encoding
Positional encoding har bir patchga joylashuv ma'lumotini tayinlab, har bir patchning asl rasmda qayerda joylashganligini ko'rsatadi. Bu Transformerlarga ketma-ketlikdagi pozitsiyalarni tushunishga yordam beradi.
Positional encoding turli usullarda amalga oshirilishi mumkin. Quyidagi variantlarni qisqacha ko'rib chiqaylik:
- 1D va 2D positional encoding
- O'rganiladigan va qat'iy positional encoding
D va 2D positional encoding
1D positional encoding butun sonni (ketma-ketlikdagi pozitsiya) c o'lchamli vektorga aylantiradigan funksiyadan foydalanadi, bu yerda c odatda Transformerning yashirin o'lchami. Bu matn ketma-ketliklarida keng qo'llaniladi, har bir token o'z o'rniga asosan pozitsion vektor oladi. Rasmlarga qo'llanganda, 1D positional encoding tekislangan ketma-ketlikdagi har bir patchning pozitsiyasini kodlaydi, bu esa rasmlardagi ikki o'lchamli fazoviy munosabatlarni to'liq aks ettirmasligi mumkin.
2D positional encoding esa rasm to'ridagi qator va ustun pozitsiyalarini ifodalovchi ikkita butun sonni c o'lchamli vektorga aylantiradi. Bu kodlash metodi fazoviy tuzilmani saqlash jihatidan rasmlar uchun yanada mos keladi.
O'rganiladigan va qat'iy positional encoding
O'rganiladigan positional encodingda model o'qitish davomida positional encodinglarni o'rganadi. Neyron tarmoq pozitsiyalarni (1D yoki 2D) c o'lchamli vektorga aylantiradi. Qat'iy yondashuvda positional encodinglar sinus–kosinus kabi qat'iy funksiya bilan aniqlanadi. Batafsil ma'lumot uchun 2-bobga murojaat qiling.
1D va 2D hamda o'rganiladigan va qat'iy positional encoding o'rtasida eng yaxshi yechim ko'pincha mavjud emas. Vision Transformer (ViT) [7] o'rganiladigan 1D positional encodingdan foydalansa-da, amalda biz muayyan vazifa uchun qaysi kombinatsiya eng yaxshi ishlashini aniqlash uchun turli kombinatsiyalarni sinab ko'ramiz.
Image encoder uchun qaysi arxitektura mos keladi?
CNN lar rasmlardagi mahalliy naqshlarni qamrab olishda samarali, lekin rasmning uzoq hududlari o'rtasidagi uzoq muddatli bog'liqliklarni qo'lga kiritishda qiynaladi. Aksincha, Transformerlar self-attention mexanizmi yordamida rasmdagi mahalliy va global munosabatlarni ham qamrab oladi. Bu Transformerlarga murakkab bog'liqliklarni modellashtirish imkonini beradi, bu esa ularni batafsil, kontekstga bog'liq rasm tushunishni talab qiladigan vazifalar, masalan, tavsiflovchi captionlar yaratish uchun ideal qiladi. Shu sabablarga ko'ra, biz ViT [7] dan kelib chiqib, image encoder sifatida Transformer-based arxitekturani tanlaymiz.
Text decoder
Text decoder captionni yaratish uchun javobgardir. Oldingi boblarda ko'rganimizdek, decoder-only Transformer matn yaratish uchun standart tanlovdir. Decoder-only Transformerga kirish — kirish rasmiga mos keladigan vektorlar ketma-ketligi. Uning chiqishi bir vaqtda bitta token generatsiya qilinib yaratilgan caption.
O'qitish
Image captioning modeli uchun o'qitish yondashuvi oldingi boblarda muhokama qilingan strategiyalarga o'xshaydi. Biz ikki bosqichli o'qitish strategiyasiga amal qilamiz:
- Nazorat etilmagan oldindan o'qitish (unsupervised pretraining)
- Nazorat etilgan nozik sozlash (supervised finetuning)
. Nazorat etilmagan oldindan o'qitish
Ushbu bosqichda text decoder — decoder-only Transformer bo'lgan — umumiy ma'lumotlar bo'yicha o'qitiladi. Ushbu bosqichning maqsadi til tuzilishini keng tushunishga ega va izchil matn yaratishga qodir asosiy modelni ishlab chiqishdir. Ushbu bilim modelning keyinroq caption yaratish kabi yanada muayyan vazifada finetuning qilinganda yaxshi ishlashi uchun muhimdir.
Oldindan o'qitish bosqichi hisoblash jihatidan qimmat. Ushbu bosqichni chetlab o'tish va shu tariqa hisoblash xarajatlarini sezilarli darajada kamaytirish uchun mavjud oldindan o'qitilgan modellardan foydalanish odatiy amaliyotdir. Ushbu bobda GPT-2 [8] yoki Llama [4] kabi oldindan o'qitilgan decoder-only Transformerdan foydalanamiz.
Xuddi shunday, image encoder ham oldindan o'qitilgan modellardan olinishi mumkin. Image encoderni noldan o'qitish o'rniga CLIP [9] yoki ViT [7] kabi kuchli oldindan o'qitilgan vision modellaridan foydalanishimiz mumkin.
. Nazorat etilgan nozik sozlash
Ushbu bosqichda biz image encoder va text decoderni 400 million rasm–caption juftliklari bo'yicha o'qitamiz. Image encoder rasm ma'lumotlarini samarali kodlash qobiliyatini yaxshilaydi, text decoder esa rasm embeddinglar ketma-ketligini tushunishni va tavsiflovchi caption yaratishni o'rganadi.
ML maqsadi va loss funksiyasi
Text decoder captionni bir vaqtda bitta token yaratadi. Oldingi boblarga mos ravishda, biz ML maqsadimiz sifatida keyingi tokenni bashorat qilishdan foydalanamiz va o'qitish jarayonini yo'naltirish uchun cross-entropy loss [10] ni qo'llaymiz.
Sampling
Sampling davomida caption tokenlari birer-birer generatsiya qilinadi.
Stokastik sampling metodlari ijodiy captionlar yarata olsa-da, beam search bashorat qilish mumkinligini ta'minlaydi. Biz image captioning tizimimiz uchun beam searchdan quyidagi sabablarga ko'ra foydalanamiz:
- Sifat: Beam search odatda yuqori sifatli captionlar yaratadi, bu esa rasm tarkibini aniq tasvirlash uchun muhimdir.
- Izchillik: Beam searchning deterministik tabiati modelning bir xil rasm uchun har doim bir xil captionni ishlab chiqarishini ta'minlaydi. Bu izchillik image captioning uchun juda muhimdir.
- Uyg'unlik: Beam search odatda uyg'un captionlar ishlab chiqaradi, bu image captioning uchun muhim. Bu «Bir kishi uyni yurmoqda» yoki «It kishini o'qimoqda» kabi to'satdan mavzu o'zgarishlari yoki qarama-qarshiliklar yuzaga kelishining oldini oladi.
Baholash
Offline baholash metrikалари
Offline baholash davomida biz o'qitilgan modelning validation datasetdagi ishlashini baholaymiz. Bu yaratilgan captionlarni referans (ya'ni to'g'ri) captionlar bilan taqqoslab, ularning o'xshashligini o'lchash orqali amalga oshiriladi.
Umumiy metrikalarni ko'rib chiqishdan oldin, validation ma'lumotlarini ko'rib chiqaylik. Validation ma'lumotlari model tomonidan o'qitish davomida ko'rilmagan misollarni o'z ichiga oladi. Har bir misol rasm va referans captionlar to'plamini o'z ichiga oladi. Bu captionlar odatda bir nechta inson anotatorlari har bir rasmni tavsiflatish orqali to'planadi.
Image captioning tizimlarida har bir rasm uchun bir nechta referans captionlar bo'lishi odatiy holdir. Bu quyidagi sabablarga ko'ra o'qitish va baholash uchun foydalidir:
- Mustahkam o'qitish: Turli odamlar bir xil rasmni turli yo'llar bilan tasvirlaydi. Bir nechta referans model rasmni tasvirlashning turli usullarini o'rganishiga imkon beradi. Bu rasmlarni yanada aniq tasvirlashga qodir yanada mustahkam modelga olib keladi.
- Keng qamrovli baholash: Bir nechta captionlar model ishlashini yanada to'liqroq baholashni ta'minlaydi. Yaratilgan captionni bir nechta to'g'ri referans captionlar bilan taqqoslash adolatliroq baholashga olib keladi.
Quyidagi metrikalar image captioning modellarini offline baholashda keng qo'llaniladi:
- BLEU
- ROUGE
- METEOR
- CIDEr
Ro'yxatdagi birinchi uchta metrika 3-bobda keng ko'rib chiqilgan. Ushbu bobda biz image captioning modellarini baholash uchun maxsus ishlab chiqilgan CIDEr metrikasiga e'tibor qaratamiz.
CIDEr
CIDEr [11] image captioning modellarini baholash uchun mashhur metrikadir. U yaratilgan captionning referans captionlar to'plamiga o'xshashligini baholash uchun konsensusdan foydalanadi. CIDEr faqat bitta emas, bir nechta referans captionlarga o'xshash captionlarga yuqori ballar beradi. Bitta misol uchun CIDEr uch bosqichda hisoblanadi:
- Captionlarni Term Frequency–Inverse Document Frequency (TF-IDF) yordamida ifodalash
- O'xshashliklarni hisoblash
- O'xshashlik balllarini yig'ish
. Captionlarni TF-IDF yordamida ifodalash
Birinchi bosqichda biz yaratilgan captionni va har bir referans captionni TF-IDF yordamida raqamli reprezentatsiyalarga aylantiramiz. TF-IDF so'zning hujjatdagi qanchalik tez-tez paydo bo'lishini va butun korpus bo'yicha qanchalik keng tarqalgan yoki kamyob ekanligini hisobga olgan holda uning hujjat uchun ahamiyatini baholaydi. Ushbu ahamiyat ballari gapni raqamli ifodalash uchun ishlatiladi. TF-IDF haqida ko'proq ma'lumot olish uchun [12][13] manbalarga murojaat qiling.
. O'xshashlikni hisoblash
Keyin, yaratilgan caption va har bir referans caption o'rtasidagi o'xshashlikni hisoblaymiz. Buni ularning TF-IDF reprezentatsiyalari o'rtasidagi cosine similarityni hisoblash orqali amalga oshiramiz.
Yuqori cosine similarity balli (ya'ni 1 ga yaqin ball) kattaroq o'xshashlikni bildiradi, past qiymat (0 ga yaqin) esa kamroq o'xshashlikni bildiradi.
. O'xshashlik ballarini yig'ish
Yaratilgan caption va referans captionlarning har biri o'rtasidagi cosine similarity ballarini olganimizdan so'ng, ushbu ballarning o'rtachasini olamiz. Ushbu o'rtacha ball yaratilgan caption va referans captionlar o'rtasidagi umumiy o'xshashlikni aks ettiradi.
Yakuniy CIDEr balli validation datasetidagi barcha yaratilgan captionlar uchun o'xshashlik ballarini o'rtachalash orqali hisoblanadi. Bu modelning umumiy ishlashini baholash uchun yagona metrika beradi.
CIDEr metrikasining ba'zi afzallik va kamchiliklarini ko'rib chiqaylik.
Afzalliklari:
- Konsensusga asoslangan: CIDEr bir nechta referans captionlarga o'xshash captionlarni mukofotlab, konsensusni ta'kidlaydi. Bu model ishlashining yanada ishonchli baholanishiga olib keladi.
- Muhim so'zlarga sezgir: TF-IDF o'z reprezentatsiyasida noyob so'zlarga ko'proq og'irlik beradi. Bu CIDEr ballining so'zlarning ahamiyatini aks ettirishini va ushbu so'zlardan foydalanadigan captionlarni mukofotlashini ta'minlaydi.
- Caption variatsiyalariga chidamli: CIDEr bir nechta referans captionlar asosida hisoblanishi sababli turli generatsiya variatsiyalariga chidamlidir.
Kamchiliklari:
- Hisoblash jihatidan murakkab: Katta datasetsida TF-IDF reprezentatsiyalarini hisoblash hisoblash jihatidan qimmat bo'lishi mumkin.
- Referans captionlar sifatiga sezgir: Referans captionlarning sifati va xilma-xilligi CIDEr balliga ta'sir qiladi. Sifatsiz referanslar noto'g'ri baholashlarga olib kelishi mumkin.
- Yangi, ammo aniq captionlarni jazolaydi: CIDEr referans to'plamida mavjud bo'lmagan, lekin hali ham aniq bo'lgan ijodiy yoki yangi iboralarni jazolashi mumkin.
- Semantik tushunish yetishmasligi: CIDEr ikki gap o'rtasidagi o'xshashlikni o'lchash uchun TF-IDFga tayanadi. Bu captionlar matniy jihatdan o'xshash, lekin semantik jihatdan farqli bo'lganda semantik o'xshashlikni har doim ham qamrab olmasligi mumkin. Masalan, «Qahva stolning ustida» va «Stol qahvaning ustida» iboralari o'xshash so'zlari sababli o'xshash TF-IDF reprezentatsiyalariga ega bo'lishi mumkin, lekin ular semantik jihatdan o'xshash emas.
Online baholash metrikалари
Online baholash metrikалари ML tizimlarining ishlashini baholash uchun muhim. Biroq ular image captioning tizimlarida ikki asosiy sabab tufayli ko'pincha birlamchi e'tibor markaziga bo'lmaydi. Birinchidan, image captioning tizimlari odatda kattaroq tizimning bir qismi bo'lib, foydalanuvchi o'zaro ta'sir ma'lumotlarini to'plashni qiyinlashtiradi. Ikkinchidan, foydalanuvchilardan fikr-mulohaza to'plash qiyin. Foydalanuvchi qoniqishini osongina o'lchay oladigan vazifalarga qarama-qarshi ravishda, rasm caption sifatini baholash sub'ektiv mulohazani talab qiladi, bu esa ta'rifi bo'yicha foydalanuvchilar o'rtasida farq qiladi. Masalan, bitta foydalanuvchi uchun qabul qilinishi mumkin bo'lgan caption boshqa foydalanuvchi uchun mos kelmasligi mumkin, bu esa ularning rasmni shaxsiy talqiniga bog'liq.
Xulosa qilib aytganda, standart offline metrikalar image captioning tizimimizni baholashning birlamchi usuli bo'lib qoladi. Image captioning to'g'ridan-to'g'ri foydalanuvchi tajribasiga ta'sir qiladigan kam sonli foydalanish holatlari uchun, vovlekechnost metrikasi va foydalanuvchi fikr-mulohazasi tizim ishlashi haqida qimmatli tushunchalar berishi mumkin.
Umumiy ML Tizimi Dizayni
Image captioning tizimini qurish faqat modelni o'qitishdan iborat emas. Bu birgalikda ishlaydigan turli komponentlarni talab qiladi. Ushbu bo'limda biz image captioning tizimini qurish uchun zarur bo'lgan quyidagi asosiy komponentlarni muhokama qilamiz:
- Rasmlarni oldindan qayta ishlash (image preprocessing)
- Caption generator
- Keyingi qayta ishlash (post-processing)
Har bir komponentni va uning rolini qisqacha ko'rib chiqaylik.
Rasmlarni oldindan qayta ishlash
Rasmlarni oldindan qayta ishlash — bu kirish rasmini o'qitilgan model uchun tayyorlaydigan dastlabki qadam. Bu rasmlarni standart o'lchamga keltirish, ularni izchil formatga o'tkazish va piksel qiymatlarini standartlashtirish kabi ishlarni o'z ichiga oladi. Ushbu qadam rasmlarning model kirish sifatida kutayotgani bilan mos kelishini ta'minlaydi.
Caption generator
Caption generator — tayyorlangan rasm asosida captionlar yaratuvchi asosiy komponent. Ushbu komponent o'qitilgan model bilan o'zaro ta'sir qiladi va izchil caption yaratish uchun beam searchdan foydalanadi. Agar yaratilgan captionning kumulyativ ehtimoli oldindan belgilangan ishonch chegarasidan past bo'lsa, nom tavsiyasi o'chiriladi; aks holda caption post-processing komponentiga uzatiladi. Bu tizimning noaniq rasmlar uchun aloqasiz captionlar yaratishining oldini oladi.
Keyingi qayta ishlash
Post-processing komponenti captiondagi tarafkashlikka moyil atamalar yoki iboralarni aniqlaydi va ularni neytral muqobil bilan almashtiradi. Bu yaratilgan captionlarda adolat va inklyuzivlikni ta'minlaydi. Bundan tashqari, haqoratli so'zlar mavjudligini tekshiradi va agar topilsa, nom tavsiyasi xizmatini o'chiradi.
Boshqa Muhokama Mavzulari
Agar suhbat erta tugasa, quyidagi mavzularni ko'tarish mumkin:
- Image captionerni visual question answering (VQA) [14] kabi boshqa vazifalarni qo'llab-quvvatlash uchun kengaytirish.
- Turli sohalardagi rasmlarni caption qilish uchun modellarni moslash [15].
- Ko'p tilli datasetlar va cross-lingual transfer learning yordamida bir nechta tilda captionlar yaratish [16].
- Edge qurilmalarida caption generatsiyasi uchun optimallashtirish texnikalari [17].
- Aloqadorlikka asoslanib bir nechta mumkin bo'lgan captionlar yaratish va ularni tartibga solish [18].
- BLIP-2 va BLIP-3 metodlarining tafsilotlari va captioningni yaxshilash uchun qo'llaniladigan qo'shimcha loss funksiyalari [1] [2].
Xulosa
Adabiyotlar
[1] BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. https://arxiv.org/abs/2301.12597. [2] xGen-MM (BLIP-3): A Family of Open Large Multimodal Models. https://www.arxiv.org/abs/2408.08872. [3] InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks. https://arxiv.org/abs/2312.14238. [4] Meta's Llama. https://llama.meta.com/. [5] Byte-pair encoding tokenization. https://huggingface.co/learn/nlp-course/en/chapter6/5. [6] LAION-5B: An open large-scale dataset for training next generation image-text models. https://arxiv.org/abs/2210.08402. [7] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. https://arxiv.org/abs/2010.11929. [8] Language Models are Unsupervised Multitask Learners. https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf. [9] Learning Transferable Visual Models From Natural Language Supervision. https://arxiv.org/abs/2103.00020. [10] Cross-entropy. https://en.wikipedia.org/wiki/Cross-entropy. [11] CIDEr: Consensus-based Image Description Evaluation. https://arxiv.org/abs/1411.5726. [12] TF-IDF introduction. https://web.stanford.edu/class/cs276/19handouts/lecture6-tfidf-1per.pdf. [13] TF-IDF. https://en.wikipedia.org/wiki/Tf%E2%80%93idf. [14] Visual question answering introduction. https://huggingface.co/tasks/visual-question-answering. [15] Cross-Domain Image Captioning with Discriminative Finetuning. https://arxiv.org/abs/2304.01662. [16] Crossmodal-3600 — Multilingual Reference Captions for Geographically Diverse Images. https://research.google/blog/crossmodal-3600-multilingual-reference-captions-for-geographically-diverse-images/. [17] Efficient Image Captioning for Edge Devices. https://arxiv.org/abs/2212.08985. [18] Ensemble model using an image captioning and ranking example. https://cloud.google.com/dataflow/docs/notebooks/run_inference_multi_model.
Realistik Yuz Generatsiyasi
Kirish
Generativ AI ning asosiy ilovalaridan biri — realistik yuz tasvirlarini yaratishdir. Bu ko'ngilochar, marketing va virtual haqiqat sohasida foydali bo'lishi mumkin. Ushbu bobda yuz generatsiyasi texnologiyalarini o'rganamiz.
Talablarni Aniqlashtirish
Nomzod va suhbatdosh o'rtasidagi odatiy muloqot:
Nomzod: Yuz generatsiyasi tizimining asosiy maqsadi nima? Suhbatdosh: Dastlab ko'ngilochar va kontent yaratishga yo'naltirilgan, lekin kelajakda ma'lumot to'plash uchun ham foydalanishni ko'rib chiqamiz.
Nomzod: Faqat yuzmiga yoki butun tanani ham generatsiya qilish kerakmi? Suhbatdosh: Faqat yuzlarga e'tibor qarataylik.
Nomzod: Generatsiya qilingan yuzlar turli etnik guruhlar, yoshlar va jinslarni aks ettirishim kerakmi? Suhbatdosh: Ha. Bu inklyuzivlikni ta'minlash va noxolisliklarni oldini olish uchun juda muhim.
Nomzod: Tizim yuz atributlarini boshqarishga imkon berishim kerakmi? Masalan, identifikatsiyani saqlab qolgan holda generatsiya qilingan tasvirning yuz ifodasini tahrirlash? Suhbatdosh: Yaxshi savol. Atribut boshqaruvisiz boshlaylik. Vaqt bo'lsa, atribut boshqaruvini ham muhokama qilishimiz mumkin.
Nomzod: O'quv ma'lumotlarini qanday olamiz? O'quv ma'lumotlarining hajmi qancha? Suhbatdosh: Barcha ma'lumotlar maxfiylik qoidalariga mos kelishini ta'minlash uchun tegishli litsenziyalarga ega ochiq datasetlardan foydalanamiz. Datasetda turli xil yuzlarning 70 000 ta tasvirlari mavjud.
Nomzod: Kerakli rasm o'lchamlari qanday? Suhbatdosh: 1024x1024 ga yo'nalaylik.
Nomzod: Yuz generatsiyasi qancha vaqt olishi kerak? Suhbatdosh: Tizim yuzlarni deyarli real vaqtda — bir soniyadan kamroq vaqt ichida generatsiya qilishi kerak.
Muammoni ML Vazifasi Sifatida Shakllantirish
Tizimning kirish va chiqishini aniqlash
Yuz generatsiyasi tizimida foydalanuvchilar odatda aniq kirish ma'lumotlari bermaydi; ular shunchaki yangi yuz generatsiyasini so'raydi. ML modellari boshlash uchun raqamli kirishlarga muhtoj bo'lganligi sababli, ko'pchilik tasvir generatsiyasi modellari tasodifiy shovqin vektori bilan boshlanadi. Ushbu shovqin boshlang'ich kirish sifatida xizmat qiladi va model uni realistik tasvirga aylantiradi. Agar tizim atribut boshqaruvini qo'llab-quvvatlasa, foydalanuvchilar generatsiyani yo'naltirish uchun kerakli atributlarni ham kiritishi mumkin.
Tasodifiy shovqin kirishiga javoban generatsiya qilingan chiqish — bu inson yuzining realistik tasviridir. Ushbu chiqish, agar belgilangan bo'lsa, yosh, jins va soch turmagi kabi kerakli atributlarni ham aks ettirishi kerak.
Mos ML yondashuvini tanlash
Ushbu bo'limda biz tasvir generatsiyasi uchun keng tarqalgan ML yondashuvlarini ko'rib chiqamiz. Har bir yondashuvning kuchli va zaif tomonlarini muhokama qilib, o'z holatimiz uchun eng mos variantni tanlaymiz.
Tasvir yaratishning turli yondashuvlari mavjud bo'lsa-da, biz sanoatda eng keng qo'llaniladiganlariga e'tibor qaratamiz. Tasvir generatsiyasining to'rtta asosiy yondashuvi mavjud:
- Variatsion avtokoder (VAE)
- Generativ raqobatdosh tarmoq (GAN)
- Avtoregressiv model
- Diffuziya modeli
Variatsion avtokoder
Variatsion avtokoder (VAE) — ma'lumotlar taqsimotini o'rganish uchun mo'ljallangan generativ model arxitekturasi. Bu VAE ga o'rganilgan taqsimotdan namunalar olish orqali yangi ma'lumot nuqtalarini yaratish imkonini beradi.
VAE ikki asosiy komponentdan iborat:
- Enkoder
- Dekoder
Enkoder: Enkoder — kirish tasvirini latent fazo deb ataladigan pastki o'lchamli fazoga aylantiruvchi neyron tarmoq. Enkoderning chiqishi — kirish tasvirining kodlangan vakili bo'lgan latent vektor.
Dekoder: Dekoder — kodlangan vakillikni tasvirga aylantiruvchi boshqa neyron tarmoq. Dekoderning chiqishi asl kirish tasviri bilan bir xil o'lchamdagi tasvirdir.
O'qitish davomida VAE kirishni latent fazoga kodlaydi va keyin ushbu kodlangan vakillikdan asl kirishni qayta tiklaydi. O'qitishdan so'ng, VAE o'rganilgan ko'p o'zgaruvchili Gauss taqsimotidan nuqtalar namunasini olib, ushbu nuqtalarni tasvir shakliga aylantirish uchun dekoderni qo'llash orqali yangi tasvirlar yaratishi mumkin.
Qayta parametrlash tryki orqali (batafsil ma'lumot uchun [2] ga qarang), VAElar latent vektorni ko'p o'zgaruvchili Gauss taqsimotidan namuna olingan deb modellashtiradi. Latent fazoni modellashtirish VAE ga tasvir morfing va kirish ma'lumotlarining variatsiyalarini yaratish kabi vazifalar uchun foydali bo'lgan silliq interpolatsiya qilish mumkin bo'lgan mazmunli vakilliklarni o'rganishga yordam beradi.
VAElarning bir qancha kuchli va zaif tomonlari mavjud.
Afzalliklari:
- Oddiy arxitektura: Enkoder va dekoder — amalga oshirish oson bo'lgan neyron tarmoq arxitekturalari.
- Tez generatsiya: Boshqa yondashuvlarga nisbatan VAElar tez tasvir yaratishni ta'minlaydi. Jarayon latent fazodagi tasodifiy shovqindan namuna olish va dekoder yordamida uni tasvirga aylantirishni o'z ichiga oladi.
- Barqaror o'qitish: VAE ni o'qitish odatda oson va barqaror.
- Siqish qobiliyati: Tasvir yaratishdan tashqari, VAElar tasvirlarni pastki o'lchamli vakilliклarga siqishda kuchli vositadir.
Kamchiliklari:
- Kamroq realistik tasvirlar: VAElar yuqori chastotali tafsilotlarni ushlashda qiynaladi. Bu boshqa ba'zi yondashuvlar tomonidan yaratilganlarga nisbatan kamroq realistik tasvirlarga olib keladi.
- Loyqalik: VAElarning muhim cheklovi — ular o'tkir tafsilotlarsiz loyqa tasvirlar ishlab chiqarish tendentsiyasi.
- Cheklangan yangilik: VAElar odatda o'z o'quv ma'lumotlaridan sezilarli darajada farq qiladigan tasvirlar yaratishda qiynaladi. Bu ularning yangi chiqishlar ishlab chiqarish qobiliyatini cheklaydi.
- Generatsiyada cheklangan boshqaruv: VAElar matn tavsifi yoki kerakli tasvir uchun atribut boshqaruvlari kabi qo'shimcha boshqaruv kirishlarini qo'llab-quvvatlash uchun mo'ljallanmagan.
Xulosa qilib aytganda, VAElar yuqori sifatli, batafsil tasvirlar yaratish uchun eng yaxshi tanlov emas. Biroq, ularning kuchli tomoni — tasvirlarni ixcham vakilliклarga samarali kodlashda. 11-bobda VAElarni ko'rib chiqamiz va samarali video generatsiyasi tizimini yaratish uchun ularning siqish qobiliyatidan foydalanamiz.
Generativ raqobatdosh tarmoq
Generativ raqobatdosh tarmoq (GAN) [3] ikki tarmoqdan iborat:
- Generator: Tasodifiy shovqinni tasvirga aylantiruvchi neyron tarmoq.
- Diskriminator: Berilgan tasvirning haqiqiy yoki sun'iy yaratilganligini aniqlovchi boshqa neyron tarmoq.
O'qitish davomida ushbu ikki tarmoq uzluksiz o'yinda qatnashadi: generator tobora realistik tasvirlar yaratishni o'rganadi, diskriminator esa haqiqiy va generatsiya qilinganlarni ajratishda yaxshilanadi. Agar generatsiya qilingan tasvir "generatsiya qilingan" deb to'g'ri tasniflansa, generator realistik tasvir yaratmaganligi uchun jazo oladi. Bu raqobatdosh jarayon generator diskriminator haqiqiy tasvirlardan farqlay olmaydigan tasvirlar yaratgunicha davom etadi.
Afzalliklari:
- Yuqori sifatli generatsiya: GANlar yuqori sifatli tasvirlar yaratish qobiliyati bilan mashhur.
- Tez generatsiya: GANlar odatda VAElardan sekinroq bo'lsa-da, generator baribir bitta oldinga o'tishda tasvir yarata oladi.
- Atribut boshqaruvi: GAN arxitekturasi yosh yoki ifoda kabi aniq atributlarni boshqarish uchun o'zgartirilishi mumkin. Masalan, foydalanuvchi baxtli va keksa yuz tasvirini so'rashi mumkin.
Kamchiliklari:
- O'qitishning beqarorligi: GANlarni o'qitish murakkab. Keng tarqalgan o'qitish muammolari — generator cheklangan xilma-xillikda chiqishlar yaratadigan rejim qulashi [4] va GAN modeli o'qitish davomida barqarorlasha olmaydigan konvergentsiya qilmaslik [5].
- Cheklangan boshqaruv: GANlar atribut boshqaruviga imkon bersa-da, bundan tashqariga chiqish, masalan, tasvir yaratish uchun matn tavsifidan foydalanish [6] qiyin.
- Cheklangan yangilik: GANlar muayyan sohadagi tasvirlarning variatsiyalarini yaratishda yaxshi bo'lsa-da, ular odatda o'z o'quv ma'lumotlaridan sezilarli darajada farq qiladigan yangi tasvirlar yaratishda qiynaladi.
Xulosa qilib aytganda, GANlarni o'qitish qiyin va ular generatsiya qilingan tasvirlar ustidan cheklangan boshqaruvni ta'minlaydi. Biroq, ular batafsil tasvirlar yarata oladi va yuz atributlarini boshqaruvni qo'llab-quvvatlaydi, bu ularni yuz generatsiyasi va tasvir tahrirlash kabi ilovalar uchun mos qiladi.
Avtoregressiv model
Avtoregressiv modellashtrishda tasvir generatsiyasi ketma-ket generatsiya vazifasi sifatida shakllantiriladi, bunda tasvirning har bir qismi ketma-ket yaratiladi. Bu ketma-ket generatsiya Transformer arxitekturasidan foydalanish imkonini beradi, bu esa uning uzoq masofali bog'liqliklarni ushlashning kuchli qobiliyatidan foydalanishga imkon beradi.
Afzalliklari:
- Yuqori detal va realizm: Avtoregressiv modellar yuqori darajada detal va o'tkir tasvirlar yaratadi.
- Barqaror o'qitish: GANlarga nisbatan avtoregressiv modellarni o'qitish odatda barqarorroq.
- Generatsiya ustidan boshqaruv: Kerakli tasvir mazmunini tasvirlovchi matn so'rovi kabi qo'shimcha kirishlar yordamida tasvir generatsiyasini boshqarish mumkin. Bu moslashuvchanlik Transformer arxitekturasidan kelib chiqadi, u kirish ketma-ketligining bir qismi sifatida istalgan sondagi kirishlarni qo'llab-quvvatlashi mumkin.
- Ko'p modal konditsiyalashni qo'llab-quvvatlash: Avtoregressiv modellar turli modalliklar bo'yicha konditsiyalashni osongina qo'llab-quvvatlaydi. Masalan, agar kirish sifatida bayram audiosini bergan bo'lsak, generatsiya qilingan tasvir audioga mos keladi. Bu moslashuvchanlik Transformer arxitekturasidan kelib chiqadi, u raqamli vektorlar ketma-ketligi sifatida taqdim etilgan holda turli modalliklarni kirish sifatida qo'llab-quvvatlashi mumkin.
- Yangilik: Avtoregressiv modellar yangi va murakkab tasvirlar yaratishga qodir. Masalan, ular o'quv ma'lumotlarida bunday misollarni ko'rmagan bo'lsa ham, "Marsda stulda avokado" tasvirini yaratishi mumkin.
Kamchiliklari:
- Sekin generatsiya: Avtoregressiv modellar tasvirni ketma-ket, bir vaqtda bitta token yaratadi. Bu ketma-ket generatsiya ularni VAE yoki GANlarga nisbatan sekinroq qiladi.
- Resurs talab qilish: Bu modellar odatda milliardlab parametrlar bilan juda katta. Bunday katta modellarni o'qitish katta hisoblash resurslarini talab qiladi, bu esa xarajatlarni oshiradi.
- Cheklangan tasvir manipulyatsiyasi: VAE va GANlardan farqli o'laroq, avtoregressiv modellar osongina o'rganilishi yoki manipulyatsiya qilinishi mumkin bo'lgan tuzilgan latent fazoga ega emas. Bu yuzlardagi atribut boshqaruvi kabi tasvir manipulyatsiyalarining muayyan turlarini cheklaydi.
Xulosa qilib aytganda, avtoregressiv modellar ketma-ket tabiatiga ko'ra generatsiyada sekin bo'lsa-da, ular yuqori darajada batafsil va yangi tasvirlar yarata oladi. OpenAI ning DALL-E [7] va Google ning Muse [8] kabi ko'plab mashhur tasvir generatsiyasi modellari avtoregressiv modellashtrishga asoslangan. 8-bob ushbu yondashuvni batafsil ko'rib chiqadi.
Diffuziya modeli
Diffuziya modellari tasvir generatsiyasi uchun yana bir mashhur yondashuv bo'lib, u ajoyib qobiliyatlarni namoyish etdi. Diffuziya modellari tasvir generatsiyasini iterativ jarayon sifatida shakllantiradi. O'qitish davomida tasvirlarga asta-sekin shovqin qo'shiladi va neyron tarmoq ushbu shovqinni bashorat qilish uchun o'qitiladi. Xulosa chiqarish davomida tasvirlar yaratilganda jarayon tasodifiy shovqindan boshlanadi. Keyin o'qitilgan neyron tarmoq tasvirni iterativ ravishda shovqinsizlashtirish uchun ishlatiladi va shovqinni mazmunli tasvirga aylantiradi. Bu o'zgarish belgilangan qadamlar soni davomida sodir bo'ladi, model har bir qadamda tasvirga tafsilotlar qo'shadi.
Afzalliklari:
- Yuqori detal va realizm: Diffuziya modellari istisno darajadagi sifat va realizmdagi tasvirlar yaratishi mumkin.
- Barqaror o'qitish: GANlarga nisbatan diffuziya modellarini o'qitish odatda barqaror.
- Generatsiya ustidan boshqaruv: Avtoregressiv modellarga o'xshash, diffuziya modellari kerakli tasvirni tasviflovchi matn kabi turli kirishlar yordamida boshqarilishi mumkin.
- Yangilik va ijodkorlik: Diffuziya modellari yangi va tasavvuriy tasvirlar yaratishi mumkin.
- Shovqinli tasvirlar uchun bardoshlilik: Diffuziya modellari shovqinsizlashtirish jarayonining xususiyati tufayli tasvirlardan shovqinni olib tashlashda samarali. Bu tasvir shovqinsizlashtirish kabi muayyan ilovalarda foydali bo'lishi mumkin.
Kamchiliklari:
- Sekin generatsiya: Diffuziya modellari tasvirlarni bir nechta shovqinsizlashtirish qadamlarida yaratadi. Bu iterativ jarayon ularni boshqa usullarga nisbatan sekinroq qiladi.
- Resurs talab qilish: Diffuziya modellari odatda milliardlab parametrlar bilan katta. Bu ularni hisoblash jihatdan intensiv va shu sababli o'qitish uchun qimmat qiladi.
- Cheklangan tasvir manipulyatsiyasi: VAE va GANlardan farqli o'laroq, diffuziya modellari tasvirlarni manipulyatsiya qilish uchun tuzilgan latent fazoga ega emas.
Xulosa qilib aytganda, diffuziya modellari sekin bo'lsa-da, ular yuqori darajada batafsil, xilma-xil va tasavvuriy tasvirlar yaratishda ta'sirchan natijalarni ko'rsatdi. DALL·E 3 [9] kabi eng zamonaviy tasvir generatsiyasi modellarining ko'pchiligi diffuziya modellariga asoslangan. 9-bob diffuziya modellarini batafsil ko'rib chiqadi.
| Xususiyatlar | VAE | GAN | Avtoregressiv | Diffuziya |
|---|---|---|---|---|
| Sifat | Past | O'rtacha | Yuqori | Istisno |
| Tezlik | Tez | Tez | Sekin | Sekin |
| O'qitish barqarorligi | Barqaror | Beqaror | Barqaror | Barqaror |
| Generatsiya boshqaruvi | Cheklangan | Cheklangan | Moslashuvchan | O'rtacha |
| Yuz manipulyatsiyasi | Yo'q | Ha | Yo'q | Yo'q |
| Yangilik | Cheklangan | Cheklangan | Yuqori | Yuqori |
| Resurs intensivligi | O'rtacha | O'rtacha | Yuqori | Yuqori |
1-jadval: Turli tasvir generatsiyasi yondashuvlarining taqqoslanishi
Realistik yuz generatsiyasi uchun biz GANlarni asosiy yondashuv sifatida tanlaymiz. GANlar ayniqsa samarali, chunki ular tuzilgan latent fazo orqali yuz atributlarini manipulyatsiya qilishga imkon beradi, bu ushbu bobdagi ixtiyoriy talabdir.
Ma'lumotlarni Tayyorlash
Realistik yuz generatsiyasi tizimini ishlab chiqish katta tasvirlar to'plamini talab qiladi. Bu yerda inson yuzlarining 70 000 ta xilma-xil tasviri mavjud. Ushbu tasvirlarni o'qitish uchun tayyorlash maqsadida quyidagi qadamlarni qo'llaymiz:
- Past sifatli yoki past o'lchamli tasvirlarni olib tashlash: Past o'lchamli tasvirlarni olib tashlaymiz va past sifatli, loyqa tasvirlarni filtrlash uchun ML modellaridan foydalanamiz. Bu model faqat yuqori sifatli tasvirlardan o'rganishini ta'minlaydi.
- Tasvirlarni kengaytirish: O'quv ma'lumotlari hajmini sun'iy ravishda oshirish uchun burish, aylantirish yoki rang sozlash kabi ma'lumotlarni kengaytirish usullarini qo'llaymiz. Bu modelga o'qitish davomida tasvirning ko'proq variatsiyalarini ko'rishga va shunday qilib keyinchalik yaxshiroq umumlashtirishga yordam beradi.
- Tasvirlarni normallashtirish va o'lchamini o'zgartirish: Barcha tasvirlarni standart o'lchamga, masalan, 1024x1024 ga o'lchaylik. Shuningdek, tasvirlarni standart diapazon, odatda -1 dan 1 gacha normallashtirish.
- Xilma-xillikni kuchaytirish: Tasvirlarni jins, yosh va boshqa atributlar bilan belgilash uchun ML klassifikatorlardan foydalanamiz. Keyin, turli guruhlarning muvozanatli vakilligini ta'minlash uchun datasetni moslashtiramiz. Bu qadam generatsiya qilingan yuzlardagi noholisliklarni oldini olish uchun juda muhim.
Model Ishlab Chiqish
Arxitektura
GANlar ikki komponentdan iborat: generator va diskriminator. Har bir komponentning arxitekturasini qisqacha ko'rib chiqaylik.
Generator
Generator komponenti tasodifiy shovqinni kirish sifatida qabul qiladi va uni tasvirga aylantiradi. Uning arxitekturasi bir qator upsampling bloklaridan iborat bo'lib, ularning har biri kirishining fazoviy o'lchamlarini (balandlik va kenglik) oshiradi. Ushbu bloklar asta-sekin past o'lchamli shovqin vektorini kerakli o'lchamdagi 2D tasvirga aylantiradi.
Upsampling blokning uchta asosiy komponenti haqida gaplashamiz:
- Transpozitsiya konvolyutsiyasi
- Normallashtirish qatlami
- Chiziqsiz aktivatsiya
Transpozitsiya konvolyutsiyasi
Transpozitsiya konvolyutsiyasi, dekonvolyutsiya yoki upsampling konvolyutsiyasi deb ham ataladi, neyron tarmoqlarda xususiyat xaritalarining fazoviy o'lchamini oshirish uchun, ya'ni aslida oddiy konvolyutsiyaning aksini bajarish uchun ishlatiladigan amaldir. U past o'lchovli kirishlardan yuqori o'lchovli chiqishlarni qayta tiklash maqsad bo'lgan tasvir generatsiyasi, semantik segmentatsiya va super-rezolyutsiya kabi ilovalarda keng qo'llaniladi.
Filtrani kirish bo'ylab sildiruvchi standart konvolyutsiyadan farqli o'laroq, transpozitsiya konvolyutsiyasi kirish xususiyat xaritasining piksellar orasiga nollar kiritishdan boshlanadi va uni samarali ravishda kengaytiradi. Kengaytirilgan kirish keyin filtr bilan konvolyutsiya qilinadi, bunda filtrnning qadam o'lchovi¹ va to'ldirish² kerakli chiqish o'lchamiga erishish uchun sozlanadi. Masalan, 1x1x100 kirishdan boshlab, kernel o'lchami 1x1 va qadam 1 bo'lgan 1024 ta filtr bilan 4x4x1024 xususiyat xaritasini olamiz. Keyingi qadamda, kernel o'lchami 3x3 va qadam 1 bo'lgan 512 ta filtr bilan 8x8x512 xususiyat xaritasini olamiz. Bular 8-rasmda ko'rsatilgan dastlabki ikki upsampling bosqichidir.
PyTorch da bu qatlam odatda "ConvTranspose2d" bilan amalga oshiriladi. Konvolyutsiyalar va transpozitsiya konvolyutsiyalari haqida ko'proq bilish uchun [11] ga murojaat qiling.
Normallashtirish qatlami
Normallashtirish qatlami kirish ma'lumotlarini izchil taqsimotga ega bo'lishi uchun masshtablash orqali o'qitish barqarorligini yaxshilaydi.
GANlarni o'qitish beqaror, chunki bu ikki tarmoqni (generator va diskriminator) bir-biriga qarshi raqobatlashtirishni o'z ichiga oladi. Bu generator cheklangan xilma-xillik ishlab chiqaradigan rejim qulashi yoki generator va diskriminator o'qitish davomida konvergentsiya qila olmaydigan tebranishlar kabi muammolarga olib kelishi mumkin. Normallashtirish har bir qatlamdagi aktivatsiyalarni masshtablash orqali o'qitishni barqarorlashtirishga yordam beradi va shu tariqa yo'qoluvchi yoki portlovchi gradientlar xavfini kamaytiradi. Bu generator va diskriminator o'rtasidagi muvozanatli raqobat uchun muhim bo'lgan aktivatsiyalarning izchil taqsimotlarini saqlab qolishga yordam beradi. Yanada mustahkam optimallashtirish jarayoni bilan biz yuqori o'rganish koeffitsientidan foydalanishimiz, o'qitishni tezlashtirishimiz va konvergentsiya uchun kerakli vaqtni qisqartirishimiz mumkin. O'qitish qiyinchiliklari va yumshatish choralarini ushbu bobda keyinroq muhokama qilamiz.
Ma'lumotlarni normallashtirish usullarida farq qiluvchi bir nechta normallashtirish qatlamlari mavjud:
- Paket normallashtirish
- Qatlam normallashtirish
- Misol normallashtirish
- Guruh normallashtirish
Paket Normallashtirish (BN)
BN [12] har bir xususiyat uchun o'rtacha va dispersiyani hisoblash orqali paket o'lchami bo'yicha qatlam kirishlarini normallashtiradi. Normallashtirilgan ma'lumotlar keyin o'rganish mumkin bo'lgan parametrlar yordamida masshtablanadi va siljitiladi.
- Afzalliklari: BN o'rganish jarayonini barqarorlashtirishga yordam beradi va yuqori o'rganish koeffitsientlariga imkon beradi, o'qitishni tezlashtiradi. Shuningdek, regulyarizator vazifasini bajarib, ortiqcha o'rganish imkoniyatlarini kamaytiradi.
- Qo'llanilishi: CNN va GAN generatorlari kabi chuqur tarmoqlarda keng qo'llaniladi.
Qatlam Normallashtirish (LN)
LN [13] paket o'lchami bo'ylab emas, balki har bir alohida namunaning xususiyatlari bo'ylab kirishlarni normallashtiradi. Shu sababli, u har bir namunaning butun xususiyatlar vektori bo'ylab har bir xususiyat uchun o'rtacha va dispersiyani hisoblaydi.
- Afzalliklari: LN paket o'lchamlari kichik yoki o'zgaruvchan bo'lgan hollarda samarali, masalan, rekurrent neyron tarmoqlar (RNN) va Transformerlarda.
- Qo'llanilishi: Ketma-ket modellarda va namunalar bo'ylab izchil xatti-harakat muhim bo'lgan stsenariylarda tez-tez qo'llaniladi.
Misol Normallashtirish (IN)
IN [14] har bir namuna uchun alohida-alohida har bir xususiyat xaritasi bo'ylab normallashtirish orqali ishlaydi.
- Afzalliklari: IN alohida namunalarning ko'rinishi keng farq qiladigan vazifalar uchun foydali, chunki u tarmoqga uslub emas, balki mazmuniga e'tibor qaratish imkonini beradi.
- Qo'llanilishi: Uslub o'tkazish va tasvir generatsiyasi vazifalarida keng qo'llaniladi.
Guruh Normallashtirish (GN)
GN [15] xususiyatlarni guruhlarga bo'lish va har bir guruh ichida normallashtirish orqali kirishlarni normallashtiradi. U BN va LN o'rtasida muvozanat taklif qiladi.
- Afzalliklari: GN juda kichik paket o'lchamlari bor hollarda foydali, bunda BN samarali bo'lmasligi mumkin.
- Qo'llanilishi: BN kichik paket o'lchamlari tufayli muvaffaqiyatsiz bo'ladigan yoki xususiyatlar guruhlari bo'ylab qatlam xatti-harakati izchilligi kerak bo'lganda vazifalarda tez-tez qo'llaniladi.
Chiziqsiz aktivatsiya
ReLU [16] kabi chiziqsiz aktivatsiya funksiyalari modega chiziqsizlik kiritadi va unga murakkab naqshlar va vakilliklarni o'rganish imkonini beradi. Chiziqsizliksiz, tarmoq aslida chuqurligidan qat'iy nazar chiziqli transformatsiya bo'lardi va tasvirlar, nutq yoki murakkab funksiyalar kabi nozik ma'lumotlar taqsimotlarini modellashtira olmasdi.
11-rasmda ko'rsatilganidek, generatorimiz upsampling bloklaridan (ConvTranspose2D) iborat bo'lib, ularning har biridan keyin normallashtirish qatlami (BatchNorm2D) va chiziqsiz aktivatsiya (ReLU) keladi. Oxirgi blok "ReLU" o'rniga "Tanh" [17] dan foydalanadi. Bu tanlov ma'lumotlarni tayyorlashdan keyin tasvir piksellarimizning diapazoniga mos keladigan yakuniy chiqishlar -1 dan 1 gacha bo'lgan diapazonni ta'minlaydi.
Diskriminator
Diskriminatorning vazifasi haqiqiy va generatsiya qilingan tasvirlarni ajratishdir. U ikkilik klassifikator sifatida ishlaydi, tasvirni kirish sifatida qabul qiladi va tasvirning haqiqiy ekanligini ehtimolini chiqaradi.
Diskriminator klassifikatsiya boshidan keyin bir qator downsampling bloklaridan iborat. Downsampling bloklari kirish tasvirining fazoviy o'lchamlarini asta-sekin kamaytiradi va uning xususiyatlarini ajratib oladi. Keyin klassifikatsiya boshi ajratib olingan xususiyatlarni qayta ishlab kirish tasvirining haqiqiy ekanligini ehtimolini bashorat qiladi.
Downsampling bloki kirishning fazoviy o'lchamini asta-sekin kamaytirish uchun bir nechta konvolyutsiya operatsiyalaridan iborat. PyTorch da biz odatda fazoviy o'lchamlarni yarmiga kamaytirish uchun 2 qadam bilan "Conv2D" qatlamidan foydalanamiz. Generator singari, konvolyutsiya qatlamlari orasida o'qitish barqarorligi va samaradorligini oshirish uchun paket normallashtirish (BatchNorm2D) va chiziqsiz aktivatsiya funksiyasi (ReLU) qo'llaniladi.
Klassifikatsiya boshi sigmoid aktivatsiya funksiyasidan keyin bir yoki ikkita to'liq ulangan qatlamlarni o'z ichiga oladi. Sigmoid funksiyasi yakuniy chiqish 0 dan 1 gacha bo'lgan diapazonni ta'minlaydi, bu chiqishni ehtimollik sifatida talqin qilish uchun muhimdir.
Yillar davomida turli maqsadlarga xizmat qilish uchun GANlarning turli versiyalari ishlab chiqildi. Masalan, StyleGAN [18] yosh, soch rangi va yuz ifodasi kabi generatsiya qilingan yuzlarning atributlarini boshqarish uchun generator arxitekturasini o'zgartiradi. StyleGAN arxitekturasi va uning asosiy arxitektura tanlovlari haqida batafsil ma'lumot olish uchun [18] ga murojaat qiling.
O'qitish
Realistik tasvirlar ishlab chiqarish uchun biz GANni adversarial o'qitish deb ataladigan noyob jarayon yordamida o'qitamiz. Adversarial o'qitishda generator va diskriminator o'yinga o'xshash stsenariyde bir vaqtning o'zida o'qitiladi. Generator haqiqiy ko'rinadigan tasvirlar ishlab chiqarishga intiladi, diskriminator esa haqiqiy va generatsiya qilingan tasvirlarni ajratish qobiliyatini yaxshilaydi. Ushbu adversarial jarayon davomida generator tobora ishonarliroq tasvirlar ishlab chiqarishni o'rganadi. Shu bilan birga, diskriminator soxta tasvirlarni aniqlashda yaxshilanadi. Bu raqobatdosh jarayon generator diskriminator endi soxta deb aniqlay olmaydigan tasvirlar ishlab chiqargunicha davom etadi.
GANlarni o'qitishda generator va diskriminator birga yaxshilanishini ta'minlash, birining boshqasidan ustun bo'lish stsenariysidan qochish muhim. Bunday muvozanat empirik tarzda muvaffaqiyatli o'qitish uchun muhim ekanligi ko'rsatilgan. Ushbu muvozanatni saqlab qolish uchun quyidagi ikki qadam o'rtasida navbatlashish odatiy hol:
- Generatorni muzlatilgan holda saqlash va diskriminatorni bir necha iteratsiya davomida o'qitish.
- Diskriminatorni muzlatilgan holda saqlash va generatorni bir necha iteratsiya davomida o'qitish.
Keyingi, GAN modelini o'qitish uchun ML maqsadi va yo'qotish funksiyasini ko'rib chiqaylik.
ML maqsadi va yo'qotish funksiyasi
Generator va diskriminatorning o'z aniq, bir-biriga zid maqsadlari bor. Diskriminator haqiqiy va generatsiya qilingan tasvirlarni aniq ajratishga intiladi. Generator diskriminator haqiqiylardan farqlay olmaydigan tasvirlar ishlab chiqarishga intiladi. Avval har bir komponentning yo'qotish funksiyasi va ML maqsadini ko'rib chiqamiz, keyin ularni GAN uchun yagona yo'qotish funksiyasiga birlashtirамiz.
Diskriminator
Diskriminator uchun ikkilik o'zaro entropiyani yo'qotish funksiyasi sifatida qo'llaymiz, chunki u ikkilik klassifikatsiya modellarida keng qo'llaniladi.
Bu yerda:
- D(x(i))D\left(x^{(i)}\right)D(x(i)) — diskriminatorning haqiqiy tasvir uchun bashorat qilingan ehtimolliklari,
- G(z(j))G\left(z^{(j)}\right)G(z(j)) — tasodifiy shovqin berilganda generatorning chiqishi (soxta tasvir),
- mmm — haqiqiy tasvirlar soni,
- nnn — soxta tasvirlar soni.
Diskriminatorning ML maqsadi ikkilik o'zaro entropiya yo'qotish funksiyasini minimallashtirishdir.
Generator
Generator diskriminator haqiqiylardan farqlay olmaydigan realistik tasvirlar ishlab chiqarishga intiladi. Ideal holda, diskriminator generator tomonidan ishlab chiqarilgan tasvirlar uchun 1 ga yaqin ehtimolliklarni bashorat qilishi kerak. Bunga erishish uchun ML maqsadi barcha soxta tasvirlar uchun log(D(G(z(j))))\log \left(D\left(G\left(z^{(j)}\right)\right)\right)log(D(G(z(j)))) ni maksimallashtirish yoki tengma-teng, quyidagi yo'qotish funksiyasini minimallashtirish sifatida shakllantiriladi:
GAN ning minimax yo'qotishi
GAN maqolasida dastlab qo'llangan minimax yo'qotish [19] generator va diskriminatorning yo'qotishlarini yagona funksiyaga birlashtiradi:
Diskriminator yo'qotishni maksimallashtirshga intiladi, generator esa uni minimallashtirishga intiladi. Shuning uchun, umumiy ML maqsadi:
Minimax yo'qotishidan tashqari, tadqiqotchilar GANlarda o'qitish barqarorligini yaxshilash uchun boshqa yo'qotish funksiyalarini taklif qildi. Ushbu yo'qotish funksiyalari haqida ko'proq bilish uchun [20] ga murojaat qiling.
GANlarda keng tarqalgan o'qitish qiyinchiliklari
GANlarni o'qitish avtoregressiv yoki diffuziya modellari kabi boshqa generativ modellarga nisbatan qiyinroq. Bu qiyinchiliklarni muhokama qilish ML suhbatida foydalidir. Ushbu bo'limda GANlarni o'qitishning uchta asosiy qiyinchiligi muhokama qilinadi:
- Yo'qoluvchi gradientlar
- Rejim qulashi
- Konvergentsiya qilmaslik
Yo'qoluvchi gradientlar
Yo'qoluvchi gradient muammosi [21] o'qitish davomida gradientlar juda kichik bo'lib qolganda yuzaga keladi. Bu muammo asosan generatorga ta'sir qiladi. Diskriminator haqiqiy va soxta tasvirlarni ajratishda juda yaxshi bo'lib qolganda, u generator parametrlarini yangilashi uchun juda kichik gradient qiymatlarini beradi. Bu generatorning o'rganish jarayonini sekinlashtiradi yoki to'xtatadi.
Yo'qoluvchi gradient muammosini yumshatishning ikki keng tarqalgan usuli:
- O'zgartirilgan minimax yo'qotish
- Wasserstein yo'qotish
O'zgartirilgan minimax yo'qotish: Asl GAN maqolasi asl ML maqsadini minimallashtirishning o'qitishni to'xtatib qo'yishi mumkinligini ta'kidlaydi. Buning oldini olish uchun maqola generatorning maqsadini turli nuqtai nazardan shakllantirish orqali maksimallashtirish sifatida o'zgartirishni tavsiya qiladi.
Ushbu kichik o'zgarish ML maqsadini boshqacha nuqtai nazardan shakllantirish bilan ilhomlangan. Ushbu o'zgarish bilan generator soxta tasvirlarning soxta deb aniqlanish ehtimolligini minimallashtirish o'rniga, haqiqiy deb aniqlanish ehtimolligini maksimallashtirshga intiladi.
Wasserstein yo'qotish: Bu yo'qotish funksiyasi "Wasserstein GAN" yoki "WGAN" deb ataladigan o'zgartirilgan GANda qo'llaniladi. WGAN ning diskriminatori va generatori uchun ML maqsadini ko'rib chiqaylik.
- WGAN ning diskriminatori: WGAN uchun diskriminator, "kritik" deb ham tanilgan, an'anaviy GANdagidan farq qiladi. Tasvirlarni haqiqiy yoki soxta deb tasniflash o'rniga, kritik tasvirning "haqiqiyligi"ni ifodalovchi ball chiqaradi. Kritik yo'qotish haqiqiy tasvirlar va soxta tasvirlar uchun kritik chiqishlar o'rtasidagi farq sifatida aniqlanadi. Shuning uchun, kritikningML maqsadi kritik yo'qotishni maksimallashtirish.
- WGAN ning generatori: WGAN generatori uchun ML maqsadi soxta tasvirlarning haqiqiy deb aniqlanish ehtimolligini maksimallashtirish:
Rejim qulashi
Ideal holda, GAN modeli turli tasodifiy kirishlar bilan turli xil tasvir variatsiyalarini ishlab chiqarishi kerak. Rejim qulashi generator cheklangan xilma-xillikdagi tasvirlar ishlab chiqaradigan vaziyatlarga ishora qiladi. Buning nima uchun sodir bo'lishi mumkinligini ko'rib chiqaylik.
O'qitish davomida generator diskriminatорga eng ishonarliroq ko'rinadigan bitta tasvirni topib, tizimni aldashni o'rganishi mumkin. Generator ushbu eng ishonarliroq tasvirni topganidan so'ng, diskriminatorni aldash uchun xuddi shu tasvirni ishlab chiqarishda davom etishi mumkin. Shuning uchun, generator boshqa tasvirlar yaratishni hech qachon o'rgana olmaydi. GANdagi bu turdagi muvaffaqiyatsizlik "rejim qulashi" deb ataladi. Rejim qulashini yumshatishning ikki keng tarqalgan usuli:
- Wasserstein yo'qotish
- Unrolled GAN [22]
Unrolled GAN va uning rejim qulashini qanday yumshatishi haqida ko'proq bilish uchun [4] ga murojaat qiling.
Konvergentsiya qilmaslik
GANlarni o'qitish odatda qiyin va jarayon ko'pincha beqaror. Bu GANlarni o'qitishdagi keng tarqalgan muammo bo'lgan "konvergentsiya qilmaslik" muammosi tufayli. Buning nima uchun sodir bo'lishini ko'rib chiqaylik.
O'qitish davomida generator yaxshilanib borishi bilan, diskriminator ishlashi pasayadi, chunki haqiqiy va soxta tasvirlarni ajratish tobora qiyinlashadi. Generator real ma'lumotlarni mukammal taqlid qila oladigan nuqtaga yetsa, diskriminator aniqligi 50 foizga tushadi; u aslida tasodifiy taxminlar qila boshlaydi, tanga tashlashga o'xshaydi. Diskriminator ishlashidagi bu pasayish GAN konvergentsiyasiga to'sqinlik qiladi, chunki uning fikr-mulohazasi asta-sekin generator uchun kamroq va kamroq foydali bo'lib boradi. O'qitish muayyan nuqtadan o'tib davom etganda, generator keraksiz fikr-mulohaza bo'yicha o'qitila boshlaydi va uning sifati natijada qulashi mumkin.
GANlarning o'qitish barqarorligi va konvergentsiyasini yaxshilashning turli yondashuvlari mavjud:
- Normallashtirish: Paket normallashtirish kabi texnikalarni qo'llash qatlamlar bo'ylab izchil taqsimotlarni ta'minlash orqali o'qitishni barqarorlashtirishga yordam beradi.
- Turli o'rganish koeffitsientlari: Generator va diskriminator uchun turli o'rganish koeffitsientlaridan foydalanish ularning rivojlanishini muvozanatlashtirishga va o'qitishdagi beqarorlikdan qochishga yordam beradi.
- Regulyarizatsiya: Vazn pasaytirish kabi regulyarizatsiya usullarini qo'llash ortiqcha o'rganishning oldini oladi va o'qitish barqarorligini saqlab qolishga yordam beradi.
- Diskriminator kirishlariga shovqin qo'shish: Diskriminator kirishlariga shovqin kiritish uning juda erta kuchli bo'lib ketishining oldini olishi mumkin, bu generator va diskriminator o'rtasidagi raqobatni muvozanatlashtirishga yordam beradi.
Ushbu yondashuvlarning aniq tafsilotlari haqida ko'proq bilish uchun [21] va [23] ga murojaat qiling.
Namuna olish
Namuna olish — o'qitilgan GAN modelidan yangi tasvirlar yaratish jarayoni. Namuna olish usullarini muhokama qilishdan oldin, avval GANdagi latent fazo tushunchasini ko'rib chiqaylik.
O'qitish davomida generator turli shovqin vektorlarini tasvirlarga aylantirishni o'rganadi. Bu jarayon latent fazoni shakllantiradi — har bir nuqta potentsial shovqin vektorini ifodalovchi ko'p o'lchamli fazo. Ushbu latent fazo GANga mazmunli, chunki uning generatori har bir nuqtani tegishli tasviriga moslashtirishi mumkin.
Realistik yuz tasvirini yaratish uchun biz ushbu latent fazоdan latent vektor deb ataladigan nuqtani tanlaymiz. Keyin generator ushbu latent vektorni oladi va uni tasvirga aylantiradi.
O'rganilgan latent fazоdan latent vektor tanlashning ikki usuli mavjud:
- Tasodifiy namuna olish
- Qisqartirilgan namuna olish
Tasodifiy namuna olish
Tasodifiy namuna olish latent fazоdan latent vektorlarni chiqarish uchun standart Gauss taqsimotidan foydalanadi. Bu latent vektorlarning xilma-xil tanlanishini ta'minlaydi va turli tasvirlarning generatsiyasiga olib keladi.
Qisqartirilgan namuna olish
Qisqartirilgan namuna olish latent vektorlarni latent fazoning kichikroq, yuqori ehtimollikli hududiga cheklaydi. Taqsimotni qisqartirish orqali, usul tashqi qiymatlarni yaratish imkoniyatini kamaytiradi va natijada yuqori sifatli tasvirlar ishlab chiqaradi. Bu yondashuv asosiy maqsad generatsiya qilingan yuzlardagi yuqori realizimni saqlab qolish bo'lganda foydali. Qisqartirilgan namuna olishning tafsilotlari va amalga oshirish haqida qiziqsangiz, [24] ga murojaat qiling.
Xulosa qilib aytganda, tasodifiy namuna olish butun latent fazoni o'rganib xilma-xillikni ta'minlaydi, qisqartirilgan namuna olish esa realizimni oshirish uchun yuqori ehtimollikli hududga e'tibor qaratadi. Realistik yuz generatsiyasi uchun biz tasodifiy namuna olishdan foydalanamiz, chunki u xilma-xillikka olib keladi va odatda amalda yaxshi ishlaydi.
Baholash
Oflayn baholash mezonlari
Tasvir generatsiyasi tizimlarini baholash generatsiya qilingan tasvirlarning sifati va xilma-xilligini baholashni o'z ichiga oladi. Ushbu maqsad uchun bir nechta mezonlar ishlab chiqilgan, masalan, Inception score [25], Fréchet Inception masofasi (FID) [26] va Kernel Inception masofasi (KID) [27]. Shular orasida Inception score va FID eng keng qo'llaniladigan. Inson tomonidan baholash ham generativ modellarni baholashning muhim usuli bo'lib qolmoqda.
ML tizim dizayni suhbatida suhbatdoshning maqsadi sizning formulalar va nazariyalar haqidagi batafsil bilimingizni sinash emas, balki sezgingiz va amaliy tushunchangizni baholashdir. Biroq, bu mezonlarning ba'zilarini keng tushunish baribir foydali bo'lishi mumkin. Inception score va FIDni qisqacha ko'rib chiqaylik.
Inception score
Inception score GANlar kabi generativ modellarda generatsiya qilingan tasvirlar sifatini baholash uchun keng ishlatiladigan mezondir. Bu mezon generatsiya qilingan tasvirlarning haqiqiy dunyo ob'ektlariga qanchalik o'xshashligini baholash uchun "Inception v3" [28] kabi oldindan o'qitilgan tasvir klassifikatsiyasi modeliga tayanadi.
Mezon qanday hisoblanishining bosqichma-bosqich tushuntirishi:
- Tasvirlar yaratish: Biz baholamoqchi bo'lgan model yordamida ko'plab tasvirlar to'plamini yaratishdan boshlaymiz.
- Sinf ehtimolliklarini hisoblash: Har bir generatsiya qilingan tasvir uchun Inception modeli uning 1000 ta ob'ekt sinfi bo'ylab ehtimolliklar taqsimotini beradi. Yuqori sifatli tasvir modelning uni sinfning aniq namunaasi sifatida taniyotganligini ko'rsatuvchi cho'qqi (ya'ni bir sinf uchun yuqori ehtimollik) bilan taqsimotga olib kelishi kerak.
- Marjinal taqsimotni hisoblash: Marjinal taqsimot barcha tasvirlar bo'ylab bashorat qilingan sinf ehtimolliklarining o'rtachasiga ishora qiladi. Bu bizga generatsiya qilingan to'plamdagi sinflarning umumiy taqsimotini tushunishga yordam beradi. Agar tasvirlar xilma-xil bo'lsa, marjinal taqsimot ko'p sinflar bo'ylab tekis va tarqalgan bo'ladi.
- KL farqlanishini hisoblash: KL farqlanishi har bir tasvir uchun bashorat qilingan sinf taqsimoti marjinal taqsimotdan qanchalik farq qilishini o'lchaydi. Yuqori sifatli tasvirlar marjinal taqsimotdan juda farq qiladigan taqsimotga ega bo'ladi. Buning sababi shundaki, yuqori sifatli tasvirda taqsimotida cho'qqi bo'lishi kutilsa, tasvirlar xilma-xil bo'lsa marjinal taqsimot bir tekisga yaqin bo'lishi kutiladi.
- Inception scoreni hisoblash: Inception score barcha tasvirlar bo'ylab KL farqlanishining eksponentsialli o'rtachasidir. Yuqori Inception score alohida tasvirlar turli sinflar bo'ylab ishonchli tasniflanganligini ko'rsatadi, bu esa generatsiya qilingan tasvirlar ham xilma-xil, ham yuqori sifatli ekanligini anglatadi.
Inception score xilma-xillik va sifatni qanday o'lchaydi?
- Xilma-xillik: Inception score generatsiya qilingan tasvirlar sinflar bo'ylab deyarli bir tekis marjinal taqsimotga olib kelishini tekshirish orqali xilma-xillikni baholaydi, bu tasvirlarning turli sinflar bo'ylab teng taqsimlanganligini ko'rsatadi.
- Sifat: Yuqori sifatli tasvirlar o'tkir, cho'qqili ehtimollik taqsimotiga olib keladi, bu tasvir ma'lum bir sinfga tegishli ekanligi aniq tan olinganligini ko'rsatadi. Inception score tasvir sifatini baholash uchun ushbu taqsimotni marjinal taqsimot bilan solishtirad.
Fréchet inception masofasi (FID)
FID generativ modellar tomonidan ishlab chiqarilgan tasvirlar sifatini baholash uchun yana bir mashhur mezondir. U generatsiya qilingan tasvirlar taqsimoti haqiqiy tasvirlar taqsimotiga qanchalik o'xshashligini baholaydi. Sinf ehtimolliklarini qo'llaydigan Inception scorodan farqli o'laroq, FID Inception v3 kabi oldindan o'qitilgan model tomonidan ajratilgan xususiyatlarning statistikasini ko'rib chiqadi. Inception modeli katta va xilma-xil dataset (ImageNet) bo'ylab o'qitilganligi va tasvirlarning mazmuni va uslubini ifodalovchi mazmunli xususiyatlarni ajratib olishi mumkinligi sababli tanlanadi.
FID qanday hisoblanishining bosqichma-bosqich tushuntirishi:
- Tasvirlar yaratish: Biz baholamoqchi bo'lgan model yordamida ko'plab tasvirlar to'plamini yaratishdan boshlaymiz. Ushbu tasvirlar ularning sifati va xilma-xilligini baholash uchun haqiqiy tasvirlar to'plami bilan taqqoslanadi.
- Xususiyatlarni ajratib olish: Har bir tasvirni (ham generatsiya qilingan, ham haqiqiy) Inception v3 modeli orqali o'tkazamiz va odatda tarmoq oxiriga yaqin muayyan qatlamdan xususiyatlarni ("aktivatsiyalar") ajratib olamiz. Ushbu chuqur qatlamdagi xususiyatlar yuqori darajali ma'lumotlarni — masalan, shakllar, to'qimalar va ob'ektlarni — ushlaydi, bu tasvirlarning realizimini baholash uchun muhim.
- O'rtacha va kovariatsiyani hisoblash: Ajratib olingan xususiyatlarning o'rtachasini va kovariatsiyasini generatsiya qilingan va haqiqiy tasvirlar uchun alohida hisoblaymiz. Ushbu statistik o'lchovlar ikkala tasvirlar to'plami uchun xususiyatlar taqsimotlarini xulosalaydi.
- Fréchet masofasini hisoblash: FIDni generatsiya qilingan va haqiqiy tasvirlarning o'rtachasi va kovariatsiyasi o'rtasidagi Fréchet masofasi sifatida hisoblaymiz. Fréchet masofasi ikki taqsimotning qanchalik yaqinligini o'lchaydi. Past FID ikkala taqsimot o'rtasida katta o'xshashlikni ko'rsatadi, ya'ni generatsiya qilingan tasvirlar yanada realistik va xilma-xil. Fréchet masofasi va uning formulasi haqida ko'proq bilish uchun [29] ga murojaat qiling.
FID xilma-xillik va sifatni qanday o'lchaydi?
- Xilma-xillik: FID xususiyatlarning tarqalishi va variatsiyasini aks ettiruvchi xususiyatlarning kovariatsiyasini ko'rib chiqadi. Xilma-xil generatsiya qilingan tasvirlar to'plami haqiqiy tasvirlarnikiga o'xshash xususiyatlar taqsimotiga ega bo'ladi va modельning turli xil tasvirlar keng doirasini ishlab chiqarish qobiliyatini ko'rsatadi.
- Sifat: FID generatsiya qilingan tasvirlar xususiyatlar taqsimotlarini haqiqiy tasvirlarnikiga solishtirib yuqori sifatli ekanligini ta'minlaydi. Agar generatsiya qilingan tasvirlar xususiyatlarining o'rtachasi va kovariatsiyasi haqiqiy tasvirlarnikiga o'xshash bo'lsa, bu generatsiya qilingan tasvirlarning ehtimol yuqori sifatli ekanligini ko'rsatadi.
FID va Inception score tasvir generatsiyasi modellarining sifati va xilma-xilligini baholash uchun foydali, lekin ular har doim inson mulohazasiga mos kelmaydi. Bu asosan ushbu mezonlar ImageNet sinflariga tayanishi, bu esa artefaktlarni kiritishi mumkinligi sababli. [30] muallliflari ImageNet bilan o'qitilmagan CLIP kabi modeldan foydalanish inson baholash bilan yaxshiroq uyg'unlik ta'minlashi mumkinligini taklif qiladi.
CLIP asosidagi mezonlar inson mulohazasi bilan uyg'unlikni yaxshilashda istiqbolli ko'rinsa-da, ular hali ham to'g'ridan-to'g'ri inson fikr-mulohazasidan olingan tushunchalarni to'liq almashtira olmaydi. Inson tomonidan baholash generatsiya qilingan tasvirlar sifatini baholashning eng ishonchli usuli bo'lib qolmoqda, chunki u avtomatlashtirilgan mezonlar o'tkazib yuborishi mumkin bo'lgan nozik tomonlarni ushlab qoladi.
Inson tomonidan baholash
Avtomatlashtirilgan mezonlar estetik jozibadorlik kabi sub'ektiv sifatlarni o'tkazib yuborishi mumkinligi sababli inson tomonidan baholash tasvir generatsiyasi tizimlarini baholash uchun juda muhim. Inson tomonidan baholashni amalga oshirish uchun turli protokollar mavjud. [31] da tasvirlangan bitta protokol foydalanuvchilarga turli modellar tomonidan generatsiya qilingan tasvirlar juftliklarini taqdim etishni o'z ichiga oladi. Inson baholovchilardan qaysi tasvir fotoreal ko'rinishini tanlash so'raladi. Bu yondashuv bizga inson mulohazasiga ko'proq mos keladigan mezonlar asosida modellarni taqqoslash imkonini beradi.
Onlayn baholash mezonlari
Tasvir generatsiyasi tizimi yaxshi ishlashini va foydalanuvchi kutilmalarini qondirshini ta'minlash uchun amalda turli mezonlar odatda kuzatiladi. Ikki keng tarqalgan mezon:
- Foydalanuvchi fikr-mulohazasi: Bu mezon generatsiya qilingan tasvirlar haqida foydalanuvchilarning fikrlarini to'g'ridan-to'g'ri aks ettirganligi sababli juda muhim. Foydalanuvchi fikr-mulohazasi so'rovnomalar, reytinglar yoki to'g'ridan-to'g'ri sharhlar orqali to'planishi mumkin.
- Kechikish: Kechikish so'rov berilgan vaqtdan tasvir to'liq generatsiya qilinib foydalanuvchiga yetkazilgunga qadar o'tgan vaqtni anglatadi. Tez javob vaqtlari, ayniqsa interaktiv ilovalarda yaxshi foydalanuvchi tajribasini saqlab qolish uchun juda muhim. Kechikishni kuzatish samaradorlik to'siqlarini aniqlashga va tizimning foydalanuvchi kutilmalarini qondirshini ta'minlashga yordam beradi.
Umumiy ML Tizim Dizayni
Ushbu bo'limda biz realistik yuz generatsiyasi tizimining yaxlit dizaynini ko'rib chiqamiz. Ko'rib chiqadigan asosiy komponentlar:
- Yuz generatori
- O'qitish xizmati
- Baholash xizmati
- Joylashtirrish xizmati
Yuz generatori
Yuz generatori realistik yuzlar yaratish uchun mas'ul asosiy komponent hisoblanadi. U foydalanuvchi so'rovlarini qayta ishlaydi va yuqori sifatli tasvirlarni tanlash uchun o'qitilgan GAN modeli bilan o'zaro ta'sir qiladi. Foydalanuvchilar ixtiyoriy ravishda yosh, jins, soch turmagi va ifoda kabi kerakli atributlarni ko'rsatishi mumkin. Xizmat ushbu atributlar asosida latent fazodagi shovqin vektorini sozlash uchun StyleGAN xususiyatlaridan foydalanadi.
Atribut boshqaruvi va latent manipulyatsiyaning arxitektura tafsilotlari odatda ML tizim dizayni suhbatlarida muhokama qilinmaydi. Agar ushbu sohada ko'proq bilishni xohlasangiz, [32][33] ni o'qing.
O'qitish xizmati
O'qitish xizmati GAN modelini foydalanuvchi tomonidan tasdiqlangan generatsiya qilingan tasvirlar va yangi o'quv ma'lumotlari bilan davriy qayta o'qitish orqali doimiy ravishda yaxshilaydi.
Baholash xizmati
Baholash xizmati yangi o'qitilgan modellarni avtomatik baholaydi. U ularning samaradorligini baholash uchun oldindan belgilangan mezonlardan foydalanadi. Baholash natijalari yangi model sifat standartlarini qondirish-qondirmasligini va mavjud o'rnini egallash kerak-kerakmasligini belgilaydi.
Joylashtirrish xizmati
Joylashtirrish xizmati yaxshilangan modellarni ishlab chiqarish muhitiga joylashtiradi. U yangilanishlar davomida minimal to'xtash vaqti bilan silliq o'tishni ta'minlaydi. Joylashtirrish xizmati shuningdek joylashtirilgan modellarning ishlashini ular kutilganidek ishlashini ta'minlash uchun kuzatib boradi.
Boshqa Muhokama Mavzulari
Suhbatdan keyin qo'shimcha vaqt bo'lsa, quyidagi mavzularni muhokama qilish mumkin:
- DCGAN, WGAN va StyleGAN kabi turli GAN arxitekturalari va har bir arxitekturaning savdo-sotiq tomonlari [34][35][18].
- Wasserstein yo'qotish, gradient jazosi va boshqa mustahkam o'qitish usullaridan foydalanish kabi rejim qulashi va konvergentsiya muammolarini oldini olish uchun GAN o'qitishini barqarorlashtirrish texnikalari [36].
- Muayyan shartlar yoki kirishlar asosida yuzlar yaratish uchun shartli GANlardan (cGAN) foydalanish [37].
- Shart izchilligini baholash mezonlari [38][39].
- Yuz generatsiyasida uslub aralashuvi [18].
Xulosa
Adabiyotlar
[1] StyleGAN2. https://arxiv.org/abs/1912.04958. [2] Auto-Encoding Variational Bayes. https://arxiv.org/abs/1312.6114. [3] Generative Adversarial Networks. https://arxiv.org/abs/1406.2661. [4] Combating Mode Collapse in GAN training: An Empirical Analysis using Hessian Eigenvalues. https://arxiv.org/abs/2012.09673. [5] Google's GAN course. https://developers.google.com/machine-learning/gan/training. [6] StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks. https://arxiv.org/abs/1612.03242. [7] Zero-Shot Text-to-Image Generation. https://arxiv.org/abs/2102.12092. [8] Muse: Text-To-Image Generation via Masked Generative Transformers. https://arxiv.org/abs/2301.00704. [9] DALL·E 3. https://openai.com/index/dall-e-3/. [10] Attribute-specific Control Units in StyleGAN for Fine-grained Image Manipulation. https://arxiv.org/abs/2111.13010. [11] A guide to convolution arithmetic for deep learning. https://arxiv.org/abs/1603.07285. [12] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. https://arxiv.org/abs/1502.03167. [13] Layer Normalization. https://arxiv.org/abs/1607.06450. [14] Instance Normalization: The Missing Ingredient for Fast Stylization. https://arxiv.org/abs/1607.08022. [15] Group Normalization. https://arxiv.org/abs/1803.08494. [16] Deep Learning using Rectified Linear Units (ReLU). https://arxiv.org/abs/1803.08375. [17] PyTorch's Tanh layer. https://pytorch.org/docs/stable/generated/torch.nn.Tanh.html. [18] A Style-Based Generator Architecture for Generative Adversarial Networks. https://arxiv.org/abs/1812.04948. [19] Minimax. https://en.wikipedia.org/wiki/Minimax. [20] Loss functions in GANs. https://developers.google.com/machine-learning/gan/loss. [21] Towards Principled Methods for Training Generative Adversarial Networks. https://arxiv.org/abs/1701.04862. [22] Unrolled Generative Adversarial Networks. https://arxiv.org/abs/1611.02163. [23] Stabilizing Training of Generative Adversarial Networks through Regularization. https://arxiv.org/abs/1705.09367. [24] Megapixel Size Image Creation using Generative Adversarial Networks. https://arxiv.org/abs/1706.00082v1. [25] Inception score. https://en.wikipedia.org/wiki/Inception_score. [26] GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium. https://arxiv.org/abs/1706.08500. [27] Demystifying MMD GANs. https://arxiv.org/abs/1801.01401. [28] Rethinking the Inception Architecture for Computer Vision. https://arxiv.org/abs/1512.00567. [29] FID calculation. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance. [30] The Role of ImageNet Classes in Fréchet Inception Distance. https://arxiv.org/abs/2203.06026. [31] Hierarchical Text-Conditional Image Generation with CLIP Latents. https://arxiv.org/abs/2204.06125. [32] Alias-Free Generative Adversarial Networks. https://arxiv.org/abs/2106.12423. [33] StyleGAN3. https://nvlabs.github.io/stylegan3/. [34] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks. https://arxiv.org/abs/1511.06434. [35] Wasserstein GAN. https://arxiv.org/abs/1701.07875. [36] Stabilizing Generative Adversarial Networks: A Survey. https://arxiv.org/abs/1910.00927. [37] Conditional Generative Adversarial Nets. https://arxiv.org/abs/1411.1784. [38] CLIPScore: A Reference-free Evaluation Metric for Image Captioning. https://arxiv.org/abs/2104.08718. [39] DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation. https://arxiv.org/abs/2208.12242.
Izohlar
- Qadam o'lchami konvolyutsiya davomida filtrnning kirish bo'ylab qancha harakat qilishini boshqaradi — kattaroq qadam o'lchamlari ko'proq piksellarni o'tkazib yuboradi ↩
- To'ldirish konvolyutsiya davomida chiqish o'lchamini boshqarish uchun kirishning atrofiga qo'shimcha chegaralar qo'shadi ↩
Yuqori O'lchovli Tasvir Sintezi
Kirish
Generativ AI yuqori realistik va xilma-xil tasvirlar yaratish uchun ajoyib imkoniyat taqdim etadi. Ushbu bobda biz atigi bir necha soniyada batafsil va xilma-xil tasvirlar generatsiyasini ta'minlaydigan texnikani o'rganamiz.
Talablarni Aniqlashtirish
Nomzod va suhbatdosh o'rtasidagi odatiy muloqot:
Nomzod: Tizim boshida ma'lum toifadagi tasvirlarga e'tibor qaratishi kerakmi? Suhbatdosh: Soddaligi uchun, tabiiy manzaralar va shahar landshaftlaridan boshlaylik. Keyinchalik boshqa toifalarni ham ko'rib chiqishimiz mumkin.
Nomzod: Tabiiy manzaralardan iborat o'quv ma'lumotlarimiz bormi? Dataset hajmi qancha? Suhbatdosh: Tabiiy manzaralar va landshaftlarning taxminan 5 million yuqori o'lchovli tasvirlarini o'z ichiga olgan katta datasetimiz mavjud.
Nomzod: Tizim kerakli tasvirni tasvirlovchi kirish matni kabi qo'shimcha konditsiyalashni qo'llab-quvvatlaishi kerakmi? Suhbatdosh: Yaxshi savol. Kirish shartlarisiz tasvir generatsiyasiga e'tibor qaratamiz. Biroq, tizim kirish so'rovlarini qo'llab-quvvatlash uchun moslashuvchan bo'lishi kerak.
Nomzod: Tasvirlarni generatsiya qilishda qanday o'lchamlar diapazoniga intilishimiz kerak? Suhbatdosh: Tizim foydalanuvchi so'rovlari asosida 1024×\times×1024 yoki 2048×\times×2048 piksel o'lchamdagi tasvirlarni generatsiya qilishi kerak.
Nomzod: Tasvirlar real vaqtda generatsiya qilinishi kerakmi yoki biroz kechikish maqbulmi? Suhbatdosh: Real vaqtda generatsiya zarur emas. Biroq, oqilona qayta ishlash vaqti muhim. Tasvir boshiga besh soniyaga yo'nalaylik.
Muammoni ML Vazifasi Sifatida Shakllantirish
Tizimning kirish va chiqishini aniqlash
Yuqori o'lchovli tasvir sintezi uchun foydalanuvchi shunchaki yangi tasvir so'raydi. Chiqish — yuqori o'lchovli tasvir.
Mos ML yondashuvini tanlash
7-bobda muhokama qilingandek, tasvir generatsiyasining bir nechta yondashuvlari mavjud, jumladan VAElar, GANlar, avtoregressiv modellar va diffuziya modellari. Ushbu bo'limda biz vazifa uchun eng mos keluvchi yondashuvni tanlaymiz.
VAElar va GANlarning aksariyat variantlari 512x512 piksel va undan yuqori o'lchamlardagi kabi yuqori o'lchovli tasvirlarni generatsiya qilishda qiynaladi. Ular posteriorning qulashi deb ataladigan muammoga duch keladi. Bu o'lcham oshishi bilan ushbu modellar qo'shimcha tafsilotlarni ushlash uchun yuqoriroq quvvatli dekoderni talab qilishi sababli sodir bo'ladi. O'qitish davomida dekoder shu qadar kuchli bo'lib qolishi mumkinki, u latent fazоdan kirishni e'tiborsiz qoldira boshlaydi, chunki u chiqishni mustaqil ravishda modellashtirishi mumkin. Natijada, latent o'zgaruvchilar generatsiya jarayoniga ozgina hissa qo'shadi va tasvirlarning xilma-xilligini kamaytiradi.
Avtoregressiv va diffuziya modellari ham yuqori o'lchovli tasvirlarni generatsiya qila olsa-da, ular murakkablik va resurs talablari bo'yicha sezilarli darajada farq qiladi. Avtoregressiv modellar ko'pincha har bir piksel avval generatsiya qilinganlarга bog'liq bo'lgan ketma-ket tabiatiga ko'ra sekin deb hisoblanadi. Bu bog'liqlik piksellar soni bilan chiziqli ravishda oshuvchi vaqt murakkabligiga olib keladi va N×NN\times NN×N o'lchamdagi tasvir uchun O(N2)O(N^2)O(N2) murakkablikka olib keladi va jarayonni parallellashtirrish qiyin. Ushbu cheklovni bartaraf etish uchun avtoregressiv modellar piksel-piksel o'rniga bo'lak-bo'lak tasvir generatsiya qiladi. Masalan, 64×\times×64 piksellik bo'laklar yordamida 1024×\times×1024 tasvir generatsiya qilish an'anaviy piksel asosidagi usullarga nisbatan hisoblash yuklamasini sezilarli darajada kamaytiruvchi atigi 256 qadam yoki tokenni talab qiladi.
Boshqa tomondan, diffuziya modellarining murakkabligi tasvir hajmi bilan super-chiziqli ravishda oshadi va O(TN2)O(TN^2)O(TN2) hisoblash murakkabligiga olib keladi, bu yerda NNN piksellar soni va T shovqinsizlashtirish qadamlari sonini ifodalaydi. Kattaroq tasvirlar sifat va izchillikni saqlab qolish uchun ko'pincha ko'proq takomillashtirish qadamlarini talab qiladi, bu esa hisoblash talabini yanada oshiradi.
Amalda, standart diffuziya modellari yordamida yuqori o'lchovli tasvir generatsiya qilish bir necha daqiqa olishi mumkin¹. Bundan farqli o'laroq, Transformer asosidagi avtoregressiv modellar bo'lak asosidagi generatsiya yondashuvi tufayli o'xshash vazifalarni bir necha soniyada bajarishi mumkin. Ushbu bob uchun biz ta'lim maqsadida avtoregressiv modellarga e'tibor qaratamiz. 9-bobda diffuziya modellarini batafsil ko'rib chiqamiz. Keling, endi avtoregressiv modellar va ularning asosiy komponentlarini ko'rib chiqaylik.
Avtoregressiv modellar tasvirlarni ketma-ket generatsiya vazifasi sifatida ko'rib chiqib generatsiya qiladi. Ushbu yondashuv ikki asosiy komponentga tayanadi:
- Tasvir tokenizatori
- Tasvir generatori
Tasvir tokenizatori
Tasvir tokenizatsiyasi tasvirni diskret tokenlar ketma-ketligi bilan ifodalashga ishora qiladi. Bu tasvirning bo'lak-bo'lak ketma-ket generatsiya qilinadigan avtoregressiv modellarda juda muhim.
Tasvir tokenizatori — mustaqil o'qitilgan alohida model. Uning asosiy vazifalari tasvirni diskret tokenlar ketma-ketligiga kodlash va diskret tokenlar ketma-ketligini qaytadan tasvirga dekodlashdir.
Tasvir generatori
Tasvir generatori tasvirlarni bo'lak-bo'lak generatsiya qilish uchun asosiy modeldir. Ketma-ket generatsiya uchun turli arxitekturalar mavjud bo'lsa-da, faqat-dekoder Transformer ikki sabab bilan eng samarali tanlovdir. Birinchidan, faqat-dekoder Transformer turli modalliklarni boshqara oladigan moslashuvchan arxitekturaga ega. Chatbotda u matn tokenlarini kirish sifatida oladi va matn tokenlarini chiqish sifatida generatsiya qiladi. Tasvir yozuvida u tasvirni kirish sifatida oladi va matn tokenlarini chiqaradi. Tasvir generatsiyasi uchun u chiqish sifatida tasvir tokenlari ketma-ketligini generatsiya qiladi, ular keyin tasvirga dekodlanadi.
Ikkinchidan, Transformer arxitekturasi e'tibor mexanizmi orqali uzoq masofali bog'liqliklarni ushlashda samarali bo'lib, bu izchil tasvirlar generatsiyasi uchun foydalidir.
Xulosa qilib aytganda, biz tasvir generatsiyasiga Transformer asosidagi avtoregressiv model bilan yondashamiz. Birinchi navbatda, tasvir generatori (faqat-dekoder Transformer) diskret tokenlar ketma-ketligini generatsiya qiladi. Keyin tasvir tokenizatori ushbu tokenlarni yakuniy tasvirga dekodlaydi. Ushbu komponentlarning arxitekturasi, o'qitish va namuna olish jarayonlarini model ishlab chiqish bo'limida batafsil ko'rib chiqamiz.
Ma'lumotlarni Tayyorlash
Ma'lumotlarni tayyorlash jarayoni ikki muhim qadamni o'z ichiga oladi:
- Tasvirlarni tozalash va normallashtirish
- Tasvir tokenizatsiyasi
Tasvirlarni tozalash va normallashtirish
Ushbu qadamda biz o'quv ma'lumotlaridan past sifatli tasvirlarni olib tashlaymiz va qolganlarning izchil bo'lishini ta'minlaymiz. Bu quyidagi operatsiyalarni qo'llash orqali amalga oshiriladi:
- Past sifatli tasvirlarni olib tashlash: Biz past o'lchamli, ortiqcha shovqinli yoki tegishsiz mazmunli tasvirlarni olib tashlaymiz. Shuningdek, dataset turli uslublar, mavzular va kompozitsiyalar keng doirasini o'z ichiga olishini ta'minlaymiz. Bu qadam generativ model xilma-xil, yuqori sifatli tasvirlar ishlab chiqarishi uchun muhim.
- Tasvirlarni normallashtirish: Normallashtirish o'qitish jarayonini barqarorlashtirrish uchun piksel qiymatlarini odatda 0 dan 1 gacha diapazoniga masshtablashni o'z ichiga oladi.
- Tasvirlarni o'lchamini o'zgartirish: Tasvirlar ko'pincha turli o'lchamlarda va nisbat tomonlarida keladi. Ularni bir xil o'lchamga o'zgartirish model izchil kirishlar olishini ta'minlaydi. Suhbatdoshning talablariga asoslanib, barcha tasvirlarni 1024x1024 ga o'lchaymiz.
Tasvir tokenizatsiyasi
Tasvir generatori tasvirlarning diskret tokenlar ketma-ketligi sifatida ifodalanishini talab qiladi. Bunga erishish uchun, tasvir tokenizatorini o'qitgandan so'ng, o'quv datasetidagi barcha tasvirlarni diskret tokenlarga tokenizatsiya qilamiz. Bu ma'lumotlarni tayyorlash qadami asosan tasvir generatori uchun mo'lljallanganligini, tasvir tokenizatori uchun emas, esda tutish muhim.
Ushbu ikki qadam o'quv ma'lumotlarining yuqori sifatli, izchil va raqamli kirishlar ketma-ketligi sifatida ifodalanishini ta'minlaydi.
Model Ishlab Chiqish
Arxitektura
Ushbu bo'limda biz tasvir tokenizatori va tasvir generatorining arxitekturasini ko'rib chiqamiz.
Tasvir tokenizatori
Tasvir tokenizatori modelining ikki vazifasi bor:
- Tasvirni diskret tokenlar ketma-ketligiga kodlash
- Diskret tokenlar ketma-ketligini qaytadan tasvirga dekodlash
Tasvir tokenizatsiyasi uchun maxsus mo'ljallangan keng tarqalgan arxitektura — 7-bobda muhokama qilingan standart VAEning varianti bo'lgan Vektor-Kvantlangan VAE (VQ-VAE) [2]. VQ-VAE uchta komponentdan iborat:
- Enkoder
- Kvantizator
- Dekoder
Enkoder
Enkoder kirish tasvirini pastki o'lchamli latent fazoga moslashtiradi. Ushbu komponent tasvirning muhim xususiyatlarini kodlangan vakillikka kodlaydi.
Enkoderning arxitekturasi bir nechta konvolyutsiya qatlamlaridan iborat chuqur konvolyutsion neyron tarmoq (CNN) bo'lib, ularning har biridan keyin ReLU [3] aktivatsiya funksiyasi keladi. Ushbu qatlamlar kirish tasvirini qayta ishlaydi va vizual xususiyatlarni ajratib oladi.
Kvantizator
Kvantizator uzluksiz latent vektorlarni diskret tokenlarga aylantiradi. VQ-VAE ning standart VAEga kvantizator komponentini kiritishining ikki asosiy sababi bor:
- Posteriorning qulashidan qochish
- O'rganish fazosini kamaytirish
Posteriorning qulashidan qochish
Posteriorning qulashi standart VAEларда dekoder latent fazоdan foydalanmasdan aniq chiqishlar generatsiya qilganligi sababli latent o'zgaruvchilar ozgina hissa qo'shgan yoki e'tiborsiz qoldirilgan holatlarda keng tarqalgan muammo. Kvantizatsiya qadami latent o'zgaruvchilarni diskretlashtirish orqali ushbu muammoni hal qiladi va shu tariqa modelni qayta tiklash davomida ulardan foydalanishga majburlaydi. Bu dekodorning latent fazоdan ustun bo'lmasligini va latent o'zgaruvchilarning chiqishni shakllantirishda faol ishtirokini ta'minlaydi.
O'rganish fazosini kamaytirish
Uzluksiz vektorlar cheksiz imkoniyatlari va kichik farqlari sababli ketma-ket bashorat qilish qiyin. Ushbu vektorlarni diskret tokenlarga aylantirish orqali kvantizator Transformerga kamroq variantlarga e'tibor qaratish imkonini berish bilan jarayonni soddalashtiradi.
Kvantizator uzluksiz latent vektorlarni diskret tokenlarga aylantirish uchun ichki kodlar kitobidan foydalanadi. Ushbu kodlar kitobi kirish tasvirlaridagi turli naqshlarni ifodalovchi o'rganilishi mumkin bo'lgan joylashuvlarni o'z ichiga oladi. Har bir joylashuv 1 dan k gacha butun son bilan ifodalangan token vazifasini o'taydi. Kvantizator har bir uzluksiz vektorni Evklid masofasi [4] asosida kodlar kitobidagi eng yaqin token bilan almashtiradi.
Kvantizator joylashuv jadvali ekanligini esda tuting. Uning yagona parametri o'qitish davomida o'rganiladigan kodlar kitobidir. Kvantizatorning yagona mas'uliyati har bir uzluksiz vektorni kodlar kitobidagi eng yaqin token bilan moslashtirish; shuning uchun, chiqish token IDlari to'plamidir.
Dekoder
Dekoder diskret tokenlarni qaytadan asl tasvirga aylantiradi. U odatda transpozitsiya konvolyutsiyalari (ConvTranspose2d) bilan chuqur CNN dan foydalanib vakillikni asta-sekin asl tasvir o'lchamiga aylantiradi. Konvolyutsiyalar va transpozitsiya konvolyutsiyalari haqida ko'proq bilish uchun [5] ga murojaat qiling.
Tasvir generatori
Tasvir generatori tasvirni ifodalovchi diskret tokenlar ketma-ketligini generatsiya qiladi. Avval aytib o'tilganidek, faqat-dekoder Transformer ko'pincha ketma-ket generatsiya vazifalari uchun ishlatiladi va quyidagi komponentlarni o'z ichiga oladi:
- Joylashuv qidirish: Har bir diskret tokenni kodlar kitobidan uning joylashuviga almashtiradi.
- Proyeksiya: Har bir token joylashuvini Transformer ichki vakilligiga mos keladigan o'lchamga proyeksiya qiladi.
- Pozitsion kodlash: Fazoviy ma'lumotlarni taqdim etish uchun ketma-ketlikka pozitsion kodlashlarni qo'shadi.
- Transformer: Kirish ketma-ketligini qayta ishlaydi va yangilangan vektorlar ketma-ketligini chiqaradi.
- Bashorat boshi: Keyingi tokenni bashorat qilish uchun yangilangan joylashuvlardan foydalanadi.
O'qitish
Avtoregressiv tasvir generatsiyasida ikki o'qitish bosqichi mavjud:
- I bosqich: Tasvir tokenizatorini o'qitish
- II bosqich: Tasvir generatorini o'qitish
I bosqich: Tasvir tokenizatorini o'qitish
O'qitish jarayoni model asl tasvirlarni aniq qayta tiklashi uchun enkoder, dekoder va kodlar kitobini optimallashtirrishni o'z ichiga oladi. Bu jarayon uch qadamda tasvirlanishi mumkin:
- Enkoder kirish tasvirini qayta ishlaydi va uni uzluksiz vakillikka aylantiradi.
- Kvantizator ichki kodlar kitobidan foydalanib uzluksiz vakillikni diskret tokenlar bilan almashtiradi.
- Dekoder asl tasvirni qayta tiklash uchun diskret tokenlardan foydalanadi.
Kvantizator qidirish operatsiyasi orqaga tarqalish uchun yaxshi aniqlanган gradientdan mahrum bo'lganligi sababli, VQ-VAE maqolasi gradientni dekoder kirishidan to'g'ridan-to'g'ri enkoder chiqishiga nusxalash orqali taxmin qilishni taklif qiladi. Bu yondashuv faqat tanlangan tokenlar dekoderdan gradientlar olishini, tanlnmagan tokenlar esa hech qanday gradient olmasligini anglatadi.
O'quv ma'lumotlari
Biz tasvir tokenizatorini 5 million tasvir bilan o'qitamiz. O'qitish o'z-o'ziga nazoratli bo'lib, tasvir yorliqlarini talab qilmasligi sababli, tokenizatorning mustahkamligini oshirish uchun boshqa ochiq tasvir datasetlarini ham kiritamiz. Xususan, 400 million tasvir o'z ichiga olgan LAION-400M datasetidan [6] foydalanamiz. Bu natijada xilma-xil vizual naqshlarni ushlagan boyroq kodlar kitobini yaratadi.
ML maqsadi va yo'qotish funksiyasi
Tasvir tokenizatorining ML maqsadi kvantlangan tokenlardan asl tasvirlarni aniq qayta tiklashdir. Ushbu ML maqsadiga erishish uchun o'qitish jarayonida quyidagi yo'qotish funksiyalari odatda qo'llaniladi:
- Qayta tiklash yo'qotish
- Kvantizatsiya yo'qotish
Qayta tiklash yo'qotish: Qayta tiklash yo'qotish asl tasvir bilan kvantlangan tokenlardan qayta tiklangan tasvir o'rtasidagi farqni o'lchaydi. U odatda o'rtacha kvadrat xato (MSE) formulasi yordamida hisoblanadi:
Bu yerda:
- xix_ixi — asl tasvirning piksel qiymati,
- x^i\hat{x}_ix^i — qayta tiklangan tasvirning piksel qiymati,
- nnn — tasvirдagi umumiy piksellar soni.
Kvantizatsiya yo'qotish: Kvantizatsiya yo'qotish enkoder chiqishlari va kodlar kitobidagi eng yaqin joylashuv o'rtasidagi masofani o'lchaydi. Ushbu yo'qotish enkoderning kodlar kitobi joylashuvlariga yaqinroq chiqishlar ishlab chiqarishiga undaydi.
Bu yerda:
- E(x)E(x)E(x) — xxx kirishdan enkoder, EEE, tomonidan ishlab chiqarilgan uzluksiz latent vektor,
- zqz_qzq — ZZZ kodlar kitobidan tanlangan kvantlangan latent vektor,
- sg(.)\operatorname{sg}(.)sg(.) — atab o'tilgan teradan gradientlar oqishini blokirovka qiluvchi gradient to'xtatish operatsiyasini ifodalaydi. U bu yerda enkoderini optimallashtirish paytida kodlar kitobining yangilanishini oldini olish uchun ishlatiladi.
Kvantizatsiya yo'qotish formulasi haqida batafsil ma'lumot olish uchun VQGAN maqolasiga [1] murojaat qiling.
Amalda, o'qitish davomida qayta tiklash yo'qotish va kvantizatsiya yo'qotishdan birga foydalanish past o'lchovli tasvirlarni qayta tiklash uchun yaxshi ishlaydi. Biroq, yuqori o'lchovli tasvirlar uchun model baribir artefaktlar ishlab chiqarishi mumkin. Yuqori o'lchomlarda qayta tiklash sifatini yaxshilash uchun ikkita qo'shimcha yo'qotish funksiyasi odatda qo'llaniladi:
- Pertseptual yo'qotish
- Adversarial yo'qotish
Pertseptual yo'qotish: Pertseptual yo'qotish VGG [7] kabi oldindan o'qitilgan modelning ma'lum qatlamidan ajratib olingan asl va qayta tiklangan tasvirlarning xususiyatlari o'rtasidagi farqni o'lchaydi. Formula:
Bu yerda:
- ϕl\phi_lϕl — oldindan o'qitilgan VGG modelidan l qatlamining xususiyat xaritasini bildiradi,
- xxx — asl tasvir,
- x^\hat{x}x^ — qayta tiklangan tasvir.
Pertseptual yo'qotish modelni asl tasvirlarga pertseptual jihatdan o'xshash tasvirlarni qayta tiklashga undaydi. VGG xususiyatlari mazmun va uslub kabi yuqori darajali tafsilotlarni kodlaydi. Idrok yo'qotish model qayta tiklangan tasvirlarda ushbu tafsilotlarni yanada yaxshiroq saqlashi uchun o'qitish jarayonini yo'naltiradi.
Adversarial yo'qotish: Adversarial yo'qotish GAN lardan [8] olingan bo'lib, bu yerda diskriminator haqiqiy va qayta tiklangan tasvirlarni ajratishga harakat qiladi. Ushbu yo'qotish tasvir tokenizatori tomonidan qayta tiklangan tasvir diskriminatorni qanchalik chalg'itishi mumkinligini o'lchash uchun ishlatiladi. 7-bobda ko'rganimizdek formula:
Bu yerda:
- DDD — diskriminator tarmog'i,
- x^\hat{x}x^ — qayta tiklangan tasvir.
Ushbu yo'qotish funksiyasi modelni o'qitilgan diskriminator haqiqiy tasvirlardan farqlay olmaydigan qayta tiklangan tasvirlar ishlab chiqarishga undaydi. VQGAN maqolasi noo'rin artefaktlarni kamaytirish va qayta tiklanishlarning realizimini yaxshilash uchun ushbu yo'qotishning parcha asosidagi versiyasini joriy qildi.
Umumiy yo'qotish: Umumiy yo'qotish funksiyasi ko'pincha yuqorida tasvirlangan alohida yo'qotishlarning og'irlikli yig'indisidir. Og'irliklar (λi)(\lambda_i)(λi) aniq samaradorlik maqsadlari va tajribalarga asoslanib sozlanishni talab qiluvchi giper-parametrlardir.
Tasvir tokenizatorini o'qitgandan so'ng, barcha 5 million o'quv tasvirlarini ma'lumotlarni tayyorlash bo'limida batafsil ko'rsatilganidek diskret tokenlarga aylantiramiz va keshlaymiz. Bu qadam barcha tasvirlarning diskret tokenlar ketma-ketligi sifatida ifodalanishini ta'minlaydi, bu tasvir generatorini o'qitish uchun zarur.
II bosqich: Tasvir generatorini o'qitish
Faqat-dekoder Transformer bo'lgan tasvir generatorini o'qitish oldingi boblarda tasvirlangan jarayonga o'xshaydi. O'quv ma'lumotlari diskret tokenlar ketma-ketligidan iborat va model o'qitish davomida ushbu tokenlarni ketma-ket bashorat qilishni o'rganadi.
Biz ML maqsadi sifatida keyingi tokenni bashorat qilish va bashorat qilingan ehtimolliklarning to'g'ri vizual tokenlarga nisbatan qanchalik aniq ekanligini o'lchash uchun yo'qotish funksiyasi sifatida o'zaro entropiyani qo'llaymiz.
Namuna olish
Avtoregressiv modellarda yangi tasvir generatsiyasi ikki qadamni o'z ichiga oladi:
- Diskret tokenlar ketma-ketligini generatsiya qilish
- Diskret tokenlarni tasvirga dekodlash
. Diskret tokenlar ketma-ketligini generatsiya qilish
Birinchi qadamda, tasvir generatori tokenlar ketma-ketligini ishlab chiqaradi. Generatsiyaning avtoregressiv tabiati har bir tokenning oldingi tokenlarga bog'liq bo'lishini ta'minlaydi va izchil tasvir generatsiyasiga olib keladi.
Tokenlar ketma-ketligini avtoregressiv ravishda generatsiya qilishning bosqichma-bosqich jarayoni:
- Birinchi token sifatida kodlar kitobidan tasodifiy token tanlash. Ushbu boshlang'ich token qolgan generatsiya jarayoni uchun urug' vazifasini o'taydi.
- Tokenlarni birin-ketin avtoregressiv ravishda generatsiya qilish. Bu quyidagilarni o'z ichiga oladi: Kodlar kitobi bo'ylab ehtimollik taqsimotini bashorat qilish uchun tokenlarning joriy ketma-ketligini tasvir generatoriga uzatish Top-p namuna olish kabi namuna olish usuli yordamida keyingi tokenni tanlash Tanlangan tokenni joriy ketma-ketlikka qo'shish
Bu jarayon butun tasvir generatsiya qilinguncha davom etadi. Iteratsiyalar soni kerakli chiqish tasvirining o'lchami va hajmiga bog'liq. Masalan, har bir vizual token 64×\times×64 piksellik blokni ifodalaganda 1024×\times×1024 piksellik tasvir generatsiyasi 256 ta tokenni talab qiladi. Jarayon barcha 256 token generatsiya qilinguncha davom etadi. Token ketma-ketligi to'liq bo'lgach, u haqiqiy tasvirga aylantiriladi — bu keyingi qadamning maqsadidir.
. Diskret tokenlarni tasvirga dekodlash
Ushbu qadamda diskret tokenlar ketma-ketligi tasvir tokenizatorining dekodlash funksiyasidan foydalanib tasvirga aylantiriladi.
Baholash
Yuqori o'lchovli tasvir sintezi uchun baholash mezonlari 7-bobdagilarga o'xshash. Ushbu bo'limda ularni batafsil ko'rib chiqmasdan qisqacha ko'rib chiqamiz.
Oflayn baholash mezonlari
Generatsiya qilingan tasvirlarning sifati va xilma-xilligini o'lchash uchun quyidagi mezonlar odatda qo'llaniladi:
- Inception score: Oldindan o'qitilgan Inception v3 modelidan foydalanib generatsiya qilingan tasvirlarning haqiqiy dunyo ob'ektlari tasvirlariga qanchalik o'xshashligini o'lchaydi. Inception score haqida ko'proq bilish uchun [9] ga murojaat qiling.
- Fréchet inception masofasi (FID): Oldindan o'qitilgan Inception v3 modelidan ajratib olingan xususiyatlarni solishtirish orqali generatsiya qilingan tasvirlar taqsimotini haqiqiy tasvirlar bilan solishtiradi. Bu mezon generatsiya qilingan va haqiqiy tasvirlarning statistikasi qanchalik o'xshashligini o'lchaydi. FID haqida ko'proq bilish uchun [10] ga murojaat qiling.
- Inson tomonidan baholash: Inson baholovchilarga tasvir juftliklari taqdim etiladi va ularning fotoreal va estetik xususiyatlarini baholash so'raladi. Ovozlar vaqt o'tishi bilan qaysi modellar yanada realistik tasvirlar ishlab chiqarishi haqida statistik o'lchov beradi.
Ushbu mezonlarga qo'shimcha ravishda, kechikish va xarajat kabi modelling boshqa jihatlarini baholash odatiy holdir.
- Tasvir generatsiya vaqti: Modelling tasvir generatsiya qilish uchun sarflagan vaqtini o'lchaydi. Bu mezon foydalanuvchilar odatda tez natijalарни kutganligini hisobga olib kuzatish uchun muhim.
- Generatsiya boshiga xarajat: Tasvir generatsiya qilish xarajatini hisoblaydi. Bu mezon model murakkabligi, o'lcham va infratuzilma xarajatlari kabi omillarga bog'liq. Generatsiya xarajatini kuzatish biznes daromadiga ta'siri sababli muhim.
Onlayn baholash mezonlari
Amalda, kompaniyalar tizimning real vaqt sifatini baholash uchun turli mezonlarni kuzatib boradi. Keng tarqalgan mezonlar quyidagilarni o'z ichiga oladi:
- Foydalanuvchi fikr-mulohazasi: Generatsiya qilingan tasvirlar haqida foydalanuvchilardan to'g'ridan-to'g'ri fikr-mulohaza yig'adi.
- Davriy so'rovnomalar: Generatsiya qilingan tasvirlarning sifati va tegishliligini o'rganish uchun foydalanuvchi fikrini yig'adi.
- Obuna tezligi: Foydalanuvchilar tasvir generatsiyasiga tegishli xizmatlar yoki xususiyatlarga qanchalik tez-tez obuna bo'lishini o'lchaydi.
- Chiqib ketish tezligi: Foydalanuvchilar xizmatdan foydalanishni to'xtatish tezligini o'lchaydi.
Umumiy ML Tizim Dizayni
Tasvir generatori va tasvir tokenizatori modellarining samaradorligidan qoniqgach, biz tasvir sintezi tizimini qurish uchun ularni integratsiya qilishimiz mumkin. Yuqori o'lchovli tasvir sintezi tizimidagi asosiy komponentlar:
- Generatsiya xizmati
- Dekodlash xizmati
- Super-o'lcham xizmati
Har bir komponentning maqsadi va ularning o'zaro ta'sirini tushunish tizimning yaxlit ko'rinishini beradi. Keling, har birini batafsil ko'rib chiqaylik.
Generatsiya xizmati
Generatsiya xizmati foydalanuvchi so'rovlarini boshqaradi va vizual tokenlar ketma-ketligini ishlab chiqarish uchun o'qitilgan tasvir generatori modeli bilan o'zaro ta'sir qiladi.
Dekodlash xizmati
Dekodlash xizmati generatsiya qilingan vizual tokenlar ketma-ketligini tasvirga aylantirish uchun tasvir tokenizatori bilan o'zaro ta'sir qiladi. Modelni joylashtirish vaqtida tasvir tokenizatoridagi enkoderga ehtiyoj yo'qligini esda tuting — u faqat o'qitish davomida qo'llaniladi.
Generatsiya va dekodlash xizmatlarini ajratish muhim, chunki tasvir generatori va tokenizator turli hisoblash ehtiyojlari va kechikishlarga ega bo'lgan turli modellardir. Ushbu yondashuv har bir xizmatning mustaqil ravishda kengayishiga va resurslarni samarali boshqarishiga imkon beradi.
Super-o'lcham xizmati
Super-o'lcham xizmati generatsiya qilingan tasvirlarning o'lchamini oshirish uchun oldindan o'qitilgan modeldan foydalanadi. Masalan, agar kerakli o'lcham 2048×\times×2048 bo'lsa, lekin generator faqat 1024×\times×1024 ishlab chiqarsa, biz 2x masshtablash omili bilan super-o'lcham modelini qo'llaymiz.
Ushbu xizmat tibbiy tasvirlash kabi batafsil va realistik vizuallikni talab qiluvchi ilovalar uchun muhim. CNN asosidagi [11] dan GAN yaxshilangan [12] gacha super-o'lcham uchun ko'plab o'rnatilgan yechimlar mavjud. Yaqin vaqtdagi yondashuvlar haqida ko'proq bilish uchun [13] ga murojaat qiling.
Boshqa Muhokama Mavzulari
Suhbat oxirida vaqt qolsa, quyidagi qo'shimcha mavzularni ko'rib chiqish mumkin:
- Matn asosidagi generatsiyani qo'llab-quvvatlash uchun avtoregressiv modellarni kengaytirish [14] [15].
- Tasvir to'ldirish va tasvir super-o'lchamini qo'llab-quvvatlash kabi ilovalar [16].
- Harorat masshtablash [17] kabi texnikalardan foydalanib namuna olishda xilma-xillik va sodiqlik o'rtasidagi muvozanat.
- Adversarial o'qitish, gradient qisqartirish va o'rganish koeffitsientini rejalashtirish yordamida barqarorlikni oshirish [18][19].
- Tasvir sifati va tafsilotini yaxshilash uchun progressiv o'sish va ko'p masshtabli arxitekturalardan foydalanish [20].
- Foydalanuvchilarga generatsiya qilingan tasvirlarni takomillashtirish va sozlash imkonini beruvchi interaktiv tizimlar yaratish [21].
Xulosa
Adabiyotlar
[1] Taming Transformers for High-Resolution Image Synthesis. https://arxiv.org/abs/2012.09841. [2] Neural Discrete Representation Learning. https://arxiv.org/abs/1711.00937. [3] Deep Learning using Rectified Linear Units (ReLU). https://arxiv.org/abs/1803.08375. [4] Euclidean distance. https://en.wikipedia.org/wiki/Euclidean_distance. [5] A guide to convolution arithmetic for deep learning. https://arxiv.org/abs/1603.07285. [6] LAION data set 400 million https://laion.ai/blog/laion-400-open-dataset/. [7] Very Deep Convolutional Networks for Large-Scale Image Recognition. https://arxiv.org/abs/1409.1556. [8] Generative Adversarial Networks. https://arxiv.org/abs/1406.2661. [9] Inception score. https://en.wikipedia.org/wiki/Inception_score. [10] FID calculation. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance. [11] Image Super-Resolution Using Very Deep Residual Channel Attention Networks. https://arxiv.org/abs/1807.02758. [12] ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks. https://arxiv.org/abs/1809.00219. [13] NTIRE 2024 Challenge on Image Super-Resolution (×4): Methods and Results. https://arxiv.org/abs/2404.09790. [14] Muse: Text-To-Image Generation via Masked Generative Transformers. https://arxiv.org/abs/2301.00704. [15] VQGAN-CLIP: Open Domain Image Generation and Editing with Natural Language Guidance. https://arxiv.org/abs/2204.08583. [16] LAR-SR: A Local Autoregressive Model for Image Super-Resolution. https://openaccess.thecvf.com/content/CVPR2022/papers/ Guo_LAR-SR_A_Local_Autoregressive_Model_for_Image_Super-Resolution_CVPR_2022_paper.pdf. [17] Long Horizon Temperature Scaling. https://arxiv.org/abs/2302.03686. [18] Learning Rate Scheduling. https://d2l.ai/chapter_optimization/lr-scheduler.html. [19] Adversarial Training. https://adversarial-ml-tutorial.org/adversarial_training/. [20] Progressive Growing of GANs for Improved Quality, Stability, and Variation. https://arxiv.org/abs/1710.10196. [21] CogView2: Faster and Better Text-to-Image Generation via Hierarchical Transformers. https://arxiv.org/abs/2204.14217.
Izohlar
- Muayyan optimallashtirishlar va texnikalar (masalan, latent diffuziya modeli) diffuziya modellarida generatsiya jarayonini sezilarli darajada tezlashtirishi mumkin. Ushbu usullar 10 va 11-boblarda batafsil muhokama qilinadi. ↩
Matndan Tasvirga Generatsiya
Kirish
Ko'p hollarda, modellning tasodifiy shovqindan kontent generatsiya qilishiga ruxsat berish (7 va 8-boblarda muhokama qilinganidek) o'rniga, biz generatsiya qilingan tasvirning mazmunini boshqarishni istaymiz. Matndan tasvirga generatsiya — foydalanuvchilarga matn so'rovini kiritish imkonini beruvchi va model uni batafsil tasvirga aylantiradigan generativ AIning qiziqarli ilovasi. Bir qancha matndan tasvirga xizmatlar tijorat maqsadida mavjud, masalan OpenAI ning DALL-E 3 [1], Google ning Imagen [2] va Adobe ning Firefly [3].
Talablarni Aniqlashtirish
Nomzod va suhbatdosh o'rtasidagi odatiy muloqot:
Nomzod: Generatsiya qilingan tasvirlar uchun qanday o'lchamni mo'ljallaymiz? Suhbatdosh: Yuqori o'lchovli tasvirlarga, xususan 1024x1024 pikselga yo'naltiramiz.
Nomzod: Tizim matn kiritish uchun bir nechta tilni yoki faqat ingliz tilini qo'llab-quvvatlashim kerakmi? Suhbatdosh: Dastlab ingliz tiliga e'tibor qaratamiz, lekin tizim arxitekturasi keyinchalik boshqa tillarga moslashtirilishi mumkin bo'lishi kerak.
Nomzod: Matndan tasvirga model uchun o'qitish dataseti qanchalik katta? Suhbatdosh: Foydalanuvchi aktivlaridan taxminan 500 million tasvirmiz bor, aksariyati sarlavhalar bilan.
Nomzod: Matn so'rovlari qanchalik batafsil va murakkab bo'lishi mumkin? Ularning murakkabligi yoki uzunligiga cheklov bormi? Suhbatdosh: Tizim batafsil matn so'rovlarini, maksimal uzunligi 128 so'z bilan boshqarishi kerak.
Nomzod: Tizim tasvir generatsiyasi uchun qanday tezlikka erishishi kerak? Suhbatdosh: Maqsad — deyarli real vaqtda generatsiya. Tasvir boshiga 10 soniyaga yo'nalaylik.
Nomzod: Tizim qanday turdagi tasvirlar generatsiya qilishi kerak? Landshaftlar kabi ma'lum bir sohaga e'tibor qaratayapmizmi? Suhbatdosh: Tizim matn so'rovlari asosida realistik landshaftlar, portretlar va abstrakt yoki kontseptual san'at kabi tasvirlarning keng doirasini generatsiya qila olishi kerak.
Nomzod: Tasvirlar yosh, irq yoki jins bo'yicha noto'g'ri yo'naltirilmasligi muhim. Ushbu uchta atributga e'tibor qaratishdan boshlasam maqulmi? Suhbatdosh: Ajoyib fikr. Adolatli tizimga ega bo'lish muhim. Ushbu uchta atributni ko'rib chiqishdan boshlaylik.
Nomzod: Axloqiy mulohazalar muhim. Haqoratli, noo'rin yoki zararli tasvirlar generatsiyasini oldini olish uchun filtrlar va tekshiruvlar kerak. Bu to'g'rimi? Suhbatdosh: Ha, to'g'ri.
Muammoni ML Vazifasi Sifatida Shakllantirish
Tizimning kirish va chiqishini aniqlash
Tizimga kirish — foydalanuvchi tomonidan berilgan va kerakli tasvirni tasvirlovchi matn so'rovidir. Ushbu so'rov odatda manzaralar, ob'ektlar, ranglar, uslublar va his-tuyg'ular kabi tafsilotlarni o'z ichiga oladi.
Chiqish — matn so'roviga mos keladigan vizual jihatdan batafsil tasvir. Masalan, 2-rasmda ko'rsatilganidek, "Okean ustida qayiq" kabi so'rov ushbu manzarani tasvirlovchi tasvir ishlab chiqaradi.
Mos ML yondashuvini tanlash
Matndan tasvirga generatsiya — matnni tushunish va mos tasvirni generatsiya qilishni o'z ichiga oluvchi ko'p modal vazifa. Matndan tasvirga tizimlar yaratishning ikki asosiy yondashuvi mavjud:
- Avtoregressiv modellar
- Diffuziya modellari
Har birini qisqacha ko'rib chiqaylik va ehtiyojlarimizga eng mos keluvchisini tanlaylik.
Avtoregressiv modellar
Bu modellar matndan tasvirga generatsiyani ketma-ket generatsiya vazifasi sifatida ko'rib chiqadi. Faqat-dekoder Transformer matn tokenlarining ketma-ketligini kirish sifatida oladi va tasvirni ifodalovchi vizual tokenlar ketma-ketligini chiqaradi. Keyin tasvir tokenizatori ushbu vizual tokenlarni haqiqiy tasvirga dekodlaydi.
Ushbu yondashuv yordamida bir nechta matndan tasvirga modellar ishlab chiqilgan, masalan OpenAI ning DALL-E [5] va Google ning Muse [6].
Diffuziya modellari
2019 yilda birinchi marta taqdim etilgan [7], diffuziya modellari taxminan uch yil o'tgach keng jamoatchilik e'tiborini qozondi. Ular tasodifiy shovqindan boshlash va matn so'rovi asosida uni asta-sekin aniq tasvirga aylantirish orqali matndan tasvirga generatsiya uchun boshqa yondashuvdan foydalanadi. Bu jarayon odatda matn so'rovini joylashuvga aylantiruvchi OpenAI ning CLIP [8] yoki Google ning T5 [9] kabi matn enkoderini o'z ichiga oladi. Ushbu joylashuv so'rovning ma'nosini ushlaydi va unga mos keladigan tasvirlarni generatsiya qilish uchun diffuziya modelini yo'naltiradi.¹
Diffuziya asosidagi matndan tasvirga modellar misollariga Google ning Imagen 3 [2], OpenAI ning DALL-E 2 [10] va Stability AI ning Stable Diffusion [11] kiradi.
Diffuziya va avtoregressiv modellar taqqoslanishi
Avtoregressiv modellar matndan tasvirga generatsiyani ketma-ket generatsiya vazifasi sifatida ko'rib chiqadi, diffuziya modellari esa uni iterativ takomillashtirish jarayoni sifatida ko'rib chiqadi. Modellashtrishdagi bu asosiy farq ularning qobiliyatlariga ta'sir qiladi.
Diffuziya va avtoregressiv modellar ham realistik tasvirlar ishlab chiqarishi, generatsiyada sekin, odatda milliardlab parametrlarga ega va o'qitish uchun katta hisoblash resurslari talab qilishi mumkin. Ushbu o'xshashliklaiga qaramasdan, ular uchta asosiy jihatdan farq qiladi:
- Amalga oshirish murakkabligi: Avtoregressiv modellar ham o'qitish, ham xulosa chiqarish vaqtida amalga oshirish osonroq. O'qitish vaqtida ular bitta oldinga-orqaga o'tishda barcha qadamlardan foydali gradient signallar olishi mumkinligi sababli statistik jihatdan samaraliroq. Bунданki farqli o'laroq, diffuziya modellari har bir o'quv namunasi uchun turli shovqin darajalarini namunalashni talab qilib, statistik jihatdan kamroq samarali. Xulosa chiqarish vaqtida, bir marta avtoregressiv modeldagi Transformer vizual tokenlar ketma-ketligini generatsiya qilsa, ushbu tokenlar yakuniy tasvirni tashkil qiladi. Biroq, diffuziya modellari tasvirni ko'p qadamda takomillashtiradi va amalga oshirishga murakkablik qo'shadi.
- Tasvir sifati: Diffuziya modellari yuqori darajada batafsil va realistik tasvirlar generatsiyasida yaxshiroq samaradorlikni namoyish etdi. Ularning iterativ jarayoni modelga nozik tafsilotlarni uzluksiz takomillashtirish va yaxshilash imkonini beradi va generatsiya qilingan tasvirlarda umumiy realizimda ustunlikka olib keladi.
- Namuna olishdagi moslashuvchanlik: Diffuziya modellari namuna olish tezligi va tasvir sifatini almashtirishda yanada moslashuvchan. Ular namuna olish qadamlar sonini osongina sozlashi mumkin — ko'proq qadam odatda yuqori sifatli tasvirlarga olib keladi, lekin ko'proq vaqt oladi. O'qitilgandan so'ng, avtoregressiv model bunday sozlamalarni osongina amalga oshira olmaydi.
Ushbu bobda biz istisno tasvir sifatini ustuvor qo'yish uchun diffuziya modellarini tanlaymiz. Model ishlab chiqish bo'limida diffuziya modellarining arxitekturasi, o'qitish usullari va namuna olish texnikalarini ko'rib chiqamiz.
Ma'lumotlarni Tayyorlash
Bizning datasetimiz taxminan 500 million tasvir-sarlavha juftlaridan iborat. Biroq, katta miqyosli datasetlar ko'pincha model o'qitish uchun ishlatilishidan oldin katta hajmdagi oldindan qayta ishlashni talab qiladi. Ushbu bo'limda biz diffuziya o'qitishi uchun tasvirlar va sarlavhalarni tayyorlashning keng tarqalgan texnikalarini ko'rib chiqamiz.
Tasvirlarni tayyorlash
Tasvirlarni tayyorlash uchun ikki asosiy qadamga e'tibor qaratamiz: noo'rin tasvirlarni filtrlash va qolganlarni standartlashtirish. Keling, har bir qadamni batafsil ko'rib chiqaylik.
Noo'rin tasvirlarni filtrlash
Katta miqyosli datasеtlarda ko'plab tasvirlar o'qitish uchun foydali bo'lmasligi mumkin. Model faqat yuqori sifatli va xavfsiz ma'lumotlardan o'rganishini ta'minlash uchun bularni olib tashlash juda muhim. Bunga erishish uchun quyidagi qadamlarni bajaramiz:
- Kichik tasvirlarni olib tashlash: Biz tasvir o'lchami muayyan chegaradan, masalan 64×64 pikseldan kichik bo'lgan tasvir-sarlavha juftlarini olib tashlaymiz. Kichik tasvirlar ko'pincha past sifatli bo'ladi va o'qitish uchun qimmatli ma'lumot bermasligi mumkin.
- Tasvirlarni deduplikatsiya qilish: Bir xil yoki pertseptual jihatdan o'xshash tasvirlarni olib tashlash uchun [12] kabi deduplikatsiya usullarini qo'llaymiz. Bu modellning muayyan tasvirlarga ko'proq moyil bo'lishini oldini oladi.
- Noo'rin tasvirlarni olib tashlash: Zo'ravonlik yoki yalang'ochlik kabi zararli kontentni filtrlash uchun zarar aniqlash va NSFW (ish uchun xavfsiz emas) aniqlash modellaridan foydalanamiz. Bu model noo'rin tasvirlar generatsiyasini o'rganmasligini ta'minlaydi.
- Past estetikali tasvirlarni olib tashlash: Estetik jihatdan chiroyli bo'lmagan tasvirlarni yo'q qilish uchun ixtisoslashgan ML modellaridan foydalanamiz. Bu modelga o'qitish davomida yuqori sifatli tasvirlarga e'tibor qaratish imkonini beradi.
Tasvirlarni standartlashtirish
- Tasvir o'lchamlarini sozlash: Diffuziya modeli muayyan o'lchamlardagi kirishlarni talab qiladi. Shu sababli, o'quv ma'lumotlari bir xil o'lchamlarda bo'lishi muhim. Masalan, agar kutilgan model kirishi 128x128 bo'lsa, avval kichikroq o'lcham 128 bo'lishi uchun tasvirlarni o'lchaymiz va nisbatni saqlaymiz. Keyin ularni 128x128 yakuniy o'lchamga erishish uchun markazdan kesamiz.
- Tasvirlarni normallashtirish: Yanada barqaror o'qitish uchun piksel qiymatlarini [0, 1] yoki [-1, 1] kabi standart diapazoniga normallashtiramiz.
Sarlavhalarni tayyorlash
Tasvirlarga qo'shimcha ravishda, sarlavhalar ko'pincha tegishsiz yoki yo'q. Sarlavhalarning izchil va yuqori sifatli bo'lishini ta'minlashning keng tarqalgan qadamlari:
- Yo'q yoki ingliz tilida bo'lmagan sarlavhalarni ko'rib chiqish: Sarlavhasiz yoki boshqa tilda sarlavhali tasvirlar uchun tavsiflovchi sarlavhalarni avtomatik yaratish uchun BLIP-3 [13] kabi tasvir yozuv modelidan foydalanamiz. Agar tasvir yozuv tizimini noldan qurish istasangiz, 5-bobga murojaat qiling.
- Sarlavhalarni yaxshilash: Har bir tasvir-sarlavha juftining tegishliligini baholash uchun CLIP [8] kabi oldindan o'qitilgan modeldan foydalanamiz. Chegara pastidagi ballga ega juftlar uchun asl sarlavhani BLIP-3 modeli yordamida avtomatik yaratilgan bilan almashtiramiz.
- Yomon mos juftlarni olib tashlash: Sarlavhalarni yaxshilashdan so'ng, CLIP o'xshashlik ballari chegara pastida bo'lgan tasvir-sarlavha juftlarini olib tashlaymiz. Bu qadam model faqat sarlavhalari tasvirlarni aniq tasvirlovchi juftlarga duch kelishini ta'minlaydi.
Model Ishlab Chiqish
Arxitektura
Diffuziya modeli, avval tushuntirilganidek, aniq bo'lguncha ko'p qadamlar davomida shovqinli tasvirni asta-sekin shovqinsizlashtiradi. Har bir qadamda, 7-rasmda ko'rsatilganidek, model shovqinli tasvirni kirish sifatida qabul qiladi va olib tashlanishi kerak bo'lgan shovqinni bashorat qiladi.² Bu maqsad uchun odatda ikki keng tarqalgan arxitektura qo'llaniladi:
- U-Net
- Diffuziya Transformer (DiT)
U-Net
U-Net [14] — dastlab biomeditsina tasviri segmentatsiyasi uchun ishlab chiqilgan konvolyutsion neyron tarmoq (CNN) arxitekturasi. U 8-rasmda ko'rsatilganidek, bir qator downsampling bloklaridan keyin upsampling bloklardan iborat.
Downsampling bloklari
Downsampling bloklari chuqurlikni (kanallar soni) oshirib, fazoviy o'lchamlarni (balandlik va kenglik) asta-sekin kamaytiradi va kirishning siqilgan vakilligiga olib keladi. Har bir downsampling bloki odatda quyidagilardan iborat:
- Konvolyutsiya operatsiyasi: Kirishdan vizual xususiyatlarni ajratib oladi.
- Paket normallashtirish: O'qitishni barqarorlashtirrish uchun xususiyat xaritalarini normallashtiradi.
- Chiziqsiz aktivatsiya: Murakkab naqshlarni o'rganish uchun chiziqsizlik kiritadi.
- Maksimal pul: Xususiyat xaritasi o'lchamlarini kamaytiradi.
- O'zaro e'tibor: Matn so'rovi tokenlari kabi qo'shimcha shartlarga o'zaro e'tibor qaratadi. Bu matn so'rovining bashorat qilingan shovqinga ta'sir qilishini ta'minlash uchun zarur.
O'zaro e'tibor qatlamini batafsil ko'rib chiqaylik, chunki bu turli modalliklar — tasvir va matn kirishlari o'rtasida o'zaro e'tiborni qo'llayotgan birinchi holat. Matn so'rovi Transformer asosidagi model kabi matn enkoderi tomonidan qayta ishlanadi va so'zlar yoki tokenlarni uzluksiz joylashuvlar ketma-ketligiga aylantiradi. Ushbu joylashuvlar matnning semantik ma'nosini ushlaydi. Diffuziya jarayonining har bir shovqinsizlashtirish qadamida model shovqinli tasvirni kirish sifatida qabul qiladi va vizual xususiyatlarni ajratib olish uchun Conv2D va BatchNorm2D kabi qatlamlar orqali qayta ishlaydi. O'zaro e'tibor qatlamida so'rovlar tasvir xususiyatlaridan olinadi, kalitlar va qiymatlar esa matn joylashuvlaridan keladi. Bu modelga matndan ma'lumotni tasvir xususiyatlariga samarali uyg'unlashtirish va integratsiya qilish imkonini beradi.
Upsampling bloklari
Upsampling bloklari simmetrik ravishda fazoviy o'lchamlarni oshiradi va xususiyat xaritasi chuqurligini kamaytiradi. Yakuniy chiqish asl kirish o'lchamiga mos keladi, bu holda bashorat qilingan shovqindir. Har bir upsampling bloki quyidagilardan iborat:
- Transpozitsiya konvolyutsiyasi: Xususiyat xaritasining o'lchamlarini qayta ishlash va oshirish uchun PyTorch ning ConvTranspose2D kabi operatsiyalardan foydalanadi.
- Paket normallashtirish: O'qitishni barqarorlashtirrish uchun xususiyat xaritalarini normallashtiradi.
- Chiziqsiz aktivatsiya: Murakkab naqshlarni o'rganish uchun chiziqsizlik kiritadi.
- O'zaro e'tibor: Upsampling davomida qo'shimcha shartlarning ta'sirini saqlab qoladi.
U-Net arxitekturasi turli tafsilotlar va variatsiyalarga ega. Turli amalga oshirishlar turli qatlamlar va konfiguratsiyalardan foydalanishi mumkin. Biroq, asosiy komponentlar va strukturani tushunish odatda ko'pchilik ML tizim dizayni suhbatlari uchun yetarli. Batafsil ma'lumot uchun [14] ga murojaat qiling.
DiT
DiT [15] — diffuziya modellarida yana bir mashhur arxitektura. Bir qator downsampling va upsampling qatlamlaridan foydalanadigan U-Net dan farqli o'laroq, DiT asosan shovqinli kirish tasvirini qayta ishlash va shovqinni bashorat qilish uchun Transformer arxitekturasiga tayanadi.
DiT asosan 5-bobda muhokama qilingan Vision Transformer (ViT) [16] arxitekturasidan ilhom oladi. DiT komponentlari:
- Patchify: Kirish tasvirini parcha joylashuvlar ketma-ketligiga aylantiradi.
- Pozitsion kodlash: Har bir parcha joylashuviga asl tasvirda uning joylashuvini ko'rsatish uchun pozitsiya ma'lumotlarini biriktiradi.
- Transformer: Joylashuvlar ketma-ketligini va matn so'rovi kabi boshqa shartlash signallarini qayta ishlaydi va har bir parcha uchun shovqinni bashorat qiladi.
- Unpatchify: Bashorat qilingan shovqin vektorlari ketma-ketligini asl kirish tasviri bilan bir xil o'lchamdagi tasvirga aylantiradi.
Xulosa qilib aytganda, U-Net va DiT arxitekturalari amalda yaxshi ishlaydi. U-Net dastlab Google ning Imagen [17] va Stability AI ning Stable Diffusion [11] kabi bir nechta matndan tasvirga modellarda ishlatilgan. Yaqinda DiT arxitekturasi matndan tasvirga generatsiya uchun katta istiqbolni ko'rsatdi. Ta'lim maqsadida ushbu bobda U-Net arxitekturasidan foydalanamiz. 11-bob DiT arxitekturasini batafsil ko'rib chiqadi.
O'qitish
Diffuziya modeli diffuziya jarayonidan foydalanib o'qitiladi. Diffuziya jarayonining ikki bosqichi bor:
- Oldinga jarayon
- Orqaga jarayon
Oldinga jarayon
Shovqin qo'shish jarayoni deb ham ataladigan oldinga jarayonda, tasvir butunlay shovqinli bo'lguncha ko'p qadamlar (t yoki vaqt qadamlari deb belgilangan) davomida tasvirga asta-sekin shovqin qo'shiladi. t ning qiymati, qadamlar sonini ifodalab, odatda diapazondan, odatda 1 dan 1 000 gacha tasodifiy tanlanadi. Oldinga jarayon hech qanday ML modellari yoki parametrlar yangilanishini o'z ichiga olmaydi.
Orqaga jarayon
Shovqinsizlashtirish jarayoni deb ham ataladigan orqaga jarayonda, ML model oldinga jarayonni teskari yo'naltirish uchun o'rganadi. Har bir qadamda model shovqinli tasvirдаги shovqinni bashorat qiladi. Bu bashorat qilingan shovqin keyin kirish tasvirining shovqinini kamaytirish uchun ishlatiladi. 13-rasmda ko'rsatilganidek, bu jarayon tasvir aniq bo'lguncha qaytariladi.
Oldinga va orqaga jarayonlarning ikkalasini tushunib, endi ular diffuziya o'qitish jarayonida qanday qo'llanilishini ko'rib chiqishimiz mumkin.
Diffuziya o'qitish jarayoni
O'qitish davomida oldinga jarayonni simulyatsiya qilish orqali asl tasvirga shovqin kiritamiz, keyin esa modeldan ushbu shovqinni bashorat qilishini so'raymiz. Bu jarayon to'rtta asosiy qadamni o'z ichiga oladi:
- Shovqin qo'shish
- Shartlash signallarini tayyorlash
- Shovqin bashorati
- ML maqsadi va yo'qotish hisoblash
Ushbu bo'lim qiziquvchilar uchun ba'zi matematik formulalarni o'z ichiga oladi, lekin tafsilotlar ML tizim dizayniga ta'sir qilmaydi.
. Shovqin qo'shish
Birinchi qadam — ko'p vaqt qadamlari davomida asl tasvirga shovqin qo'shish orqali oldinga diffuziya jarayonini simulyatsiya qilish. Har bir vaqt qadamida Gauss shovqinini qo'shib tasvirni biroz buzmiz. Ushbu asta-sekin shovqin qo'shish vaqt o'tishi bilan tasvirni sof shovqinga aylantiradi.
Har bir vaqt qadamida qo'shiladigan shovqin miqdori shovqin jadvali bilan boshqariladi. Shovqin jadvali dispersiya parametrlari to'plami bilan aniqlanadi, 1, 2, ...,T, bu yerda T vaqt qadamlari umumiy sonini ifodalaydi. Har bir t(0,1) t vaqt qadamida qo'shiladigan shovqin miqdorini boshqaradi.
Shovqin jadvali odatda β\betaβ qiymatlarini asta-sekin oshiradi:
Shunday qilib, dastlabki qadamlarda kamroq shovqin qo'shiladi va asl tasvirning ko'proq qismi saqlanadi, keyingi qadamlarda esa ko'proq shovqin qo'shiladi va diffuziya jarayoni tezlashadi.
Shovqin jadvali aniqlangach, shovqin qo'shish formulasi yordamida ttt vaqt qadamidagi shovqinli ma'lumotlarni ifodalashimiz mumkin:
bu yerda:
- xtx_txt — ttt vaqt qadamidagi shovqinli tasvir,
- xt−1x_{t-1}xt−1 — t−1t-1t−1 vaqt qadamidagi shovqinli tasvir,
- ϵ\epsilonϵ — standart normal taqsimot N(0,I)N(0, I)N(0,I) dan namuna olingan Gauss shovqini,
- βt\beta_tβt — t vaqt qadamidagi dispersiya jadvali parametri, qo'shiladigan shovqin miqdorini boshqaradi.
Ko'p qadamlar bo'ylab iterativ ravishda shovqin qo'shish vaqt talab qilishi mumkin. Buning o'rniga, ttt vaqt qadamidagi shovqinli ma'lumotlar asl ma'lumotlardan, x0x_0x0, to'g'ridan-to'g'ri olinishi mumkinligi ko'rsatilgan:
bu yerda:
- xtx_txt — ttt vaqt qadamidagi shovqinli tasvir,
- αt=1−βt\alpha_t=1-\beta_tαt=1−βt va αt′=∏i=1tαi\alpha_t^{\prime}=\prod_{i=1}^t \alpha_iαt′=∏i=1tαi — βt\beta_tβt ning qayta parametrizatsiyalari,
- ϵ\epsilonϵ — standart normal taqsimot N(0,I)N(0, I)N(0,I) dan namuna olingan Gauss shovqini.
Xulosa qilib aytganda, shovqin qo'shish vaqtida biz tasodifiy ttt ni tanlaymiz va har bir vaqt qadamida iterativ ravishda shovqin qo'shmasdan, quyidagi formula yordamida x0x_0x0 dan to'g'ridan-to'g'ri xtx_txt ni hisoblaymiz:
. Shartlash signallarini tayyorlash
Qo'shilgan shovqinni bashorat qilish uchun model odatda ikki qo'shimcha ma'lumotni kutadi: tasvir sarlavhasi va shovqin darajasini ko'rsatuvchi namuna olingan vaqt qadami, ttt. 14-rasmda ko'rsatilganidek, model tomonidan qayta ishlanishi uchun ushbu shartlash signallarini har birini tayyorlash uchun alohida enkoderladan foydalanamiz.
. Shovqin bashorati
Diffuziya modelini o'qitishning asosiy maqsadi — oldinga diffuziya jarayonini teskari yo'naltirish uchun, ya'ni asl ma'lumotlarni, x0x_0x0, uning shovqinli versiyasidan, xtx_txt, qayta tiklash uchun o'rganish. To'g'ridan-to'g'ri x0x_0x0 ni bashorat qilish unchalik samarali emasligi ko'rsatilgan. Buning o'rniga, modelni oldinga jarayon davomida qo'shilgan shovqinni, ϵ\epsilonϵ, bashorat qilishga o'qitish vazifani soddalashtiradi va samaradorlikni yaxshilaydi. Shu sababli, ushbu qadamda model shovqinli kirish, xtx_txt, va vaqt qadami, t berilganda shovqinni, ϵ\epsilonϵ, bashorat qiladi.³
. ML maqsadi va yo'qotish hisoblash
ML maqsadi — haqiqiy shovqin, ϵ\epsilonϵ, va modelning bashorati o'rtasidagi farqni minimallashtirishdir. Qo'llaniladigan yo'qotish funksiyasi — haqiqiy shovqin va bashorat qilingan shovqin o'rtasidagi o'rtacha kvadrat xato (MSE):
bu yerda:
- ttt — {1,2,…,T}\{1,2, \ldots, T\}{1,2,…,T} dan bir tekis namuna olingan vaqt qadami,
- ϵ∼N(0,I)\epsilon \sim N(0, I)ϵ∼N(0,I) — oldinga jarayonda qo'llaniladigan Gauss shovqini,
- xtx_txt — shovqin qo'shish formulasi yordamida hisoblangan ttt vaqt qadamidagi shovqinli ma'lumot,
- ϵθ(xt,t)\epsilon_\theta\left(x_t, t\right)ϵθ(xt,t) — neyron tarmoq modeli (U-Net yoki DiT) ning bashorati.
O'qish tajribasini yaxshilash uchun biz barcha matematika tafsilotlarini, masalan boshqarib bo'ladigan o'rtachaning kelib chiqishi va yo'qotishni soddalashtirish kabi masalalarni tushirib qoldirdik. Diffuziya o'qitishi haqida ko'proq ma'lumot olish uchun [18] ga murojaat qiling.
Namuna olish
Namuna olish o'qitilgan diffuziya modelidan yangi tasvir generatsiyasini anglatadi. Ushbu bo'limda diffuziya modellarida namuna olishning qanday ishlashini va shovqinlarning matn so'roviga yo'naltirilgan izchil tasvirlarga qanday aylantirilishini ko'rib chiqamiz.
Namuna olish jarayoni odatda Gauss taqsimotidan olingan tasodifiy piksellar tasviridan boshlanadi. Keyin model bu tasvirni qadam-qadam asta-sekin takomillashtiradi. Har bir qadamda diffuziya modeli joriy tasvirda mavjud shovqinni bashorat qiladi va bu bashoratni tasvirni to'g'ri yo'nalishda biroz sozlash uchun ishlatadi. Bu asta-sekin takomillashtirish davom etib, har bir qadam aniqroq tasvir ishlab chiqaradi va aniq va batafsil tasvir erishilguncha davom etadi.
Yuqorida tasvirlangan asosiy namuna olish jarayonining ikki kamchiligi bor. Birinchidan, u ko'pincha matn so'roviga aniq mos keladigan tasvirlar generatsiya qilishda muvaffaqiyatsiz bo'ladi. Ikkinchidan, u sekin, chunki har bir namunani generatsiya qilish ko'p iterativ qadamlarni talab qiladi. Yuqorida tavsiflangan muammolarni yumshatish uchun amalda quyidagi ikki texnika keng qo'llaniladi:
- Klassifikator-free yo'naltirish (CFG): CFG [19] diffuziya modellarida tasvirlar va matn so'rovlari o'rtasidagi uyg'unlikni yaxshilaydi. O'qitish davomida model matn so'rovi bilan va uning oldida tasvirlar generatsiya qilishni o'rganadi. Namuna olish vaqtida CFG ushbu ikki rejim o'rtasidagi muvozanatni sozlaydi. CFG shartlangan (matn so'rovi) rejimning ta'sirini oshirib va shartlanmagan (matn so'rovi yo'q) rejimni kamaytirish orqali generatsiya qilingan tasvirlarning matn so'rovlariga yaqinroq mos kelishini ta'minlaydi. Ushbu sozlash diffuziya jarayonini yanada aniq natijalar ishlab chiqarishga yo'naltiradi. CFG haqida ko'proq bilish uchun [19] ga murojaat qiling.
- Diffuziya qadamlarini kamaytirish: DDIM [20] kabi namuna olish algoritmlari standart 1 000 dan 20 tagacha diffuziya qadamlarini kamaytiradi. Bu tasvir sifatini saqlab qolish bilan generatsiya jarayonini sezilarli darajada tezlashtiradi. DDIM haqida ko'proq bilish uchun [20] ga murojaat qiling.
Ko'pchilik ML tizim dizayni suhbatlarida e'tibor yuqori darajadagi tushunchalarga va komponentlarning birgalikda qanday ishlashiga qaratiladi, nozik tafsilotlarga emas. Agar diffuziya modellarini chuqurroq o'rganishni istasangiz, [21][19][20] ga murojaat qiling.
Matndan tasvirga diffuziya modellaridagi qiyinchiliqlar
Diffuziya modellari odatda juda katta. Masalan, DALLE-2 da 3,5 milliard parametr bor [10]. Ushbu quvvat zarur, chunki bu modellar xilma-xil tushunchalar, shakllar va uslublarni o'rganishi kerak.
Bunday katta modellarni o'qitish ham o'qitish, ham namuna olish vaqtida bir nechta qiyinchiliklarni keltirib chiqaradi. Eng keng tarqalganlari quyidagilarni o'z ichiga oladi:
- Resurs talab qiluvchi model o'qitish
- Sekin tasvir generatsiyasi
Resurs talab qiluvchi model o'qitish
Diffuziya modellarini o'qitish hisoblash jihatdan intensiv bo'lib, katta ishlov berish quvvatini talab qiladi. U shuningdek model o'lchamlari va generatsiya qilingan tasvirlarning yuqori o'lchamli tabiati sababli katta GPU xotirasini talab qiladi. Ko'pchilik zamonaviy GPUlar o'qitish vaqtida model parametrlari, aktivatsiyalar va gradientlarni saqlash uchun etarli xotiraga ega bo'lmasligi mumkin. Ushbu qiyinchiliklarni bartaraf etish uchun quyidagi strategiyalar keng qo'llaniladi:
- Aralash aniqlikli o'qitish: Ushbu texnika xotira foydalanishini kamaytirish va hisoblash samaradorligini oshirish uchun 16-bit va 32-bit o'zgaruvchan nuqta turlarini birga ishlatadi. Ko'proq bilish uchun [22] ga murojaat qiling.
- Model va ma'lumotlar parallelligi: Ushbu usullar o'qitishni bir nechta qurilmalar bo'ylab taqsimlab beradi. FSDP [23] va Deepspeed [24] kabi ko'pchilik tarqalgan o'qitish freymvorklari turli parallellizm texnikalarini qo'llab-quvvatlaydi.
- Latent diffuziya modellari: Bu modellar piksel fazosi o'rniga pastki o'lchamli fazoda ishlaydi va o'qitish va xulosa chiqarishni sezilarli darajada tezlashtiradi. 11-bob ushbu yondashuvni batafsil ko'rib chiqadi.
Sekin tasvir generatsiyasi
Diffuziya modellarida matndan tasvirlarni generatsiya qilish ikki asosiy sabab bilan sekin. Birinchidan, diffuziya namuna olish jarayonining ketma-ket tabiatiga ko'ra, tasvirni takomillashtirish uchun bir nechta qadamlar kerak. Ikkinchidan, diffuziya modellari milliardlab parametrlarga ega bo'lganligi sababli, har bir qadamda sezilarli hisoblashlar amalga oshiriladi.
Ushbu qiyinchiliqni yumshatishning keng tarqalgan strategiyalari:
- Parallel namuna olish: Namuna olish vaqtida parallel qayta ishlashni joriy etish tasvirlar generatsiyasi uchun kerakli vaqtni qisqartiradi [25].
- Model distillatsiyasi: Distillatsiya qilingan model uning qisqartirilgan hajmi tufayli generatsiya tezligini yaxshilaydi, lekin asl modelning xatti-harakati va samaradorligini saqlaydi. Diffuziya modellarida model distillatsiyasi haqida ko'proq bilish uchun [26] ga murojaat qiling.
- Model kvantizatsiyasi: Ushbu texnika model og'irliklari aniqligini kamaytiradi va bu xotira foydalanishini kamaytiradi hamda generatsiyani tezlashtiradi.
Baholash
Oflayn baholash mezonlari
Matndan tasvirga modellarni baholash uchun izchil va ishonchli etalon muhim. DrawBench [17] ob'ekt kompozitsiyasi, o'zaro ta'sir va kontekstni tushunish kabi tasvir generatsiyasining turli jihatlarini sinovdan o'tkazuvchi so'rovlar tuzilgan to'plamini taqdim etish orqali ushbu maqsadga xizmat qiladi. Oddiydan murakkkabgacha bo'lgan ushbu so'rovlar model matndan tasvirlarni qanchalik aniq generatsiya qilishini baholashga yordam beradi. Uning keng qamrovliligi sababli matndan tasvirga modelimizni baholash uchun DrawBenchdan foydalanamiz. Keling, modelning tasvirlar generatsiya qilish qobiliyatining uchta asosiy sohasini baholash uchun avtomatlashtirilgan mezonlar va inson tomonidan baholashni ko'rib chiqaylik:
- Tasvir sifati
- Tasvir xilma-xilligi
- Tasvir-matn uyg'unligi
Oldingi boblarda muhokama qilinganidek, Inception score (IS) [27] va Fréchet Inception masofasi (FID) [28] tasvir generatsiyasi tizimlarida sifat va xilma-xillikni baholash uchun ikki keng tarqalgan mezondir. Ushbu bo'limda biz asosan tasvir-matn uyg'unligiga e'tibor qaratamiz.
Tasvir-matn uyg'unligi
Tasvir-matn uyg'unligi generatsiya qilingan tasvirlarning matn so'rovlariga qanchalik aniq mos kelishini anglatadi. Ushbu uyg'unlikni o'lchash muhim, chunki u generatsiya qilingan tasvirlarning foydalanuvchi kirishiga sodiq ekanligini ta'minlaydi. Buni baholashning keng tarqalgan mezoni uyg'unlik darajasini baholovchi CLIPScore [29] dir. CLIPScore ga kirishdan oldin CLIP ni qisqacha ko'rib chiqaylik.
CLIP
CLIP [8] — OpenAI tomonidan ishlab chiqilgan va tasvirlarni tegishli tavsiflariga moslashtirish uchun o'qitilgan model. U ikki enkoderdan iborat: biri matn uchun va biri tasvirlar uchun. Matn enkoderi kirish matnini matn joylashuviga aylantiradi; tasvir enkoderi tasvirni tasvir joylashuviga aylantiradi.
O'qitish vaqtida CLIP joylashuvlarni uyg'unlashtirish orqali, tegishli matn va tasvir joylashuvlarini yaqinlashtirish va tegishsizlarni uzoqlashtirish orqali o'rganadi. Bu CLIP ga ham tasvir, ham unga tegishli matn bitta fazoga moslashtiriladigan umumiy joylashuv fazosini rivojlantirishga yordam beradi.
O'qitishdan so'ng, o'xshash matn tavsiflar joylashuv fazosida bir-biriga yaqin mosl adi va tasvirlar tegishli tavsiflariga yaqin joylashadi.⁴
CLIP modelini tushunib, endi tasvir-matn uyg'unligini baholash uchun mezon sifatida CLIPScore ni osongina ko'rib chiqishimiz mumkin.
CLIPScore
CLIPScore matn tavsifi va tasvirning CLIP joylashuvlari o'rtasidagi kosinus o'xshashligini o'lchaydi. U tasvir va matn o'rtasidagi uyg'unlikni yuqori o'lchamli joylashuv fazosida qanchalik yaqin ekanligini ko'rsatadi. Yuqori ball tasvir va tavsif o'rtasidagi yaxshiroq uyg'unlikni ko'rsatadi.
Inson tomonidan baholash
Inson tomonidan baholash avtomatlashtirilgan mezonlarni quyidagi yondashuv yordamida tasvir sifati va matn uyg'unligini baholash orqali to'ldiradi:
- Tasvir sifati: Inson baholovchilari generatsiya qilingan tasvirni qaysi tasvir yanada fotoreal ekanligini baholab etalon tasvir bilan solishtiradi. Tasvir sifati generatsiya qilingan tasvir etalon tasvir o'rniga tanlangan foiz bilan aniqlanadi.
- Matn uyg'unligi: Inson baholovchilariga tasvir va uning sarlavhasi ko'rsatiladi va keyin so'raladi: "Sarlavha yuqoridagi tasvirni aniq tasvirlaydimi?" "Ha", "Qisman" va "Yo'q" javoblari mos ravishda 100, 50 va 0 ball bilan baholanadi. Matn uyg'unligini o'lchash uchun ushbu ballar generatsiya qilingan va etalon tasvirlar uchun alohida o'rtachаланadi.
Onlayn baholash mezonlari
Onlayn mezonlar model ishlab chiqarishda qanday ishlashini o'lchaydi. Matndan tasvirga modelimizni baholash uchun keng tarqalgan mezonlar quyidagilarni o'z ichiga oladi:
- Bosish tezligi (CTR): Generatsiya qilingan tasvirlarga bosadigan foydalanuvchilar foizi. Yuqori CTR foydalanuvchilar generatsiya qilingan tasvirlarni foydali topishini ko'rsatadi.
- Sahifada o'tkazilgan vaqt: Foydalanuvchilar xizmatda o'rtacha o'tkazadigan vaqt. Uzoqroq ko'rish vaqtlari foydalanuvchilarning yuqori ishtirokini ko'rsatadi.
- Foydalanuvchi fikr-mulohazasi: Foydalanuvchilardan to'g'ridan-to'g'ri fikr-mulohaza fikr-mulohaza orqali to'planadi. Ijobiy fikr-mulohaza tasvir sifati va matn uyg'unligidan qoniqishni ko'rsatadi.
- Konversiya tezligi: Generatsiya qilingan tasvirlar bilan o'zaro ta'sirdan so'ng kerakli harakat (masalan, sotib olish, ro'yxatdan o'tish) bajaruvchi foydalanuvchilar foizi. Yuqori konversiya tezligi model samaradorligidan qoniqishni ko'rsatadi.
- Kechikish: Matn so'rovidan tasvir generatsiya qilish uchun kerakli vaqt. Pastroq kechikish foydalanuvchi qoniqishi uchun muhim bo'lgan tezroq samaradorlikni ko'rsatadi.
- O'tkazuvchanlik: Model sekundiga boshqara oladigan tasvir generatsiyalari soni. Yuqori o'tkazuvchanlik xizmat ko'proq foydalanuvchilarga xizmat ko'rsatishini ta'minlaydi.
- Resurs foydalanish: Modelni ishlatish va foydalanuvchilarga xizmat ko'rsatish uchun ishlatiladigan hisoblash resurslari (masalan, CPU, GPU, xotira). Samarali resurs foydalanish xarajatlarni kamaytirish uchun muhim.
- Oyiga foydalanuvchi boshiga o'rtacha xarajat: Milliardlab parametrlarga ega modellar bilan tasvirlar generatsiya qilish qimmat. Agar foydalanuvchilar tasvirlardan norozi bo'lsa, ular yaxshiroq natijalarga umid qilib, bir xil so'rov bilan lekin turli urug'lar bilan yangi tasvirlar generatsiya qilishni qaytarishlari mumkin. Bu xatti-harakat xarajatlarimizni oshiradi. Ushbu mezonni kuzatish orqali biz xarajatlar oqlanishi mumkin bo'lishini ta'minlashimiz mumkin.
Umumiy ML Tizim Dizayni
Diffuziya modeli matndan tasvirga generatsiya tizimining yadrosida bo'lsa-da, samaradorlik, xavfsizlik va sifatni ta'minlash uchun boshqa bir nechta quvurlar muhim. Ushbu bo'limda biz quyidagi quvurlarni ko'rib chiqib matndan tasvirga generatsiya tizimining yaxlit dizaynini ko'rib chiqamiz:
- Ma'lumotlar quvuri
- O'qitish quvuri
- Model optimallashtirish quvuri
- Xulosa chiqarish quvuri
Ma'lumotlar quvuri
Ma'lumotlar quvuri noo'rin tasvirlarni olib tashlash, qolganlarini standartlashtirish va saqlash orqali o'qitish uchun ma'lumotlarni tayyorlaydi. Sarlavhalar mavjud va tegishli ekanligini ta'minlaydi va o'qitish vaqtida hisoblashni kamaytirish uchun sarlavha joylashuvlarini oldindan hisoblash va keshlash uchun Google ning T5 [9] kabi oldindan o'qitilgan modeldan foydalanadi.
O'quv ma'lumotlaridan matn-tasvir juftlarini tayyorlashdan tashqari, quvur foydalanuvchi so'rovlari, generatsiya qilingan tasvirlar va foydalanuvchi fikr-mulohazalari kabi yangi generatsiya qilingan ma'lumotlarni ham yig'adi va qayta ishlaydi. Ushbu yangi ma'lumotlar kelajakda foydalanish uchun o'quv to'plamiga qo'shiladi.
O'qitish quvuri
O'qitish quvuri ma'lumotlar quvuri tomonidan yig'ilgan eng so'nggi o'quv ma'lumotlari yordamida modelni o'qitadi.
O'qitish quvuri modelning so'nggi foydalanuvchi so'rovlariga moslashishini va yuqori sifatli generatsiya qilingan tasvirlarda o'qitilishini ta'minlaydi.
Baholash quvuri
Baholash quvuri yangi o'qitilgan modellarni joylashtirish uchun samaradorlik va sifat standartlarini qondirish-qondirmasligini aniqlash uchun oldindan belgilangan avtomatlashtirilgan mezonlar yordamida baholaydi.
Model optimallashtirish quvuri
Model optimallashtirish quvuri model samaradorligini oshirish uchun mas'ul. Modellarni optimallashtirish uchun bir nechta usullar mavjud:
- Model siqish: Model hajmi va generatsiya vaqtini kamaytirish uchun kvantizatsiya va kesish kabi texnikalardan foydalaning.
- Model distillatsiyasi: Model hajmi va generatsiya vaqtini kamaytirish uchun modelni kichikroq biriga distillatsiya qiling.
- Optimallashtirilgan algoritmlar: Tezroq generatsiya uchun namuna olishni yanada samarali algoritmlar bilan almashtiring.
Model optimallashtirish tugallangach, optimallashtirilgan model ishlab chiqarishdagi mavjud modelni almashtirishi mumkin.
Xulosa chiqarish quvuri
Xulosa chiqarish quvuri foydalanuvchi so'rovlarini boshqaradi va matn so'rovlari asosida tasvirlar generatsiya qiladi. U bir nechta komponentlardan iborat bo'lib, ularning har biri tizimning sifati va xavfsizligini ta'minlashda muhim rol o'ynaydi. Ushbu bo'limda asosiy komponentlarni ko'rib chiqamiz:
- So'rovni avtomatik to'ldirish
- So'rov xavfsizligi xizmati
- So'rovni yaxshilash
- Tasvir generatsiyasi
- Zarar aniqlash
- Super-o'lcham xizmati
So'rovni avtomatik to'ldirish xizmati
So'rovni avtomatik to'ldirish xizmati foydalanuvchi so'rovini yozayotganda real vaqtda mumkin bo'lgan keyingi so'zlar yoki iboralarni taklif qilish uchun ixtisoslashgan modeldan foydalanadi. Bu potentsial to'ldirishlarni taqdim etib foydalanuvchi tajribasini yaxshilaydi.
So'rov xavfsizligi xizmati
Ushbu xizmat foydalanuvchi so'rovlarini qayta ishlash va foydalanish siyosatimizni buzuvchilarni, masalan zo'ravonlik, nafratli tasvirlar yoki yalang'ochlik talablarini rad etish uchun matn klassifikatsiyasi modelidan foydalanadi.
Ushbu xizmat tizimning xavfsizlik standartlariga rioya qilishini ta'minlaydi va noo'rin tasvirlar generatsiyasining oldini oladi.
So'rovni yaxshilash
So'rovni yaxshilash komponenti foydalanuvchi so'rovlarini ularning aniqligini, izchilligini va tafsilotlarini yaxshilash uchun takomillashtiradi.
Ushbu komponent ilg'or tasvir va video generatsiyasi tizimlarida keng qo'llaniladi [30], chunki u modelga yaxshiroq chiqishlar ishlab chiqarishda samarali yordam beradi. U modelga yanada izchil va batafsil so'rovni taklif qilish orqali generatsiya qilingan tasvirlar sifatini yaxshilaydi.
Tasvir generatsiyasi
Tasvir generatsiyasi komponenti xulosa chiqarish quvurining yadrosidir. U yaxshilangan matn so'rovini tokenlar ketma-ketligiga kodlash uchun T5 matn enkoderi bilan o'zaro ta'sir qiladi. Ushbu tokenlar har bir so'rov uchun bir yoki bir nechta tasvirlar generatsiya qilish uchun diffuziya modeliga uzatiladi.
Zarar aniqlash
Ushbu komponent generatsiya qilingan tasvirlarning foydalanuvchilar uchun xavfsiz ekanligini ta'minlaydi. Agar tasvir oldingi himoya choralari shovqinsizlantirishiga qaramasdan hali ham zo'ravonlik yoki yalang'ochlikni o'z ichiga olsa, komponent uni belgilaydi va ko'rsatilishini bloklab qo'yadi.
Super-o'lcham xizmati
Super-o'lcham xizmati generatsiya qilingan tasvirlarning o'lchamini oshiradi. Bu qadam yakuniy chiqishning vizual jihatdan jozibali va o'lcham talablarini qondiruvchi bo'lishini ta'minlaydi.
Amalda, matndan tasvirga tizimlar ko'pincha kamida bitta super-o'lcham modelidan foydalanadi, chunki diffuziya modellari odatda to'g'ridan-to'g'ri yuqori o'lchovli tasvirlar generatsiya qila olmaydi. Buning o'rniga, diffuziya modeli pastroq o'lchamda o'qitiladi va ixtisoslashgan super-o'lcham modellari o'lchamni oshiradi. Masalan, asosiy model 64x64 tasvir generatsiya qilishi mumkin, birinchi super-o'lcham modeli uni 256x256 ga oshiradi va ikkinchi model uni 1024x1024 ga oshiradi. Google ning [31] kerakli o'lchamga erishish uchun ushbu yondashuvga amal qiladi.
Xulosa qilib aytganda, turli quvurlar matndan tasvirga tizimning ishonchli, yuqori sifatli va xavfsiz bo'lishini ta'minlash uchun birgalikda ishlaydi. Ma'lumotlar quvuri uzluksiz yaxshilash uchun asos yaratadi, o'qitish va model optimallashtirish quvurlari esa model samaradorligini oshiradi. Xulosa chiqarish quvuri xavfsiz, samarali va yuqori sifatli tasvir generatsiyasini ta'minlaydi. Ushbu quvurlar haqiqiy dunyo qiyinchiliqlariga tayyor tizimni yaratadi.
Boshqa Muhokama Mavzulari
Suhbat oxirida vaqt qolsa, quyidagi qo'shimcha mavzularni muhokama qilish mumkin:
- Tezroq tasvir generatsiyasi uchun izchillik modellaridan foydalanish [26].
- Sifatni yaxshilash uchun RLHF dan foydalanish [32].
- Inpainting va outpainting ilovalarini qo'llab-quvvatlash uchun matndan tasvirga modelni kengaytirish [33].
- Matndan tasvirga modelini muayyan tushunchaga moslashtirrish (10-bob).
- Turli rejalashtirish texnikalarining tafsilotlari [34].
- DDPM va DDIM tafsilotlari, ularning nazariy asoslari bilan birga [20][18].
- Patch n' Pack [35] kabi texnikalardan foydalanib bir nechta nisbat tomonlari va o'lchamlarni qo'llab-quvvatlash.
- Qayta yozuv modelini ishlab chiqish tafsilotlari [36][37][13].
- Yo'naltirish bilan xilma-xillik-sodiqlik kompromissini yaxshilash [19].
- ControlNet [38] kabi texnikalardan foydalanib generatsiya qilingan tasvirlar ustidan yanada kengaytirilgan boshqaruv.
- Generatsiya qilingan tasvirlarning uslubini boshqarish [39].
Xulosa
Adabiyotlar
[1] OpenAI's DALL-E 3. https://openai.com/index/dall-e-3/. [2] Imagen 3. https://arxiv.org/abs/2408.07009. [3] Adobe's Firefly. https://www.adobe.com/products/firefly.html. [4] Introducing ChatGPT. https://openai.com/index/chatgpt/. [5] Zero-Shot Text-to-Image Generation. https://arxiv.org/abs/2102.12092. [6] Muse: Text-To-Image Generation via Masked Generative Transformers. https://arxiv.org/abs/2301.00704. [7] Generative Modeling by Estimating Gradients of the Data Distribution. https://arxiv.org/abs/1907.05600. [8] Learning Transferable Visual Models From Natural Language Supervision. https://arxiv.org/abs/2103.00020. [9] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. https://arxiv.org/abs/1910.10683. [10] Hierarchical Text-Conditional Image Generation with CLIP Latents. https://arxiv.org/abs/2204.06125. [11] High-Resolution Image Synthesis with Latent Diffusion Models. https://arxiv.org/abs/2112.10752. [12] On the De-duplication of LAION-2B. https://arxiv.org/abs/2303.12733. [13] xGen-MM (BLIP-3): A Family of Open Large Multimodal Models. https://www.arxiv.org/abs/2408.08872. [14] U-Net: Convolutional Networks for Biomedical Image Segmentation. https://arxiv.org/abs/1505.04597. [15] Scalable Diffusion Models with Transformers. https://arxiv.org/abs/2212.09748. [16] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. https://arxiv.org/abs/2010.11929. [17] Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding. https://arxiv.org/abs/2205.11487. [18] Denoising Diffusion Probabilistic Models. https://arxiv.org/abs/2006.11239. [19] Classifier-Free Diffusion Guidance. https://arxiv.org/abs/2207.12598. [20] Denoising Diffusion Implicit Models. https://arxiv.org/abs/2010.02502. [21] Introduction to Diffusion Models. https://lilianweng.github.io/posts/2021-07-11-diffusion-models/. [22] Mixed Precision Training. https://arxiv.org/abs/1710.03740. [23] FSDP tutorial. https://pytorch.org/tutorials/intermediate/FSDP_tutorial.html. [24] DeepSpeed. https://github.com/microsoft/DeepSpeed. [25] Parallel Sampling of Diffusion Models. https://arxiv.org/abs/2305.16317. [26] Consistency Models. https://arxiv.org/abs/2303.01469. [27] Inception score. https://en.wikipedia.org/wiki/Inception_score. [28] FID calculation. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance. [29] CLIPScore: A Reference-free Evaluation Metric for Image Captioning. https://arxiv.org/abs/2104.08718. [30] Sora overview. https://openai.com/index/video-generation-models-as-world-simulators/. [31] Imagen Video: High Definition Video Generation with Diffusion Models. https://arxiv.org/abs/2210.02303. [32] Finetune Stable Diffusion Models with DDPO via TRL. https://huggingface.co/blog/trl-ddpo. [33] Kandinsky: an Improved Text-to-Image Synthesis with Image Prior and Latent Diffusion. https://arxiv.org/abs/2310.03502. [34] On the Importance of Noise Scheduling for Diffusion Models. https://arxiv.org/abs/2301.10972. [35] Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution. https://arxiv.org/abs/2307.06304. [36] InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks. https://arxiv.org/abs/2312.14238. [37] BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. https://arxiv.org/abs/2301.12597. [38] Adding Conditional Control to Text-to-Image Diffusion Models. https://arxiv.org/abs/2302.05543. [39] StyleDrop: Text-to-image generation in any style. https://research.google/blog/styledrop-text-to-image-generation-in-any-style/.
Izohlar
- Amalda, biz diffuziya modeliga vaqt qadami kabi qo'shimcha shartlash kirishlarini ham beramiz. Bu o'qitish bo'limida batafsil muhokama qilinadi. ↩
- Soddaligi uchun, diffuziya modeliga vaqt qadami kirishini tushirib qoldirdik. Bu o'qitish bo'limida batafsil ko'rib chiqiladi. ↩
- Soddaligi uchun, biz faqat shovqinli tasvir, xt va vaqt qadami, t ni kirish sifatida kiritamiz. Avval aytib o'tilganidek, shartlash signallari ham kirishlar sifatida kiritilishi mumkin. ↩
- Soddaligi uchun, joylashuv fazosi 2D da ko'rsatilgan. Aslida, d joylashuv hajmini ifodalagan holda u d-o'lchamli fazodir. ↩
Moslashtirilgan Portret Generatsiyasi
Kirish
Moslashtirilgan matndan tasvirga (T2I) modellar generativ AIning rivojlanayotgan ilovalari qatoriga kiradi. Tasavvur qiling, siz T2I modeldan do'stingiz Jon haqida "Jon stulda o'tirib kitob o'qiyapti" so'rovi bilan tasvir yaratishini so'rayapsiz. Model odamni o'tirib kitob o'qiyotganini aks ettiruvchi tasvir yaratishi mumkin, lekin u "Jon"ni tasvirlamaydi. Buning uchun biz T2I modelni qiziqish ob'ektini (ya'ni, Jonni) o'rganishi uchun moslashtirish kerak.
Ushbu bobda biz muayyan shaxslarning professional sifatli portretlarini generatsiya qila oladigan moslashtirilgan T2I modelni qanday ishlab chiqishni o'rganamiz.
Talablarni Aniqlashtirish
Nomzod va intervyu oluvchi o'rtasidagi odatiy muloqot quyidagicha:
Nomzod: Generatsiya qilingan portretlar asosan LinkedIn kabi biznes profillar uchun mo'ljallanganmi? Intervyu oluvchi: To'g'ri.
Nomzod: Foydalanuvchilar turli variatsiyalarda — poza, burchak — yuzlari ko'rinadigan bir nechta rasmlarini taqdim etishini taxmin qilaman. To'g'rimi? Ulardan qancha rasm yuklashlarini so'raymiz? Intervyu oluvchi: Ha, to'g'ri. Keling, 10 dan 20 tagacha deb taxmin qilaylik.
Nomzod: Ba'zi rasmlar mos bo'lmasa-chi, masalan, juda qorong'i bo'lsa yoki yuz ko'rinmasa? Intervyu oluvchi: Biz ularni aniqlab, foydalanuvchidan yaxshiroq rasmlar taqdim etishini so'rashimiz kerak.
Nomzod: Foydalanuvchilar generatsiya qilingan tasvirlarda soch turmagi kabi xususiyatlarni belgilashi kerakmi? Intervyu oluvchi: Oddiylik uchun atribut boshqaruvi talab etilmasligini taxmin qilaylik.
Nomzod: Portretlar uchun qanday o'lcham talab etiladi? Intervyu oluvchi: Tizim 1024x1024 chiqishni qo'llab-quvvatlashi kerak.
Nomzod: Oldindan o'qitilgan umumiy T2I modeldan boshlashimiz mumkinligini taxmin qilsam bo'ladimi? Intervyu oluvchi: Ha.
Nomzod: Foydalanuvchilar generatsiya qilingan portretlarni boshqarish uchun matn so'rovlari taqdim eta oladimi? Intervyu oluvchi: Oddiy saqlashni afzal ko'ramiz, shuning uchun foydalanuvchilar matn so'rovlari bermaydi deb taxmin qiling.
Nomzod: Tizim qancha portret tasviri generatsiya qilishi kerak? Intervyu oluvchi: 50 ta tasvir.
Nomzod: Kutilgan kechikish qancha? Intervyu oluvchi: Foydalanuvchi rasmlarni taqdim etadi, biz ular tayyor bo'lganda elektron pochta orqali xabardor qilamiz. Umumiy jarayon bir soatdan kam vaqt olishi kerak.
Muammoni ML Vazifasi Sifatida Shakllantirish
Ushbu bo'limda biz portret generatsiyasini tasvir generatsiyasining muhim jihatini — moslashtirishni o'rganish uchun amaliy misol sifatida ishlatamiz. Bu jarayon oldindan o'qitilgan T2I modelni yangi sub'ektni, ya'ni foydalanuvchining yuzini o'rganishga moslashtirishni o'z ichiga oladi.
Tizimning kirishi va chiqishini belgilash
Kirish turli burchaklarda va turli pozalarda olingan foydalanuvchi yuzining bir nechta rasmlarini o'z ichiga oladi. Chiqish shaxsning professional portretlaridan iborat. Bu portretlar yuqori sifatli va xilma-xil bo'lib, shaxsning identifikatsiyasini saqlaydi.
Mos ML yondashuvini tanlash
Diffuziya modellari juda batafsil va realistik tasvirlar generatsiya qilishda g'oyat yaxshi ishlaydi. Moslashtirish uchun keng ko'lamli tasvirlarda oldindan o'qitilgan T2I modeldan asos model sifatida boshlash keng tarqalgan amaliyotdir.
Oldindan o'qitilgan T2I modelni moslashtirishning ikkita asosiy yondashuvi mavjud: sozlashga asoslangan va sozlashsiz.
Sozlashga asoslangan usullar har bir identifikatsiya uchun bir qator mos yozuvlar tasvirlari ustida T2I modelni nozik sozlaydi. Bu yondashuv yangi identifikatsiyani modelga kiritib, turli tasvirlarni generatsiya qilish imkonini beradi va identifikatsiyani saqlaydi.
Sozlashsiz usullar esa har yangi identifikatsiya uchun T2I modelni nozik sozlash zaruriyatini chetlab o'tadi. Buning o'rniga, ular oldindan o'qitilgan T2I modelni vizual encoder bilan birgalikda bir marta nozik sozlaydi. Ushbu o'qitishdan so'ng, vizual encoder yangi mos yozuvlar tasviridan xususiyatlarni ajratib oladi va ularni T2I modelga kiritadi. Bu modelga har bir identifikatsiya uchun ichki vaznlarini sozlamasdan moslashtirilgan tasvirlar generatsiya qilish imkonini beradi.
Meta'ning Imagine Yourself [1] kabi sozlashsiz usullar oddiyroq, chunki ular butun T2I modelini o'qitishdan kamroq parametrlar bilan faqat bir marta o'qitishni talab etadi. Bitta model joylashtirilishi kerak va faqat bitta mos yozuvlar tasvirga ehtiyoj bor bo'lib, bu xuddi shu oldindan o'qitilgan model bir nechta identifikatsiyalar uchun moslashtirilgan tasvirlar generatsiya qilishiga imkon beradi. Biroq, bu usullar ko'pincha yuz xususiyatlarini olish uchun bitta mos yozuvlar tasviriga tayanadi va bu turli burchaklar yoki ifodalardan barcha tafsilotlarni aks ettirmasligi mumkin. Bundan tashqari, ular sub'ektga moslashtirilgan maxsus sozlamalarni talab etadi. Masalan, [1] maxsus encoderlardan foydalanadi va sintetik juft ma'lumotlarni generatsiya qilish texnikasini taklif etadi.
Boshqa tomondan, sozlashga asoslangan usullar sub'ektning batafsilroq xususiyatlarini olishga moyil. Ular inson yuzlaridan tashqari keng ko'lamli sub'ektlarni boshqarishda ham ko'proq ko'p qirrali. Ushbu afzalliklarni hisobga olib, biz ushbu bobning qolgan qismida sozlashga asoslangan usullarga e'tibor qaratamiz. Sozlashsiz usullar haqida ko'proq bilib olishni istasangiz, [2][3][1] ga murojaat qiling.
Moslashtirishni amalga oshirish uchun bir nechta sozlashga asoslangan usullardan foydalanish mumkin, ularning har biri o'ziga xos afzallik va kamchiliklarga ega. Eng keng tarqalgan uchtasi:
- Matniy inversiya (Textual Inversion)
- DreamBooth
- Past darajali moslashtirma (LoRA)
Matniy inversiya (Textual Inversion)
Matniy inversiya [4] sub'ektni ifodalovchi yangi maxsus tokenni kiritib va uning o'rnatmasini o'rganib T2I modelni moslashtiradi. Nozik sozlash jarayonida model maxsus tokenning o'rnatmasini yangilaydi, diffuziya modeli, matn encoderi va boshqa token o'rnatmalari esa o'zgarmaydi.
Nozik sozlashdan so'ng, model maxsus token bilan so'rovga javob berib yangi sub'ektning tasvirlarini generatsiya qiladi.
Keling, matniy inversiyaning afzalliklari va kamchiliklarini ko'rib chiqaylik.
Afzalliklari:
- Samaradorlik: Matniy inversiya o'qitishi faqat yangi token o'rnatmasini o'rganishni o'z ichiga oladi, bu esa uni engil va samarali jarayon qiladi.
- Asl model imkoniyatlarini saqlash: T2I model imkoniyatlari saqlanib qoladi, chunki diffuziya modelining parametrlari o'zgarmaydi.
- Minimal xotira talablari: Har bir moslashtirilgan model uchun faqat maxsus token o'rnatmasini saqlash kerakligi sababli minimal xotira talab etiladi.
Kamchiliklari:
- Sub'ekt tafsilotlarini o'rganishdagi qiyinchilik: Matniy inversiya ko'pincha yangi sub'ekt tafsilotlarini aniq o'rganishda qiynaladi, chunki bu tafsilotlarni kodlash uchun cheklangan imkoniyatga ega. Bu cheklov yangi sub'ektning bitta token o'rnatmasi bilan ifodalanishidan kelib chiqadi.
Xulosa qilib aytganda, matniy inversiya T2I modelni moslashtirish uchun samarali usul bo'lsa-da, u ko'pincha yangi sub'ektning barcha tafsilotlarini olish va saqlashda qiynaladi.
DreamBooth
DreamBooth [5] 2023 yilda Google tomonidan taqdim etilgan mashhur moslashtirish usuli. U qiziqish sub'ektining tasvirlaridan foydalanib oldindan o'qitilgan diffuziya modelini nozik sozlaydi. Matniy inversiyadan farqli o'laroq, DreamBooth nozik sozlash jarayonida diffuziya modelining barcha parametrlarini yangilaydi. Bu modelga yangi sub'ektning tafsilotlarini yanada samarali o'rganish imkonini beradi.
DreamBooth muvaffaqiyatli nozik sozlash uchun asosan ikkita texnikaga tayanadi:
- Kam uchraydigan token identifikatori
- Sinf-maxsus oldingi saqlash yo'qotishi
Kam uchraydigan token identifikatori
Ko'pgina moslashtirish usullari qiziqish sub'ektini ifodalash uchun identifikator tanlaydi. Matniy inversiya bu maqsadda yangi token yaratsa, DreamBooth mavjud tokenlar so'z boyligidan foydalanib identifikator tanlaydi. Muallif istalgan mavjud tokenni tanlash amalda yaxshi ishlamasligini aniqlagan. Keling, umumiy yoki tasodifiy identifikator kabi oddiy yondashuvlar nima uchun ishlamasligini va kam uchraydigan token identifikatori nima uchun afzalligini o'rganib chiqaylik.
Umumiy yoki tasodifiy token identifikatoridagi muammolar
Qiziqish sub'ektini ifodalashning oddiy usuli "unique" yoki "special" kabi umumiy inglizcha so'zni tanlashdir. Bu yondashuv muammoli, chunki tokenning odatda o'rnatilgan ma'nosi bo'ladi. Masalan, agar biz "special" so'rovini qiziqish sub'ektiga murojaat qilish uchun "a special person sitting" kabi so'rov bilan ishlatmoqchi bo'lsak, model qiynalishi mumkin, chunki "special" allaqachon keng, o'rnatilgan ma'noga ega. Model bu tokenni asl ma'nosidan ajratishi va keyin yangi sub'ektga murojaat qiladigan yangi ma'no o'rganishi kerak.
Sub'ektni ifodalashning boshqa usuli belgilarni tasodifiy birlashtirish. Bu yondashuv ham muammolarni keltirib chiqaradi, chunki tokenizer har bir belgini alohida ko'rib chiqishi mumkin va bu belgilar uchun kuchli oldingi assotsiatsiyalarga olib keladi. Masalan, agar biz sub'ektni ifodalash uchun "xxy5syt00" ni tanlasak, tokenizer uni alohida belgilarga bo'lishi mumkin va ularning har birida model ichida oldindan mavjud assotsiatsiyalar bo'lishi mumkin. Bu parchalanish modelning identifikatorni noyob va yaxlit ob'ekt sifatida ko'rish o'rniga, ushbu alohida belgilar yoki kichik birliklar bilan bog'liq ma'nolar yoki naqshlarga ta'sirida chiqish generatsiya qilishiga olib keladi.
Kam uchraydigan token identifikatori qanday ishlaydi
DreamBooth bu muammolarni o'qitish ma'lumotlarida kam uchraydigan tokenlarni tanlab hal qiladi. Qiziqish sub'ektini bu tokenlar bilan ifodalash muvozanatni ta'minlaydi: ular kuchli oldingi assotsiatsiyalardan qochish uchun yetarlicha alohida, ammo tokenizerlar ularni bitta birlik sifatida ko'rishi uchun yaxlit.
Identifikator hosil qilishning bosqichma-bosqich jarayoni:
- So'z boyligida bir nechta kam uchraydigan tokenlarni aniqlash: Modelning so'z boyligi noyob IDga ega tokenlarning katta to'plamini o'z ichiga oladi. "Kam uchraydigan token" o'qitish ma'lumotlarida kamdan-kam uchraydigan tokendir. Bunday kam uchraydigan tokenlar token chastotasi taqsimotini baholash orqali aniqlanadi.
- Kam uchraydigan tokenlar ketma-ketligini generatsiya qilish: Kam uchraydigan tokenlarni aniqlaganimizdan so'ng, ushbu tokenlarning bir qismidan foydalanib ketma-ketlik generatsiya qilamiz.
- Identifikatorni shakllantirish: Tokenizer token IDlar ketma-ketligini ularning tegishli matn shakliga aylantiradi. Bu sub'ektni ifodalash uchun identifikator hosil qiladi. "XyZ", "SKS" va "[V]" identifikatorning mumkin bo'lgan misollaridir.
Sinf-maxsus oldingi saqlash yo'qotishi
DreamBooth diffuziya modelining barcha qatlamlarini nozik sozlaydi. Bu generatsiya qilingan tasvirlar sifatini oshirsa-da, modeldagi xilma-xillik yo'qolishi, ya'ni ortiqcha o'rganishga olib kelishi mumkin. Masalan, modelni muayyan itning tasvirlari ustida o'qitish boshqa itlarning tasvirlarini generatsiya qilish imkonini yo'qotishi mumkin.
Bu muammoni hal qilish uchun DreamBooth umumiy sinf xususiyatlarini saqlash maqsadida sinf-maxsus oldingi saqlash yo'qotishidan foydalanadi. Bu modelning muayyan misollarga ortiqcha o'rganishi va keng sinfga tegishli xilma-xil tasvirlar generatsiya qilish qobiliyatini yo'qotishining oldini oladi. DreamBooth yo'qotish funksiyasini o'qitish bo'limida ko'rib chiqamiz.
DreamBooth bir qancha afzalliklari va kamchiliklarga ega.
Afzalliklari:
- Sub'ekt tafsilotlarini o'rganishda samarali: Ko'proq parametrlarni yangilash modelga sub'ektning tafsilotlarini aniqroq o'rganish imkonini beradi.
- Kamroq tasvir talab etiladi: Butun diffuziya modeli yangilanganligi sababli, sub'ektni o'rganish uchun kichikroq tasvir to'plami kerak.
Kamchiliklari:
- Yuqori xotira talabi: Har bir sub'ekt uchun nozik sozlashdan so'ng, kelajakda foydalanish uchun butun diffuziya modeli saqlanishi kerak. Bu har bir sub'ekt uchun bir necha gigabayt talab qilishi mumkin, bu esa qimmat va kengaytirish qiyin.
- Resurs ko'p talab qiladi: Butun diffuziya modelini yangilash o'qitish jarayonida ko'proq GPU xotirasini talab etadi.
Xulosa qilib aytganda, DreamBooth sub'ekt tafsilotlarini samarali o'rganadi, lekin o'qitish va saqlash jihatidan qimmat. Matniy inversiya esa samarali va ixcham, ammo kamroq samara beradi. Keyingi qismda biz muvozanatli yondashuvni taklif etuvchi LoRA ni o'rganamiz.
LoRA
Microsoft [6] tomonidan taqdim etilgan LoRA juda katta modellarni samarali nozik sozlash uchun kuchli usul. Bu usul dastlab katta til modellarini (LLM) muayyan vazifalarga moslashtirishga mo'ljallangan edi, keyinchalik esa T2I moslashtirishni o'z ichiga olgan boshqa vazifalar uchun ham qabul qilindi.
LoRA ning asosiy motivatsiyasi GPT-3 [7] kabi katta oldindan o'qitilgan modellarning barcha parametrlarini nozik sozlash vaqt talab etadi va qimmat. Buning o'rniga, LoRA kichik parametrlar to'plamini kiritish va faqat ularni yangilash orqali katta modelni yangi vazifaga moslashtiradi, bu esa hisoblash xarajatlarini sezilarli darajada kamaytiradi.
Uning muhimligi sababli, keling LoRA ning matematik asoslarini batafsil ko'rib chiqaylik.
LoRA ning matematikasi
Odatiy neyron tarmoq qatlamida, og'irlik matritsasi W∈Rdout ×din W \in \mathbb{R}^{d_{\text {out }} \times d_{\text {in }}}W∈Rdout ×din kirish vektori x∈Rdinx \in \mathbb{R}^{d_{i n}}x∈Rdin ni chiqish vektori y∈Rdout y \in \mathbb{R}^{d_{\text {out }}}y∈Rdout ga aylantiradi.
Nozik sozlashning maqsadi muayyan vazifa samaradorligini oshirish uchun og'irlik parametrlari WWW ni sozlash. WWW ni to'g'ridan-to'g'ri o'zgartirish o'rniga, LoRA ikkita o'rganiluvchi past darajali matritsalar ko'paytmasi sifatida ifodalanishi mumkin bo'lgan qo'shimcha past darajali komponent ΔW\Delta WΔW ni kiritib og'irliklarni o'zgartiradi:
bu yerda:
- A∈Rdout ×drA \in \mathbb{R}^{d_{\text {out }} \times d_r}A∈Rdout ×dr,
- B∈Rdr×dinB \in \mathbb{R}^{d_r \times d_{\mathrm{in}}}B∈Rdr×din,
- din d_{\text {in }}din va dout d_{\text {out }}dout kirish va chiqish o'lchamlarini ifodalaydi,
- rrr odatda din d_{\text {in }}din va dout d_{\text {out }}dout dan ancha kichik bo'lgan, darajani ifodalovchi kichik butun son.
LoRA tomonidan kiritilgan yangi parametrlarni o'rganish to'liq matritsani nozik sozlashdan ko'ra samaraliroq. Xususan, asl matritsa WWW ning dout ×din d_{\text {out }} \times d_{\text {in }}dout ×din parametrlari bor, past darajali taxmin esa faqat r×(din +dout )r \times\left(d_{\text {in }}+d_{\text {out }}\right)r×(din +dout ) parametrlarni kiritadi. Kichik rrr qiymatlari uchun bu xotira va hisoblash bo'yicha sezilarli tejamkorlikka olib kelishi mumkin.
T2I moslashtirishda LoRA
LoRA ni oldindan o'qitilgan T2I modelga qo'llash uchun biz diffuziya modeliga o'qitiladigan parametrlarni kiritamiz va yangi identifikatsiyani o'rganish uchun nozik sozlash jarayonida faqat o'sha parametrlarni yangilaymiz. Bu usul modelning parametrlarining faqat bir qismini o'qitishni talab qiladi, bu esa ancha tez va xotira jihatidan samarali.
Afzalliklari:
- Asl model imkoniyatlarini saqlaydi: LoRA asl model parametrlarini muzlatib T2I imkoniyatlarini saqlaydi.
- Xotira va hisoblash ehtiyojlarini kamaytiradi: LoRA modelning parametrlarining faqat kichik qismini yangilaydi, bu esa uni DreamBooth'dan ko'ra samaraliroq qiladi.
- Xotira talablarini minimallaydi: Asl model o'zgarmaydi, shuning uchun faqat LoRA qatlamlari saqlanadi. Bu odatda har bir moslashtirilgan model uchun bir necha megabaytni anglatadi, bu esa xarajat jihatidan samarali va kengaytirish mumkin.
Kamchiliklari:
- Kamroq samarali o'rganish: LoRA DreamBooth'dan kamroq samarali, chunki u faqat kichik miqdordagi parametrlarni nozik sozlaydi, bu esa yangi sub'ektni o'rganish qobiliyatini cheklaydi.
- Xulosa chiqarish vaqtining biroz oshishi: LoRA qo'shimcha parametrlar va hisob-kitoblar sababli xulosa chiqarish vaqtini biroz oshiradi. Biroq, bu ko'pincha xotira talablarini kamaytirish va tezroq moslashtirish vaqtining umumiy afzalliklariga nisbatan e'tiborga olinmaydi.
1-jadval uchta sozlashga asoslangan moslashtirish usullarini taqqoslaydi.
| Matniy Inversiya | LoRA | DreamBooth | |
|---|---|---|---|
| O'rganish samaradorligi | Past | O'rtacha | Yuqori |
| Talab etilgan xotira | Past | O'rtacha | Yuqori |
| Talab etilgan o'qitish resurslari | Past | O'rtacha | Yuqori |
| Asl model imkoniyatlarini saqlash | Ha | Ha | Yo'q |
1-jadval: Mashhur sozlashga asoslangan moslashtirish usullari taqqoslanmasi
Qaysi usul portret generatsiyasi uchun ko'proq mos?
Bu usullarning mosligini foydalanish holati va tizim talablariga bog'liq. Portret generatsiyasi uchun biz uchta asosiy sabab bo'yicha DreamBooth ni tanlaymiz:
- Yaxshiroq identifikatsiyani saqlash: DreamBooth sub'ektning tafsilotlarini saqlashda eng samarali, bu esa yaxshiroq identifikatsiyani saqlashga olib keladi.
- Qabul qilinishi mumkin bo'lgan o'qitish vaqti: [5] ga ko'ra, DreamBooth yordamida diffuziya modelini nozik sozlash taxminan 15 daqiqa oladi. Bu o'qitish vaqti qabul qilinishi mumkin, chunki biz generatsiya qilingan tasvirlarni foydalanuvchi bilan bir soat ichida bo'lishishimiz talab etiladi.
- Xotirani saqlash zarurati yo'q: Portretlarni generatsiya qilgandan so'ng moslashtirilgan modellarni saqlashimiz shart emas, shuning uchun DreamBooth yondashuvida xotira bilan bog'liq muammolar dolzarb emas.
Ma'lumotlarni Tayyorlash
Kerakli tasvirlar soni usulga qarab farq qiladi. Sozlashsiz usullar odatda faqat bitta tasvir talab etsa, DreamBooth kabi sozlashga asoslangan usullar taxminan 10–20 ta tasvir talab etadi.
DreamBooth dan foydalanganimiz sababli, foydalanuvchilardan 10–20 ta tasvir yuklash so'raladi. Bu tasvirlar turli o'lchamlar va nisbatlarda kelishi mumkin. Ularni o'qitishga tayyorlash uchun biz quyidagi bosqichlarni bajaramiz:
- Tasvirni o'lchamlash
- Tasvirni kengaytirish
- Umumiy yuz ma'lumotlarini qo'shish
Tasvirni o'lchamlash
Diffuziya modellari odatda belgilangan kirish o'lchamlarini talab etadi, ammo foydalanuvchi tomonidan yuklangan tasvirlar ko'pincha turli o'lchamlarda bo'ladi. Biz tasvirlarni diffuziya modeli uchun mos bir xil o'lchamlarga keltirish uchun o'lchamlaymiz.
Tasvirni kengaytirish
T2I modellari ob'ektlar, identifikatsiyalar va sahnalar kabi tushunchalarni o'rganish uchun ko'plab tasvirlarni talab etadi. Biroq, moslashtirish uchun bizda ko'pincha katta ma'lumot to'plami bo'lmaydi. Biz ma'lumot to'plamini sun'iy ravishda kengaytirish uchun ko'zgulash, kichik burilishlar va masshtablashtirish kabi tasvirni kengaytirish texnikalarini qo'llaymiz. Bu bosqich o'qitish uchun faqat oz miqdordagi tasvirlar mavjud bo'lganda muhimdir.
Umumiy yuz ma'lumotlarini qo'shish
Faqat taqdim etilgan tasvirlar ustida o'qitish modelning muayyan identifikatsiyaga ortiqcha o'rganishiga va avval o'rganilgan bilimlarni unutishiga olib kelishi mumkin. Buning oldini olish uchun biz foydalanuvchi tomonidan yuklangan tasvirlarni yuzlarning kattaroq, umumiy ma'lumot to'plami bilan birlashtiramiz. Biz bu tasvirlarni "bir odamning tasviri" kabi so'rovlar bilan oldindan o'qitilgan diffuziya modeli yordamida generatsiya qilamiz.
Modelni Ishlab Chiqish
Arxitektura
DreamBooth usuli oldindan o'qitilgan diffuziya modelini nozik sozlaydi. Biz 9-bobda ko'rib chiqqanimizga o'xshab, 1024x1024 tasvirlarni chiqarish uchun oldindan o'qitilgan U-Net arxitekturasiga ega modeldan foydalanamiz. Arxitektura o'zgarmaydi: bir qator pastga namuna olish bloklari, keyin bir qator yuqoriga namuna olish bloklari.
O'qitish
Oldindan o'qitilgan diffuziya modelini nozik sozlash uchun biz diffuziya modelini noldan o'qitish jarayoni bilan bir xil jarayonni bajaramiz:
- Shovqin qo'shish: Tasodifiy tanlangan vaqt qadamiga asoslanib tasvirga shovqin qo'shiladi.
- Shartlash signallarini tayyorlash: Alohida encoderlar modelga shovqinni bashorat qilish uchun shartlash signallari sifatida tasvir sarlavhasi va vaqt qadamini tayyorlaydi.
- Shovqinni bashorat qilish: Model shartlash signallari yordamida shovqinli tasvirdan olib tashlanadigan shovqinni bashorat qiladi.
O'qitish ma'lumotlari
O'qitish ma'lumotlari foydalanuvchi tomonidan yuklangan tasvirlar va ma'lumotlarni tayyorlash jarayonida qo'shilgan umumiy yuz tasvirlaridan iborat. Foydalanuvchi tomonidan yuklangan tasvirlar "[V] shaxsning tasviri" deb belgilanadi, umumiy yuz tasvirlari esa "bir shaxsning tasviri" deb belgilanadi.
ML maqsadi va yo'qotish funksiyasi
Moslashtirishdagi asosiy qiyinchilik — modelning umumiy toifalarni (masalan, inson yuzlari) va ushbu toifalar ichidagi muayyan nusxalarni (masalan, noyob shaxs) generatsiya qila olishini ta'minlash. Bu muammoni hal qilish uchun biz ikkita yo'qotish funksiyasidan foydalanamiz:
- Rekonstruksiya yo'qotishi
- Sinf-maxsus oldingi saqlash yo'qotishi
Rekonstruksiya yo'qotishi
Bu yo'qotish funksiyasi rekonstruksiya qilingan tasvir va muayyan sub'ektning haqiqiy tasvirlari o'rtasidagi farqlarni o'lchaydi. U modelga sub'ektning identifikatsiyasini saqlashda yordam beradi.
Sinf-maxsus oldingi saqlash yo'qotishi
Bu yo'qotish funksiyasi generatsiya qilingan tasvirlar va umumiy yuzlarning haqiqiy tasvirlari o'rtasidagi farqni o'lchaydi. U modelning inson sinfi xususiyatlarini saqlab qolishini va muayyan identifikatsiyalarga ortiqcha o'rganishining oldini olishni ta'minlaydi.
Umumiy yo'qotish
Umumiy yo'qotish funksiyasi rekonstruksiya yo'qotishi va sinf-maxsus oldingi saqlash yo'qotishining og'irlikli kombinatsiyasidir. Umumiy yo'qotish formulasi quyidagicha ifodalanishi mumkin:
α\alphaα va β\betaβ muayyan identifikatsiyani saqlash va inson xususiyatlarini muhofaza qilish o'rtasidagi muvozanatni boshqaradigan giperparam etrlar. ML maqsadi umumiy yo'qotishni minimallashtirishdir, bu modelga umumiy inson yuzi tasvirlarini generatsiya qilish qobiliyatini saqlab qolgan holda noyob identifikatsiyalarning tasvirlarini generatsiya qilishga imkon beradi.
Namuna olish
Portret generatsiyasi uchun namuna olish jarayoni 9-bobda muhokama qilingan T2I generatsiyasiga o'xshash, chunki ikkalasi ham diffuziya modellaridan foydalanadi. Biroq, asosiy farq matn so'rovlarini qanday taqdim etishimizda. 9-bobda foydalanuvchi matn so'rovini taqdim etdi. Masalan, foydalanuvchi "stulda o'tirgan mushuk" deb kiritishi mumkin va diffuziya modeli bu matnni aks ettiruvchi tasvir generatsiya qiladi.
Portret generatsiyasida foydalanuvchilar so'rov bermaydi. Buning o'rniga, biz qo'lda yaratilgan so'rovlar to'plamini tuzamiz. Bu so'rovlar turli professional muhitlarni ifodalaydi va generatsiya qilingan tasvirlar foydalanuvchining identifikatsiyasini aks ettirishini ta'minlash uchun o'qitish jarayonida ishlatiladigan identifikatorni o'z ichiga oladi. Ba'zi misollar:
- "Oddiy oq fonda tabassum qilayotgan [V] ning professional portreti."
- "Rasmiy kiyimda, neytral ifodada [V] ning yaqindan surati."
- "Yumshoq yoritish bilan, biroz chapga qarab turgan [V] ning portreti."
- "Tashqarida xiralashtirilgan fon oldida [V] ning profil surati."
- "Biznes kostyumda, ishonchli ifodada [V] ning professional portreti."
So'rovlarni tuzgandan so'ng, diffuziya modelidan har bir so'rov uchun bitta tasvir namunasini olamiz. Biz standart diffuziya jarayoni namuna olish bosqichlarini bajaramiz:
- Boshlang'ich tasodifiy shovqin generatsiya qilish.
- Shovqinni kamaytirish va tasvir tafsilotlarini aniqlash uchun har bir qadamda Classifikator-free yo'naltirish (CFG) [8] dan foydalanib, kirish bir nechta bosqich orqali iterativ ravishda shovqinsizlashtiriladi. CFG ni ko'rib chiqish uchun [8] yoki 9-bobga murojaat qiling.
Baholash
Oflayn baholash o'lchovlari
Moslashtirilgan diffuziya modellarini baholash muhim, chunki bu bizning modelimiz generatsiya qilingan tasvirlarda foydalanuvchining identifikatsiyasini saqlash qobiliyatiga ega ekanligini ta'minlaydi. Biz moslashtirilgan diffuziya modelining samaradorligini uchta asosiy jihatga e'tibor qaratib baholaymiz:
- Matn moslanmasi
- Tasvir sifati
- Tasvir moslanmasi
Matn moslanmasi
Matn moslanmasi generatsiya qilingan tasvirlarning matn so'rovlariga qanchalik mos kelishini anglatadi. Buni o'lchash uchun keng tarqalgan o'lchov — tasvirlar nafaqat yuqori sifatli, balki kirish matni bilan ham bog'liqligini ta'minlovchi CLIPScore [9].
Tasvir sifati
Oldingi boblarda ko'rib chiqqanimizday, generatsiya qilingan tasvirlar sifatini o'lchash uchun FID [10] va Inception score [11] kabi keng tarqalgan o'lchovlardan foydalanamiz.
Tasvir moslanmasi
Moslashtirilgan matndan tasvirga modellarga alohida tegishli bo'lgan tasvir moslanmasi generatsiya qilingan tasvirlar va qiziqish sub'ekti o'rtasidagi vizual o'xshashlikni baholashga ishora qiladi. Masalan, model muayyan ryukzakni tasvirlaydigan tasvir generatsiya qilish vazifasini bajarsa, tasvir moslanmasi generatsiya qilingan tasvir o'sha ryukzakka qanchalik o'xshashligini o'lchaydi.
Generatsiya qilingan va asl sub'ekt o'rtasidagi vizual o'xshashlikni o'lchash uchun keng ishlatiladigan o'lchovlar:
- CLIP score
- DINO score
- Yuz o'xshashligi ko'rsatkichi
CLIP score
CLIP modeli [12] ikkita encoder ishlatadi — biri tasvirlar uchun, ikkinchisi matn uchun. Bu encoderlar tegishli tasvir–matn juftining tasvir va matn o'rnatmalari o'rnatma fazosida yaqin bo'lishini ta'minlash uchun o'qitiladi.
CLIP yordamida tasvir moslanmasini o'lchash uchun biz matn encoderini o'chirib tashlaymiz va tasvir encoderidan generatsiya qilingan hamda haqiqiy tasvirlar uchun o'rnatmalarni hosil qilish uchun foydalanamiz. Keyin o'xshashlikni baholash uchun bu o'rnatmalar o'rtasidagi kosinusli o'xshashlikni hisoblaymiz. Yuqori ballar moslashtirilgan diffuziya modelining haqiqiy tasvirlarga vizual jihatdan ko'proq o'xshash tasvirlar yaratishini ko'rsatadi.
DINO score
DINO [13] Meta tomonidan ishlab chiqilgan o'z-o'zini boshqaruvchi o'rganish usuli. DINO belgilangan ma'lumotlarga ehtiyoj sezmasdan tasvirlarning vizual vakilliklarini o'rganadi. Xususan, u kontrastli o'rganish [14] deb ataladigan usuldan foydalanadi, bu yerda model o'xshash va o'xshash bo'lmagan tasvirlarni o'rnatma fazosida joylashtirish orqali ularni farqlashni o'rganadi — o'xshash tasvirlar yaqinroq joylashtiriladi, o'xshash bo'lmagan tasvirlar esa uzoqroq joylashtiriladi.
DINO va DINOv2 [15] kabi yangi variatsiyalari tasvirlar o'rtasidagi o'xshashliklarni olishda ayniqsa yaxshi, chunki nozik farqlarni tanib olish uchun o'qitilgan. Bu DINO ni tasvir moslanmasini o'lchashda ayniqsa samarali qiladi. Generatsiya qilingan tasvirning o'rnatmasini haqiqiy tasvir bilan taqqoslab, DINO generatsiya qilingan tasvir haqiqiy tasvirga qanchalik mos kelishini baholashi mumkin.
DINO va CLIP
DINO tasvirlarni taqqoslash uchun afzalroq, chunki batafsil vizual xususiyatlarni olish uchun o'qitilgan. Masalan, biri sariq va ikkinchisi qizil kiyimda ikkita tasvir rang farqi sababli past DINO baliga ega bo'lishi mumkin. Boshqa tomondan, CLIP tasvirlarni matn bilan taqqoslash uchun yaxshiroq, chunki tavsiflarni vizuallar bilan moslashtirish uchun o'qitilgan. Turli kiyim ranglaridagi bir xil tasvirlar ikkalasi ham kiyim kiygan odamni aks ettirsa, CLIP yordamida yuqori balli bo'lishi mumkin.
Yuz o'xshashligi ko'rsatkichi
CLIP va DINO generatsiya qilingan va haqiqiy tasvirlar o'rtasidagi vizual o'xshashlikni o'lchasa-da, ular identifikatsiyani saqlashni baholash uchun mo'ljallanmagan. Masalan, ikkita yuz tasviri turli shaxslarni ko'rsatishi mumkin, lekin CLIP va DINO baribir yuqori o'xshashlik balini berishi mumkin. Buni hal qilish uchun biz generatsiya qilingan va haqiqiy tasvirlarni taqqoslash uchun yuz tanish modelidan foydalanamiz. Bu modellar yuz o'xshashligini aniqlash va o'lchashga ixtisoslashgan, bu esa moslashtirilgan portret generatsiyasi tizimida muhim talab.
DINO, CLIP va yuz o'xshashligi ko'rsatkichlarini birlashtirish moslashtirilgan diffuziya modelida tasvir moslanmasining keng qamrovli baholashini ta'minlaydi.
Onlayn baholash o'lchovlari
Onlayn baholash portret generatsiyasida muhim. U foydalanuvchi mamnuniyatini to'g'ridan-to'g'ri o'lchaydi, bu foydalanuvchilar xizmat uchun to'laganda muhim, chunki yuqori mamnuniyat ko'pincha daromadning oshishiga olib keladi. Biz ikkita asosiy o'lchovga e'tibor qaratamiz:
- Foydalanuvchi fikri: Bu o'lchov foydalanuvchi mamnuniyatini to'g'ridan-to'g'ri aks ettiradi. Generatsiya qilingan portretlarni olgandan so'ng, foydalanuvchilar 1 dan 5 gacha shkala bo'yicha mamnuniyatlarini baholaydi. Yuqori baholar portretlar kutilmalarni qondirganini yoki undan oshganini ko'rsatadi, past ballar esa yaxshilanish zarurligini ko'rsatadi.
- To'lovli xizmatga konversiya koeffitsienti: Bu o'lchov qiziqish bildirganlardan yangi to'lovli mijozlarga o'tuvchilar ulushini o'lchaydi. U muayyan vaqt oralig'ida xizmat bilan shug'ullangan foydalanuvchilar umumiy soniga — veb-saytga tashrif buyurish, sinov uchun ro'yxatdan o'tish yoki so'rovlar yuborish kabi — yangi to'lovli mijozlar sonini bo'lish orqali hisoblanadi.
Umumiy ML Tizimi Dizayni
Professional portretlarni generatsiya qilish faqat diffuziya modelidan ko'proqni talab etadi. Ushbu bo'limda biz uchta asosiy quvurni ko'rib chiqamiz:
- Ma'lumotlar quvuri
- O'qitish quvuri
- Xulosa chiqarish quvuri
Ma'lumotlar quvuri
Bu quvur ikkita mas'uliyatga ega:
- Qiziqish sub'ekti bilan tasvirlarni tayyorlash
- Umumiy inson yuzlari tasvirlarini tayyorlash
Qiziqish sub'ekti bilan tasvirlarni tayyorlash
Bu jarayon foydalanuvchi tomonidan yuklangan tasvirlarni oldindan belgilangan standartlarga javob berishini baholaydi va ularni o'qitishga tayyorlaydi.
Xususan, u tasvirlarning xilma-xil va faqat bitta qiziqish ob'ektini — foydalanuvchining yuzini o'z ichiga olishini tekshiradi. Bunga erishish uchun biz tasvirlarni tahlil qilish uchun turli evristika va ML modellaridan foydalanamiz, aniqlik, turli burchaklar, ifodalar va foydalanuvchi yuzining mavjudligi kabi omillarni tekshiramiz. Agar tasvirlar ushbu mezonlarni qondirmasа, ular rad etiladi va foydalanuvchidan ko'proq yuklash so'raladi. Bu faqat yuqori sifatli tasvirlar diffuziya modelini nozik sozlash uchun ishlatilishini ta'minlaydi.
Umumiy inson yuzlari tasvirlarini tayyorlash
Bu bosqich modelning qiziqish sub'ektiga ortiqcha o'rganishini oldini olish uchun umumiy yuzli tasvirlarni tayyorlashni o'z ichiga oladi. Biz "stulda o'tirgan odam" kabi so'rovlar bilan bu tasvirlarni generatsiya qilish uchun oldindan o'qitilgan T2I modeldan foydalanamiz.
O'qitish quvuri
Bu quvur oldindan o'qitilgan diffuziya modelini moslashtirish uchun mas'ul.
Xulosa chiqarish quvuri
Xulosa chiqarish quvuri moslashtirilgan T2I model yordamida foydalanuvchining portretlarini generatsiya qilish uchun mas'ul. Xulosa chiqarish quvuridagi uchta asosiy tarkibiy qism:
- Tasvir generatori
- Sifatni baholash xizmati
- Yuklash xizmati
Tasvir generatori
Tasvir generatori moslashtirilgan T2I model va qo'lda yaratilgan matn so'rovlaridan foydalanib har bir so'rov uchun bitta tasvir generatsiya qiladi.
Sifatni baholash xizmati
Bu xizmat generatsiya qilingan tasvirlarning identifikatsiyani saqlash standartlariga javob berishini ta'minlaydi. Bu xizmat generatsiya qilingan portretni foydalanuvchining haqiqiy tasvirlari bilan taqqoslash uchun oldindan o'qitilgan yuz tanish modelidan foydalanadi. Agar generatsiya qilingan tasvir foydalanuvchining identifikatsiyasini saqlamasa, xizmat uni rad etadi va tasvir generatoridan xuddi shu matn so'rovidan, lekin boshqa boshlang'ich shovqin bilan yangi tasvir yaratishini so'raydi.
Yuklash xizmati
Yuklash xizmati generatsiya qilingan tasvirlarni foydalanuvchiga yetkazish jarayonini boshqaradi. U foydalanuvchilar portretlarini yuklab olishi uchun tasvirlarni bulut xotirasiga yuklaydi.
Boshqa Muhokama Mavzulari
Agar intervyu oxirida qo'shimcha vaqt bo'lsa, ba'zi qo'shimcha muhokama mavzulari:
- Nozik sozlash jarayonida halokatli unutishning oldini olish [16].
- Yangi sub'ekt uchun kam uchraydigan tokenni tanlash tafsilotlari va uning ahamiyati [5].
- Sinf-maxsus oldingi saqlash yo'qotishining tafsilotlari [5].
- Nozik sozlashdan keyin chiqish xilma-xilligining kamayishi muammosini hal qilish [5].
- Generatsiya qilingan tasvirlarda bir nechta o'lcham va nisbatlarni qo'llab-quvvatlash [17].
- Meta'ning Imagine Yourself [1] kabi sozlashsiz usullarning tafsilotlari.
- Deepfake generatsiyasi va aniqlash atrofidagi xatarlar va etik muammolarni yumshatish [18].
- Ma'lumotlar maxfiyligini ta'minlash bilan birga shaxsni aniqlovchi ma'lumotlarni (PII) xavfsiz boshqarish uchun ML texnikalari [19][20].
Xulosa
Manba Materiallar
[1] Imagine yourself: Tuning-Free Personalized Image Generation. https://ai.meta.com/research/publications/imagine-yourself-tuning-free-personalized-image-generation/. [2] MoA: Mixture-of-Attention for Subject-Context Disentanglement in Personalized Image Generation. https://arxiv.org/abs/2404.11565. [3] InstantID: Zero-shot Identity-Preserving Generation in Seconds. https://arxiv.org/abs/2401.07519. [4] An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion. https://textual-inversion.github.io/. [5] DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation. https://arxiv.org/abs/2208.12242. [6] LoRA: Low-Rank Adaptation of Large Language Models. https://arxiv.org/abs/2106.09685. [7] Language Models are Few-Shot Learners. https://arxiv.org/abs/2005.14165. [8] Classifier-Free Diffusion Guidance. https://arxiv.org/abs/2207.12598. [9] CLIPScore: A Reference-free Evaluation Metric for Image Captioning. https://arxiv.org/abs/2104.08718. [10] FID calculation. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance. [11] Inception score. https://en.wikipedia.org/wiki/Inception_score. [12] Learning Transferable Visual Models From Natural Language Supervision. https://arxiv.org/abs/2103.00020. [13] Emerging Properties in Self-Supervised Vision Transformers. https://arxiv.org/abs/2104.14294. [14] Contrastive Representation Learning. https://lilianweng.github.io/posts/2021-05-31-contrastive/. [15] DINOv2: Learning Robust Visual Features without Supervision. https://arxiv.org/abs/2304.07193. [16] An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuning. https://arxiv.org/abs/2308.08747. [17] SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis. https://arxiv.org/abs/2307.01952. [18] Deepfakes, Misinformation, and Disinformation in the Era of Frontier AI, Generative AI, and Large AI Models. https://arxiv.org/abs/2311.17394. [19] Privacy-Preserving Personal Identifiable Information (PII) Label Detection Using Machine Learning. https://ieeexplore.ieee.org/document/10307924. [20] Does fine-tuning GPT-3 with the OpenAI API leak personally-identifiable information? https://arxiv.org/abs/2307.16382.
Matndan Videoga Generatsiya
Kirish
Matndan videoga generatsiya generativ AIning asosiy ilovalaridan biri bo'lib, matniy tavsiflardan video generatsiya qilish imkonini beradi. Ushbu bob matndan videoga model yaratish uchun zarur bo'lgan muhim tarkibiy qismlarni o'rganadi.
Talablarni Aniqlashtirish
Nomzod va intervyu oluvchi o'rtasidagi odatiy muloqot quyidagicha.
Nomzod: Generatsiya qilingan videolarning kutilgan uzunligi qancha? Intervyu oluvchi: Besh sekundlik videolarga mo'ljallaylik.
Nomzod: Qanday video o'lchamiga ega bo'lishni maqsad qilamiz? Intervyu oluvchi: Videolar zamonaviy platformalar va qurilmalarning keng doirasiga mos kelishini ta'minlash uchun yuqori aniqlikdagi sifatni maqsad qilishimiz kerak. 720p o'lchamini maqsad qilaylik.
Nomzod: Generatsiya qilingan video uchun kerakli tezlik sekundiga 24 kadr (FPS)mi? Intervyu oluvchi: Ha.
Nomzod: Video generatsiya qilish uchun kutilgan kechikish qancha? Intervyu oluvchi: Video generatsiya hisoblash jihatidan qimmat. Boshlash uchun bir necha daqiqalik qayta ishlash vaqti qabul qilinishi mumkin. Kelajakdagi iteratsiyalarda samaradorlik va tezlikni optimallashtirамиз.
Nomzod: Muayyan video toifasiga e'tibor qaratishimiz kerakmi? Intervyu oluvchi: Yo'q, tizim turli janrlar va mavzularda videolar generatsiya qilishi kerak.
Nomzod: Tizim matn kiritish uchun bir nechta tilni qo'llab-quvvatlaydimi yoki faqat ingliz tili bilan boshlaymizmi? Intervyu oluvchi: Ingliz tili bilan boshlaylik.
Nomzod: Generatsiya qilingan videolar audio chiqishni o'z ichiga oladimi? Intervyu oluvchi: Hozircha ovoziz videolarga e'tibor qarataylik. Audio kelajakdagi iteratsiyalar uchun yaxshilash sifatida ko'rib chiqilishi mumkin, lekin bu bosqichda ustuvor emas.
Nomzod: O'qitish ma'lumotlarimizning taxminiy hajmi qancha? Intervyu oluvchi: Bizda katta video ma'lumot to'plami bor, sarlavhalar bilan taxminan 100 million xilma-xil video. Ba'zi sarlavhalar shovqinli yoki inglizcha bo'lmasligi mumkin.
Nomzod: Matndan videoga model yaratishning keng tarqalgan yondashuvi oldindan o'qitilgan matndan tasvirga modelni videolarni boshqarishga kengaytirishdir. Bizda oldindan o'qitilgan matndan tasvirga model bormi? Intervyu oluvchi: Ha, bu to'g'ri taxmin.
Nomzod: Video generatsiyaning yuqori hisoblash talablarini hisobga olgan holda, hisoblash byudjetimiz qancha? Intervyu oluvchi: Video generatsiya tizimini o'qitish sezilarli hisoblash resurslarini talab etadi. Matndan videoga o'qitish uchun bizda 6000 dan ortiq H100 GPU [2] mavjud.
Nomzod: Tizimda zararli yoki haqoratli videolar generatsiya qilishning oldini olish uchun himoya mexanizmlari bo'lishini ta'minlashimiz kerakmi? Intervyu oluvchi: Juda yaxshi fikr. Ha, taklif etilgan tizimimiz foydalanuvchilar uchun xavfsiz bo'lishini ta'minlashimiz kerak.
Muammoni ML Vazifasi Sifatida Shakllantirish
Ushbu bo'lim matndan videoga generatsiya muammosini ML vazifasi sifatida shakllantiradi va matndan tasvirga generatsiya uchun 9-bobda ishlatilganlardan tashqari zarur mulohazalarni ajratib ko'rsatadi.
Tizimning kirishi va chiqishini belgilash
Kirish — sahna, harakat yoki hikoyani bayon qiluvchi tavsifiy matn. Chiqish — berilgan matn so'roviga vizual va vaqtinchalik mos keladigan besh sekundlik 720p (1280x720) video.
Masalan, "Quyoshli kunda parkda to'p o'ynayotgan it" kabi matn kiritilganda, tizim bu sahnani aks ettiruvchi video generatsiya qilishi kerak: itning harakatini, parkdagi muhitni va quyoshli kunning atmosferasini.
Mos ML yondashuvini tanlash
Matndan videoga generatsiya matndan tasvirga generatsiya bilan o'z tabiatiga ko'ra o'xshash. Ikkalasi ham matniy tavsiflardan vizuallar generatsiya qiladi. Matndan tasvirga generatsiyada mashhur bo'lgan avtoregressiv modellashtirish va diffuziya modellari kabi texnikalar matndan videoga generatsiya uchun ham samarali. Ko'rganimizdek, diffuziya modellari batafsil va realistik vizuallar yaratishda kuchli samaradorlikni namoyish etdi. Shuning uchun biz matndan videoga generatsiya tizimimizni ishlab chiqish uchun diffuziya modelini tanlaymiz.
Biroq, ular o'rtasida muhim farq bor. Video generatsiya uchun model bitta tasvir o'rniga kadrlar ketma-ketligini qayta ishlashi va generatsiya qilishi kerak. Bu hisoblash yukini sezilarli darajada oshiradi. Masalan, 24 FPS da besh sekundlik video generatsiya qilish modelning 120 ta kadr yaratishini talab qiladi. 512x512 o'lchamdagi tasvir NVIDIA H100 kabi yuqori darajali GPU da taxminan 1 soniya olishi mumkin, lekin buni besh sekundlik 720p videoga kengaytirish ancha ko'p vaqt talab etadi, chunki har bir 720p kadr taxminan 3,6 marta ko'proq pikselga ega. Natijada, besh sekundlik 720p video generatsiya qilish taxminan yetti daqiqa olishi mumkin.
Video generatsiyasining murakkabligi va hisoblash xarajatini hal qilish uchun biz mashhur latent diffuziya modeli (LDM) yondashuvini qo'llaymiz. Bu yondashuv birinchi marta Stable Diffusion maqolasi [3] tomonidan mashhur qilindi va keyinchalik OpenAI'ning Sora [1] va Meta'ning Movie Gen [4] kabi ko'pchilik video generatsiya modellari tomonidan qabul qilindi va ishlatildi. Keling, bu yondashuvni yanada ko'rib chiqaylik.
Latent diffuziya modeli (LDM)
LDM ning asosiy g'oyasi — diffuziya modelining bevosita piksel fazosida emas, balki past o'lchamli latent fazoda ishlashidir. Diffuziya modeli o'qitish ma'lumot to'plamidagi asl video piksellarini emas, balki bu past o'lchamli latent vakilliklarni shovqinsizlashtirishni o'rganadi.
LDM asosan video piksellarini latent vakillikka siqish uchun siqish tarmog'iga tayanadi. Keling, siqish tarmog'ini batafsilroq ko'rib chiqaylik.
Siqish tarmog'i
Siqish tarmog'i video piksellarini latent fazoga akslantiruvchi neyron tarmoq. U xom videoni kirish sifatida qabul qiladi va siqilgan latent vakillikni chiqaradi, kadrlar soni (vaqtinchalik o'lcham) va o'lchamini (fazoviy o'lchamlar) kamaytiradi.
Siqish tarmog'i odatda diffuziya modelidan alohida o'qitiladigan Variational Autoencoder (VAE) [5] modeliga asoslangan. VAE'ning vizual encoderi kirish videoni latent vakillikka aylantiradi, vizual decoderi esa bu latent fazosidan asl video kadrlarini qayta tiklaydi.
LDM hisoblash murakkabligini qanday hal qiladi?
LDM lar standart diffuziyalarga qaraganda kamroq hisoblash quvvatini talab qiladi, chunki siqilgan vakilliklarni qayta ishlash yuqori o'lchamli piksellarni boshqarishdan arzonroq. Ushbu siqishning ta'sirini tushunish uchun bir misolni ko'rib chiqaylik.
Tasavvur qiling, biz 24 FPS, besh sekundlik va 720p o'lchamdagi videoga muhtojmiz. Bu 120 ta kadr, har biri 1280x720 pikseldan iborat — juda ko'p ma'lumot. Agar temporal va fazoviy o'lchamni 8 ga kamaytiruvchi [4] ga o'xshash siqish tarmog'i ishlatsak, videoning fazoviy o'lchamini 160x90 pikselga va vaqtinchalik o'lchamini 15 kadrga qisqartiradi.
Bu siqilgan vakillama o'zining piksel-fazoviy ekvivalentidan 512 marta kichik, bu LDM o'qitishini 512 marta samaraliroq qiladi. Bu samaradorlik tezroq generatsiya vaqtlari va kamaytirilgan resurs sarfiga olib keladi, bu ayniqsa yuqori o'lchamli video ma'lumotlari bilan ishlashda qimmatli.
O'qitilgan LDM yordamida video qanday generatsiya qilinadi
O'qitilgan LDM yordamida video generatsiya qilish uchun biz latent fazosida sof shovqindan boshlaymiz. LDM uni shovqinsizlashtirilgan latent vakillikka asta-sekin takomillashtiradi. Vizual decoder so'ngra bu latent vakillikni piksel fazosiga qaytarib aylantiradi va yakuniy videoni yaratadi.
Ushbu bob uchun biz matndan videoga generatsiya tizimimizni ishlab chiqish uchun LDM yondashuvini tanlaymiz, chunki u samarali va hisoblash yukini kamaytiradi. LDM haqida ko'proq bilib olish uchun [6] ga murojaat qiling.
Ma'lumotlarni Tayyorlash
Matndan videoga generatsiya uchun ma'lumot to'plami matniy tavsiflar va ularga mos videolarning 100 million juftligini o'z ichiga oladi. Bu juftliklar turli mavzular va harakatlarni qamrab oladi, bu modelga xilma-xil videodan o'rganish imkonini beradi. Ushbu bo'limda biz LDM imizni o'qitish uchun videolar va sarlavhalarni tayyorlaymiz.
Videolarni tayyorlash
Biz o'qitish uchun videolarni tayyorlashda uchta asosiy bosqichga e'tibor qaratamiz:
- Mos bo'lmagan videolarni filtrlash
- Videolarni standartlashtirish
- Latent fazosidagi video vakilliklarini oldindan hisoblash
Mos bo'lmagan videolarni filtrlash
Katta ma'lumot to'plamlari ko'pincha keraksiz kontentni o'z ichiga oladi. Bu bosqich model faqat yuqori sifatli videolardan o'rganishini ta'minlash uchun mos bo'lmagan videolarni olib tashlaydi. Umumiy bosqichlarga quyidagilar kiradi:
- Past sifatli yoki qisqa videolarni olib tashlash: Biz Movie Gen [4] ni kuzatamiz va past o'lchamli, qisqa, sekin harakat yoki siqish artefaktlari bilan buzilgan videolarni olib tashlaymiz.
- Takrorlangan videolarni olib tashlash (deduplikatsiya): Biz bir xil videolarni yo'q qilish uchun [7] kabi deduplikatsiya usulidan foydalanamiz. Bu o'qitish ma'lumotlari xilma-xil bo'lishini va model ba'zi videolarga boshqalarga qaraganda ko'proq ta'sir qilmasligini ta'minlaydi.
- Zararli videolarni olib tashlash: Biz ochiq kontent bilan videolarni aniqlash va olib tashlash uchun zarar aniqlash modellaridan foydalanamiz. Bu bosqich matndan videoga modelimiz zararli videolar generatsiya qilmasligini ta'minlash uchun muhim.
Videolarni standartlashtirish
- Video uzunligini sozlash: O'qitish ma'lumotlari faqat bir xil uzunlikdagi videolardan iborat bo'lishini ta'minlash uchun uzunroq videolarni besh sekundlik kliplarga bo'lamiz.
- Kadr tezligini standartlashtirish: Barcha videolar bir xil kadr tezligiga ega bo'lishini ta'minlash uchun yuqori kadr tezligidagi videolarni 24 FPS ga qayta kodlaymiz.
- Video o'lchamlarini sozlash: Videolarni standart o'lchamga, masalan, 1280x720 pikselga o'lchamlashtiramiz va kesamiz.
Latent fazosidagi video vakilliklarini oldindan hisoblash
LDM latent fazosida ishlaydi, shuning uchun u faqat latent vakilliklarni kirish sifatida talab qiladi. Shunday qilib, har bir o'qitish iteratsiyasi odatda quyidagi bosqichlarni talab qiladi:
- O'qitish ma'lumotlaridagi videodan kadrlarni ajratib olish.
- Latent vakilliklarni olish uchun bu kadrlarni oldindan o'qitilgan siqish tarmog'idan o'tkazish.
- Diffuziya modelini o'qitishda davom etish uchun latent vakilliklardan foydalanish.
Biroq, bu bosqichlar samarasiz. Har safar yangi model o'qitganimizda millionlab video uchun kadrlarni ajratib olish va siqish diffuziya o'qitishini sekinlashtiradi. Latent vakilliklarni qulay rejimda hisoblash resurs talab etadi va vaqt talab qiladi.
Jarayonni optimallashtirish uchun biz barcha videolar uchun latent vakilliklarni oldindan hisoblaymiz va ularni saqlashda kesheymiz. O'qitish jarayonida diffuziya modeli kadr ajratib olish yoki siqish jarayonlarini kutmasdan bevosita oldindan hisoblangan latent vakilliklariga kiradi. Bu yondashuv saqlash xarajatlarini boshqarish imkoniyatini saqlab qolgan holda diffuziya o'qitish jarayonini sezilarli darajada tezlashtiradi. Saqlash ehtiyojini tushunish uchun tez hisob-kitob qilaylik.
Qo'pol hisob-kitob: Har bir video kadr latent vakillikka siqilganda hajmi 512 marta kamayadi deb taxmin qilaylik. Shunday qilib, agar 1000 ta kadrli video taxminan 1000 MB joy olsa, uning latent vakilligi faqat taxminan 2 MB ni oladi. Agar biz 100 million video uchun latent vakilliklarni kesheysak, talab qilinadigan umumiy saqlash hajmi taxminan 200 TB ni tashkil etadi. Zamonaviy saqlash imkoniyatlarini hisobga olib, bu nisbatan boshqarish mumkin, ayniqsa o'qitish jarayonida tejalaydigan vaqtga nisbatan.
Sarlavhalarni tayyorlash
Yuqori sifatli, izchil sarlavhalarga ega bo'lish muhim. Ba'zi sarlavhalar yo'q yoki dolzarb bo'lmasligi mumkin. Sarlavhalarni tayyorlashning umumiy bosqichlari:
- Yo'q yoki ingliz bo'lmagan sarlavhalarni boshqarish: Sarlavhasiz yoki boshqa tilda sarlavhali videolar uchun avtomatik ravishda tavsifiy sarlavhalar generatsiya qilish uchun LLaMa3-Video [8] yoki LLaVA [9] kabi modellardan foydalanamiz.
- Sarlavhalarni qayta yozish: Uzunroq, batafsilroq versiyalarni generatsiya qilish uchun LLaMa3-Video yoki LLaVA kabi oldindan o'qitilgan video sarlavhasi modellaridan foydalanib mavjud sarlavhalarni yaxshilaymiz. Sora jamoasi [1] bu jarayon sifat va matn moslanmasini oshirish uchun muhimligini ko'rsatdi.
- Sarlavha o'rnatmalarini oldindan hisoblash: Diffuziya modeli o'qitishi shartlash uchun sarlavha o'rnatmalarini talab etadi. Biz LDM o'qitishini tezlashtirish uchun sarlavha o'rnatmalarini oldindan hisoblash uchun matn encoderdan foydalanamiz.
Modelni Ishlab Chiqish
Arxitektura
Matndan videoga diffuziya modeli uchun arxitekturani tanlaganda ikkita asosiy variantga egamiz: U-Net va DiT. Ikkalasini ko'rib chiqamiz va ularni videolarni boshqarishga kengaytirish uchun zarur bo'lgan qo'shimcha qatlamlarni aniqlaymiz.
Videolar uchun U-Net
U-Net arxitekturasini videolarni qayta ishlashga kengaytirishdan oldin qisqacha ko'rib chiqaylik. 9-bobda o'rganganimizdek, U-Net arxitekturasi bir qator pastga namuna olish bloklaridan, keyin bir qator yuqoriga namuna olish bloklaridan iborat. Har bir pastga namuna olish bloki tasvirning xususiyatlarini qayta ishlash va yangilash uchun 2D konvolyutsiyalarni va matn so'roviga e'tibor berib xususiyatlarni yangilash uchun kros-diqqat qatlamini o'z ichiga oladi.
Biroq, bu qatlamlar asosan bitta tasvir ichidagi piksellar o'rtasidagi munosabatlarni olishga e'tibor qaratadi. Bu dizayn videolar uchun qiyinchilik tug'diradi, u yerda harakatning ravonligi va kadrlar bo'ylab davomiylik uchun vaqtinchalik izchillikni saqlash muhim. Ammo joriy qatlamlar alohida kadrlar ichida fazoviy tarzda ishlaydi, kadrlar bo'ylab emas.
Bu kamchilikni hal qilish uchun U-Net arxitekturasini kadrlar bo'ylab munosabatlarni tushunish uchun o'zgartiramiz. Xususan, ikkita keng ishlatiladigan vaqtinchalik qatlamni kiritamiz:
- Vaqtinchalik diqqat
- Vaqtinchalik konvolyutsiya
Keling, har bir qatlamni qisqacha ko'rib chiqaylik.
Vaqtinchalik diqqat: Vaqtinchalik diqqat kadrlar bo'ylab diqqat mexanizmidan foydalanadi. Har bir xususiyat boshqa kadrlar bo'ylab tegishli xususiyatlarga e'tibor berib yangilanadi. 12-rasm 2-kadrdagi muayyan xususiyat boshqa kadrlar bo'ylab xususiyatlarga e'tibor berib qanday yangilanishini ko'rsatadi.
- Vaqtinchalik konvolyutsiya: Vaqtinchalik konvolyutsiya vaqtinchalik o'lchamni olish uchun ma'lumotlarning 3D segmentiga konvolyutsiya operatorini qo'llashni anglatadi. 13-rasm 2D va 3D vaqtinchalik konvolyutsiyalarni ko'rsatadi.
Xulosa qilib aytganda, U-Net arxitekturasini videolarni qayta ishlashga kengaytirish uchun har bir pastga va yuqoriga namuna olish blokida vaqtinchalik konvolyutsiya va vaqtinchalik diqqat qatlamlarini o'tkazmali tarzda joylashtirish mumkin. Bu qatlamlar U-Net arxitekturasiga kirish videolaridagi harakatni modellashtirish va vaqtinchalik izchil kadrlar ketma-ketligini generatsiya qilish imkonini beradi. Bu qatlamlar qanday joylashtirilishi haqida ko'proq bilish uchun [10] ga murojaat qiling.
Videolar uchun DiT
Asosan konvolyutsiyalarga asoslangan U-Net dan farqli o'laroq, DiT asosan Transformer arxitekturasiga tayanadi. 14-rasmda ko'rsatilganidek, DiT to'rtta asosiy tarkibiy qismdan iborat:
- Patchify (parchalash)
- Pozitsion kodlash
- Transformer
- Unpatchify (birlashtirish)
Keling, har bir tarkibiy qismni ko'rib chiqaylik va uning maqsadini tushunaylik.
Patchify (parchalash)
Bu tarkibiy qism kirishni o'rnatma vektorlar ketma-ketligiga aylantiradi. U birinchi navbatda kirishni kichikroq, belgilangan o'lchamdagi patchlarga bo'ladi. Keyin har bir patch vektorlar ketma-ketligini hosil qilish uchun tekislanadi. Tekislangan patchlar proyeksiya qatlami yordamida patch o'rnatmalariga aylantiriladi. Bu bosqich har bir tekislangan patchning o'rnatma hajmini Transformer'ning yashirin o'lchami bilan moslashtirish uchun muhim.
Patchify jarayoni tasvir va video kirish uchun o'xshash. Tasvirlar uchun u kirishni belgilangan o'lchamdagi 2D patchlarga bo'ladi. Videolar uchun esa video 3D patchlarga bo'linadi.
Pozitsion kodlash
Pozitsion kodlash tarkibiy qismi asl ketma-ketlikdagi har bir pozitsiya uchun o'rnatma yaratadi. Bu o'rnatmalar Transformer ga asl kirishdagi har bir patchning joylashgan o'rni haqida ma'lumot beradi.
2-bobda ko'rganimizdek, pozitsiyalarni kodlashning turli usullari mavjud: Ba'zi usullar o'qitish jarayonida belgilangan pozitsion kodlashdan foydalanadi, boshqa usullar esa pozitsion kodlashni o'rganilishi mumkin qiladi. Har bir patchga pozitsiyalarni belgilashning ham turli usullari bor. Masalan, biz har bir patchga uning ketma-ketlikdagi o'rini ko'rsatish uchun bitta raqam berish yoki har bir patchning fazoda va vaqtda qayerda ekanligini ko'rsatish uchun 3D koordinatalardan (tasvirlar uchun 2D) foydalanish mumkin.
Pozitsion kodlashning eng yaxshi bitta usuli yo'q. Ko'pincha ma'lumotlar va vazifa uchun eng samarali bo'ladigan yondashuvni topish uchun tajribalar o'tkazishimiz kerak. Ushbu bobda biz OpenSora [11] ni kuzatamiz va RoPE [12] pozitsion kodlashidan foydalanamiz. Matndan videoga modellarda pozitsion kodlash haqida ko'proq bilish uchun [4] ga murojaat qiling.
Transformer
Transformer o'rnatmalar ketma-ketligini va matn so'rovi kabi boshqa shartlash signallarini qayta ishlaydi va har bir patch uchun shovqinni bashorat qiladi.
Unpatchify (birlashtirish)
Unpatchify bashorat qilingan shovqin vektorlarini asl kirish o'lchamlariga qaytarib aylantiradi. U normalizatsiya uchun LayerNorm, vektor uzunligini sozlash uchun chiziqli qatlam va yakuniy chiqishni hosil qilish uchun qayta shakllantirish operatsiyasini o'z ichiga oladi.
U-Net va DiT
U-Net va DiT arxitekturalari matndan videoga generatsiya uchun samarali ekanligi isbotlangan. U-Net arxitekturasi uzoqroq vaqt mavjud va keng sinovdan o'tgan. Mashhur U-Net asosidagi matndan videoga modellar Stability AI tomonidan ishlab chiqilgan Stable Video Diffusion [13] va Meta tomonidan ishlab chiqilgan EMU video [14] ni o'z ichiga oladi.
DiT arxitekturasi yangroq va katta natijalarga ega bo'lib katta istiqbolni ko'rsatdi. DiT Transformer'larning kengaytiriluvchan tabiati sababli ko'paytirilgan ma'lumotlar va hisoblash quvvati bilan yaxshiroq ishlaydi. Bundan tashqari, uning moslashuvchan arxitekturasi uni videolar va boshqa kirish modalliklarga moslashtirishni osonlashtiradi. Meta'ning Movie Gen va OpenAI'ning Sora DiT arxitekturasiga asoslangan mashhur model.
Ushbu bobda biz Sora ni kuzatamiz va DiT arxitekturasini tanlaymiz.
O'qitish
Video diffuziya modelini o'qitish tasvir diffuziya modelini o'qitishga juda o'xshash. O'qitish jarayonida biz oldinga jarayonni simulyatsiya qilib asl videoga shovqin qo'shamiz va modelni qo'shilgan shovqinni bashorat qilishga o'qitamiz. O'qitishning bir iteratsiyasiga kiradigan uchta aniq bosqich:
- Shovqin qo'shish: Shovqin qo'shish darajasini aniqlash uchun vaqt qadami tasodifiy tanlanadi. Tanlangan vaqt qadami kirish videoga shovqin qo'shish uchun ishlatiladi.
- Shovqinni bashorat qilish: DiT modeli shovqinli videoni kirish sifatida qabul qiladi va matn so'rovi hamda tanlangan vaqt qadami kabi shartlash signallariga asoslanib qo'shilgan shovqinni bashorat qiladi.
- Yo'qotishni hisoblash: Yo'qotish bashorat qilingan shovqin va haqiqiy shovqin o'rtasini taqqoslash orqali o'lchanadi.
Diffuziya o'qitishini batafsilroq ko'rib chiqish uchun 9-bobga murojaat qiling.
ML maqsadi va yo'qotish funksiyasi
Asosiy yo'qotish funksiyasi o'rtacha kvadratik xato (MSE) formulasidan foydalanib hisoblangan rekonstruksiya yo'qotishi. Bu yo'qotish bashorat qilingan shovqin va haqiqiy shovqin o'rtasidagi farqni o'lchaydi, modelni qo'shilgan shovqinni aniq bashorat qilishga undaydi. ML maqsadi rekonstruksiya yo'qotishini minimallashtirishdir, bu esa aniq video rekonstruksiyasiga olib keladi.
Tadqiqotchilar matndan videoga samaradorlikni oshirish uchun boshqa yo'qotish funksiyalarini qo'shish bilan tajriba o'tkazdi. Ko'proq bilish uchun [4] ga murojaat qiling.
Video diffuziya modellarini o'qitishdagi qiyinchiliklar
Matndan videoga generatsiya uchun DiT modelini o'qitish bir necha qiyinchiliklar va dizayn qarorlarini o'z ichiga oladi. Ushbu bo'lim ikkita muhim qiyinchilikni o'rganadi:
- Katta miqyosli video–matn ma'lumotlarining etishmasligi
- Yuqori o'lchamli video generatsiyasining hisoblash xarajati
Katta miqyosli video–matn o'qitish ma'lumotlarining etishmasligi
Katta modellarni o'qitish ko'plab ma'lumotlarni talab qiladi. Juda ko'p miqdordagi tasvir–matn juftlashtirilgan ma'lumotlar mavjud bo'lgan matndan tasvirga modellarni o'qitishdan farqli o'laroq, juftlashtirilgan video–matn ma'lumotlari kam. Bu kamlik samarali video generatsiya modellarini o'qitishda qiyinchilik tug'diradi.
Katta miqyosli ma'lumotlar etishmasligini hal qilishning ikkita keng tarqalgan strategiyasi bor:
- DiT modelini tasvir va video ma'lumotlari bo'yicha o'qitish: Bu strategiya har bir tasvirni bitta kadrli video sifatida ko'rib chiqadi, shu bilan modelga tasvir–matn va video–matn ma'lumotlari bo'yicha o'qitish imkonini beradi.
- DiT modelini tasvir ma'lumotlari bo'yicha oldindan o'qitish: Bu strategiya keng tasvir ma'lumotlaridan foydalanish va kuchli vizual poydevor yaratish uchun birinchi navbatda DiT modelini tasvir–matn juftliklari bo'yicha oldindan o'qitadi. Oldindan o'qitilgan model keyin video generatsiya uchun video–matn juftliklari bo'yicha nozik sozlanadi.
Ikki strategiya ham o'qitishda yuzlab millionlab tasvir–matn ma'lumotlaridan foydalanadi, bu DiT modeliga tasvir va videodan o'rganish imkonini beradi. Oddiylik uchun birinchi strategiyani tanlaymiz, chunki u faqat bitta o'qitish bosqichini talab qiladi. Biroq, ikki strategiya ham amalda samarali bo'lishi mumkin.
Yuqori o'lchamli video generatsiyasining hisoblash xarajati
Yuqorida muhokama qilinganidek, videolarni qayta ishlash va generatsiya qilish tasvirlardan qimmatroq. Bu asosan videolar odatda yuzlab kadrlarni o'z ichiga olishi bilan bog'liq bo'lib, jarayonni sekinroq va qimmatroq qiladi. 720p yoki 1080p kabi yuqori o'lchamli videolar generatsiya qilish qiyinchilikni yanada oshiradi.
Yuqori o'lchamli video generatsiya modellarini o'qitishning hisoblash xarajatini kamaytirish uchun bir nechta keng tarqalgan strategiyalar mavjud:
- LDM ga asoslangan yondashuvni qo'llash: DiT modelini bevosita piksel fazosida o'qitish o'rniga, videolarni piksel fazosidan past o'lchamli latent fazoga aylantirish uchun siqish tarmog'idan foydalanamiz. Diffuziya modelini ushbu latent fazosida o'qitish hisoblash yukini kamaytiradi.
- Video vakilliklarini oldindan hisoblash: O'qitishdan oldin latent fazosidagi video vakilliklarini oldindan hisoblash orqali o'qitish jarayonida takroriy hisob-kitoblardan qochamiz. Ushbu keshlangan ma'lumotlardan foydalanish o'qitish jarayonini tezlashtiradi.
- Fazoviy super-o'lchamli modeldan foydalanish: Google'ning "Imagen video" [15] taklif qilganidek, generatsiya qilingan videolar o'lchamini oshirish uchun alohida o'qitilgan modeldan foydalanamiz. DiT modeli keyinchalik fazoviy super-o'lchamli model tomonidan kerakli o'lchamga oshiriladigan past o'lchamda videolar generatsiya qiladi. Masalan, DiT modeli 720p da videolar generatsiya qilishi mumkin va fazoviy super-o'lchamli model ularni 1080p yoki 4K ga ko'tarishi mumkin.
- Vaqtinchalik super-o'lchamli modeldan foydalanish: [15] taklif qilganidek, kadrlar orasida interpolatsiya qilib vaqtinchalik o'lchamni oshirish uchun modeldan foydalanamiz. Masalan, agar video 24 FPS da besh seund bo'lishi kerak bo'lsa (ya'ni, jami 120 ta kadr), DiT modeli uni 12 FPS da (60 ta kadr) generatsiya qilishi mumkin va vaqtinchalik super-o'lchamli model 24 FPS ga erishish uchun interpolatsiya qilishi mumkin.
- Samaraliroq arxitekturalardan foydalanish: O'qitish jarayonida hisoblash yukini kamaytirish uchun diqqat mexanizmining samarali dasturini [16] qabul qilishimiz mumkin. Bundan tashqari, o'qitish jarayonini tezlashtirish uchun Mixture of Experts (MoE) [17] kabi texnikalardan foydalanish mumkin.
- Taqsimlangan o'qitishdan foydalanish: O'qitishni bir nechta qurilmalar bo'ylab parallellashtirishda tensor parallelligi kabi taqsimlangan o'qitish texnikalaridan foydalanamiz. Modelni, ma'lumotlarni yoki ikkalasini turli qurilmalar bo'ylab bo'lib, o'qitishni sezilarli darajada tezlashtirishimiz va kattaroq video ma'lumot to'plamlarini samaraliroq boshqarishimiz mumkin. Bu yondashuv xotira va hisoblash talablari katta bo'lgan yuqori o'lchamli video generatsiya uchun ayniqsa foydali. Taqsimlangan o'qitishga umumiy ko'rinish uchun 1-bobga murojaat qiling.
Namuna olish
Diffuziya modellarida namuna olish jarayoni tasodifiy shovqindan boshlanadi va model latent fazosida to'liq shovqinsizlashtirilgan video vakilligi olinguncha namunani iterativ ravishda shovqinsizlashtiradi. Diffuziya modellarida namuna olish haqida batafsil ma'lumot olish uchun 9-bobga murojaat qiling.
Baholash
Oflayn baholash o'lchovlari
Izchil benchmark video generatsiya modellarini baholash uchun muhim. VBench [18] va Movie Gen Bench [19] harakat iziyligi, vaqtinchalik izchillik va sahna murakkabligi kabi video generatsiyasining turli jihatlarini sinash uchun mo'ljallangan tanlangan so'rovlar to'plamini taqdim etib buni ta'minlaydi. Biz modelning realistik va ravon videolar yaratish qanchalik yaxshi ekanligini o'lchash uchun bu benchmarklardan foydalanishimiz mumkin, video sifati, harakat aniqligi va sahna o'tishlariga e'tibor qaratib. Keling, avtomatlashtirilgan o'lchovlar va inson baholashini ko'rib chiqaylik, uchta asosiy sohaga e'tibor qaratib:
- Kadr sifati
- Vaqtinchalik izchillik
- Video–matn moslanmasi
Kadr sifati
Kadr sifati har bir kadrning sifatini mustaqil ravishda o'lchashni anglatadi. Bu sifatni o'lchash uchun tasvirlar uchun keng ishlatiladigan FID [20] va Inception score (IS) [21] dan foydalanamiz. Umumiy sifat barcha kadrlarning FID va IS ballarini o'rtalashtirish orqali hisoblanadi. LPIPS [22] va KID [23] kabi boshqa o'lchovlardan ham foydalanish mumkin.
FID va IS alohida kadrlar sifatini o'lchaydi, lekin ular generatsiya qilingan videolardagi vaqtinchalik izchillikni hisobga olmaydi. Masalan, video yuqori sifatli kadrlarga ega bo'lishi mumkin, lekin ravon o'tishlardan mahrum bo'lib, vizual izchilliksiz yuqori FID baliga olib kelishi mumkin. Keling, vaqtinchalik izchillikni va uni o'lchash uchun ishlatiladigan keng tarqalgan o'lchovlarni o'rganib chiqaylik.
Vaqtinchalik izchillik
Vaqtinchalik izchillik vizual kontentning bir kadrdan keyingisiga qanchalik ravon o'tishini anglatadi. Vaqtinchalik izchillikni baholash generatsiya qilingan videoning tabiiy oqishini ta'minlash uchun muhim. Vaqtinchalik izchillikni o'lchash uchun keng tarqalgan o'lchov — Fréchet Video Distance (FVD).
FVD
FID ning kengaytmasi bo'lgan FVD [24] videolarning vizual sifati va vaqtinchalik izchilligini baholaydi. U generatsiya qilingan videolarning statistik taqsimotini o'rnatilgan fazosidagi haqiqiy videolar bilan taqqoslaydi.
FVD ballini hisoblash uchun bosqichma-bosqich qo'llanma:
- Videolar generatsiya qilish: Biz baholamoqchi bo'lgan modeldan foydalanib katta miqdordagi videolar generatsiya qilishdan boshlaymiz. Bu videolar sifat va izchilligini baholash uchun haqiqiy videolar to'plami bilan taqqoslanadi.
- Xususiyatlarni ajratib olish: Har bir videoni (generatsiya qilingan ham, haqiqiy ham) oldindan o'qitilgan I3D modeli [25] orqali o'tkazamiz va muayyan qatlamdan xususiyatlarni ajratib olamiz. I3D modeli Inception v3 [26] arxitekturasini harakat tanishni o'qitish orqali ketma-ket ma'lumotlarga kengaytiradi.
- O'rtacha va kovariansni hisoblash: Generatsiya qilingan va haqiqiy videolar uchun ajratilgan xususiyatlarning o'rtacha va kovariansini alohida hisoblaymiz. Bu statistik o'lchovlar ikkala videolar to'plami uchun xususiyatlar taqsimotini xulosalaydi.
- Fréchet masofasini hisoblash: FVD ballini generatsiya qilingan va haqiqiy videolarning o'rtacha va kovarianssi o'rtasidagi Fréchet masofasi sifatida hisoblaymiz. Fréchet masofasi ikkita taqsimot qanchalik yaqin ekanligini o'lchaydi.
Pastroq FVD bali taqsimotlar o'rtasida ko'proq o'xshashlikni ko'rsatadi, ya'ni generatsiya qilingan videolar yanada realistik va vaqtinchalik izchil.
Video–matn moslanmasi
Video–matn moslanmasi generatsiya qilingan videoning shartlangan matniy tavsifni qanchalik aniq aks ettirishini anglatadi.
Video–matn moslanmasini o'lchash uchun keng ishlatiladigan o'lchov — quyidagicha hisoblangan CLIP o'xshashlik bali:
- Kadr darajasidagi xususiyatlarni ajratib olish: Vizual xususiyatlarni olish uchun har bir video kadrni oldindan o'qitilgan CLIP tasvir encoderidan o'tkazamiz. Matn matniy xususiyatlarni olish uchun matn encoderi yordamida kodlanadi.
- O'xshashliklarni hisoblash: Har bir kadr uchun uning vizual xususiyatlari va matniy xususiyatlar o'rtasidagi kosinusli o'xshashlikni hisoblaymiz. Bu ball kadr kontentining matn bilan qanchalik mos kelishini ko'rsatadi.
- Kadr bo'yicha o'xshashliklarni yig'ish: Umumiy video–matn moslanmasini ifodalovchi bitta ballni olish uchun bu o'xshashlik ballarini yig'amiz. Yig'ish o'rtalashtirish, maksimal ballni olish yoki boshqa statistik usullar orqali amalga oshirilishi mumkin.
Yuqori CLIP o'xshashlik bali generatsiya qilingan videolar mos matn bilan mos kelishini ko'rsatadi.
Inson baholashi
Tavsiflangan avtomatlashtirilgan o'lchovlar bilan bir qatorda, inson baholashi generativ modellarni baholash uchun hali ham muhim, chunki u avtomatlashtirilgan o'lchovlarni to'ldiruvchi sub'ektiv baholashni ta'minlaydi.
Inson baholashi uchun biz sinov so'rovlaridan ikkita turli model yordamida videolar generatsiya qilamiz. Keyin videolar juftlarini, har bir modeldan bittadan, inson annotatorlariga taqdim etamiz. Ular video–matn moslanmasi, video sifati va vaqtinchalik izchillikni baholab yaxshiroq videoni tanlaydi. Bu jarayon bizga ikkita modelni taqqoslash va qaysi biri yaxshiroq ishlashini ko'rish imkonini beradi.
Onlayn baholash o'lchovlari
Matndan videoga modellar uchun onlayn baholash o'lchovlari matndan tasvirga modellarga o'xshash. Muhim o'lchovlarga quyidagilar kiradi:
- Bosimlash darajasi (click-through rate)
- Sahifada sarflangan vaqt
- Foydalanuvchi fikri
- Konversiya koeffitsienti
Bu o'lchovlar foydalanuvchi faoliyatini, mamnuniyatini va ishlab chiqarishdagi modelning umumiy samaradorligini o'lchashga yordam beradi.
Umumiy ML Tizimi Dizayni
Ushbu bo'limda biz matndan videoga generatsiya tizimining yaxlit dizaynini o'rganamiz. Xususan, quyidagi quvurlarni ko'rib chiqamiz:
- Ma'lumotlar quvuri
- O'qitish quvuri
- Xulosa chiqarish quvuri
Ma'lumotlar quvuri
Ma'lumotlar quvuri mos bo'lmagan tasvirlar va videolarni filtrlash, ularni standartlashtirish va latent vakilliklarni oldindan hisoblash va saqlash orqali o'qitish ma'lumotlarini tayyorlaydi. U sarlavhalarni qayta yozish va sarlavha o'rnatmalarini oldindan hisoblash va saqlash uchun oldindan o'qitilgan matn encoderidan foydalanib sarlavhalarning dolzarb va batafsil bo'lishini ta'minlaydi.
O'qitish quvuri
O'qitish quvuri ma'lumotlar quvuri tomonidan tayyorlangan o'qitish ma'lumotlaridan foydalanib modelni o'qitadi.
Xulosa chiqarish quvuri
Xulosa chiqarish quvuri matn so'rovlaridan videolar generatsiya qilish uchun real vaqtdagi foydalanuvchi so'rovlarini qayta ishlaydi. 24-rasmda ko'rsatilganidek, tizim sifati va xavfsizligini ta'minlovchi bir nechta muhim tarkibiy qismga ega.
Ko'pgina tarkibiy qismlar matndan tasvirga generatsiya uchun 9-bobda ko'rib chiqilganlarga o'xshash. Matndan videoga generatsiyaga xos tarkibiy qismlar:
- Vizual decoder
- Vaqtinchalik super-o'lchamli model
Vizual decoder
LDM piksel fazosida emas, latent fazosida chiqish yaratadi. Vizual decoder so'ngra bu latent vakillikni piksel fazosiga qaytarib aylantirish uchun siqish tarmog'idan foydalanadi.
Vaqtinchalik super-o'lchamli model
Bu tarkibiy qism generatsiya qilingan kadrlar orasida interpolatsiya qilib, videolarda ravonroq harakatga olib keladi.
Boshqa Muhokama Mavzulari
Agar intervyu oxirida qo'shimcha vaqt bo'lsa, quyidagi mavzularni muhokama qilish mumkin:
- O'zgaruvchan davomiyliklar, o'lchamlar va nisbatlar uchun namuna olish moslashuvchanligini ta'minlash [1].
- Matndan videoga modelni in-painting, out-painting, video-dan-videoga stillashtirish, kadr interpolatsiyasi, super-o'lchamlash va tasvirlarni animatsiya qilish (tasvirdan videoga) kabi quyi oqim ilovalarga kengaytirish [10].
- Kerakli harakat darajasi va harakat turi (kamera va ob'ekt harakati) kabi generatsiya qilingan videolarni boshqarish uchun qo'llab-quvvatlash [27].
- O'qitishning hisoblash talablarini kamaytirish uchun progressiv distillyatsiya texnikalaridan foydalanish [28].
- Fazoviy va vaqtinchalik super-o'lchamli modellarning tafsilotlari [15].
- Sarlavha qayta yozish modelining tafsilotlari [9][8].
- Turli shovqin rejalashtiruvchilar [29].
- Shovqin shartlash kengaytirish texnikalari [30].
- Matndan videoga modelni muayyan sub'ektga moslashtirish [31].
- Matndan videoga modellari uchun ControlNet [32].
- Stable Cascade usulining tafsilotlari [33].
- Vizual siqish tarmog'ining tafsilotlari [13].
Xulosa
Manba Materiallar
[1] Video generation models as world simulators. https://openai.com/index/video-generation-models-as-world-simulators/. [2] H100 Tensor Core GPU. https://www.nvidia.com/en-us/data-center/h100/. [3] High-Resolution Image Synthesis with Latent Diffusion Models. https://arxiv.org/abs/2112.10752. [4] Meta Movie Gen. https://ai.meta.com/research/movie-gen/. [5] Auto-Encoding Variational Bayes. https://arxiv.org/abs/1312.6114. [6] The Illustrated Stable Diffusion. https://jalammar.github.io/illustrated-stable-diffusion/. [7] On the De-duplication of LAION-2B. https://arxiv.org/abs/2303.12733. [8] The Llama 3 Herd of Models. https://arxiv.org/abs/2407.21783. [9] LLaVA-NeXT: A Strong Zero-shot Video Understanding Model. https://llava-vl.github.io/blog/2024-04-30-llava-next-video/. [10] Lumiere: A Space-Time Diffusion Model for Video Generation. https://arxiv.org/abs/2401.12945. [11] OpenSora Technical Report. https://github.com/hpcaitech/Open-Sora/blob/main/docs/report_02.md. [12] RoFormer: Enhanced Transformer with Rotary Position Embedding. https://arxiv.org/abs/2104.09864. [13] Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets. https://arxiv.org/abs/2311.15127. [14] Emu Video: Factorizing Text-to-Video Generation by Explicit Image Conditioning. https://arxiv.org/abs/2311.10709. [15] Imagen Video: High Definition Video Generation with Diffusion Models. https://arxiv.org/abs/2210.02303. [16] HyperAttention: Long-context Attention in Near-Linear Time. https://arxiv.org/abs/2310.05869. [17] Mixture of Experts Explained. https://huggingface.co/blog/moe. [18] VBench: Comprehensive Benchmark Suite for Video Generative Models. https://vchitect.github.io/VBench-project/. [19] Movie Gen Bench. https://github.com/facebookresearch/MovieGenBench. [20] FID calculation. https://en.wikipedia.org/wiki/Fr%C3%A9chet_inception_distance. [21] Inception score. https://en.wikipedia.org/wiki/Inception_score. [22] The Unreasonable Effectiveness of Deep Features as a Perceptual Metric. https://arxiv.org/abs/1801.03924. [23] Demystifying MMD GANs. https://arxiv.org/abs/1801.01401. [24] Towards Accurate Generative Models of Video: A New Metric & Challenges. https://arxiv.org/abs/1812.01717. [25] Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset. https://arxiv.org/abs/1705.07750. [26] Rethinking the Inception Architecture for Computer Vision. https://arxiv.org/abs/1512.00567. [27] Moonshot: Towards Controllable Video Generation and Editing with Multimodal Conditions. https://arxiv.org/abs/2401.01827. [28] Progressive Distillation for Fast Sampling of Diffusion Models. https://arxiv.org/abs/2202.00512. [29] Schedulers. https://huggingface.co/docs/diffusers/v0.9.0/en/api/schedulers. [30] Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding. https://arxiv.org/abs/2205.11487. [31] CustomVideo: Customizing Text-to-Video Generation with Multiple Subjects. https://arxiv.org/abs/2401.09962. [32] Control-A-Video: Controllable Text-to-Video Generation with Diffusion Models. https://controlavideo.github.io/. [33] Introducing Stable Cascade. https://stability.ai/news/introducing-stable-cascade.