GPT
B

bge-reranker-v2-m3

קוד פתוח

BAAIapache-2.02024-03-15

  • sentence-transformers
  • safetensors
  • xlm-roberta
  • text-classification
  • transformers

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

  • 568Mפרמטרים
  • 8,194טוקנים בהקשר
  • 2.1 GBמשקל הקבצים
  • 18,159,906הורדות בחודש

מה זה

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

הבסיס שלו הוא מודל bge-m3, והוא בנוי על ארכיטקטורת XLM-Roberta עם עשרים וארבע שכבות וחלון הקשר של 8,194 טוקנים. השילוב הזה נותן תמיכה רחבה בשפות שונות מעבר לאנגלית וסינית, תוך שמירה על גודל של 568 מיליון פרמטרים בלבד.

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

מתאים ל

  • שלב שני בצינור RAG

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

  • שיפור מנוע חיפוש רב-לשוני

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

  • דירוג מועמדים בסביבה מוגבלת

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

איפה זה נופל

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

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

שאלות
נפוצות

במה המודל הזה שונה ממודל אמבדינג רגיל?

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

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

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

איך מריצים

המשקל הכולל של הקבצים הוא 2.1 גיגה בייט בדיוק float32, כך שתוכלו להריץ אותו בקלות על מעבד רגיל או על כרטיס מסך בסיסי עם מעט זיכרון. טוענים אותו ישירות דרך ספריית sentence-transformers או בעזרת AutoModelForSequenceClassification מתוך transformers של Hugging Face, ואפשר גם להשתמש בחבילת FlagEmbedding של הפרויקט.

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("BAAI/bge-reranker-v2-m3")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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