GPT
J

jina-reranker-v2-base-multilingual

קוד פתוח

jinaaicc-by-nc-4.02024-06-19

  • transformers
  • pytorch
  • onnx
  • safetensors
  • text-classification

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

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

  • 278Mפרמטרים
  • 1,026טוקנים בהקשר
  • 4.9 GBמשקל הקבצים
  • 1,158,454הורדות בחודש

מה זה

המודל בנוי כ־cross-encoder על בסיס ארכיטקטורת XLM-Roberta עם 12 שכבות, ונועד למיין מחדש רשימת מסמכים שחזרו משליפה ראשונית. בניגוד למודלי הטמעה שמשווים וקטורים נפרדים, כאן הטקסט של השאילתה והמסמך נכנסים יחד, מה שמאפשר לו לזהות קשרים עמוקים יותר בין המילים.

בבנצ'מרקים המודל מציג יתרון מובהק על פני מתחרים כפולים ממנו בגודל, כמו bge-reranker-v2-m3, במיוחד בחיפוש קוד ובשליפת טבלאות, שם הוא מגיע לציון 93.31 לעומת 74.86 של המתחרה. הוא גם תוכנן לזהות שאילתות של קריאות לפונקציות ו־text-to-SQL, כך שהוא רלוונטי מאוד לסוכנים אוטומטיים שמחפשים כלים או סכמות בסיסי נתונים.

מתאים ל

  • שיפור שליפה במערכות RAG

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

  • בחירת כלים לסוכני בינה

    המודל אומן על משימות Function Calling ויודע לזהות את הכלי המתאים לשאילתה.

  • חיפוש קוד וסכמות נתונים

    מציג ביצועים גבוהים משמעותית ממתחריו באיתור קטעי קוד ובמשימות Text-to-SQL.

איפה זה נופל

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

שאלות
נפוצות

האם אפשר להריץ את המודל על מעבד בלי כרטיס מסך?

טכנית אפשר דרך transformers עם ביטול דגל Flash Attention, או דרך transformers.js. עם זאת, מכיוון שמדובר ב־cross-encoder שמעבד מחדש עשרות מסמכים לכל שאילתה, השיהוי על מעבד יהיה מורגש וכנראה לא יתאים למערכות שדורשות מענה מהיר בזמן אמת.

איך המודל מתמודד עם טקסטים ארוכים מ־1,024 טוקנים?

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

איך מריצים

בגודל של 278 מיליון פרמטרים ומשקל קבצים של כמעט 5 גיגה-בייט בפורמט bfloat16, אפשר להריץ אותו בקלות על כרטיס מסך ביתי בודד או אפילו בסביבות Node.js ודפדפן באמצעות transformers.js. ברירת המחדל דורשת תמיכה ב־Flash Attention, שמאיצה את הריצה פי שלושה עד פי שישה אבל מחייבת חומרה תואמת והתקנת ninja, אם כי אפשר לבטל אותה בקוד ולרוץ במצב רגיל.

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

from transformers import pipeline

pipe = pipeline("text-ranking", model="jinaai/jina-reranker-v2-base-multilingual")
print(pipe("שלום"))

הרישיון

הרישיון הוא CC-BY-NC-4.0, כלומר שימוש לא-מסחרי בלבד. מותר להוריד, לשנות ולהריץ אותו לצורכי מחקר, בדיקות והערכה פנימית, אבל אסור לשלב אותו בשום מוצר, שירות מניב או מערכת פרודקשן מסחרית בלי לרכוש גישה ל־API או לפנות ליוצרים.

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

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