GPT
M

msmarco-distilbert-base-tas-b

קוד פתוח

sentence-transformersapache-2.02022-03-02

  • sentence-transformers
  • pytorch
  • tf
  • onnx
  • safetensors

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

  • 66Mפרמטרים
  • 512טוקנים בהקשר
  • 2.4 GBמשקל הקבצים
  • 275,842הורדות בחודש

מה זה

מדובר בהמרה של המודל DistilBert TAS-B לתוך sentence-transformers, עם מטרה ברורה של חיפוש סמנטי יעיל. הוא לוקח שאילתות וקטעי טקסט, וממפה אותם למרחב וקטורי דחוס בגודל 768 ממדים. היתרון הגדול של הבסיס הזה, שמבוסס על ארכיטקטורת DistilBert עם כ־66 מיליון פרמטרים, הוא השילוב בין מהירות ריצה לבין איכות אחזור סבירה שנשענת על אימון TAS-B מול מאגר MS MARCO.

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

מתאים ל

  • חיפוש סמנטי במסמכים

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

  • שלב ראשון במערכות RAG

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

  • סינון שאלות ותשובות

    משווה בין שאילתת משתמש למאגר תשובות מוכנות באנגלית ומדרג אותן לפי רמת התאמה גבוהה.

איפה זה נופל

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

שאלות
נפוצות

האם הוא תומך בעברית?

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

איך מודדים כאן דמיון בין משפטים?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("sentence-transformers/msmarco-distilbert-base-tas-b")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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