12 Vision-Language Models
🚧 Երկու դասախոսության սլայդերը պատրաստ են (L33, L34)։ Տեսանյութերը դեռ չեն ձայնագրվել, տնային աշխատանք դեռ չկա։
Այս գլուխը միացնում է չորս նախորդ գլուխ․ ch6 (CNN) — պատկերի կտորները, ch8 (autoencoder) — VQ-VAE-ի հիմքը, ch9 (attention) — ViT-ը պարզապես transformer է, և ch10 (diffusion) — գեներացիայի կեսը։ Առանց դրանց այս գլուխը կարդալ պետք չէ։
🎲 Random
TBD
📚 Նյութը
Երկու դասախոսություն (սլայդերը ml/ch12_vlm/ պանակում)։ Գլուխը պատասխանում է այն հարցին, որ ուսանողները ամենից հաճախ տալիս են՝ ինչպե՞ս է chat մոդելը «տեսնում» այն նկարը, որ ես տեղադրեցի, և ինչպե՞ս է նույն մոդելը նկար նկարում։
- L33 — Vision-Language Models I: How a model sees — պատկերը կտրում ենք ֆիքսված քառակուսիների (patch), ամեն մեկը՝ մեկ գծային շերտով վեկտոր, և ահա՝ հաջորդականություն, որը transformer-ը կարդում է։ ViT, դիրքային embedding-ներ, ապա CLIP-ը՝ մանրամասն (երկու աշտարակ, ընդհանուր embedding տարածություն, L2 նորմավորում ու cosine, temperature-ը, սիմետրիկ cross-entropy-ն, և քայլ առ քայլ հաշվարկ 4-չափանի batch-ի վրա), SigLIP, prompt-ի ձևանմուշները, ապա երեք եղանակ՝ տեսողությունը LLM-ին միացնելու (projector / resampler / early fusion), և վերջում՝ 576 token մեկ նկարի համար և այն ամենը, ինչ այդ թվից է կոտրվում։ PDF
- L34 — Vision-Language Models II: How a model draws — իսկական հակասությունից․ ch10-ի diffusion-ը աշխատում է անընդհատ տարածությունում, իսկ լեզվական մոդելը արտադրում է դիսկրետ token-ներ։ VQ-VAE-ն ու codebook-ը, straight-through estimator-ը, ինչ արժե դիսկրետացումը (չափված մեր տառերի վրա), raster կարգով next-token prediction, ապա երեք միասնական ճարտարապետություն՝ Chameleon, Transfusion, Janus, և GPT-4o-ի native image generation-ը՝ հայտնիի և ենթադրվողի բաժանմամբ։ PDF
Գլխի հիմնական միտքը մեկ նախադասությամբ․ դարձրու ամեն ինչ վեկտորների հաջորդականություն, և մեկ ճարտարապետությունը կկարդա բոլորը։
L34-ը չի պնդում, թե ինչ արժե պատկերը դիսկրետ token-ների վերածելը — այն չափում է, ch10-ի նույն 4,481 հայերեն ձեռագիր տառերի վրա (\(24\times24\), \(4\times4\) patch, k-means codebook)․
| Codebook \(K\) | Վերականգնման MSE | Բիթ մեկ պատկերի |
|---|---|---|
| 8 | 0.01819 | 108 |
| 32 | 0.01064 | 180 |
| 128 | 0.00844 | 252 |
| 512 | 0.00654 | 324 |
Երկու եզրակացություն․
- Կտրուկ նվազող օգուտ։ \(8 \to 32\)-ը սխալը իջեցնում է 41%-ով, իսկ \(128 \to 512\)-ը տալիս է ընդամենը 22%՝ չորս անգամ մեծ բառապաշարի դիմաց։ Հենց դա է պատճառը, որ ոլորտը գնաց ավելի խելացի քվանտացման (MAGVIT-2), ոչ թե պարզապես ավելի մեծ \(K\)-ի։
- Նույնիսկ \(K=512\)-ի դեպքում գծերը քայքայվում են։ Ամեն patch քվանտացվում է անկախ, հարևանների մասին ոչինչ չիմանալով, ուստի patch-ի սահմանը հատող գիծը ոչինչ չի պահում ամբողջական։ Սա ուղիղ ch10-ի գտածոն է․ գծերը 1–2 պիքսել լայնություն ունեն, և բարակ, բարձր հաճախականության կառուցվածքը այն է, ինչ ամեն սեղմում առաջինն է ոչնչացնում — իսկ նկարի մեջ գրված տեքստը հենց այդպիսին է։
Raw պատկերը 4,608 բիթ է, \(K=512\)-ը՝ 324 բիթ, այսինքն 14.2× սեղմում։ Ամբողջ չափումը՝ py_src/l34_drawing_figs.py, log-երը՝ logs/l34_drawing_figs.log։
Համացանցում այն լայնորեն նկարագրվում է որպես «autoregressive image generation», ինչը լավագույն դեպքում կիսաճիշտ է։ Հրապարակված աշխատանքներին համապատասխանող վերակառուցումը Transfusion-ի ընտանիքն է․ autoregressive տեքստի վրա, բայց diffusion՝ պատկերի անընդհատ latent-ների վրա, մեկ ընդհանուր transformer-ով և երկու գումարվող կորստի ֆունկցիայով։
OpenAI-ը ճարտարապետությունը չի հրապարակել։ L34-ը այդ սլայդում բացահայտ բաժանում է հիմնավոր հայտնին ենթադրվողից, և նույնը խորհուրդ է տալիս անել դասին։
🏡 Տնային
TBD