GPT
B

bge-reranker-v2-minicpm-layerwise

קוד פתוח

BAAIapache-2.02024-03-16

  • sentence-transformers
  • safetensors
  • minicpm
  • text-generation
  • transformers

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

  • 2.7Bפרמטרים
  • 2,048טוקנים בהקשר
  • 10.2 GBמשקל הקבצים
  • 5,590הורדות בחודש

מה זה

במקום לייצר וקטורים נפרדים, הוא מקבל שאילתה ופסקה יחד ופולט ציון התאמה ישיר. הבסיס שלו הוא מודל השפה MiniCPM-2B שעבר אימון ייעודי על נתונים רב לשוניים כמו bge-m3-data, quora ו־fever. ההבדל הגדול מול מדרגים קלאסיים או גרסאות אחרות בסדרה הוא מנגנון השכבות. יש כאן ארבעים שכבות, אבל לא חייבים להריץ את כולן.

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

מתאים ל

  • סינון תוצאות במנוע חיפוש

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

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

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

  • אופטימיזציית זמן תגובה

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

איפה זה נופל

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

שאלות
נפוצות

איך משפיע חיתוך השכבות על מהירות העיבוד?

הגדרת cutoff_layers בשכבה מוקדמת כמו 8 מדלגת על חישוב יתר השכבות ברשת ומקצרת את זמן הריצה. ככל שעולים לכיוון שכבה 40 מקבלים דירוג איכותי יותר אך משלמים בזמן עיבוד ארוך יותר לכל זוג טקסטים.

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

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

איך מריצים

מריצים אותו דרך ספריית FlagEmbedding הייעודית באמצעות המחלקה LayerWiseFlagLLMReranker, שבה מעבירים את הפרמטר cutoff_layers לבחירת שכבת החיתוך. אפשר להפעיל דיוק של fp16 או bf16 כדי להאיץ את הביצועים עם פגיעה קלה באיכות. המשקל שלו בזיכרון דורש כרטיס מסך עם לפחות 6 עד 8 גיגה זיכרון כדי להחזיק את עשרת הגיגה של הקבצים ולעבד קלטים בפועל.

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

from sentence_transformers import SentenceTransformer

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

הרישיון

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

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

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