GPT
J

jina-colbert-v2

קוד פתוח

jinaaicc-by-nc-4.02024-08-16

  • sentence-transformers
  • onnx
  • safetensors
  • ColBERT
  • multi-vector

יש כאן גם סקירה על Jina AI עצמו.

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

  • 559Mפרמטרים
  • 8,194טוקנים בהקשר
  • 3.1 GBמשקל הקבצים
  • 55,201הורדות בחודש

מה זה

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

הוא מציג תוצאות טובות במבחני BEIR עם ממוצע NDCG@10 של 0.531, מעל הדור הקודם שלו ו־ColBERTv2 המקורי. בנוסף, הוא תומך בהקטנת ממדי הוקטורים באמצעות Matryoshka ל־96 או 64 ממדים, עם ירידה מזערית במדד מ־0.599 ל־0.589 בבדיקות החלקיות שפורסמו.

מתאים ל

  • אחזור למערכות RAG ארוכות

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

  • חיפוש רב־לשוני גלובלי

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

  • אב טיפוס לחקר שאילתות

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

איפה זה נופל

המודל חלש במיוחד במשימות טיעון כמו ArguAna, שבהן קיבל ציון נמוך של 0.366 לעומת 0.494 בגרסה הקודמת. מעבר לזה, אין שום נתונים בכרטיס על עברית. הוא נבדק בערבית, רוסית, גרמנית ושפות רבות אחרות, אבל עברית לא מוזכרת בבנצ'מרקים של MIRACLE או mMARCO, ולכן חובה לבדוק אותו על דאטה מקומי לפני שמסתמכים עליו. החיסרון המבני הוא נפח האחסון, אינדקס ColBERT שומר עשרות ומאות וקטורים לכל פסקה.

שאלות
נפוצות

כמה נפח תופס האינדקס של המודל הזה בפועל?

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

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

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

איך מריצים

כדי להריץ אותו צריך כרטיס מסך עם תמיכה ב־bfloat16 וחבילת einops מותקנת, כאשר flash_attn מומלצת מאוד כדי לא להיגרר לביצועים איטיים של תשומת לב מקורית בפייתורץ'. קובצי המשקולות שוקלים 3.1 גיגהבייט, כך שכרטיס מודרני פשוט עם 8 או 16 גיגהבייט זיכרון יחזיק אותו בקלות. הקוד מתממשק ישירות לספריות כמו sentence-transformers, PyLate או RAGatouille.

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("jinaai/jina-colbert-v2")
v = m.encode(["שלום עולם"])

הרישיון

הרישיון הוא cc-by-nc-4.0, מה שאומר שמותר ללמוד ממנו, לחקור ולהריץ ניסויים פנימיים, אך אסור לחלוטין להשתמש בו לצרכים מסחריים. אם המוצר שלכם מייצר הכנסות או משרת לקוחות מסחריים, אי אפשר להטמיע את המודל הזה בקוד בלי להסדיר רישיון נפרד מול Jina AI.

  • שינוי הקוד
  • חובת ייחוס
  • שימוש מסחרי: לא

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