GPT
S

splade-cocondenser-ensembledistil

קוד פתוח

naverרישיון לא דווח2022-05-09

  • sentence-transformers
  • pytorch
  • bert
  • splade
  • query-expansion

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

  • 512טוקנים בהקשר
  • 419 MBמשקל הקבצים
  • 406,684הורדות בחודש
  • 64לייקים

מה זה

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

בבדיקות מול סט הנתונים של MS MARCO הוא הגיע לציון MRR@10 של 38.3 ולציון R@1000 של 98.3. התוצאות האלה מראות שהוא מחזיר את המסמך הנכון בדיוק גבוה בתוך עשר התוצאות הראשונות, ומאתר כמעט את כל התוצאות הרלוונטיות באלף הראשונות, מה שנותן שכבת סינון חזקה מאוד לפני שלב דירוג נוסף.

מתאים ל

  • אינדוקס מורחב למנועי חיפוש

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

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

    תוצאת ה־Recall הגבוהה שלו מאפשרת לשלוף במהירות מועמדים רלוונטיים לפני ריראנקר כבד.

  • חיפוש סמנטי באנגלית למקטעים

    מתאים לשאלות ותשובות על פסקאות קצרות של עד 512 טוקנים בלי צורך במסד וקטורי ייעודי.

איפה זה נופל

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

שאלות
נפוצות

האם צריך מסד נתונים וקטורי מיוחד בשביל להשתמש בו?

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

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

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("naver/splade-cocondenser-ensembledistil")
v = m.encode(["שלום עולם"])

הרישיון

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

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