GPT
B

bert-multilingual-passage-reranking-msmarco

קוד פתוח

amber-techapache-2.02022-03-02

  • transformers
  • pytorch
  • tf
  • jax
  • bert

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

  • 512טוקנים בהקשר
  • 1.9 GBמשקל הקבצים
  • 11,190הורדות בחודש
  • 88לייקים

מה זה

המודל מבוסס על mBERT uncased של גוגל עם 12 שכבות, ועבר אימון על בסיס נתוני MS MARCO של מיקרוסופט המכיל כארבע מאות מיליון שלשות של שאילתות ופסקאות. על גבי טוקן ה־CLS יושבת רשת צפופה שפולטת ציון יחיד בין מינוס עשר לעשר, כאשר ציון גבוה מעיד על התאמה טובה יותר לפסקה.

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

מתאים ל

  • דירוג תוצאות Elasticsearch

    חיבור ישיר בעזרת Nboost כדי לשפר רלוונטיות של עשרות הפריטים הראשונים.

  • חיפוש רב-לשוני בארגון

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

  • סינון מקדים למערכות RAG

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

איפה זה נופל

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

שאלות
נפוצות

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

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

האם אפשר להשתמש בו לחיפוש בזמן אמת?

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

איך מפרשים את הציון שהמודל מוציא?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-classification", model="amber-tech/bert-multilingual-passage-reranking-msmarco")
print(pipe("שלום"))

הרישיון

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

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

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