GPT
X

xclip-base-patch32

קוד פתוח

microsoftmit2022-08-25

  • transformers
  • pytorch
  • safetensors
  • xclip
  • vision

microsoft עומדים גם מאחורי Sho, ויש עליו סקירה כאן.

התאמה ישירה של CLIP לניתוח וידאו שבודקת כמה טקסט מתאים לקטע מצולם. הוא קל משקל, רץ מקומית בלי מאמץ, ומתאים לסיווג מהיר בלי לגעת בתשתיות ענן יקרות.

  • 197Mפרמטרים
  • 77טוקנים בהקשר
  • 1.5 GBמשקל הקבצים
  • 105,915הורדות בחודש

מה זה

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

במבחני דיוק על Kinetics-400 הוא מגיע ל־80.4% ב־top-1 ו־95.0% ב־top-5. בפועל זה אומר שאם נותנים לו לזהות פעולה מתוך רשימת אפשרויות סגורה, הוא יפגע בניסיון הראשון בארבע מתוך חמש פעמים, וכמעט תמיד הפעולה הנכונה תהיה בחמש ההשערות המובילות שלו. הוא מתאים לחיפוש קטעים לפי טקסט, שליפת וידאו וסיווג בגישת zero-shot או few-shot בלי שתצטרכו לאמן מודל ראייה כבד מאפס.

מתאים ל

  • תיוג סרטונים לפי פעולה

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

  • חיפוש וידאו לפי טקסט חופשי

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

  • סינון תוכן מקומי

    זיהוי תכנים וסיווג מהיר על גבי חומרה מקומית צנועה, בלי להוציא קובצי וידאו כבדים אל מחוץ לרשת.

איפה זה נופל

המגבלה הכי משמעותית נובעת מאופן האימון: הוא רואה רק שמונה פריימים ברזולוציה של 224 על 224 פיקסלים. פעולות מהירות שנמשכות שבריר שנייה, פרטים קטנים בתמונה או סרטונים ארוכים עם עלילה מורכבת יאבדו בדרך. טלאים בגודל 32 פיקסלים מייצרים רזולוציה מרחבית גסה יחסית. בנוסף, חלון הטקסט מוגבל ל־77 טוקנים באנגלית בלבד, כך שאי אפשר להזין תיאורים ארוכים, וחיפוש בעברית לא יעבוד בלי תרגום מקדים.

שאלות
נפוצות

האם המודל מבין עברית?

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

איך דוגמים את הווידאו לפני שמזינים אותו למודל?

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

למה לבחור בגרסת patch32 במקום patch16?

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

איך מריצים

המודל שוקל 1.5 גיגה בייט ומחזיק 197 מיליון פרמטרים בדיוק float32, כך שאין שום צורך בכרטיסי שרת יקרים. אפשר לטעון ולהריץ אותו ישירות דרך ספריית transformers על כרטיס מסך ביתי בסיסי, וגם על מעבד סביר הוא ירוץ בלי לחנוק את המערכת, כל עוד לא שולחים אליו כמויות אדירות של וידאו במקביל.

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

from transformers import pipeline

pipe = pipeline("video-classification", model="microsoft/xclip-base-patch32")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

הרישיון המלא בעמוד המודל ↗