Esc
Klaviatura yorliqlari
?Show this help ⌘KSearch tToggle dark/light theme nOpen notes j / kScroll down / up bBack to top /Focus search EscClose panels
Barcha kurslar
GenAI System Design
ENRUUZ
Eslatmalar
Current chapter
0 chars
Highlight color
Bob 3

Google Translate

~23 daq o'qish

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.

Image represents a user interface showcasing a language detection and translation feature.  Two rectangular boxes are displayed side-by-side. The left box shows a text input area containing the English phrase 'Beautiful day!' along with a microphone icon suggesting voice input capability.  Above this box, a dropdown menu labeled 'Detect lang...' displays 'English' as the selected option with 'Spanish' also available.  A counter '14/5,...' is visible at the bottom, possibly indicating progress or a character limit. The right box displays the Korean translation '아름다운 날!'  Above this box, a similar dropdown menu labeled 'Korean' shows 'Spanish' and 'Russian' as additional options.  At the bottom of the right box, a button labeled 'Send Feedb.' suggests a feedback submission mechanism.  There is no explicit visual connection between the boxes, but the implied interaction is that the input text in the left box is translated into the selected language in the right box.
1-rasm: Til tarjimasi xizmati

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.

Image represents a simplified model of a machine translation system.  The input, labeled 'Source s...', feeds the phrase 'A beautiful day' into a central rectangular box labeled 'Language Translation...'.  A second input, labeled 'Desired language', provides the target language, 'Spanish'.  Both inputs are connected to the 'Language Translation...' box, indicating that both the source text and target language are necessary for the translation process. The 'Language Translation...' box processes the input and outputs the translated phrase 'Un día hermoso', labeled 'Translated sentence...'. The arrows indicate the flow of information, showing how the source sentence is transformed into the target language based on the specified desired language.
2-rasm: Tarjima tizimining kirish va chiqishi

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.
Image represents a simplified diagram of a neural machine translation (NMT) system.  The system consists of two main components: an Encoder (represented by a light green rectangle labeled 'Encoder') and a Decoder (represented by a light orange rectangle labeled 'Decoder').  An arrow indicates that the Encoder's output feeds directly into the Decoder.  The Encoder receives as input the English phrase 'I am graduating' (enclosed in a dashed-line box labeled 'English:'), processing it to create an internal representation. This representation is then passed to the Decoder. The Decoder generates the Spanish translation 'me estoy graduando' (enclosed in a dashed-line box labeled 'Spanish:'), which is shown as an output arrow pointing upwards from the Decoder.  The entire diagram illustrates the flow of information from English input through the Encoder and Decoder to produce a Spanish output, demonstrating a basic sequence-to-sequence model for machine translation.
3-rasm: Inglizchadan ispanchaga tarjima qiluvchi encoder-decoder modeli

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.

Image represents a word-level vocabulary table used in a natural language processing (NLP) system.  The table is structured as a two-column grid. The left column, labeled 'Token,' lists individual words or special tokens.  These include '<BOS>' (Begin of Sentence) and '<EOS>' (End of Sentence), representing sentence boundaries, along with example words like 'walking,' 'bonjour,' 'hello,' and 'fantastique.' The right column, labeled 'ID,' assigns a unique numerical identifier (integer) to each token.  The IDs start from 0 and increment sequentially.  The ellipses ('...') indicate that the table continues beyond the visible portion, implying a larger vocabulary with many more word-ID pairs.  The table's title, 'Word-level Vocabulary,' clearly indicates its purpose as a mapping between words and their numerical representations, essential for processing text data in NLP models.
4-rasm: So'z darajasidagi tokenizatsiya tufayli juda katta lug'at hajmi

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".

Image represents a data processing pipeline where a corpus (represented as a beige cylindrical database) is processed to generate a word frequency table.  A unidirectional arrow indicates data flow from the 'Corpus' database to a table with two columns: 'Word' and 'Frequency'. The 'Word' column lists individual words ('cat', 'cats', 'dog', 'dogs'), while the 'Frequency' column shows the corresponding count of each word's occurrences within the corpus.  The table visually presents the results of analyzing the text data contained within the corpus, summarizing the frequency of each word.
5-rasm: Korpusdagi so'zlarning chastotasi

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.
Image represents a three-step process of creating an initial vocabulary from a word frequency table.  The first table lists words ('cat,' 'cats,' 'dog,' 'dogs') and their frequencies (5, 3, 6, 4 respectively).  A numbered arrow (1) points from this table to a second table, where each word is now tagged with '</w>' (e.g., 'cat</w>'), indicating a word token, and frequencies remain the same.  A second numbered arrow (2) connects this table to a third table, which lists the character sequences of each word-token (e.g., 'cat</w>') and their frequencies.  Finally, a third numbered arrow (3) connects the character sequence table to a final table labeled 'Initial vocabulary,' which shows each unique character ('c,' 'a,' 't,' 's,' 'd,' 'o,' 'g,' '</w>') and its overall frequency across all word-tokens.  The frequencies in the final table represent the total count of each character in the initial word list.
6-rasm: Dastlabki sozlash qadamlari
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.
Image represents a table showing token frequency.  The table has three columns: '#' (a numerical index), 'Token' (a character or word), and 'Frequency' (the count of occurrences).  Rows 0-3 list individual characters ('c', 'a', 't', 's') with frequencies of 8, 8, 8, and 7 respectively. Row 6 shows 'g' with a frequency calculated as '10-10=0'. Row 7 displays the token '</w>' with a frequency of 18. Row 8 shows 'do' with a frequency calculated as '10-10=0'. Finally, row 9 shows the token 'dog' with a frequency of 10. Two curved arrows indicate a cyclical or iterative process, suggesting the data might be processed repeatedly or represent a sequence of steps.  The table likely represents a step in a natural language processing or text analysis process, possibly related to tokenization and frequency counting before further processing.
8-rasm: BPE 2-iteratsiyasi
  • 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.
Image represents a step-by-step process of updating token frequencies.  Three tables are shown, each with columns '#' (representing a token ID), 'Token', and 'Frequency'. The first table shows initial frequencies; for example, token 0 ('c') has a frequency of 8-8=0, token 1 ('a') has 8-8=0, token 2 ('t') has 8, and so on.  A rightward arrow indicates a transformation where the frequency of token 3 ('s') is reduced by 7, resulting in the second table.  This table shows updated frequencies, where 's' now has a frequency of 0, and '</w>' has 18-7=11.  Another rightward arrow shows a further transformation, likely another frequency update, resulting in the third table.  This final table shows further adjustments; for instance, '</w>' now has a frequency of 8, and a new token 's</w>' appears with a frequency of 8.  The curved arrows between tables suggest that the process involves iterative updates based on the previous table's values, possibly indicating a token frequency adjustment algorithm.
9-rasm: BPE 3–5 iteratsiyalari

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.

Image represents a simple table displaying token frequency data.  The table has three columns: '#' (a numerical identifier), 'Token' (a string of text), and 'Frequency' (a numerical count).  Each row represents a unique token and its corresponding frequency.  Specifically, row 1 shows token '</w>' with a frequency of 11; row 2 shows 'dog' with a frequency of 10; row 3 shows 'cat' with a frequency of 8; and row 4 shows 's</w>' with a frequency of 8.  The '#' column acts as a row index, providing a unique identifier for each token-frequency pair.  There are no connections or information flow between rows; the table simply presents a static summary of token occurrences.  The bottom line 'Text is not SVG - cannot display' indicates that the image itself might be a screenshot or a representation of data that was originally in a different format.
10-rasm: 5 iteratsiyadan so'ng BPE lug'ati

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.

Image represents a data processing pipeline for machine translation.  The left side shows 'Original pairs' of sentences in English and another language (French and Korean in this example). Each pair consists of an English sentence and its translation in the target language, arranged in rows within a table.  The right side displays 'Tokenized pairs,' where each sentence from the original pairs has been converted into a sequence of numerical tokens.  These tokens are enclosed in square brackets, with each number likely representing a word or sub-word unit from a vocabulary.  Arrows indicate the flow of data from the original language pairs to their tokenized counterparts.  The tokenization process transforms the original text into numerical representations suitable for machine learning models, enabling the model to learn relationships between the languages.  The ellipses (...) indicate that the tables contain more data than is explicitly shown.
11-rasm: Inglizcha–koreycha va inglizcha–fransuzcha juftlar uchun qurilgan o'quv ma'lumotlari

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.

Image represents a diagram of a Transformer neural network architecture.  At the bottom, an 'Input sequence' feeds into a 'Text Embedding' layer, which is colored light orange.  Above this, a purple 'Positional Encoding' layer processes the embedded text.  Next, a larger light gray block labeled 'Transformer' contains a vertically stacked, repeating sequence of three layers: 'Normalization', 'Feed Forward', and 'Self-Attentio...' (truncated).  The 'Nx' label indicates that this sequence of three layers repeats N times.  Finally, three upward arrows emerge from the top of the Transformer block, representing the 'Output sequence'.  The data flow is strictly bottom-up: the input sequence is processed sequentially through the embedding, positional encoding, and the repeated Transformer layers, ultimately producing the output sequence.
12-rasm: Encoder komponentlari

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.

Image represents a table illustrating the concept of word embeddings.  The table is divided into two columns: 'Token' and 'Embedding.' The 'Token' column lists individual words or word pieces, including '</w>' (likely representing the end of a word), 'dog,' 'cat,' and 's</w>' (likely representing the start of a word).  The 'Embedding' column displays a series of boxes representing the numerical vector associated with each token. Each row corresponds to a token and its associated embedding vector; the boxes within the 'Embedding' column visually represent the vector's dimensions, with each box implicitly holding a numerical value.  An ellipsis ('...') indicates that the table continues with more token-embedding pairs beyond what's explicitly shown.  The image visually demonstrates how each word (token) is transformed into a high-dimensional vector (embedding) which captures semantic meaning, allowing for computational processing and comparison of words.  The text 'Text is not SVG – cannot display' at the bottom indicates a limitation in rendering the image, likely due to the vector representation being non-standard.
13-rasm: Token embedding jadvali

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.
Image represents a sequence-to-sequence model, likely a transformer-based architecture for text generation.  The model consists of two main parts: an encoder and a decoder. The encoder, a light gray rectangle labeled 'Encoder,' takes an 'Input sequence (s...' as input and processes it.  The output of the encoder, labeled 'Output sequence,' is then fed into the decoder, a larger gray rectangle labeled 'Transformer.' The decoder comprises several stacked layers: 'Text Embedding' (orange), 'Positional Encoding' (purple), 'Self-Attention...', 'Normalization', 'Cross-Attention...', 'Feed Forward', and 'Normalization' layers, all vertically stacked.  The 'Nx' label indicates that these layers are repeated N times.  The output of the decoder is fed into a light green rectangle labeled 'Prediction Head,' which generates the 'Predicted...' output sequence.  Arrows indicate the flow of information between components, showing how the input sequence is processed by the encoder, then passed to the decoder, which generates the predicted output sequence through multiple attention and feed-forward layers.  The 'Previously generate...' text at the bottom indicates that the decoder uses previously generated text as input for subsequent predictions.
14-rasm: Decoder komponentlari

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.

Image represents a diagram of a sequence-to-sequence model, likely a neural machine translation architecture.  At the bottom, an 'Input sequence' feeds into an 'Encoder,' depicted as a rectangular box. The encoder processes the input and produces three vertical rectangular blocks labeled 'Output s...', representing the encoded sequence. These three blocks then connect via numerous arrows to three vertical rectangular blocks within a dashed-line box labeled 'Decoder.'  The arrows connecting the encoder's output to the decoder are labeled 'Cross-Attention,' indicating the attention mechanism used to weigh the importance of different parts of the encoded input when generating the output. The decoder, also composed of three vertical rectangular blocks (with an ellipsis indicating continuation), processes the encoded information and generates the final output sequence.  The overall flow is from the input sequence through the encoder, then via cross-attention to the decoder, finally resulting in the decoded output sequence.
15-rasm: Cross-attention qatlami
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.

Image represents a comparison of two self-attention mechanisms.  Each mechanism is depicted as two vertical columns of rectangular boxes, representing input and output vectors, respectively.  The left column in each mechanism shows three input vectors, each subdivided into multiple horizontal sections, likely representing word embeddings or hidden states.  These input vectors are connected to a central 'Self-Attention' box via upward-pointing arrows.  The 'Self-Attention' box represents the self-attention layer, which processes the relationships between the input vectors.  From the 'Self-Attention' box, downward-pointing arrows connect to three output vectors in the right column, also subdivided into horizontal sections mirroring the input vectors.  The key difference between the two mechanisms lies in the connectivity pattern between the input and output vectors within the self-attention layer.  The left mechanism shows a more fully connected pattern, with each input vector connected to each output vector, while the right mechanism shows a sparser connectivity, with each input vector primarily connected to a single or a few output vectors.  Both mechanisms are labeled 'Self-attention mechanism...' at the bottom.
16-rasm: Encoder va decoder-dagi turli self-attention mexanizmlari
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.

Image represents a simplified diagram of a sequence-to-sequence model, commonly used in machine translation or chatbot applications.  The diagram features two main rectangular blocks, labeled 'Encoder' (peach-colored with a golden border) and 'Decoder' (similar coloring and border), connected by a unidirectional arrow indicating data flow from the Encoder to the Decoder.  The Encoder receives input from a text box containing the phrase 'Thank you for inviting me,' which is crossed out, suggesting this input is not used in this specific example.  Above the Decoder, two rectangular boxes labeled 'you' and 'me' represent the output, with upward arrows indicating the Decoder generates outputs for both 'you' and 'me.'  The arrows illustrate the flow of information: the Encoder processes the (unused) input text, and its output is fed into the Decoder, which then produces separate outputs for 'you' and 'me,' likely representing a conversational exchange or translation.
17-rasm: MLM maqsadiga umumiy ko'rinish

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.
Image represents a sequence-to-sequence model, likely a transformer-based neural machine translation system or text generation model.  The bottom shows an input sentence 'Thank you for inviting me' (1), which is preprocessed into tokens 'Thank,' '[MASK],' 'for,' 'inviti...', '[MASK]' (2) and fed into an Encoder (peach-colored rectangle). The Encoder's output (3b) is then passed to a Decoder (another peach-colored rectangle). The Decoder receives input tokens '<BOS>', 'Thank', 'you', 'for', 'inviti...' (3a) and generates probability distributions for the next token in the sequence (4). These distributions are shown as columns of numbers, representing the probabilities of different words being the next token.  Two columns of binary vectors (5) represent the ground truth (correct next tokens) for calculating the cross-entropy loss, a measure of the difference between the predicted probabilities and the actual next tokens.  The arrows indicate the flow of information, showing how the input sentence is encoded, processed by the decoder, and used to predict the next tokens, with the loss function evaluating the accuracy of the predictions.
18-rasm: MLM maqsadi uchun cross-entropy yo'qotishini hisoblash

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)
Image represents two options for training a language model: Option 1, bilingual models, and Option 2, a multilingual model.  Option 1 shows a general language model database ('General...') feeding into a '1. Pretraining' step, which then produces a base model ('Base...'). This base model is then fed into separate '2. Finetuning' steps, each using a bilingual dataset (e.g., 'English-French...', 'English-Spanish...', 'English-Korean...'), resulting in separate bilingual models.  Option 2 shows a similar process, but instead of separate bilingual datasets, a single multilingual dataset ('English-Korean...', 'English-French...', 'English-Spanish...') is used.  A general language model database ('General...') feeds into '1. Pretraining,' creating a base model ('Base...'). This base model is then fed into a single '2. Finetuning' step using the multilingual dataset, resulting in a single multilingual model ('Multilingual...').  Both options involve a two-step process: pretraining on a general dataset and then finetuning on a specific (bilingual or multilingual) dataset.  The arrows indicate the flow of data between the stages.
19-rasm: Ikki tilli va ko'p tilli modellar
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.

Image represents two tables, each displaying tokenized pairs of sentences in two different languages.  The left table shows English-Korean pairs, with the 'English' column listing sequences of numbers (e.g., [138, 18, 9, 2130], [138, 9561, 31, 72...], [309, 11001, 22, 7...], and so on) representing tokenized English sentences, and the 'Korean' column showing corresponding sequences of numbers (e.g., [186, 732, 666, 349, 81...], [226, 91022, 82483, 964...], [39485, 128320, 8532, 4...], etc.) for the Korean translations.  The right table similarly presents English-French pairs, with the 'English' column containing different numerical sequences (e.g., [15724, 374, 9439], [2028, 374, 15526], [4438, 527, 499, 3...]) representing tokenized English sentences, and the 'French' column showing corresponding numerical sequences (e.g., [12319, 20272, 282, 160...], [34, 17771, 1377, 57332], [10906, 44496, 2442, 84...]) for their French translations.  Both tables use ellipses (...) to indicate that the sequences continue beyond what's visibly shown.  The tables are labeled 'English-Korean tokenized pairs' and 'English-French tokenized pairs' respectively, indicating the language pairs and the nature of the data presented.
20-rasm: Turli til juftlari uchun tayyorlangan o'quv ma'lumotlari namunasi
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.

Image represents a sequence-to-sequence model, likely for machine translation, depicted as a neural network architecture.  The input, 'What is your name?', is fed into an 'Encoder' block, which processes the sentence. The encoder's output is then passed to a 'Decoder' block. The decoder receives an initial token '<BOS>' (Begin of Sentence) and iteratively predicts the next word in the target language (French in this example).  The decoder's predictions are represented as probabilities (e.g., 0.01, 0.06, 0.73, 0.11) for each word in the vocabulary.  These probabilities are compared to the correct next word sequence ('0 0 1 0'), which represents a one-hot encoding of the correct translation (presumably 'Quel est'). The difference between the predicted probabilities and the correct sequence is calculated as 'loss,' which is used to train the model.  Arrows indicate the flow of information: from the input words to the encoder, from the encoder to the decoder, from the decoder's predictions to the loss calculation, and finally, the loss is used to adjust the model's weights (not explicitly shown).  The decoder outputs 'Quel est' as the translated sequence.
21-rasm: Finetuning bosqichida yo'qotishni hisoblash

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.

Image represents a sequence-to-sequence model, likely a neural machine translation system.  The diagram shows an encoder on the left, processing the input sequence 'What is your name?'. Each word is represented as a separate box, feeding into the encoder. The encoder processes this input and outputs a contextualized representation, which is then fed into a decoder on the right. The decoder, labeled 'Decoder,' receives this representation and generates an output sequence, shown as 'Quel est' in French.  The intermediate representation between the encoder and decoder is shown as vectors of probabilities (e.g., 0.01, 0.06, 0.73, 0.11 for 'Quel' and similar for 'est'). These probabilities likely represent the model's confidence in predicting each word in the output sequence.  The '<BOS>' token indicates the beginning of the sequence for the decoder.  The ellipses ('...') indicate that the model can handle sequences longer than what's explicitly shown, both in input and output.  The dashed lines connecting the output words to the decoder suggest a feedback loop, where the previously generated words influence the prediction of subsequent words.
22-rasm: Tarjimani hosil qilish

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.

XususiyatDeterministik usullarStokastik usullar
YondashuvChiqishni hosil qilish uchun oldindan aytish mumkin bo'lgan jarayonni kuzatadiEhtimollik taqsimoti asosida chiqishni hosil qiladi
SamaradorlikBir nechta yo'llarni kuzatish tufayli odatda kamroq samaraliTasodifiylik tezroq tanlovga imkon bergani uchun samaraliroq
SifatIzchil va oldindan aytish mumkinXilma-xil va ijodiy
XavfUzunroq ketma-ketliklar uchun odatda takroriy chiqishga olib keladiIjodkorligi tufayli noto'g'ri chiqish hosil qilishi mumkin
Qo'llanilishiTil tarjimasi kabi izchillikni talab qiluvchi vazifalar uchun mosOchiq matn generatsiyasi kabi ijodkorlikni talab qiluvchi vazifalar uchun mos
UsullarGreedy search, beam searchMultinomial, 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.

The image represents a completely blank space; there are no visible components, arrangement, connections, or information flow of any kind.  No labels, text, URLs, or parameters are present.  The image is simply a solid black rectangle.
23-rasm: 2-gramlar uchun aniqlikni hisoblash misoli (p2)

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].

Image represents a formula for calculating recall, specifically in the context of n-gram matching.  The formula is presented as a fraction. The numerator is labeled 'Number of matching n-grams,' representing the count of n-grams (sequences of 'n' consecutive words or characters) that are common to both a target text and a reference text. The denominator is labeled 'Total number of n-grams in the reference,' indicating the total count of n-grams present within the reference text.  The entire fraction is labeled 'Recall,' signifying that the result of this calculation represents the recall metric – a measure of how many of the relevant n-grams from the reference text were successfully retrieved or matched in the target text.  No URLs or specific parameters are visible; the formula is purely textual.
24-rasm: So'zlar o'rtasidagi munosabatlar misoli

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
Image represents a machine translation system's architecture.  A user icon on the left initiates the process by providing an 'Input sentence...' and specifying a 'Desired language...'. This input flows into a rectangular 'Language Detector' (light orange), which identifies the 'Detected language...' of the input sentence and passes this information to a central rectangular 'Translation Service' (light purple).  The Translation Service also receives the user's specified 'Desired language...'.  The Translation Service then uses a 'Beam search' algorithm to select the best translation from multiple potential translations represented by three cloud shapes: 'English-French...', 'Spanish-Korean...', and 'French-Korean...'. These clouds represent different language pairs and their respective translation outputs.  The final translated output, selected by the beam search, is implicitly indicated by the arrow from the Translation Service to the Korean text '정말 아름다운 날이에' (meaning 'It's a really beautiful day').  The dashed lines indicate the selection process of the beam search, showing the multiple potential translations considered before a final output is chosen.
26-rasm: Til tarjimasi umumiy dizayni

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.
Image represents two alternative architectures for a language model, labeled 'Option 1: average po...' and 'Option 2: using last...'.  Both options process a 'Sentence of unknown lang...' as input, which undergoes 'Text Embedding' and 'Positional Encoding'. This embedded sentence then feeds into a 'Transformer' block. The Transformer in both options consists of stacked layers of 'Normalization', 'Feed Forward', and 'Normalization' again, followed by a 'Self-Attentio...' layer.  The number of layers in the Transformer is indicated by 'Nx'. Option 1 uses 'Average Pooling' to aggregate the output of the Transformer, which is then fed into a 'Prediction Head' to generate a 'Predicted source...'. Option 2, however, directly uses the output of the final 'Normalization' layer of the Transformer, feeding it into the 'Prediction head' to produce a 'Predicted source...'.  Arrows indicate the flow of information between components, showing the sequential processing within each architecture.
27-rasm: Faqat encoder Transformer yordamida til detektorini yaratishning ikki varianti

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

Image represents a mind map summarizing the key aspects of a Generative AI system design.  The central node is labeled 'Summary,' from which several main branches emanate, representing major phases or components:  'Model development,' 'Evaluation,' 'Overall system components,' and 'Other talking points.'  The 'Model development' branch further subdivides into 'Data preparation' (including data cleaning, normalization, and tokenization), 'Architecture' (detailing encoder and decoder components using transformers and positional encoding), and 'Training' (covering unsupervised pre-training and supervised fine-tuning with methods like masked language modeling (MLM) using general text and email data, and next-token prediction). The 'Evaluation' branch splits into 'Offline' (using metrics like BLEU, ROUGE, and METEOR) and 'Online' (relying on user feedback and user engagement metrics).  The 'Overall system components' branch includes a 'Language detector' and 'Translator service.' Finally, 'Other talking points' includes 'Clarifying requirements' and 'Specifying input and output,' which are connected to the 'Summary' node directly.  Each branch and sub-branch uses a distinct color-coded line, enhancing visual clarity and organization.  The entire diagram provides a structured overview of the design process, from initial requirements to final evaluation and deployment considerations.

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.

Bob 5

Image Captioning

~18 daq o'qish

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.

Image represents a simple modal dialog box with a text input field and two buttons.  The dialog box is titled 'Name Your Asset:' and contains a single text input field where 'Sun over mountains.png' is pre-filled. Below the input field are two buttons labeled 'Cancel' and 'OK'. A curved arrow points from the left, labeled 'Suggested...', indicating a suggested filename has been provided to the input field.  The dialog box also includes a small 'X' in the upper right corner, suggesting a close button.  The text 'Text is not SVG - cannot display' is present at the bottom, indicating a technical limitation in rendering the image.
Figure 1: Image captioning tizimi yuklangan rasm uchun fayl nomini tavsiya qilmoqda

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.

Image represents a simple data flow diagram illustrating an image captioning process.  The diagram begins with a square box labeled 'Input image' containing a line drawing of mountains and a sun.  A solid arrow points from this box to a rectangular, light orange box labeled 'Image Captioning...'. This second box represents the image captioning model or process.  Another solid arrow extends from the 'Image Captioning...' box to the text 'A simple drawing of mountains...', which is the output caption generated by the system. The overall flow shows the input image being processed by the image captioning system to produce a textual description of the image's content.
Figure 2: Image captioning tizimining kirish va chiqishi

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.

Image represents a simplified diagram of an image captioning system.  At the bottom, an 'Input image' (depicted as a simple drawing of mountains and a sun) is fed into an 'Image Encoder' (a light green rectangle). The Image Encoder processes the image and outputs 'Encoded information' (textual representation of the image's content). This encoded information is then passed to a 'Text Decoder' (a light orange rectangle), which generates a textual description of the image.  The entire process is enclosed within a dashed-line box, and a thick upward-pointing arrow indicates the final output of the Text Decoder, which is presumably the generated caption ('A simple drawing of mountains w...').  The arrows illustrate the unidirectional flow of information from the input image through the encoder and decoder to the final text output.
Figure 3: Image captioning komponentlari

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.

Image represents a table with two columns: 'Image' and 'Caption'.  The table has at least three rows.  Each row in the 'Image' column is intended to hold an image, but these are not displayed due to the image format being unsupported.  The 'Caption' column provides textual descriptions for the corresponding images. The first row's caption is partially visible as 'A simple drawing of mounta...', suggesting an image of a mountain is intended. The second row's caption reads 'A minimalistic flower ic...', indicating a minimalist flower image. The third row has ellipses (...) in both columns, implying the table continues with more image-caption pairs.  There are no visible connections or information flow between the rows; each row functions independently as an image-caption pair.
Figure 4: Rasm–caption datasetiга misol

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.
Image represents a data processing pipeline for image preprocessing.  It begins with an 'Original image' rectangle, labeled with dimensions 512 x 768 pixels, depicted in light blue. A solid arrow points from this rectangle to a second, light blue rectangle labeled '256' on its left side and '384' on its bottom, representing the image after '1. Resizing'.  This resizing step changes the image's aspect ratio. A thick black line within this second rectangle indicates the area selected for the next step. A curved arrow then connects this selected area to a third rectangle, colored light red, labeled '256' on both its sides, representing the final image after '2. Center-cropping'. This final rectangle shows the resulting 256 x 256 pixel image obtained by cropping the center of the resized image.  The entire diagram illustrates a two-step image transformation process: resizing to a non-square aspect ratio, followed by center cropping to a square image of the specified dimensions.
Figure 5: Resizing va undan keyin center-cropping

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.

Image represents a comparison of single-image and multi-image encoding processes.  On the left, a single 'Input image' icon, depicting a landscape photograph, feeds into a light-green rectangular box labeled 'Image Encoder.' The encoder processes the image and outputs a vertical array of several rectangular boxes representing a feature vector.  On the right, a similar setup is shown, but multiple 'Input image' icons are fed into the 'Image Encoder.'  The encoder's output is a horizontal array of multiple vertical arrays of rectangular boxes, indicating multiple feature vectors, with an ellipsis (...) suggesting the continuation of this pattern beyond the displayed number of images.  Arrows indicate the direction of data flow, from the input image to the encoder and then to the resulting feature vector(s).  The overall comparison highlights the difference in input and output when processing a single image versus multiple images using the same image encoder.
Figure 6: Image encoder bitta token va tokenlar ketma-ketligi chiqarishi

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.

Image represents a data processing pipeline for image embedding.  At the top, a sequence of nine embedding vectors is shown, represented as columns of cells labeled 1 through 9, with an ellipsis (...) indicating that there are more than the three explicitly shown.  Each column, labeled 'c', represents a single embedding vector with multiple elements (the cells within the column).  These embedding vectors are collectively described as a 'Sequence of embeddings'.  An arrow labeled 'flatten' points downwards, indicating that this sequence is flattened into a single, three-dimensional tensor. This tensor, also labeled 'c', is shown as a cuboid structure, representing the combined embedding vectors.  This flattened tensor is then fed as input into a 'CNN-based...' module (represented by an orange rectangle), which presumably is a Convolutional Neural Network performing further processing. Finally, an upward arrow connects this CNN module to an 'Input image' symbol (a picture of a landscape), indicating that the entire pipeline starts with an input image which is processed by the CNN to generate the sequence of embeddings.
Figure 7: CNN-based rasm kodlash
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
Image represents a simplified architecture for processing an image using a transformer-based model.  At the bottom, an 'Input image' (represented by an image icon) is fed into a processing pipeline. This pipeline consists of three stacked layers: a 'Patchify' layer (light green), a 'Positional...' layer (light red), and a 'Transformer' layer (light orange).  The Patchify layer likely divides the input image into patches. These patches are then processed by the Positional... layer, which probably adds positional information to the patches to maintain spatial context. The output of the Positional... layer is then fed into the Transformer layer, a core component of many modern image processing models, which processes the sequence of patches. The output of the Transformer is a 'Sequence of embeddings' represented as a series of 'c' vertically stacked rectangles labeled '1', '2', '3', ..., 's'.  Each rectangle represents an embedding vector, and the entire sequence captures the image's features.  The arrow indicates the flow of information from the input image through the processing layers to the final sequence of embeddings.
Figure 8: Transformer-based rasm kodlash
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.

Image represents a data processing pipeline, specifically a 'Patchify' operation, within a larger system.  The process begins with a 256x256 input image. This image is then fed into the Patchify module, which is depicted as a light green box containing three sub-processes: Projection, Flatten, and Divide.  Before entering Patchify, the input image is first processed by a block that transforms a 64x64 input into a 4096-element vector. The Patchify module takes this 4096-element vector and performs the three operations.  The output of the Patchify module is shown as a grid of smaller squares, representing patches of the original image.  Above the Patchify module, a diagram shows the arrangement of these patches: sixteen columns (numbered 1 through 16) each containing 'c' number of rows, representing the division of the processed image into patches.  The arrows indicate the flow of data through the pipeline, from the input image to the Patchify module and finally to the resulting patch arrangement.
Figure 9: Patchification jarayoni
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.

Image represents a comparison of 2D and 1D positional embeddings in the context of image processing.  The left side depicts a 2D approach, showing a set of three (with ellipsis indicating more) vertical rectangular blocks labeled '$PE_...', representing 2D positional embeddings.  These blocks are connected via an upward-pointing arrow to a 3x3 grid labeled 'Image patches,' where each cell contains the repeating sequence '1...', '2...', '3...' respectively, suggesting that each patch receives the same 2D positional embedding.  Red lines divide the grid into the patches. A grey, curved line suggests a relationship between the patches. The right side mirrors this structure but uses a 1D approach.  Three vertical rectangular blocks labeled '$PE_...' (again, with ellipsis implying more) represent 1D positional embeddings.  These are similarly connected via an upward-pointing arrow to a 3x3 grid labeled 'Image patches,' but here, the cells are numbered sequentially from 1 to 9, indicating a linear, 1D positional embedding assignment to each patch.  The red lines again delineate the patches, and a grey, curved line shows the relationship between the patches.  The overall diagram contrasts how positional information is encoded in 2D versus 1D for image patches, highlighting the difference in how spatial relationships are represented.
Figure 10: 1D va 2D positional encoding
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.

Image represents a simplified architecture diagram of a text-to-image generation model.  At the top, four input boxes labeled 'A,' 'flower,' 'icon,' and '.' represent individual text tokens or prompts.  Arrows point upwards from these boxes, indicating data flow into a larger, light-orange rectangular block labeled 'Text Decoder...'. This block presumably processes the text inputs.  Below the 'Text Decoder...', three vertical stacks of smaller rectangular boxes (with an ellipsis '...' indicating more such stacks exist) represent the encoded image features. Arrows point upwards from these stacks into the 'Text Decoder...', suggesting that the decoder uses these features.  These stacks are connected to a light-green rectangular block at the bottom labeled 'Image Encoder,' indicating that this block processes the image data into the feature vectors.  An upward-pointing arrow connects the 'Image Encoder' to the feature vector stacks, showing the flow of encoded image information.  The overall structure depicts a process where text prompts are decoded and used in conjunction with encoded image features to generate an image.
Figure 11: Rasmni embeddinglar ketma-ketligi sifatida taqdim etish

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.

Image represents a sequence-to-sequence model for image captioning.  At the bottom, a green rectangle labeled 'Image Encoder' processes an image, producing a vector representation. This representation is then fed into a beige rectangle labeled 'Text Decoder.' The decoder processes this image embedding and generates a sequence of words as a caption.  The decoder's output consists of multiple vertical blocks, each representing a word embedding (e.g., 'A,' 'flower,' 'icon,' '.' and '<EOS>'). Arrows indicate the flow of information.  Above the decoder's output, another set of identical vertical blocks represents the 'Correct next...' word embeddings for each position in the caption.  These are compared to the decoder's 'Predicted...' word embeddings using 'Cross-entropy loss,' a metric that quantifies the difference between the predicted and actual word sequences, guiding the model's training to minimize this loss and improve caption accuracy.  The ellipses ('...') indicate that the sequence can be longer than what's explicitly shown.
Figure 12: Bashorat qilingan ehtimolliklar bo'yicha loss hisoblash

Sampling

Sampling davomida caption tokenlari birer-birer generatsiya qilinadi.

Image represents a neural network architecture for image captioning.  At the bottom, a green box labeled 'Image Encoder' processes an image, producing a vector representation. This vector is then fed upwards as input to a beige box labeled 'Text Decoder.' The Text Decoder processes this image embedding and generates a sequence of words.  Above the Text Decoder, multiple vertical stacks of boxes represent the predicted word embeddings at each time step of the decoding process.  These predicted embeddings are connected to individual word boxes ('A,' 'nice,' 'bloom,' '.') at the top, representing the selected tokens for the caption.  Dashed lines indicate the flow of information between the predicted word embeddings and the selected words, suggesting a process of iterative refinement or prediction.  The labels 'Selected t...' and 'Predicted...' indicate the selected tokens and the predicted embeddings, respectively.  The ellipses ('...') signify that the number of predicted word embeddings and selected tokens can extend beyond what's explicitly shown.
Figure 13: Kirish rasm asosida caption generatsiya qilish

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.
Image represents a table with two columns. The left column is labeled 'Image' and is left blank, presumably intended to hold an image. The right column is labeled 'Reference captions' and contains three rows, each providing a textual description that could correspond to the image in the left column.  The first row describes 'Blooming tulip with green leaves,' the second row says 'Close-up of a blooming tulip.', and the third row, which is truncated, begins with 'Single tulip with leave...'.  The table structure implies a relationship where each caption in the right column offers an alternative or more specific description of the same image in the left column.
Figure 14: Validation ma'lumotlariga misol

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.

Image represents a simplified diagram of a caption generation system.  The diagram shows three reference captions ('1. Blooming tulip with leaves', '2. A blooming tulip.', '3. Single tulip with leaves.') contained within a rectangular box labeled 'Reference captions'.  A second rectangular box labeled 'Generated caption' displays the output 'Tulip with leaves.'.  Both the reference and generated captions are connected via downward-pointing arrows to a central, peach-colored rectangular box labeled 'TF-IDF,' representing a term frequency-inverse document frequency algorithm.  Finally, an arrow points down from the TF-IDF box to a line of text showing a string of words ('abloomingleavessingletulipleaves') followed by reference numbers and associated weighted values (e.g., 'Ref 1: 'Blooming tulip with leaves'0.000.520.430.000.360.43'). This suggests the TF-IDF process transforms the reference captions into a weighted representation of their constituent words, which is then used to generate the final caption.
Figure 15: TF-IDF captionlarni raqamli reprezentatsiyalarga aylantirmoqda
. 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.

Image represents a flowchart illustrating a similarity calculation process.  At the top, a partially visible text string suggests input references, possibly image captions like 'Blooming tulip with leaves' and 'A blooming...'. A light peach-colored rounded rectangle labeled 'Similarity...' acts as a central processing block.  An arrow points downwards from this block to a grey table. This table has two columns: 'Pair,' listing three rows of text starting with '<Reference 1, Generat...', '<Reference 2, Generat...', and '<Reference 3, Generat...',  and 'Cosine similarity sco...', showing corresponding numerical values (0.688, 0.257, and 0.766 respectively). These values likely represent cosine similarity scores calculated between the input references and generated text (indicated by '...'). The arrows indicate the flow of data: the input references are implicitly processed within the 'Similarity...' block, resulting in the cosine similarity scores displayed in the table.
Figure 16: Yaratilgan va referans captionlar o'rtasidagi cosine similarity hisoblash

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)
Image represents a diagram illustrating an image captioning system.  An 'Input image' is fed into a light-blue rectangular box labeled 'Image...', which presumably performs initial image processing.  The output flows into a light-orange rectangular box labeled 'Caption Generat...', representing the core caption generation model.  This model receives input from a light-green cloud-shaped box labeled 'Trained...', indicating a pre-trained model, via a downward-pointing arrow labeled 'Beam search,' suggesting a beam search algorithm is used for caption selection. The output from 'Caption Generat...' then goes into a light-purple rectangular box labeled 'Post-processing,' likely for tasks like grammar correction or formatting. Finally, the processed caption is outputted as 'Mountains wi...', implying the generated caption related to mountains.  The entire process is depicted as a linear flow from input image to final caption, with the trained model influencing the caption generation through the beam search process.
Figure 17: Image captioning umumiy dizayni

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

Image represents a mind map summarizing the design of a Generative AI system for image captioning.  The central node is labeled 'Summary,' branching into seven main categories: Clarifying Requirements, Specifying Input and Output, Data Preparation (divided into Text and Image preprocessing steps, including tasks like removing duplicates, normalizing captions, and adjusting image dimensions), Model Development (covering Architecture choices like CNN-based vs. Transformer-based models, including details on positional encoding and 1D vs. 2D approaches, and training methods such as unsupervised pre-training and supervised fine-tuning), Evaluation (with offline metrics like ROUGE, METEOR, and CIDEr, and online metrics implied), Overall System Components (including image preprocessing, caption generation, and post-processing), and Other Talking Points.  Each branch further subdivides into more specific tasks and design choices, illustrating the hierarchical structure of the system's development process.  The connections between nodes represent the sequential or hierarchical relationships between different stages and components of the system.  For example, Data Preparation precedes Model Development, and Evaluation follows Training.  The color-coding of branches helps visually distinguish between different aspects of the system design.

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.

Bob 7

Realistik Yuz Generatsiyasi

~26 daq o'qish

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.

Image represents a horizontal arrangement of four headshots, each depicting a different individual.  The images are presented side-by-side, with no visible connections or information flow between them.  From left to right, the first headshot shows a dark-haired man with a serious expression, wearing a dark-colored shirt. The second shows a woman with shoulder-length brown hair, wearing glasses, and smiling. The third shows a young woman with long dark hair, wearing a red shirt, and exhibiting a neutral expression. The fourth headshot depicts a man with graying hair and a goatee, wearing a dark suit and light blue shirt, with a slightly smiling expression.  There are no labels, text, URLs, or parameters associated with any of the images or their arrangement.  The images appear to be simply a collection of individual portraits.
1-rasm: StyleGAN2 tomonidan yaratilgan realistik yuzlar [1]

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.

Image represents a simplified data flow diagram illustrating a generative model, possibly for image generation.  A user request (indicated by 'User requesti...') enters the system from the left and flows into a larger, light orange rectangle. Inside this rectangle, a smaller, light purple oval labeled 'Random Noise...' represents the initial random input to the model.  The orange rectangle also contains the text 'Face...', suggesting the model is generating a face image.  A black arrow connects the 'Random Noise...' oval to the 'Face...' text, indicating the processing of the random noise.  Finally, a black arrow extends from the right side of the orange rectangle to a plain white square, representing the output of the model—likely the generated face image.  The overall flow shows a user request initiating the generation process, using random noise as input, within a larger processing block, ultimately resulting in an output image.
2-rasm: Yuz generatsiyasi tizimining kirish va chiqishi

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.

Image represents a diagram illustrating the training and inference phases of a Variational Autoencoder (VAE).
3-rasm: VAE o'qitish va xulosa chiqarish jarayoni

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.

Image represents a diagram illustrating the training and inference phases of a Generative Adversarial Network (GAN).
4-rasm: GAN o'qitish va xulosa chiqarish jarayoni
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.

Image represents a diagram illustrating the training and inference processes of an autoregressive model.
5-rasm: Avtoregressiv model o'qitish va xulosa chiqarish jarayoni
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.

Image represents a diagram illustrating the training and inference phases of a diffusion model.
6-rasm: Diffuziya modeli o'qitish va xulosa chiqarish jarayoni
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.

XususiyatlarVAEGANAvtoregressivDiffuziya
SifatPastO'rtachaYuqoriIstisno
TezlikTezTezSekinSekin
O'qitish barqarorligiBarqarorBeqarorBarqarorBarqaror
Generatsiya boshqaruviCheklanganCheklanganMoslashuvchanO'rtacha
Yuz manipulyatsiyasiYo'qHaYo'qYo'q
YangilikCheklanganCheklanganYuqoriYuqori
Resurs intensivligiO'rtachaO'rtachaYuqoriYuqori

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.

Image represents a simple diagram illustrating the effect of different hair styles on a person's appearance.
7-rasm: Yuz atributlarini manipulyatsiya qilish. Tasvirlar [10] dan olingan.

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.

Image represents a generative model architecture, likely for image generation.
8-rasm: Upsampling bloklari seriyasi

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.

Image represents a visual depiction of a 2D convolution operation.
9-rasm: 4x4 kirishlar ustida 3x3 filtr va *qadam=1* bilan transpozitsiya konv [11]

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.
Image represents a comparison of four different normalization techniques.
10-rasm: Turli normallashtirish usullarining taqqoslanishi [15]
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.

Image represents a generative model architecture.
11-rasm: Generator arxitekturasi

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.

Image represents a convolutional neural network (CNN) architecture for image classification.
12-rasm: Downsampling bloklari seriyasi

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.

Image represents a convolutional neural network (CNN) architecture for image classification.
13-rasm: Diskriminator arxitekturasi

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.
Image represents a diagram illustrating the training process of a Generative Adversarial Network (GAN).
14-rasm: Generator va diskriminator navbatma-navbat 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.

Image represents a latent space with face images.
15-rasm: Latent fazo nuqtalari yuz tasvirlariga moslashtiriladi

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.

Image represents a comparison of random sampling and truncated sampling.
16-rasm: Tasodifiy va qisqartirilgan namuna olish (kulrang hududlar namuna olish maydonlarini ifodalaydi).

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.
Image represents a generative model evaluation pipeline.
17-rasm: Inception score hisoblash

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.
Image represents a flowchart illustrating the process of calculating the Fréchet Inception Distance (FID) score.
18-rasm: FID hisoblash

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.

Image represents a user interface element for a comparative image quality assessment.
19-rasm: Inson tomonidan baholashda juftliklarni taqqoslash

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
Image represents a system architecture diagram for a face generation application.
20-rasm: Realistik yuz generatsiyasi umumiy dizayni

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

Image represents a mind map summarizing the key aspects of generative AI system design.

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 ↩
Bob 8

Yuqori O'lchovli Tasvir Sintezi

~15 daq o'qish

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.

Image represents a placeholder indicating that an image has been removed.
1-rasm: VQGAN tomonidan yaratilgan tasvir [1]

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.

Image represents a simplified workflow for image generation.
2-rasm: Tasvir generatsiyasi tizimining kirish va chiqishi

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.

Image represents a two-part system for image processing, divided into an 'Image Tokenizer' module and an 'Image Generator' module.
3-rasm: Avtoregressiv tasvir generatsiyasi

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.

Image represents a diagram illustrating an image tokenizer, split into encoding and decoding processes.
4-rasm: Tasvir tokenizatorining kodlash va dekodlash jarayoni

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.

Image represents a comparison of three different generative AI tasks: text completion/chatbots, image captioning, and image generation.
5-rasm: Faqat-dekoder Transformerning turli modalliklarni boshqarishdagi moslashuvchanligi

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.

Image represents a system for image tokenization and generation.
6-rasm: Avtoregressiv tasvir generatsiyasi

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.

Image represents a data processing pipeline for preparing image data for training.
7-rasm: Ma'lumotlarni tayyorlash jarayoni

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.

Image represents a simplified convolutional neural network (CNN) architecture for image encoding.
8-rasm: Enkoder kirish tasvirini har biri c kanalli 9 ta xususiyat o'z ichiga olgan kodlangan vakillikka aylantiradi
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.

Image represents a simplified illustration of a quantization process.
9-rasm: Kvantizatsiya jarayoni

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.

Image represents a process flow starting with a grid of numbers, which is transformed into an image using a codebook.
10-rasm: Dekodlash jarayoni

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.
Image represents a generative model architecture, likely for text generation.
11-rasm: Faqat-dekoder Transformer komponentlari

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.
Image represents a system for compressing and reconstructing an image using a codebook-based quantization approach.
12-rasm: Tasvir tokenizatorini o'qitish jarayoni

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.

Image represents a simplified diagram of a generative model's training process.
13-rasm: Tasvir generatori yo'qotish hisoblash

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.

Image represents a system for generating images.
14-rasm: Tasvir generatori yordamida diskret tokenlar ketma-ketligini generatsiya qilish

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.

Image represents a two-step process for image generation.
15-rasm: Tokenlarni tasvirga dekodlash

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
Image represents a simplified architecture diagram of an image generation system.
16-rasm: Yuqori o'lchovli tasvir sintezi ML dizayni

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

Image represents a mind map summarizing the key aspects of designing a generative AI system for image generation.

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. ↩
Bob 9

Matndan Tasvirga Generatsiya

~24 daq o'qish

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].

Image represents a humorous illustration depicting a halved avocado sitting on a therapist's couch.
1-rasm: OpenAI ning DALL-E 3 tomonidan generatsiya qilingan so'rov va tasvir namunasi [1]

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.

Image represents a simplified data flow diagram illustrating a text-to-image generation process.
2-rasm: Matndan tasvirga tizimning kirish va chiqishi. Tasvir manbasi: [4]

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.

Image represents a simplified diagram of a decoder-only transformer model generating an image from a text prompt.
3-rasm: Avtoregressiv matndan tasvirga generatsiya

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.¹

Image represents a diagram illustrating a diffusion model for image generation.
4-rasm: Diffuziya asosidagi matndan tasvirga generatsiya

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.

Image represents a Venn diagram comparing diffusion and autoregressive generative models.
5-rasm: Diffuziya va avtoregressiv model xususiyatlari taqqoslanishi

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.
Image represents a data processing pipeline for image preparation.
6-rasm: Tasvirni tayyorlash qadamlari

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)
Image represents a simplified diagram of a denoising process within a generative model.
7-rasm: Bitta qadamdagi diffuziya modelining kirish va chiqishi

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.

Image represents a diagram illustrating a U-Net architecture for image processing.
8-rasm: U-Net downsampling va upsampling bloklari
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.
Image represents a diagram illustrating the architecture of a U-Net.
9-rasm: Downsampling blokidagi odatiy qatlamlar

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.
Image represents a U-Net architecture diagram.
10-rasm: Upsampling blokidagi odatiy qatlamlar

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.

Image represents a denoising model architecture.
11-rasm: DiT komponentlari

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.

Image represents a sequence of image transformations from clear to noisy.
12-rasm: Oldinga diffuziya jarayoni

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.

Image represents a denoising process using a diffusion model.
13-rasm: Orqaga diffuziya jarayoni

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.
Image represents a diagram illustrating the training process of a text-to-image diffusion model.
14-rasm: Diffuziya o'qitishdagi bitta iteratsiya

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.

Image represents a denoising diffusion process for image generation.
15-rasm: Namuna olish jarayoni

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.

Image represents a diagram illustrating the functionality of a CLIP model.
16-rasm: CLIP enkoderlar

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.⁴

Image represents a diagram illustrating the functionality of a CLIP model.
17-rasm: Matn va tasvir xususiyatlar vektorlari CLIP joylashuv fazosiga moslashtirildi

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.

Image represents a data processing pipeline with two parallel branches.
18-rasm: Ma'lumotlar quvuri

O'qitish quvuri

O'qitish quvuri ma'lumotlar quvuri tomonidan yig'ilgan eng so'nggi o'quv ma'lumotlari yordamida modelni o'qitadi.

Image represents a data processing pipeline for training a diffusion model.
19-rasm: O'qitish quvuri

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
Image represents a flowchart depicting the process of generating an image from a text prompt.
20-rasm: Xulosa chiqarish quvuri

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.

Image represents a simple user interface for a text-to-image generation system.
21-rasm: Avtomatik to'ldirish xizmati tomonidan taklif qilingan iboralar

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.

Image represents a simple data flow diagram illustrating prompt enhancement.
22-rasm: So'rovni yaxshilash namunasi

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.

Image represents a data processing pipeline with super-resolution models.
23-rasm: Super-o'lcham modellari kaskadi

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

Image represents a mind map summarizing the key aspects of a generative AI system design interview.

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. ↩
Bob 10

Moslashtirilgan Portret Generatsiyasi

~20 daq o'qish

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.

Image represents a process demonstrating image generation in various styles.  A reference image, labeled 'Reference image,' shows a headshot of a smiling, balding man with a beard wearing a blue blazer. A large right-pointing arrow indicates a transformation.  The arrow points to a 2x2 grid of generated images.  Each square in the grid contains a different image of the same man, but in a drastically altered pose and style.  The top-left image depicts him as an ice sculpture, appearing as a statue in a winter setting. The top-right image shows him as an astronaut in a spaceship, operating a console. The bottom-left image portrays him as an American football player in a team uniform. Finally, the bottom-right image shows him as a pirate captain on a ship, holding a glass of amber liquid. The entire grid is labeled 'Generated images in novel poses and styles.'
1-rasm: Moslashtirilgan T2I model identifikatsiya variatsiyalarini generatsiya qilmoqda (tasvirlar [1] dan olingan)

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.

Image represents a data flow diagram illustrating an AI-powered headshot generation process.  The diagram begins with a dashed-line box labeled 'User's original images,' containing several irregularly arranged, light gray square placeholders representing the user's input images.  A solid arrow points from this box to a light orange, rounded-rectangle box labeled 'Personalized...'. This central box represents the AI processing stage where personalization occurs based on the input images.  A second solid arrow extends from the 'Personalized...' box to a second dashed-line box labeled 'AI-generated headshots.' This final box displays a grid of colored squares, each a different pastel shade, representing the AI-generated headshot outputs.  The arrangement of the output squares suggests a variety of generated options, with some squares having darker outlines than others.  Ellipses ('...') are used in both the input and output boxes to indicate that more images than shown are included in the respective sets.
2-rasm: Portret generatsiya tizimining kirishi va chiqishi

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.

Image represents a system for personalizing a pretrained T2I (text-to-image) model.  A single, light-grey box labeled 'Pretrained T2I...' represents the base, pre-trained model.  From this box, three arrows extend, each labeled 'Personalize...', indicating a personalization process. Each arrow connects to a separate, differently colored box representing a personalized version of the T2I model: one light-orange, one light-blue, and one light-green, all labeled 'Personalized T2I...'.  Each of these personalized models then has an arrow pointing to a stack of papers labeled 'User 1 hea...', 'User 2 hea...', and 'User N hea...', respectively, suggesting that each personalized model generates images for a different user (or group of users).  The ellipsis ('...') after 'T2I' and 'hea' suggests that the labels are truncated for brevity, implying multiple models and users. The vertical ellipsis ('...') between the second and third personalization arrows indicates that this process is repeated for an unspecified number of users.
3-rasm: T2I moslashtirishning sozlashga asoslangan yondashuvi

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.

Image represents a system architecture diagram illustrating a multi-user text-to-image generation pipeline.  Multiple users, labeled 'User 1' to 'User N,' are represented as boxes on the left, each feeding input into a light orange box labeled 'Visual...'. This 'Visual...' box likely represents a visual processing or embedding stage.  The output from 'Visual...' flows into a larger light gray box labeled 'Pretrained T2I...', which signifies a pretrained text-to-image model.  Finally, the output from the 'Pretrained T2I...' model is directed to a stack of boxes on the right, labeled 'User 1 hea...' and 'User N hea...', representing the generated image outputs for each corresponding user.  The ellipses ('...') indicate that there are multiple users beyond User 1 and User N.  Arrows depict the unidirectional flow of data from users to the visual processing, then to the text-to-image model, and finally to the individual user's generated image outputs.
4-rasm: T2I moslashtirishning sozlashsiz yondashuvi

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.

Image represents a system for generating images from text descriptions using a diffusion model.  The system begins with a text input, shown as a table with columns labeled 'Token' and 'Embedd...', containing the tokens 'a,' 'the,' 'of,' and '<EOS>' along with their corresponding embeddings.  This table is processed by a 'Tokenizer' and an 'Embedding Layer,' which are stacked vertically and labeled as part of a 'Text Encoding...' block. The output of this block feeds into 'Encoding Layers,' which then provides input to a light-orange box labeled 'Diffusion Model.'  The 'Diffusion Model' outputs an image, which is then compared to a 'Real image of...' (presumably the ground truth) using a loss function.  The loss is fed back to the 'Diffusion Model' for training.  A light-green box labeled 'S*' represents the latent representation of the input text, which is connected to the 'Tokenizer' and the 'Diffusion Model.'  Padlocks are present on the input text, the 'Tokenizer,' 'Encoding Layers,' and 'Diffusion Model,' suggesting these components are protected or secured.  Finally, a small box at the bottom says 'A photo of S*', indicating the visual representation of the latent variable S*.
5-rasm: Matniy inversiya faqat maxsus token o'rnatmasini yangilaydi

Nozik sozlashdan so'ng, model maxsus token bilan so'rovga javob berib yangi sub'ektning tasvirlarini generatsiya qiladi.

Image represents a text-to-image generation system using a diffusion model.  The process begins with a text prompt, 'A picture of S* standing in a prof...', which is fed into a text encoder. This encoder consists of three stacked components: a Tokenizer, an Embedding Layer, and Encoding Layers. The Tokenizer likely converts the text into numerical tokens, the Embedding Layer transforms these tokens into vector representations, and the Encoding Layers further process these embeddings to create a latent representation of the text's meaning. This latent representation is then input into a Diffusion Model (represented as a light orange rectangle).  Simultaneously, a random noise image (represented as a dark gray square labeled 'Random...') is also fed into the Diffusion Model. The Diffusion Model processes both the text embedding and the random noise, iteratively refining the noise until it generates a coherent image. The resulting generated image (represented as a blank white square labeled 'Generated...') is the output of the system.  Arrows indicate the flow of information between components.
6-rasm: Qiziqish sub'ektining tasvirini generatsiya qilish

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.

Image represents a system for generating images from text descriptions, likely using a diffusion model.  The system begins with 'A photo of [V] person,' which serves as the input text. This text is fed into a 'Tokenizer,' followed by an 'Embedding Layer,' and then 'Encoding Layers,' collectively labeled 'Text Encod...', which processes the text into a numerical representation suitable for the model.  The output of the text encoding is then passed to a 'Diffusion Model' (represented as a light orange rectangle with a lock icon indicating a parameter), which generates an image. This generated image is compared to a 'Real image of...' (a placeholder for a real image corresponding to the input text), and the difference is calculated as 'loss.' This loss is used to train the diffusion model, improving its ability to generate images that match the input text descriptions.  The arrows indicate the flow of information, showing how the text is processed, the image is generated, and the model is trained through the loss function.
7-rasm: DreamBooth usuli butun diffuziya modelini yangilaydi

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.

Image represents a simplified diagram of a machine learning model, likely for a supervised learning task.  The diagram shows three rectangular boxes arranged vertically. The bottom box, colored pale yellow, is labeled  `$x \in \m...` representing the input data (x) belonging to a space (m), likely a feature space. An upward arrow connects this box to the middle box. The middle box is larger and light gray, labeled 'Pretrained...' and `$W \in \mathbb{...}`, indicating a pretrained model with weight matrix W belonging to a space (likely a weight space represented by the mathematical notation).  Finally, an upward arrow connects the middle box to the top box, also pale yellow, labeled `$y \in \m...`, representing the output data (y) belonging to a space (m), likely the same space as the input. The arrows indicate the flow of information: the input data (x) is processed by the pretrained model (W) to produce the output data (y).  The ellipses (...) suggest that the full mathematical notation is not shown, implying more detailed information about the spaces and parameters is omitted for brevity.
8-rasm: To'liq bog'liq neyron tarmoq qatlami

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.
Image represents a diagram illustrating a generative AI system's architecture.  At the top, a yellow rectangle labeled  `$y \in \m...` represents the system's output.  An addition symbol (+) connects this output to two inputs: `$Wx$` and `$A(Bx)$`.  `$Wx$` originates from a gray rectangle labeled 'Pretrained...' and containing `$W \in \mathbb{...}`, representing a pre-trained model's weights.  A padlock icon next to this rectangle indicates that the pre-trained model's weights are protected.  `$A(Bx)$` is an input that feeds into a larger, enclosed section representing a fine-tuned model. This section contains two trapezoidal shapes: a light-blue one labeled with `$A$`, `$ \mathb...`, and some seemingly encoded text, and a light-green one below it labeled with `%3CmxGraphModel%3E%3...`, `$ \mathbb{R}..`, and a padlock icon, suggesting a graph-based model with protected parameters.  The light-blue trapezoid represents a LoRA (Low-Rank Adaptation) layer, indicated by a curved arrow pointing to a label 'LoRA I...'.  A padlock icon is present within the fine-tuned model section, suggesting protection of its parameters.  Finally, a yellow rectangle labeled `$x \in \m...` at the bottom represents the system's input, connected to the output of the fine-tuned model.  The overall flow shows the input `$x$` being processed through the pre-trained model and the fine-tuned LoRA model to produce the output `$y$`.
9-rasm: Past darajali matritsalarni kiritish

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.

Image represents a system for generating images from text descriptions.  At the top, a light orange box contains four vertical, pinkish-red rectangles labeled as 'Trainable LoR...' and connected via downward arrows to four locked white rectangles labeled as 'Frozen...'.  Curved arrows indicate that 'Trainable LoR...' components receive input, while the locked components receive input labeled 'Frozen...'. These components are connected to a larger, light orange box labeled 'Diffusion Model'.  The 'Diffusion Model' outputs to an unlabeled white box, which calculates a 'loss' compared to a 'Real image of...' (another unlabeled white box).  Below the 'Diffusion Model' is a white box labeled 'Text Encoder,' which receives input from a box labeled 'A photo of [V] person' and feeds upward into the 'Diffusion Model'.  The overall flow is that the 'Text Encoder' processes the input photo, the 'Diffusion Model' uses this information along with the outputs from the 'Trainable LoR...' and 'Frozen...' components to generate an image, and the loss is calculated by comparing the generated image to a real image.
10-rasm: LoRA usuli diffuziya modelida yangi parametrlarni kiritadi va o'rganadi
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 InversiyaLoRADreamBooth
O'rganish samaradorligiPastO'rtachaYuqori
Talab etilgan xotiraPastO'rtachaYuqori
Talab etilgan o'qitish resurslariPastO'rtachaYuqori
Asl model imkoniyatlarini saqlashHaHaYo'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
Image represents a data processing pipeline for user-uploaded images.  On the left, a collection of variously sized and colored rectangular boxes labeled 'User-uploaded images' depicts the initial input images.  These images flow rightward, through a series of three processing blocks. The first two blocks, labeled 'Image...', likely represent image preprocessing steps (e.g., resizing, format conversion).  The third block, 'Generic...', suggests a more general processing stage, perhaps feature extraction or transformation.  An upward arrow connects this block to a cylindrical database labeled 'Generic...', indicating that processed data is stored. Finally, a rightward arrow from the 'Generic...' processing block leads to a stack of similar-sized, light orange rectangular boxes labeled 'Prepared images,' representing the final output—a collection of processed images ready for further use.  The entire diagram illustrates a sequential flow of data from raw user images through processing stages to a database and finally to a set of prepared images.
11-rasm: O'qitish uchun ma'lumotlarni tayyorlash

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.

Image represents a system for generating images using a diffusion model.  A user uploads an image ('Uploadin...') which is labeled as 'Subject...'.  Simultaneously, a pretrained diffusion model ('Pretrained...') receives general images ('General...') labeled as 'Generic...'. Both the user-uploaded 'Subject...' images and the 'Generic...' images are fed as input ('A photo of...') to a central 'Diffusion Model'.  The model processes these inputs and generates two sets of output images: one set ('Generated...') derived from the user's input, and another ('Generated...') derived from the general input.  Dashed red lines indicate feedback loops:  'Reconstruction loss' represents a feedback mechanism influencing the model's training based on the generated images from the 'Subject...' input, while 'Class-specific pri...' suggests a feedback loop adjusting the model based on the generated images from the 'Generic...' input.  The overall flow depicts a system where user-specific images are combined with general data to refine a diffusion model for image generation.
12-rasm: Umumiy yo'qotishni hisoblash

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.
Image represents a simplified diagram of a denoising diffusion process.  It begins with a rectangular box labeled 'Random Noise...', representing the initial input of random noise data.  An arrow points from this box to a square image depicting a noisy, multicolored texture labeled '$x_{999...}$, indicating the initial noisy state of the data. This noisy image is then fed into a rectangular box labeled 'Diffusion...', representing the first step of the diffusion process.  A dotted arrow then connects this box to another identical 'Diffusion...' box, suggesting multiple iterations of the diffusion process.  Finally, an arrow leads from the last 'Diffusion...' box to an empty white square labeled '$x_{0}$', representing the denoised output after multiple diffusion steps. Below the first and second diffusion boxes are labels 'A close-up of [V] with...' indicating that these boxes represent a process involving a variable V, likely a model or function used in the diffusion steps.  The arrows indicate the flow of data through the process, transforming random noise into a denoised output.
13-rasm: Portret tasviridan namuna olish

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.

Image represents a system for comparing generated and real images using a CLIP (Contrastive Language–Image Pre-training) model.  A light-blue box labeled 'Generated i...' represents a generated image, and an orange box labeled 'Real image' represents a real image. Both are fed as input into a dashed-line box labeled 'CLIP Model,' which contains a light-grey box labeled 'Text...' representing text input (likely a prompt or description) and a light-green box labeled 'Image...' representing the image input (either generated or real).  The CLIP model processes both the text and the image inputs separately. The outputs of the CLIP model for both the generated and real images are then fed into separate horizontal boxes representing feature vectors. A double-headed arrow connects these feature vectors, labeled 'Similarity,' indicating a comparison process that calculates the similarity between the feature vectors of the generated and real images.  The overall system aims to quantify the similarity between a generated image and a real image based on a textual description, using the CLIP model to embed both images and text into a common feature space.
14-rasm: CLIP yordamida tasvir moslanmasini hisoblash

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.

Image represents a system for comparing a generated image and a real image using a DINOv2 model.  A light-blue square labeled 'Generated i...' represents the input of a generated image. A light-orange square labeled 'Real image' represents the input of a real image. Both images are fed as input into a light-green box labeled 'DINOv2,' which presumably extracts image features. The DINOv2 output is then fed into two separate rectangular boxes representing feature vectors; one for the generated image and one for the real image.  A bidirectional arrow connects these two feature vector boxes, labeled 'Similarity,' indicating a comparison process that calculates the similarity between the feature vectors derived from the generated and real images.  The flow of information is unidirectional from the input images to DINOv2 and then to the feature vector representations, while the similarity comparison happens between the feature vectors.
15-rasm: DINOv2 [15] yordamida tasvir moslanmasini hisoblash
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
Image represents a system for preparing user-uploaded images for a machine learning model.  A user uploads multiple images (represented by differently colored rectangles within a larger rectangle labeled 'User-uploaded images'). These images are then processed by a 'Quality assessors' module depicted as a smartphone with functions like 'Face Detect...', 'Face Recogn...', 'Facial Expr...', 'Blur...', and 'Quality...'.  The output of this module is a set of 'Remaining...' images (colored rectangles) that pass the quality checks.  These images are then labeled 'Data...' and passed to a data preparation stage, resulting in a stack of 'Prepared...' images (orange rectangles). If the 'Quality assessors' module determines that more images are needed ('More...' decision diamond), a request is sent back to the user.  Images that fail the quality checks are discarded.  Finally, the 'Prepared...' images are combined with data from a 'Pretrained...' model (cloud shape) to complete the preparation process, resulting in a final stack of 'Prepared...' images (light blue rectangles).  The entire process is depicted as a flow chart with arrows indicating the direction of data flow between the different components.
16-rasm: Ma'lumotlar quvurining tarkibiy qismlari

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.

Image represents a system for creating personalized models.  On the left, a set of 'Prepared images' is shown, divided into two stacks of light orange and light blue squares, each representing a collection of images.  An arrow indicates these prepared images are input into a 'Model Trainer' (a light green rectangle).  The Model Trainer also receives input from a 'Pretrained...' (light gray cloud), suggesting a pre-existing model is used as a base.  The output of the Model Trainer is a 'Personalized...' (light yellow cloud), implying the process generates a customized model based on the input images and the pretrained model.  The arrows depict the flow of data: prepared images and the pretrained model are fed into the Model Trainer, which then produces a personalized model.
17-rasm: Oldindan o'qitilgan diffuziya modelini nozik sozlash

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
Image represents a system workflow for generating and uploading personalized images.  A user initiates the process.  A hand-engineered text prompt,  'A professional headshot of [V] smiling in f...', is input, feeding into a 'Image...' processing block (light green). This block receives further input from a 'Personalized...' cloud service (yellow), suggesting that personalization parameters are fetched from there. The generated image then proceeds to a 'Quality Asses...' block (light red), which determines if the image meets quality standards.  A decision diamond ('Meets...') follows, routing images meeting the criteria to an 'Uploader...' block (light purple) for user upload, while images failing quality checks loop back to the 'Image...' block for regeneration using a different diffusion model ('Re-generate with a di...').  The entire process is visualized as a flowchart, showing the sequential steps and decision points involved in creating and delivering a personalized image to the user.
18-rasm: Xulosa chiqarish quvurining tarkibiy qismlari

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

Image represents a mind map summarizing key aspects of a Generative AI system design interview.  A central 'Summary' box branches into seven main colored categories:  Clarifying requirements (light orange) and Specifying Input and output (light blue) focus on initial project definition, including framing the problem as a Machine Learning (ML) task and choosing between tuning-free (e.g., Textual Inversion) or tuning-based (e.g., DreamBooth, LoRA) approaches. Data preparation (purple) details image resizing and augmentation, including generic face data addition. Model development (gold) covers architecture (U-Net), training (with reconstruction, class-specific prior preservation losses), and sampling. Evaluation (salmon) distinguishes between offline metrics (text alignment, image quality, CLIPScore, Inception score, FID) and online metrics (image alignment, user feedback, conversion rate). Overall system components (teal) outlines the data, training, and inference pipelines, along with the image generator, quality assessment service, and uploader service. Finally, Other talking points (light peach) suggests additional discussion areas.  Each branch further subdivides into more specific details, creating a hierarchical structure illustrating the interconnectedness of various design considerations.

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.

Bob 11

Matndan Videoga Generatsiya

~21 daq o'qish

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.

Image represents a video thumbnail showing a stylish woman walking down a rain-slicked Tokyo street at night.  The woman, wearing a black leather jacket and a long burgundy dress, is centrally positioned and carries a black handbag.  She is walking towards the viewer. The background features a bustling Tokyo street scene, filled with numerous brightly lit neon signs in Japanese script, reflecting in the wet pavement.  Buildings line both sides of the street, showcasing various advertisements and signage.  Other pedestrians are visible in the background, though somewhat blurred.  A play button icon is superimposed in the center of the video thumbnail, indicating that the image is a still from a video.  Above the thumbnail, the text 'Prompt: A stylish woman walks down a Tokyo street filled with warm glowing neon a...' provides a textual description of the video's content.  The bottom of the image contains partially obscured text, reading 'Text is not...nnot display,' suggesting a technical limitation in displaying the full text.
1-rasm: OpenAI'ning Sora modeli [1] tomonidan generatsiya qilingan videoning namunasi

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.

Image represents a simple data flow diagram illustrating a text-to-video generation process.  On the left, a text prompt, labeled 'A dog playing fetch in...', is shown. This prompt serves as the input.  A black arrow points from the text prompt to a light orange, rounded-rectangle box labeled 'Text-to-Video...'. This box represents the core text-to-video generation model or system.  Another black arrow extends from the 'Text-to-Video...' box to a light blue rectangle labeled 'Generated video,' which contains a play button symbol (▷) indicating the output is a video.  The overall flow depicts the transformation of a textual description into a video using a text-to-video model.
2-rasm: Matndan videoga tizimning kirishi va chiqishi

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.

Image represents a diagram illustrating two separate generative AI processes.  The top process shows a 'Text prompt' feeding into a 'Text-to-Image...' box, which in turn outputs a single light-blue rectangle representing a generated image.  The bottom process depicts a 'Text prompt' inputting into a light-orange 'Text-to-Video...' box. This box outputs a light-blue rectangle containing a play symbol (▷), representing a generated video. This video is then further broken down into a stack of twelve light-blue rectangles, labeled as '120 frames,' indicating the individual frames composing the generated video.  Arrows clearly show the unidirectional flow of information from input (text prompt) to processing (Text-to-Image or Text-to-Video) to output (image or video frames).
3-rasm: Matndan videoga kadrlar ketma-ketligini generatsiya qilish

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.

Image represents a video compression and prediction model.  On the left, a stack of light-blue rectangles labeled 'Original video' depicts a sequence of video frames. A thick arrow labeled 'Compression' points right, indicating a compression process transforming the original video frames into a stack of smaller, lavender-colored rectangles labeled 'Latent...'. These compressed frames then flow into a light-orange, rounded-rectangle box labeled 'Latent...', representing a latent space.  '+ noise' is added to this latent representation before it proceeds to the right via another arrow. The output on the far right is a stack of multicolored, noisy rectangles labeled 'Predicted...', representing the reconstructed video frames after passing through the latent space and adding noise. The entire process is described as occurring within a 'Latent space'.
4-rasm: Past o'lchamli latent fazoda ishlaydigan diffuziya modeli

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.

Image represents a simplified model of a video compression and decompression system.  The process begins with an 'Original video' represented as a three-dimensional rectangular prism.  This video is fed into a 'Visual...' encoder (represented as a trapezoidal shape), which processes the video and outputs a compressed representation. This compressed data, labeled 'Latent...', is shown as a smaller cube.  The 'Latent...' data then passes through a 'Visual D...' decoder (another trapezoidal shape), which reconstructs the video. The final output is a 'Reconstructed video,' also depicted as a three-dimensional rectangular prism, similar in shape to the original but potentially with some loss of information due to compression.  Arrows indicate the unidirectional flow of data between each component.
5-rasm: Vizual encoder va decoderdan iborat siqish tarmog'i
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.

Image represents a data processing pipeline.  A large, light-grey, three-dimensional rectangular block representing input data with dimensions 120 x 1280 x 720 is shown. A curved arrow indicates data flow from this block to a rectangular box labeled '110,592,000...', suggesting a count or size of the input data.  The input block then sends data via a straight arrow to a trapezoidal, light-green block labeled 'Visual...', likely representing a visual processing or transformation stage.  This visual processing stage outputs data to another light-grey, three-dimensional rectangular block with dimensions 15 x 160 x 90. Finally, a curved arrow connects this output block to a rectangular box labeled '216,000...', indicating the size or count of the processed data.  The overall diagram illustrates the transformation of a large dataset through a visual processing step, resulting in a smaller dataset.
6-rasm: Siqishning ma'lumotlar hajmiga ta'siri

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.

Image represents a video generation system pipeline.  It begins with a 'Random...' block, representing a source of random noise, which feeds into a sequence of three 'Latent...' blocks, each representing a latent space.  Each 'Latent...' block receives input from a corresponding 'Text Enc...' block below, labeled as 'Text Enc...', which presumably encodes text descriptions like 'a dog walking...'.  Arrows indicate the flow of information, showing that the output of each 'Latent...' block feeds into the next, suggesting a sequential or iterative process.  After the third 'Latent...' block, the output flows into a 'Denoised...' block, likely representing a denoising step. This is followed by a 'Visual De...' block (likely a visual decoder), which processes the denoised latent representation. Finally, the output of the 'Visual De...' block is a 'Generated video' block, representing the final generated video output.  The overall architecture suggests a text-to-video generation model using a latent space representation and a sequential refinement process.
7-rasm: O'qitilgan LDM yordamida video generatsiya qilish

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.

Image represents a data processing pipeline for video data, likely in the context of training a machine learning model.  The pipeline begins with 'Original training video...' depicted as a collection of variously colored rectangular boxes, each containing a play button symbol (▷), representing individual video segments. These segments are then passed through a 'Filtering' stage, resulting in a smaller set of similarly symbolized rectangular boxes in a light blue rectangle.  This filtered data is then 'Standardized...', producing another set of video segments (represented by colored rectangles with play buttons) arranged vertically in a light blue rectangle.  Finally, the standardized data undergoes 'Precomputing...', transforming the data into a stack of smaller, colored cubic blocks, each also implying a video segment.  These precomputed blocks are then written to a 'Storage' database, represented by a large, pale yellow cylinder.  Arrows indicate the flow of data between each stage, showing the transformation and reduction of data as it progresses through the pipeline.
8-rasm: Video ma'lumotlarini tayyorlash

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.
Image represents a tabular structure illustrating a dataset for a video captioning model.  The table has three columns: 'ID', 'Video latents', and 'Caption embeddings'. The 'ID' column lists sequential identifiers for each data entry, ranging from 1 to N, where N represents an unspecified number of entries. The 'Video latents' column visually depicts each video's latent representation as a three-dimensional rectangular box, implying a compact, vectorized encoding of the video's visual content.  The 'Caption embeddings' column shows each video's corresponding caption represented as a set of vertical rectangular blocks, each block likely representing a word or a segment of the caption's embedding vector. The number of blocks varies across rows, suggesting captions of different lengths.  The ellipsis (...) indicates that the table continues beyond the shown rows, implying a larger dataset with more video-caption pairs.  There is no explicit connection shown between the 'Video latents' and 'Caption embeddings' columns, but the implicit relationship is that each video's latent representation (box) is paired with its corresponding caption embedding (set of blocks) sharing the same ID.
9-rasm: O'qitish uchun tayyorlangan video–sarlavha o'qitish ma'lumotlari

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.

Image represents a U-Net architecture for image processing.  The input is a 64x64 image represented as a gray 3D block. This image is fed into a series of downsampling blocks (labeled 'D', colored light red), each consisting of a Conv2D layer, Batch Normalization, ReLU activation, Max Pooling, and a Cross-Attention mechanism (as indicated by the top dashed box).  These 'D' blocks sequentially reduce the spatial dimensions of the input.  The output of the final downsampling block then flows into a series of upsampling blocks (labeled 'U', colored light green), each mirroring the structure of the downsampling blocks but using transposed convolutions instead of standard convolutions (as shown in the top right dashed box).  These 'U' blocks increase the spatial dimensions, eventually reconstructing the image to the original 64x64 size. The 'D' and 'U' blocks are connected, forming the characteristic U-shape of the U-Net. The entire process is labeled 'U-Net,' with 'Downsampling b...' and 'Upsampling blo...' describing the respective block sequences. The final output is a 64x64 'Predicted...' image, represented as a gray 3D block.
10-rasm: Tasvir generatsiyasi uchun U-Net arxitekturasi

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
Image represents a diagram illustrating a downsampling and upsampling process within a likely neural network architecture.  The diagram is divided into two halves, representing these two processes.  The left half, labeled 'Downsampling...', shows a sequence of operations starting with a 'Temporal Conv' layer, whose output feeds into a horizontally arranged block containing a 'Conv2D', 'Batch Norm2D', 'ReLU', and 'MaxPool2D' layer.  A 'Temporal Attention' layer's output is also fed into this block, likely through concatenation or addition. The right half, labeled 'Upsampling...', mirrors this structure but in reverse. It begins with a 'Temporal Conv' layer feeding into a block containing 'ConvTranspose2D', 'Batch Norm2D', 'ReLU', and 'Cross-attention' layers.  A 'Temporal Attention' layer's output is also fed into this block.  The arrangement suggests a U-Net-like architecture where the downsampling path reduces spatial dimensions, followed by the upsampling path to reconstruct the original dimensions, with cross-attention mechanisms potentially enabling information flow between different levels of the network.
11-rasm: U-Net'ning pastga va yuqoriga namuna olish bloklariga vaqtinchalik qatlamlarni kiritish

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.

Image represents a sequence of four frames, labeled 'Frame 1,' 'Frame 2,' 'Frame 3,' and 'Frame 4,' enclosed within a dashed-line rectangle. Each frame is depicted as a light green square containing a smaller, empty black square.  Curved arrows originate from the inner black squares of Frame 1 and Frame 2, pointing towards the inner black squares of Frame 2, Frame 3, and Frame 4.  Specifically, the inner square in Frame 1 has one arrow pointing to the inner square in Frame 2. The inner square in Frame 2 has two arrows, one pointing to the inner square in Frame 3 and another to the inner square in Frame 4.  The arrows suggest a flow of information or a dependency between the frames, possibly indicating a sequential process or data transfer.  The dashed line surrounding all frames suggests a boundary or a system encompassing the entire sequence.  An ellipsis ('...') after Frame 4 indicates that the sequence continues beyond the displayed frames.
12-rasm: Kadrlar bo'ylab xususiyatlarni yangilaydigan vaqtinchalik diqqat
  • 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.
Image represents a comparison of 3D and 2D convolutions.  The left side depicts a 3D convolution illustrated as a larger, light-grey rectangular prism representing the input volume.  Within this larger prism, a smaller, salmon-pink rectangular prism labeled '3D...' represents the 3D convolutional kernel or filter. The text '3D convolution' is positioned below this illustration.  The right side mirrors this structure but in 2D: a larger, light-grey square represents the input image, and a smaller, salmon-pink square labeled '2D...' represents the 2D convolutional kernel. The text '2D convolution' is placed below this 2D representation.  Both diagrams visually demonstrate how a smaller kernel (either 3D or 2D) slides across a larger input volume or image to perform the convolution operation. The ellipses (...) in the labels suggest that the kernel's dimensions are not explicitly specified but are implied by the visual representation of the kernel's size relative to the input.
13-rasm: 2D konvolyutsiya va 3D konvolyutsiyalar

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)
Image represents a denoising model architecture.  A 'Noisy image' box at the bottom feeds into a larger box containing four stacked processing layers: 'Patchify' (light green), 'Positional Encoding' (light red), 'Transformer' (light orange), and 'Unpatchify' (light green).  These layers sequentially process the noisy image.  The 'Patchify' layer likely divides the image into smaller patches for processing.  'Positional Encoding' adds positional information to the patches. The core processing happens within the 'Transformer' layer, a neural network architecture known for handling sequential data. Finally, 'Unpatchify' recombines the processed patches into a complete image.  An arrow indicates data flow from the 'Noisy image' through these layers.  A separate box labeled 'Conditions...' is connected to the input of the 'Transformer' layer, suggesting conditional information influences the denoising process.  The output of the entire process is 'Predicted noise,' represented by a box at the top, indicating the model's prediction of the noise present in the input image.  An upward arrow shows the flow of this predicted noise from the 'Unpatchify' layer.
14-rasm: DiT tarkibiy qismlari

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.

Image represents a comparison of image and video processing pipelines, both employing a 'Patchify' operation.  On the left, an image is processed.  The image is first divided into 9 patches (represented as vertical rectangles labeled 'Patch em... c' and numbered '9'), each of which is then individually processed by a 'Patchify' module. This module consists of three sequential steps: 'Projection,' 'Flatten,' and 'Divide,' represented as stacked horizontal rectangles within a larger box labeled 'Patchify.'  The output of the Patchify module for each patch is a smaller set of square blocks. On the right, a similar process is shown for a video. The video is first divided into 18 patches (also represented as vertical rectangles labeled 'Patch em... C' and numbered '18').  Each patch is then processed by a 'Patchify' module (identical in structure to the image's module) resulting in a larger, three-dimensional array of cubic blocks.  Arrows indicate the flow of data between stages, showing how the initial image or video is broken into patches, then processed by the Patchify module, resulting in a transformed representation of the input.
15-rasm: Tasvir va video uchun Patchify
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.

Image represents a comparison of data processing for image and video inputs within a system likely involving a transformer network.  The left side depicts image processing:  Nine rectangular blocks labeled '1' through '9' represent a 3x3 image. These blocks are grouped under a curved bracket labeled 'c' indicating channels, and the number '9' below signifies the total number of input features. An upward arrow connects this image representation to a light-red rectangular box labeled 'Positional E...', likely representing a positional encoding layer. The right side shows video processing:  A 3x3x2 cube (represented as a 3x3 grid of cubes, with the depth implied) labeled '1' through '6' (and implied further numbers) represents a video frame, with '18' below indicating the total number of input features.  Similarly, an upward arrow connects this video representation to a light-red rectangular box labeled 'Positional E...', indicating the same positional encoding layer is used for both image and video data.  The difference lies in the input dimensionality: a 2D array for images (9 features) and a 3D array for videos (18 features), both processed through the same positional encoding step.
16-rasm: Tasvir va video uchun 1D pozitsion kodlash

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.

Image represents a comparison of different positional encoding methods in a system, likely for a neural network.  The left side shows a 2D encoding where a 3x3 grid of data points, represented by numbers like '1,1', '1,2', etc., feeds into a positional encoding function denoted as  `$F(i, j)` (where `i` and `j` likely represent row and column indices). This function's output is shown as a rectangular box.  The right side shows a 1D encoding where a 3x3 grid is flattened into a 1D sequence (1, 2, 3, 4, 5, 6, 7, 8, 9) and fed into a positional encoding function `$F(i)` (where `i` is the index in the sequence).  The output is again represented by a rectangular box.  Below this, the same comparison is shown for 3D encoding, where a 3x3x3 cube of data points is first represented as a 3D structure and then flattened into a 1D sequence before being processed by `$F(i,j,k)` (for 3D) and `$F(i)` (for 1D) respectively, with outputs shown as rectangular boxes.  Arrows indicate the flow of information from the data representation to the positional encoding function.  The label 'Positional encoding...' indicates the overall theme of the diagram.
17-rasm: 1D, 2D va 3D pozitsion kodlash

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.

Image represents a sequence-to-sequence model architecture, likely used for denoising or generation tasks.  The model begins with an 'Input sequence...' represented as multiple vertical blocks, each block symbolizing a vector or embedding. These input vectors feed into a 'Transformer' block, which is depicted as a peach-colored rectangle containing stacked layers: 'Normalization,' 'Feed Forward,' 'Cross-Attention' (labeled with 'Nx' indicating a parameter likely related to the number of attention heads), another 'Normalization' layer, and finally 'Multi-head...' (implying multi-head self-attention).  The output of the Transformer is then used to predict 'Predicted noise,' also represented as multiple vertical blocks.  Separately, a 'Conditioning signal...' feeds into an 'Encoder' block, which then sends its output to the input of the Transformer, allowing the model to condition its generation on external information.  Arrows indicate the flow of information between components, showing how the input sequence, conditioned by the encoder's output, is processed by the Transformer to generate the predicted noise sequence.
18-rasm: Transformer tarkibiy qismi
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.

Image represents a comparison of two different architectures for a generative model, likely focused on noise prediction and image generation.  Both sides share a similar structure. At the bottom, labeled 'Noise vectors predicted...', are multiple vertical rectangular blocks representing input noise vectors; the ellipsis (...) indicates that more such vectors exist.  These vectors are fed upwards into a green block labeled 'Unpatchify,' which processes them. Above 'Unpatchify,' a stacked block contains three layers: 'Reshape,' 'Linear,' and 'LayerNorm,' sequentially processing the output of 'Unpatchify.' Finally, at the top, a shape labeled 'Predicted noi...' represents the predicted noise output; on the left, this is a square, while on the right, it's a three-dimensional rectangular prism, suggesting a difference in the dimensionality or representation of the predicted noise between the two architectures.  The arrows indicate the flow of information from the noise vectors through the processing layers to the final predicted noise output.  The difference between the left and right sides lies primarily in the shape of the final predicted noise output, implying a variation in the output's dimensionality or structure.
19-rasm: Unpatchify tarkibiy qismi

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.
Image represents two strategies for training a video generation model.  Strategy 1 shows a 'Training' block receiving input from two cylindrical database representations labeled 'Image-text pairs' and 'Video-text pai...'.  The output of the 'Training' block is an arrow pointing to a light green cloud labeled 'Video...', representing the generated video. Strategy 2 depicts a 'Pretraining' block taking input from a cylindrical database labeled 'Image-text pairs,' outputting to a light orange cloud labeled 'Image...', which then feeds into a 'Finetuning' block.  The 'Finetuning' block receives input from a second cylindrical database labeled 'Video-text pai...' and outputs to a light green cloud labeled 'Video...', representing the generated video.  Both strategies ultimately generate videos ('Video...') but utilize different training approaches: Strategy 1 trains directly on both image-text and video-text pairs, while Strategy 2 uses a two-stage process, first pretraining on image-text pairs and then finetuning on video-text pairs.
20-rasm: Tasvir–matn o'qitish ma'lumotlaridan foydalanishning ikki strategiyasi

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.
Image represents a data processing pipeline for video generation.  It begins with a rectangular box labeled 'Latent...' (orange), representing input latent data, which flows (indicated by an arrow and numbered '1') into a trapezoidal box labeled 'Visual D...' (light green), representing a visual decoder.  The output of the visual decoder ('Generated video...', dimensions 40x23x8) is then processed in two parallel paths.  Path one involves a connection (numbered '2') to a rectangular box labeled 'Spatial...' (light purple), followed by an arrow and numbered '3' to another rectangular box labeled 'Temporal...' (light purple). Path two directly connects the visual decoder output to a large rectangular prism representing the 'Generated video...' (dimensions 320x180x60). The outputs of 'Spatial...' and 'Temporal...' are then combined (arrow and numbered '4') to create the final video, represented by a larger rectangular prism labeled 'Final video' with dimensions 1280x720x120.  The numbers within the boxes represent dimensions (likely height, width, and depth/frames) of the video data at each stage.  The arrows indicate the flow of data between processing stages.
21-rasm: Samarali matndan videoga quvur

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.

Image represents a diffusion model architecture for generating images from text prompts.  The process begins with a 'Random...' block, representing a randomly initialized latent vector, which is fed into a series of three 'Latent...' blocks. Each 'Latent...' block represents a stage in the diffusion process, receiving input from the previous stage and a 'Text Enc...' block.  The 'Text Enc...' blocks, labeled with 'a dog walking...', encode the text prompt ('a dog walking...') into a vector that conditions the diffusion process at each stage.  Arrows indicate the flow of information: the output of each 'Latent...' block is passed to the next, and the output of each 'Text Enc...' block is fed into the corresponding 'Latent...' block.  After three stages, the final 'Latent...' block outputs a 'Denoised...' vector, representing the generated image's latent representation.  The ellipsis (...) after the second 'Latent...' block indicates that this section could be repeated multiple times depending on the model's design.
22-rasm: O'qitilgan LDM dan namuna olish jarayoni

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.

Image represents a data processing pipeline with three parallel processing paths.  The top path begins with a database cylinder labeled 'Raw...' representing raw image data. This data flows into a rectangular box labeled 'Inappropriate...', presumably for filtering inappropriate content.  The filtered images then move to a box labeled 'Image...', followed by a light green box labeled 'Image Latent...', which likely represents a latent space representation of the images. Finally, the processed data is stored in a database cylinder labeled 'Image...'. The middle path mirrors this structure, processing 'Raw Videos' through 'Inappropriate...', 'Video...', and 'Video Latent...' boxes, culminating in a 'Video...' database. The bottom path starts with another 'Raw...' database (likely containing text captions), which feeds into a 'Re-captioning' box. The output then goes to a light green 'Caption Embedding...' box, generating embeddings, and finally stores the result in a 'Caption...' database.  Arrows indicate the unidirectional flow of data between each processing stage.
23-rasm: Ma'lumotlar quvuri

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.

Image represents a flowchart depicting the process of generating a video from a user prompt within a generative AI system.  The process begins with a user typing a prompt (1) and submitting it (2) to a 'Prompt Safety...' module (light blue) which checks for safety concerns. If deemed safe (3a), the prompt proceeds to a 'Prompt...' module (pale yellow), then to a 'Video...' module (light orange). The 'Video...' module receives input from both a 'Text...' module (grey cloud) and an 'LDM' module (grey cloud) (5a and 5b), likely representing text-based and latent diffusion model processing.  The output then goes through a 'Visual...' module (light green) and a 'Harm...' module (slate grey) for further safety checks. If safe (8a), it moves to a 'Temporal...' module (light red), which receives input from a 'Spatial...' module (light red) (9). Finally, the processed information is sent to a 'Generate...' module (white square with a play button) (10) to produce the video output. If at any point a safety check fails (3b or 8b), the process is rejected, resulting in a 'Reject r...' outcome.  The numbered circles (1-10) indicate the sequential steps in the process.
24-rasm: Xulosa chiqarish quvurining tarkibiy qismlari

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

Image represents a mind map summarizing the design of a video generation AI system.  The central node is labeled 'Summary,' branching out into several major categories.  The 'Clarifying Requirements' branch details specifying input and output, and framing the problem as a machine learning (ML) approach, specifically using Latent Diffusion Models (LDM).  The 'Data Preprocessing' branch covers video standardization, pre-computation, and caption handling (including missing or non-English captions) and pre-computing caption embeddings.  The 'Model Development' branch focuses on architecture (using U-Net, temporal attention, and positional encoding within a Diffusion model), training, and challenges (computational cost and limitations of long video runs).  The 'Evaluation' branch distinguishes between offline (frame quality metrics like PSNR, LPIPS, and KID; temporal consistency; video-text alignment; and click-through rate) and online (time spent on the page, user feedback, and conversion rate) metrics.  Finally, the 'Overall System Components' branch details the data pipeline, training pipeline, and inference pipeline, which includes components like a prompt safety service, video generator, visual detector, and spatial and temporal super-resolution.  The 'Other Talking Points' branch suggests additional discussion areas.  All branches are color-coded for clarity, and the connections visually represent the hierarchical relationships between different aspects of the system design.

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.