GPT
I

InternVL2-4B

קוד פתוח

OpenGVLabmit2024-06-27

  • transformers
  • safetensors
  • internvl_chat
  • feature-extraction
  • internvl

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

  • 4.1Bפרמטרים
  • 7.7 GBמשקל הקבצים
  • 12,727הורדות בחודש
  • 57לייקים

מה זה

הארכיטקטורה משלבת מודל ראייה בשם InternViT-300M עם שפת Phi-3-mini-128k-instruct דרך שכבת קישור מסוג MLP. השילוב הזה מקבל טקסט לצד תמונות בודדות, רצף של כמה תמונות יחד, או וידאו מפורק לפריימים, ומתמודד עם חלון הקשר של 8k שהוגדר באימון.

במבחני ביצועים מול דגמים מקבילים כמו Phi-3-Vision, הוא מציג יתרון בולט בעיקר במשימות טקסט חזותי. ב־OCRBench הוא מגיע ל־788 נקודות לעומת 639 של Phi-3-Vision, וב־DocVQA משיג 89.2. המשמעות בפועל היא שהוא מזהה טוב יותר אותיות קטנות במסמכים, מבין מבנה של גרפים ומאתר פרטים מורכבים בתרשימים טכניים.

מתאים ל

  • חילוץ נתונים מגרפים וטבלאות

    התוצאה של 81.5 ב־ChartQA מספקת פיענוח מדויק של תרשימים ודוחות עסקיים ישירות לתשובות טקסטואליות.

  • קריאת מסמכים וטפסים סרוקים

    עם ציון 788 ב־OCRBench ו־89.2 ב־DocVQA, המודל מאתר טקסט חלש וצפוף ביעילות גבוהה ביחס לגודלו.

  • איתור אלמנטים בתמונה

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

איפה זה נופל

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

אותה משפחה

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

שאלות
נפוצות

איזה כרטיס מסך צריך כדי לעבוד איתו בצורה חלקה?

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

איך המודל מתמודד עם תמונות ברזולוציה גבוהה?

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

איך מריצים

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

ההרצה מתבצעת ישירות דרך ספריית transformers מגרסה 4.37.2 ומעלה, עם תמיכה ב־Flash Attention וחובת הפעלת trust_remote_code. הריצה דורשת פונקציית עיבוד תמונה שמחלקת צילומים גדולים למקטעים של 448 פיקסלים. אם אתם מעבדים אלפי תמונות בדקה ומחפשים זמני שיהוי זעירים, API מנוהל יחסוך תחזוקה, אבל לשימוש מקומי ושמירה על פרטיות ההרצה הזו קלה מאוד לתפעול.

from transformers import pipeline

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

הרישיון

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

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

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