GPT
M

ms-marco-MiniLM-L6-v2

קוד פתוח

cross-encoderapache-2.02022-03-02

  • sentence-transformers
  • pytorch
  • jax
  • onnx
  • safetensors

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

  • 23Mפרמטרים
  • 512טוקנים בהקשר
  • 849 MBמשקל הקבצים
  • 86,755,068הורדות בחודש

מה זה

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

בבדיקות הביצועים של יוצרי המודל על TREC DL 19 ועל MS Marco, גרסת שש השכבות מגיעה לציון NDCG של 74.30 וציון MRR של 39.01, שזה כמעט זהה לגרסת שתים עשרה השכבות שקיבלה 74.31 ו־39.02. ההבדל הוא שבמהירות הוא מעבד 1,800 מסמכים בשנייה על מעבד V100 לעומת 960 בלבד בגרסה הגדולה, כך שמקבלים את אותו הדיוק בחצי מזמן הריצה.

מתאים ל

  • ריראנקינג למנועי חיפוש

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

  • סינון קטעים בצינור RAG

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

  • שליפת מידע במערכות דלות משאב

    מתאים לשרתים ללא מעבדים גרפיים שחייבים לייצר דירוג מהיר בקצב של מאות בקשות.

איפה זה נופל

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

שאלות
נפוצות

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

המודל מוגדר ומאומן לשפה האנגלית בלבד על גבי מאגר MS Marco. לחיפוש בעברית הוא לא ייתן תוצאות טובות, ועדיף לחפש מודל ייעודי רב לשוני.

למה לבחור בו ולא בגרסת 12 השכבות?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("cross-encoder/ms-marco-MiniLM-L6-v2")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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