๐ Understanding CLIP - CLIP ๋ชจ๋ธ ์ดํดํ๊ธฐ
(English-ver) Understanding CLIP - A Beginner-Friendly Guide to Contrastive LanguageโImage Pretraining
Hello! ๐
Today, letโs dive into CLIP (Contrastive LanguageโImage Pre-training), a powerful multimodal model released by OpenAI.
While multimodal models are now the norm, itโs amazing to realize this research came out in 2021โbefore ChatGPT! Letโs explore what makes CLIP so groundbreaking.
An Easy Way to Understand CLIP
John has 1 kg of gold.
Alex has 1 Bitcoin.
How can we compare their value fairly?
A model like CLIP helps transform these different assets into the same scale, like dollars ($), for direct comparison.In this example, gold = text, Bitcoin = image, and the $ represents the shared vector space CLIP learns!
๐ฏ What is CLIP?
CLIP is a model trained to understand both images and natural language descriptions.
It was introduced by OpenAI in 2021 and differs from traditional image classifiers by connecting images with free-form natural language.
๐ CLIP stands for: Contrastive LanguageโImage Pre-training
๐ง Key Idea of CLIP
CLIP maps both images and texts into a shared vector space, where matching image-text pairs are close, and unrelated ones are distant.
โจ In Simple Terms:
- An Image Encoder to embed images
- A Text Encoder to embed text
- Both map to the same space, where semantically related inputs are nearby
This is called Contrastive Learning. (Weโll explain more below!)
๐ Under the Hood
๐ผ๏ธ Image Encoder (ViT / ResNet Based)
Feature | Description |
---|---|
Architecture | Vision Transformer (ViT), ResNet |
ViT Models | ViT-B/32, ViT-B/16, ViT-L/14, ViT-L/14@336px |
ResNet Models | ResNet-50, ResNet-101, RN50x4, RN50x16, RN50x64 |
Input Resolution | 224ร224 (default), 336ร336 for ViT-L/14@336px |
ViT Flow | Image โ patches โ linear embedding + positional encoding |
ResNet Flow | Convolution + residual blocks |
Feature Output | ViT: [CLS] token, ResNet: global average pooling |
Embedding Size | 512โ1024 |
Training Time | ViT-L/14: 12 days (256ร V100), RN50x64: 18 days (592ร V100) |
๐ง Text Encoder (Transformer Based)
Feature | Description |
---|---|
Architecture | Transformer (GPT-style) |
Layers | 12 |
Hidden Size | 512 |
Attention Heads | 8 |
Parameters | ~63M |
Tokenizer | Byte Pair Encoding (BPE), vocab size 49,152 |
Max Sequence Length | 76 tokens (+ [SOS], [EOS]) |
Input Format | [SOS] + tokens + [EOS] |
Output Feature | Final layer output at [EOS] |
Post-processing | LayerNorm โ Linear projection |
Masking | Masked self-attention (causal) |
๐ง How Was CLIP Trained?
CLIP was trained on 400 million imageโtext pairs from the internet.
It used:
- Batch Size: 32,768
- Epochs: 32
๐ง What is Contrastive Pretraining?
Contrastive Pretraining helps a model learn to pull similar pairs together and push dissimilar pairs apart in the embedding space.
Example:
Image: โa photo of a catโ โ CLIP โ (0, 0, 0, 0.99)
Text: โa photo of a catโ โ CLIP โ (0, 0, 0, 0.98)
The vectors are closeโgreat match!
๐ InfoNCE Loss
CLIP uses InfoNCE Loss, derived from Noise Contrastive Estimation.
โ Formula:
L = -log( exp(sim(x, yโบ) / ฯ) / ฮฃแตข exp(sim(x, yแตข) / ฯ) )
sim(x, y)
: cosine similarity between image and text vectorsyโบ
: correct text pairyแตข
: all other incorrect (negative) pairs in the batchฯ
: temperature parameter (e.g., 0.07)
It encourages the model to maximize the similarity for correct pairs and minimize it for incorrect ones.
๐งช Applications of Contrastive Learning
- CLIP: Imageโtext alignment
- SimCLR: Augmented image pairs
- ALIGN: Captionโimage alignment
- DINO, MoCo: Self-supervised learning
๐ฏ Summary Table
Concept | Description |
---|---|
Goal | Pull positives close, push negatives apart |
Loss | InfoNCE |
Label-Free | Yes |
Applications | Multimodal search, zero-shot tasks, representation learning |
๐ก Real-World Uses of CLIP
Application | Description |
---|---|
๐ผ๏ธ Zero-shot Image Classification | Use natural language like "a photo of a cat" without fixed labels |
๐ Text-to-Image Search | Search images that best match text queries |
๐จ Text-to-Image Generation | Used as a backbone in models like DALLยทE |
๐งช Multimodal Research | Foundation for vision + language studies |
๐ Compared to Traditional Models
Feature | Traditional Models (e.g. ViT) | CLIP |
---|---|---|
Input | Image only | Image + Text |
Class Definition | Predefined labels | Free-form text |
Flexibility | Needs retraining | Zero-shot via prompt change |
๐ Why CLIP Is Important
- Versatility: One model, many tasks
- Zero-shot power: No retraining required
- Foundation of Multimodal AI
- Text-controlled vision systems
๐ง Limitations of CLIP
- Bias: Learned from biased internet data
- Sensitive to phrasing: May confuse similar text like
"man riding a horse"
vs"horse riding a man"
- Text overreliance: May depend too heavily on text when not needed
- Typographic Attacks: Misleads based on visible text in images
Itโs clearly an apple, but โiPodโ written on it tricks the model!
๐ References
- OpenAI Research: CLIP
- ICML 2021 Slides
- CLIP Paper (ICML)
- GitHub: CLIP
- Hugging Face: CLIP in Transformers
โ๏ธ Final Thoughts
CLIP changed the way we approach image and text understanding.
It laid the foundation for models like DALLยทE, Stable Diffusion, Flamingo, and more.
๐ If youโre diving into multimodal AI, CLIP is a must-understand model.
Thanks for reading! Feel free to leave questions or suggestions ๐ฌ
(ํ๊ตญ์ด) CLIP ๋ชจ๋ธ ์ดํดํ๊ธฐ
์๋
ํ์ธ์! ๐
์ค๋์ OpenAI์์ ๋ฐํํ ๊ฐ๋ ฅํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ, CLIP (Contrastive LanguageโImage Pre-training)์ ๋ํด ์์๋ณด๋ ค ํฉ๋๋ค. ์ง๊ธ์ ๋ฉํฐ๋ชจ๋ธ ๋ชจ๋ธ์ด ๋๋ฌด๋๋ ๋น์ฐํ ๊ฒ์ด์ง๋ง!! ์ด ์ฐ๊ตฌ๊ฐ 2021๋
,, chatGPT๊ฐ ๋์ค๊ธฐ ์ ์ ์์ ์์ ์๊ฐํ๋ฉฐ ์ด ๋๋ผ์์ ๋ํ์ฌ ํ๊ตฌํด๋ณด์์~!
์ฝ๊ฒ CLIP์ดํดํ๊ธฐ!!
๊ธธ๋์ด๋ ํฉ๊ธ 1kg์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์๋ ๋นํธ์ฝ์ธ์ด 1๊ฐ๊ฐ ์์ด์! ์ด ๋์ด ๊ฐ์ง๊ณ ์๋ ์์ฐ์ ๊ฐ์น ์ด๋ป๊ฒ ๋น๊ตํ ์ ์์๊น์? CLIP์ด๋ผ๋ ๋ชจ๋ธ์ ์ด ๋ ์์ฐ(ํฉ๊ธ, ๋นํธ์ฝ์ธ)์ ๋์ผํ ์์ง์ ์์ ๋น๊ตํ ์ ์๋๋ก $๋ก ๋ณํํด์ค๋๋ค!
์ด๋!! ํฉ๊ธ=ํ ์คํธ, ๋นํธ์ฝ์ธ=์ด๋ฏธ์ง ์ ์์์ด๊ณ , ๋์ผํ ์์ง์ ์ญํ ์ ํ๋ $๊ฐ CLIP์์๋ ๊ฐ์ ์ฐจ์์ ๊ฒฐ๊ณผ๋ฌผ ๋ฒกํฐ์ ๋๋ค!!
๐ฏ CLIP์ด๋?
CLIP์ ์ด๋ฏธ์ง์ ํ ์คํธ๋ฅผ ๋์์ ์ดํดํ ์ ์๋๋ก ํ๋ จ๋ AI ๋ชจ๋ธ์ ๋๋ค.
OpenAI๊ฐ 2021๋
์ ๋ฐํํ์ผ๋ฉฐ, ๊ธฐ์กด์ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ๊ณผ๋ ๋ฌ๋ฆฌ ์ด๋ฏธ์ง๋ฅผ ์์ฐ์ด ์ค๋ช
๊ณผ ์ฐ๊ฒฐ์ํฌ ์ ์๋ค๋ ์ ์์ ํฐ ์ฃผ๋ชฉ์ ๋ฐ์์ต๋๋ค.
๐ CLIP์ ๋ฌด์จ ์ฝ์์ผ๊น!? = Contrastive LanguageโImage Pre-training
๐ง CLIP์ ํต์ฌ ์์ด๋์ด
CLIP์ ์ด๋ฏธ์ง์ ํ
์คํธ๋ฅผ ๊ฐ์ ๋ฒกํฐ ๊ณต๊ฐ(embedding space)์ ๋งคํํ์ฌ,
์ด๋ฏธ์ง์ ์ค๋ช
์ด ์๋ก ์ผ๋ง๋ ์ ๋ง๋์ง๋ฅผ ํ์ตํฉ๋๋ค.
โจ ๊ฐ๋จํ ์์ฝํ๋ฉด:
- ์ด๋ฏธ์ง๋ฅผ ์ธ์ฝ๋ฉํ๋ Image Encoder
- ํ ์คํธ๋ฅผ ์ธ์ฝ๋ฉํ๋ Text Encoder
- ์ด ๋์ ๊ฐ์ ๊ณต๊ฐ์ผ๋ก ๋งคํํ์ฌ ์๋ก ์ ๋ง๋ ์์ ๊ฐ๊น์ด, ์๋ ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง๊ฒ ํ์ตํฉ๋๋ค.
์ด ๊ณผ์ ์ โContrastive Learningโ์ด๋ผ๊ณ ํฉ๋๋ค. (๋ท๋ถ๋ถ์์ ๋ ์์ธํ ์์๋ด์!)
โจโจ ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ์๋ฉด:
- ์ด๋ฏธ์ง๋ฅผ ์ธ์ฝ๋ฉํ๋ Image Encoder ๋, Vision Transformer๋ก, ์ด ๋ ผ๋ฌธ์์๋ resnet๊ณผ ViT๋ฅผ ๋ฐํ์ผ๋ก ํ ์คํธํ๊ณ , ์ต์ข ์ ์ผ๋ก CLIP-ViT-B/32 ๋ชจ๋ธ์ด ๊ฐ์ฅ ์ข๋ค๊ณ ํ๊ฐํ์ต๋๋ค!
๐ผ๏ธ CLIP Image Encoder (ViT / ResNet ๊ธฐ๋ฐ)
ํญ๋ชฉ | ๋ด์ฉ |
---|---|
์ฌ์ฉ๋ ์ํคํ ์ฒ | Vision Transformer (ViT) ๋ฐ ResNet ๊ณ์ด |
ViT ๋ชจ๋ธ ์ข ๋ฅ | ViT-B/32, ViT-B/16, ViT-L/14, ViT-L/14@336px |
ResNet ๋ชจ๋ธ ์ข ๋ฅ | ResNet-50, ResNet-101, RN50x4, RN50x16, RN50x64 |
์ ๋ ฅ ํด์๋ | ๊ธฐ๋ณธ 224ร224, ์ผ๋ถ ๋ชจ๋ธ์ 336ร336 |
ViT ๊ตฌ์กฐ ํน์ง | ์ด๋ฏธ์ง โ ํจ์น ๋ถํ โ Linear Embedding + Positional Encoding |
ResNet ๊ตฌ์กฐ ํน์ง | ํ์ค Conv + Residual block ๊ธฐ๋ฐ CNN |
ํน์ฑ ์ถ์ถ ๋ฐฉ์ | ViT: [CLS] ํ ํฐ ์ฌ์ฉ ResNet: ๊ธ๋ก๋ฒ ํ๊ท ํ๋ง |
์ถ๋ ฅ ์๋ฒ ๋ฉ ์ฐจ์ | 512~1024 (๋ชจ๋ธ์ ๋ฐ๋ผ ๋ค๋ฆ) |
ํ์ต ์๊ฐ ์์ | ViT-L/14: 12์ผ (256ร V100), RN50x64: 18์ผ (592ร V100) |
- ํ ์คํธ๋ฅผ ์ธ์ฝ๋ฉํ๋ Text Encoder, ์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋ Transformer๋ก ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฒ๋ฆฌํ๋ causal LM ๋ฐฉ์์ผ๋ก ํ ์คํธ๋ฅผ ๋ฒกํฐํํ์์ต๋๋ค!
๐ง CLIP Text Encoder (Transformer ๊ธฐ๋ฐ)
ํญ๋ชฉ | ๋ด์ฉ |
---|---|
์ํคํ ์ฒ | Transformer (GPT-style) |
๋ ์ด์ด ์ | 12 layers |
Hidden size | 512 |
Attention Heads | 8 |
ํ๋ผ๋ฏธํฐ ์ | ์ฝ 63M |
์ดํ ์ฌ์ | Byte Pair Encoding (BPE), vocab size 49,152 |
์ ๋ ฅ ๊ธธ์ด ์ ํ | 76 tokens + [SOS], [EOS] |
์ ๋ ฅ ํ์ | [SOS] + BPE tokens + [EOS] |
ํน์ฑ ์ถ์ถ ๋ฐฉ์ | [EOS] ์์น์ ๋ง์ง๋ง ๋ ์ด์ด ์ถ๋ ฅ ์ฌ์ฉ |
ํ์ฒ๋ฆฌ | LayerNorm โ Linear projection |
Attention Mask | Masked Self-Attention (GPT-style) |
- ์ด ๋์ ๊ฐ์ ๊ณต๊ฐ์ผ๋ก ๋งคํํ์ฌ ์๋ก ์ ๋ง๋ ์์ ๊ฐ๊น์ด, ์๋ ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง๊ฒ ํ์ตํฉ๋๋ค.
์ด ๊ณผ์ ์ โContrastive Learningโ์ด๋ผ๊ณ ํฉ๋๋ค.
๐ง ์ด๋ป๊ฒ ํ์ต๋์์๊น?
CLIP์ ์ธํฐ๋ท์์ ์์งํ 4์ต ์์ ์ด๋ฏธ์งโํ
์คํธ ๋ฐ์ดํฐ๋ก ํ๋ จ๋์์ต๋๋ค.
32,768๊ฐ์ batch๋ก ํ์ต๋์๊ณ , 32 epochs์ ์งํํ๋ค๊ณ ํฉ๋๋ค.
์ง๊ธ๊น์ง์ ๋ด์ฉ์ด OpenAI์ ํ๋ ์ ํ ์ด์ ์๋ฃ์ ์ ์์ฝ๋์ด์์ต๋๋ค!
๐ง Contrastive Pretraining์ ๋ํ์ฌ ๋ ์์๋ณด๊ธฐ!!
Contrastive pretraining์ ๋ชจ๋ธ์ด ๋น์ทํ ์์ ๊ฐ๊น๊ฒ, ๋ค๋ฅธ ์์ ๋ฉ๊ฒ ์๋ฒ ๋ฉ ๊ณต๊ฐ์์ ํ์ตํ๋๋ก ํ๋ ์ฌ์ ํ์ต ๊ธฐ๋ฒ์
๋๋ค.
์ฃผ๋ก ์ด๋ฏธ์งโํ
์คํธ, ์ด๋ฏธ์งโ์ด๋ฏธ์ง, ๋ฌธ์ฅโ๋ฌธ์ฅ์ฒ๋ผ ์ง์ ์ด๋ฃจ๋ ๋ฐ์ดํฐ ์์ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํ๋ฉฐ,
ํํ(embedding) ํ์ต์ ๋งค์ฐ ํจ๊ณผ์ ์
๋๋ค.
์-์ด๋ฏธ์ง : โ๊ณ ์์ด ์ฌ์งโ -> CLIP ๋ชจ๋ธ -> (0,0,0,0.99) ์-ํ ์คํธ : โa photo of a catโ -> CLIP ๋ชจ๋ธ -> (0,0,0,0.98) ์์ ๊ฐ์ด ์ด๋ฏธ์ง์ ํ ์คํธ์ ๋ฒกํฐ๋ค์ด ์๋ก ๊ฐ๊น์ด ๋ฒกํฐ๊ฐ CLIP ๋ชจ๋ธ์ ํ์ต์ํค๊ธฐ!!
๐ Contrastive Learning์์ ์ฌ์ฉํ๋ Loss: InfoNCE Loss
๋์กฐ ํ์ต์์๋ InfoNCE Loss(Noise-Contrastive Estimation ๊ธฐ๋ฐ ์์ค)๋ฅผ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
โ InfoNCE Loss๋?
- Positive Pair: ์๋ก ๊ด๋ จ ์๋ ์ (์: ์ด๋ฏธ์ง์ ๊ทธ ์ค๋ช )
- Negative Pairs: ๋๋จธ์ง ๋ฌด๊ดํ ๋ชจ๋ ์
๋ชจ๋ธ์ positive pair์ ์ ์ฌ๋(similarity)๋ ๋์ด๊ณ ,
negative pair์ ์ ์ฌ๋๋ ๋ฎ์ถ๋ ๋ฐฉํฅ์ผ๋ก ํ์ต๋ฉ๋๋ค.
๐ ์์ ๊ฐ์
L = -log( exp(sim(x, yโบ) / ฯ) / ฮฃแตข exp(sim(x, yแตข) / ฯ) )
sim(x, y)
: ์ด๋ฏธ์ง, ํ ์คํธ ๋ฒกํฐ์ ์ฝ์ฌ์ธ์ ์ฌ๋!!yโบ
: ์ฌ๋ฐ๋ฅธ ํ ์คํธ ์yแตข
: ๊ฐ์ ๋ฐฐ์น ๋ด ๋ค๋ฅธ ํ ์คํธ๋ค (negative)ฯ
: temperature scaling factor (๋ณดํต 0.07)
InfoNCE๋ ๊ฒฐ๊ตญ ์ ๋ต ์์ด ์ ์ฒด ์ค ์ผ๋ง๋ ์๋์ ์ผ๋ก ์ ๋ง๋์ง๋ฅผ ํ๋ฅ ์ฒ๋ผ ๋ชจ๋ธ๋งํ์ฌ ํ์ตํ๋ ๋ฐฉ์์ ๋๋ค.
๐ง ์ค์ ํ์ฉ ์์
- CLIP: ์ด๋ฏธ์งโํ ์คํธ ์๋ฒ ๋ฉ ์ ๋ ฌ
- SimCLR: ์ด๋ฏธ์งโ์ด๋ฏธ์ง Augmented Pair
- ALIGN: ์ด๋ฏธ์งโ์บก์ ๋งค์นญ
- DINO, MoCo: ์๊ฐ ์ง๋ ํ์ต ๊ธฐ๋ฐ ์๋ฒ ๋ฉ ํ์ต
๐ฏ ์์ฝ
๊ฐ๋ | ์ค๋ช |
---|---|
๋ชฉ์ | Positive๋ ๊ฐ๊น๊ฒ, Negative๋ ๋ฉ๊ฒ |
์์ค ํจ์ | InfoNCE Loss |
ํน์ง | ๋ผ๋ฒจ ์์ด๋ ์ ์ฌ์ฑ ๊ธฐ๋ฐ ํ์ต ๊ฐ๋ฅ |
์์ฉ | ๋ฉํฐ๋ชจ๋ฌ, ๊ฒ์, Zero-shot ๋ฑ ๋ค์ํ ํ์คํฌ |
๐ก CLIP์ ํ์ฉ ์์
CLIP์ ๋จ์ํ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ๋์ด ๋ค์ํ ๋ฐฉ์์ผ๋ก ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค:
ํ์ฉ | ์ค๋ช |
---|---|
๐ผ๏ธ Zero-shot ์ด๋ฏธ์ง ๋ถ๋ฅ | ์ฌ์ ์ ์๋ ํด๋์ค ์์ด ํ
์คํธ๋ง์ผ๋ก ๋ถ๋ฅ ๊ฐ๋ฅ ("a photo of a dog" , "a photo of a cat" ) |
๐ ํ ์คํธ ๊ธฐ๋ฐ ์ด๋ฏธ์ง ๊ฒ์ | "a person riding a horse" ์ ๊ฐ์ฅ ์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ |
๐จ ํ ์คํธ โ ์ด๋ฏธ์ง ์์ฑ ๋ณด์กฐ | DALLยทE ๊ฐ์ ์์ฑ ๋ชจ๋ธ์ ๋ณด์กฐ ์ญํ |
๐งช ๋ฉํฐ๋ชจ๋ฌ ์ฐ๊ตฌ ๊ธฐ๋ฐ | ์ด๋ฏธ์ง์ ํ ์คํธ๋ฅผ ํจ๊ป ๋ค๋ฃจ๋ ์ฐ๊ตฌ์ ์ถ๋ฐ์ ์ผ๋ก ์์ฃผ ์ฐ์ |
์์!: ์ด๋ฏธ์ง ์คํ์ผ๋ฐ๊พธ๊ธฐ
์ต๊ทผ์ ์ต์ํด์ง ์ด๋ฏธ์ง ์คํ์ผ ๋ฐ๊พธ๊ธฐ!! ๋๊ฒฐ๊ตญ ์ด CLIP์์ ์์๋ฌ๋ค๊ณ ๋ณผ์ ์์ต๋๋ค~! โ
๐ ๊ธฐ์กด ๋ชจ๋ธ๊ณผ์ ์ฐจ์ด์
ํญ๋ชฉ | ๊ธฐ์กด ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ (ViT, Resnet) | CLIP |
---|---|---|
์ ๋ ฅ | ์ด๋ฏธ์ง๋ง ์ฌ์ฉ | ์ด๋ฏธ์ง + ํ ์คํธ |
๋ถ๋ฅ ๊ธฐ์ค | ๊ณ ์ ๋ ๋ผ๋ฒจ(class) | ์์ ๋ก์ด ์์ฐ์ด |
ํ์ฅ์ฑ | ํด๋์ค ์ถ๊ฐ ์ ์ฌํ์ต ํ์ | ๋ฌธ์ฅ๋ง ๋ฐ๊พธ๋ฉด Zero-shot ์ ์ฉ ๊ฐ๋ฅ |
๐ CLIP์ด ์ค์ํ ์ด์
- ๋ฒ์ฉ์ฑ: ํ ๋ฒ ํ๋ จ๋ ๋ชจ๋ธ๋ก ๋ค์ํ ํ์คํฌ์ ์ ์ฉ ๊ฐ๋ฅ
- Zero-shot ์ฑ๋ฅ: ์๋ก์ด ํด๋์ค๋ฅผ ์ฌํ์ต ์์ด ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๋ฉํฐ๋ชจ๋ฌ AI์ ์์์ : ํ ์คํธ์ ์ด๋ฏธ์ง์ ๊ณต๋ ํํ ๊ณต๊ฐ์ ๋ค๋ฃจ๋ ๊ธฐ๋ฐ์ด ๋จ
- ํ ์คํธ ๊ธฐ๋ฐ ์ ์ด: ์ฌ์ฉ์๊ฐ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ํ ์คํธ๋ก ์ ์ํ ์ ์๊ฒ ํจ
๐ง CLIP์ ํ๊ณ์ ์?
- Bias ๋ฌธ์ : ์น ๋ฐ์ดํฐ ๊ธฐ๋ฐ ํ์ต์ด๋ผ, ์ธ๊ฐ์ ํธํฅ์ด ๋ชจ๋ธ์๋ ๋ฐ์๋ ์ ์์
- ์ธ๋ฐํ ๋ฌธ์ฅ ๊ตฌ๋ถ์ ์ด๋ ค์:
"a man riding a horse"
์"a horse riding a man"
์ ๋ช ํํ ๊ตฌ๋ถํ์ง ๋ชปํ ์ ์์ - ํ ์คํธ์ ์ง๋์น๊ฒ ์์กด: ์๊ฐ ์ ๋ณด๋ง์ผ๋ก๋ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ ํ ์คํธ์ ์์กดํ ์ ์์
- Typographic Attack : ์ด๋ฏธ์ง์ ํ
์คํธ๊ฐ ๋ค์ด๊ฐ์์ผ๋ฉด ์๋ชป์ธ์ํจ!!
์ฌ๊ณผ์ด์ง๋ง iPod๋ผ๋ ํ ์คํธ๊ฐ ์จ์์ผ๋ iPod๋ก ์ธ์ํ๋ ํ๊ณ๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค!!
๐ ์ฐธ๊ณ ์๋ฃ ๋ฐ ์ฝ๋
- ์๊ฐ์ฌ์ดํธ (OpenAI)
- CLIP์๊ฐ์ฌ๋ผ์ด๋ (OpenAI)
- CLIP ๋ ผ๋ฌธ (ICML)
- CLIP GitHub (OpenAI)
- HuggingFace Transformers CLIP ๋ชจ๋ธ
โ๏ธ ๋ง๋ฌด๋ฆฌํ๋ฉฐ
CLIP์ ๋จ์ํ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ๋์ด์, ์ด๋ฏธ์ง์ ํ
์คํธ๋ฅผ ์ฐ๊ฒฐํ๋ ์ฌ๊ณ ๋ฐฉ์ ์์ฒด๋ฅผ ๋ฐ๊พผ ๋ชจ๋ธ์
๋๋ค.
์ค๋๋ DALLยทE, Stable Diffusion, Flamingo ๋ฑ ๋ค์ํ ๋ฉํฐ๋ชจ๋ฌ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ด ๋์์ฃ .
๐ ์์ผ๋ก ๋ฉํฐ๋ชจ๋ฌ AI์ ๊ด์ฌ์ด ์๋ค๋ฉด, CLIP์ ๊ผญ ์ดํดํ๊ณ ๋์ด๊ฐ์ผ ํ ํต์ฌ ๋ชจ๋ธ์ ๋๋ค!
๊ฐ์ฌํฉ๋๋ค! ๊ถ๊ธํ ์ ์ด๋ ๋ ์๊ณ ์ถ์ ์ฃผ์ ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ๐ฌ