GPT
A

all-mpnet-base-v2

קוד פתוח

sentence-transformersapache-2.02022-03-02

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

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

  • 109Mפרמטרים
  • 514טוקנים בהקשר
  • 3.6 GBמשקל הקבצים
  • 23,908,257הורדות בחודש

מה זה

הוא לוקח משפטים ופסקאות קצרות והופך אותם לווקטור דחוס בגודל 768 ממדים. הבסיס שלו הוא MPNet, ארכיטקטורה של מיקרוסופט שמשלבת בין מנגנונים של BERT ל־XLNet. על הבסיס הזה ביצעו אימון עדין ייעודי עם מעל 1.17 מיליארד זוגות משפטים שנאספו ממקורות מגוונים, מתגובות ברדיט, דרך מאגרים אקדמיים ועד שאלות ותשובות מאתרים כמו Stack Exchange ו־Yahoo Answers.

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

מתאים ל

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

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

  • קיבוץ תלונות ופניות

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

  • שליפת הקשר למערכות RAG

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

איפה זה נופל

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

שאלות
נפוצות

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

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

האם אפשר להעביר לו מאמרים ארוכים לחילוץ וקטור?

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

איך מריצים

טוענים אותו בקלות באמצעות ספריית sentence-transformers בפייתון, או שמריצים אותו ישירות מעל Hugging Face Transformers עם פעולת mean pooling בסוף. למי שרוצה ביצועים מהירים במיוחד בייצור, אפשר להרים תמונת דוקר של Text Embeddings Inference שמספקת ממשק תואם OpenAI.

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("sentence-transformers/all-mpnet-base-v2")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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