GPT
V

vit-gpt2-image-captioning

קוד פתוח

nlpconnectapache-2.02022-03-02

  • transformers
  • pytorch
  • vision-encoder-decoder
  • image-text-to-text
  • image-to-text

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

  • 939 MBמשקל הקבצים
  • 93,594הורדות בחודש
  • 935לייקים

מה זה

מדובר בחיבור קלאסי של שני רכיבים מוכרים באמצעות ארכיטקטורת VisionEncoderDecoderModel. בצד הראייה יושב Vision Transformer שלוקח את הפיקסלים והופך אותם לייצוג וקטורי, ובצד הטקסט יושב GPT2 שמקבל את המידע ומייצר משפט תיאורי באנגלית. המודל אומן במקור על בסיס משקלי COCO באמצעות Flax, והוסב כאן לגרסת PyTorch מוכנה לשימוש מיידי.

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

מתאים ל

  • תיוג תמונות לאתרי אינטרנט

    יצירה אוטומטית של טקסט חלופי באנגלית לטובת נגישות ומנועי חיפוש במהירות ובלי עלויות.

  • אינדוקס קטלוג פנימי

    הפקת תיאור טקסטואלי מקומי למאגרי מדיה גדולים לצורך חיפוש חופשי על בסיס מילות מפתח.

  • סינון ראשוני בצנרת נתונים

    מיון מהיר של תמונות לפי תיאור כללי לפני שליחה למודלים כבדים ויקרים יותר.

איפה זה נופל

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

שאלות
נפוצות

האם אפשר לקבל תיאורים ישירות בעברית?

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

האם הוא מסוגל לענות על שאלות בנוגע לתמונה?

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

איך מריצים

טוענים אותו ישירות דרך ספריית transformers בפייתון באמצעות שורת קוד בודדת עם pipeline של image-to-text. כל המשקלים יושבים על 939 מגה בייט בלבד בדיוק float32, כך שאין צורך בחומרה כבדה. מעבד רגיל יריץ אותו בקלות, וכרטיס מסך ביתי וזול יספק זמני תגובה של שברירי שנייה.

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

from transformers import pipeline

pipe = pipeline("image-to-text", model="nlpconnect/vit-gpt2-image-captioning")
print(pipe("שלום"))

הרישיון

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

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

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