GPT
I

InternVL2_5-4B

קוד פתוח

OpenGVLabmit2024-11-20

  • transformers
  • tensorboard
  • safetensors
  • internvl_chat
  • feature-extraction

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

  • 3.7Bפרמטרים
  • 6.9 GBמשקל הקבצים
  • 128,864הורדות בחודש
  • 58לייקים

מה זה

הארכיטקטורה מחברת מקודד ראייה InternViT בגודל 300 מיליון פרמטרים ישירות אל מודל השפה Qwen2.5-3B-Instruct דרך שכבת MLP. הרעיון המרכזי כאן הוא חלוקה דינמית של תמונות לחלקים בגודל 448 על 448 פיקסלים, לצד דחיסה שמצמצמת את כמות הטוקנים הוויזואליים לרבע. התוצאה היא יכולת עיבוד של מסמכים עתירי טקסט ותרשימים ברזולוציה גבוהה יחסית, בלי לפוצץ את חלון ההקשר של מודל השפה.

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

מתאים ל

  • חילוץ מידע ממסמכים וקבלות

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

  • השוואה בין תמונות מוצר

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

  • תיוג סרטונים קצרים

    דגימת פריימים עקבית מייצרת תיאורים ענייניים לקובצי מדיה בלי צורך במודל וידאו כבד.

איפה זה נופל

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

אותה משפחה

InternVL2-5 יצא ב־5 גרסאות שיש להן עמוד כאן. אלה האחרות, לפי כמה מורידים אותן.

שאלות
נפוצות

האם המודל הזה מתאים לזיהוי טקסט בעברית מתוך תמונות?

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

כמה זיכרון כרטיס מסך נחוץ בשביל להריץ אותו בפועל?

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

איך מריצים

במשקל של כמעט שבעה גיגה בייט ברמת דיוק bfloat16, המודל רץ בנוחות על כרטיס מסך בודד עם 12 או 16 גיגה זיכרון, כמו כרטיסים ביתיים מודרניים. אם רוצים לחסוך עוד יותר, אפשר לטעון אותו בקוונטיזציה של 8 ביט באמצעות BitsAndBytes ישירות דרך ספריית transformers, מה שמוריד את דרישות הזיכרון ומאפשר להריץ אותו גם לצד שירותים אחרים.

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

from transformers import pipeline

pipe = pipeline("image-text-to-text", model="OpenGVLab/InternVL2_5-4B")
print(pipe("שלום"))

הרישיון

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

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

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