CLIP — מודל לקישור תמונה-טקסט, אומן על 400 מיליון זוגות

מודלים ושפה

הגדרה

CLIP הוא מודל של OpenAI מ-2021 שלומד לקשר בין תמונות לטקסט באמצעות למידה ניגודית, ומאפשר לסווג תמונות לקטגוריות חדשות שלא נראו באימון (Zero-shot), רק לפי תיאור מילולי.

מה זה CLIP, ומי יצר אותו

CLIP (ראשי-תיבות של Contrastive Language-Image Pre-training) הוא מודל שפרסמה OpenAI, שהוכרז ב-5 בינואר 2021 בפוסט-בלוג לצד DALL·E, עם מאמר מלא — "Learning Transferable Visual Models From Natural Language Supervision" — שהועלה ל-arXiv ב-26 בפברואר 2021 והוצג בכנס ICML 2021. בניגוד למודלי-ראייה-ממוחשבת קודמים שאומנו לסווג תמונות לרשימת-קטגוריות סגורה שנקבעה מראש, CLIP אומן לקשר כל תמונה לכל תיאור-טקסט חופשי — מה שאיפשר לו מאוחר יותר להתמודד עם קטגוריות שמעולם לא ראה מתויגות באימון.

איך זה עובד: למידה ניגודית על 400 מיליון זוגות תמונה-טקסט

CLIP מורכב משתי רשתות-נוירונים נפרדות שאומנו יחד: מקודד-תמונה ומקודד-טקסט, שכל אחד מהם ממיר את הקלט שלו לווקטור באותו מרחב מתמטי משותף. נתוני-האימון: 400 מיליון זוגות (תמונה, טקסט) שנאספו מהאינטרנט הפומבי, מאגר-פנימי שהחוקרים כינו WebImageText (WIT). האימון משתמש ביעד "ניגודי" (Contrastive): עבור אצווה של תמונות וכיתוביהן, המודל מאומן לקרב את הווקטור של כל תמונה לווקטור הכיתוב-הנכון שלה, ולהרחיק אותו מכיתובי כל שאר התמונות באותה אצווה — בלי כל תיוג-ידני של "חתול", "כלב" וכדומה; הכיתוב עצמו, שכתב מי שהעלה את התמונה במקור, משמש כאות-הפיקוח.

התוצאה שהפכה לכותרת: 76.2% בזיהוי-תמונות ללא אימון ייעודי

התוצאה המרכזית של CLIP הייתה סיווג Zero-shot על ImageNet, מבחן-ייחוס של 1.28 מיליון תמונות מתויגות ב-1,000 קטגוריות: בלי לאמן על אף אחת מהתמונות המתויגות הללו, הגיע CLIP ל-76.2% דיוק (Top-1) — תואם את הדיוק של מודל ResNet-50 המקורי, שכן כן אומן ישירות ובאופן מלא על אותו מאגר-תמונות מתויג. זהו נתון שונה לגמרי מתוצאה קודמת ונפרדת: ב-2017 פרסמו חוקרי Facebook AI (לי, ג'אברי, ג'ולין ואן-דר-מאלן — לא קשורים ל-OpenAI) מאמר בשם "Learning Visual N-Grams from Web Data", שהגיע ל-11.5% דיוק Zero-shot בלבד על אותו מבחן-ImageNet, בשיטה שונה שכוונה-עדין על 30 מיליון תמונות מ-Flickr. מאמר CLIP עצמו מציג את ה-76.2% שלו במפורש כשיפור גדול על אותה תוצאה קודמת וספציפית — שני המספרים שייכים לשני מאמרים, צוותים וחברות שונים לגמרי, בהפרש של ארבע שנים, לא לשתי תוצאות מאותו פרויקט.

סיווג בלי אימון ייעודי: איך זה עובד בפועל

השימוש המעשי פשוט: בהינתן תמונה, מכינים רשימת-מועמדים קצרה של תיאורי-טקסט ("תמונה של [X]") לכל קטגוריה מעניינת — נבחרת בזמן-השאילתה עצמה, ומעולם לא נראתה מתויגת באימון — ובודקים איזה מהמועמדים יש לו הווקטור הקרוב ביותר לווקטור התמונה. מי שמנצח הוא הסיווג של המודל. מכיוון שאין רשימת-תוויות סגורה וקבועה בתוך המודל מזמן-האימון, אפשר לגייס את אותו CLIP למשימת-סיווג חדשה לגמרי רק בכתיבת קבוצת-משפטים-מועמדים חדשה, בלי כל שלב אימון-מחדש או כוונון-עדין.

השפעה: מרכיב-ליבה במערכות רב-מודליות מאוחרות יותר

המרחב הווקטורי המשותף של CLIP הפך במהירות לרכיב-בנייה סטנדרטי במערכות אחרות, לא רק לסיווג עצמאי. DALL·E 2 של OpenAI (2022) משתמש בהטמעות של CLIP כדי לגשר בין פרומפט-טקסט לתמונה מתאימה. Stable Diffusion של Stability AI (2022) משתמש במקודד-הטקסט של CLIP כדי להתנות את תהליך יצירת-התמונה על הפרומפט של המשתמש. מערכות חיפוש-תמונות ומיון-תוכן רבות אימצו את המרחב-המשותף של CLIP כדרך מוכנה-מראש להשוות שאילתות-טקסט מול מאגרי-תמונות, בלי לבנות מערכת נפרדת מאפס.

המגבלות שהמאמר עצמו מציין

המאמר של OpenAI תיעד חולשות ספציפיות לצד התוצאות המרשימות: CLIP מתפקד גרוע במשימות שדורשות ספירה מדויקת של אובייקטים בתמונה, בהבחנות עדינות מאוד (זיהוי שנת-הייצור המדויקת של רכב, למשל), ובנתונים שונים מאוד מכל מה שנראה באימון (כמו ספרות בכתב-יד, שבהם הוא נופל משמעותית מתחת למודלים ייעודיים פשוטים בהרבה). הפלט שלו גם רגיש לניסוח המדויק של כל קטגוריה בטקסט-המועמד — תיאור מנוסח-גרוע לאותה קטגוריה בדיוק עלול לתת תוצאה גרועה יותר מתיאור מנוסח-היטב, תופעה שמחקר מאוחר יותר חקר בהרחבה תחת השם "הנדסת-פרומפטים".

שאלות נפוצות ❓

מה זה "Zero-shot" ולמה זה החידוש המרכזי של CLIP?

זה סיווג תמונות לקטגוריות שהמודל מעולם לא ראה מתויגות באימון — רק לפי תיאור-מילולי חדש שנכתב בזמן השאילתה, בלי צורך לאמן מחדש את המודל על אותה קטגוריה.

מאיפה מגיע ה-76.2%, ולמה זה משמעותי?

זה שיעור-הדיוק של CLIP בזיהוי-תמונות מ-ImageNet בלי לראות אף אחת מ-1.28 מיליון התמונות המתויגות של המבחן — מספר שתאם את הביצועים של ResNet-50 המקורי, שכן אומן ישירות על אותן תמונות.

האם 11.5% הוא תוצאה קודמת של OpenAI עצמה?

לא — זו תוצאה של קבוצת-מחקר שונה לגמרי (חוקרי Facebook AI, 2017), בשיטה שונה (Visual N-Grams). CLIP השווה את עצמו אליה כדי להראות שיפור, אבל היא לא "גרסה מוקדמת" של CLIP.

אילו מערכות AI מוכרות בנויות חלקית על CLIP?

DALL·E 2 ו-Stable Diffusion, בין השאר, משתמשים במרחב-הווקטורי המשותף של CLIP כדי לקשר בין טקסט לתמונה בתהליך יצירת-התמונות שלהן.