מה זה 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 מתפקד גרוע במשימות שדורשות ספירה מדויקת של אובייקטים בתמונה, בהבחנות עדינות מאוד (זיהוי שנת-הייצור המדויקת של רכב, למשל), ובנתונים שונים מאוד מכל מה שנראה באימון (כמו ספרות בכתב-יד, שבהם הוא נופל משמעותית מתחת למודלים ייעודיים פשוטים בהרבה). הפלט שלו גם רגיש לניסוח המדויק של כל קטגוריה בטקסט-המועמד — תיאור מנוסח-גרוע לאותה קטגוריה בדיוק עלול לתת תוצאה גרועה יותר מתיאור מנוסח-היטב, תופעה שמחקר מאוחר יותר חקר בהרחבה תחת השם "הנדסת-פרומפטים".