GPT
M

mmarco-mMiniLMv2-L12-H384-v1

קוד פתוח

cross-encoderapache-2.02022-06-01

  • sentence-transformers
  • pytorch
  • onnx
  • safetensors
  • openvino

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

  • 118Mפרמטרים
  • 514טוקנים בהקשר
  • 3.9 GBמשקל הקבצים
  • 1,972,569הורדות בחודש

מה זה

מדובר במדרג מסוג Cross-Encoder שמבוסס על mMiniLMv2 שעבר זיקוק מתוך XLM-RoBERTa הגדול, ואומן על גרסה מתורגמת של מאגר MS MARCO. בניגוד למודלי הטבעה רגילים שמחשבים וקטור לכל טקסט בנפרד, הוא מקבל את השאילתה ואת הפסקה יחד ומחזיר ציון רלוונטיות ישיר. זה הופך אותו למדויק יותר מחיפוש וקטורי פשוט, אך כבד יותר לחישוב.

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

מתאים ל

  • דירוג מחדש בחיפוש טקסט

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

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

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

  • חיפוש רב-לשוני במסמכים

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

איפה זה נופל

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

שאלות
נפוצות

האם כדאי להריץ אותו ישירות על כל בסיס הנתונים שלי?

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

איך הביצועים שלו בעברית אם היא לא רשומה בשפות הנתמכות?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("cross-encoder/mmarco-mMiniLMv2-L12-H384-v1")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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