GPT
A

all-distilroberta-v1

קוד פתוח

sentence-transformersapache-2.02022-03-02

  • sentence-transformers
  • pytorch
  • rust
  • onnx
  • safetensors

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

  • 82Mפרמטרים
  • 514טוקנים בהקשר
  • 3.0 GBמשקל הקבצים
  • 2,559,189הורדות בחודש

מה זה

מדובר במודל שממיר משפטים ופסקאות קצרות לווקטור של 768 ממדים, המיועד למשימות דמיון בין טקסטים, אשכולות וחיפוש סמנטי. הבסיס שלו הוא ארכיטקטורת distilroberta עם שש שכבות בלבד וכ־82 מיליון פרמטרים, מה שהופך אותו לקל משמעותית ממודלים מלאים שמבוססים על RoBERTa או BERT.

הייחוד שלו מגיע מאימון על יותר ממיליארד זוגות משפטים במטרה מנוגדת (contrastive learning). הנתונים נלקחו ממקורות מגוונים, כולל מאות מיליוני תגובות מרדיט, מאמרים אקדמיים של S2ORC, שאלות מ־Stack Exchange ונתוני MS MARCO. בפועל, החשיפה הזו מאפשרת לו לזהות הקשרים וסגנונות שיחה מגוונים מאוד, למרות גודלו המצומצם.

מתאים ל

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

    אומן על מיליוני שאלות מ־WikiAnswers ו־Yahoo, ולכן יודע למצוא ניסוחים מקבילים מצוין.

  • סינון תגובות ושיחות רשת

    מכיל מעל 700 מיליון זוגות מרדיט, מה שנותן לו הבנה מעולה של שפה יומיומית ודיונים.

  • התאמת כותרות ותקצירים

    מתאים לצימוד מסמכים ומאמרים קצרים באנגלית על סמך אימון נרחב ממאגרי S2ORC.

איפה זה נופל

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

שאלות
נפוצות

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

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

מה קורה אם מעבירים לו פסקה ארוכה?

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

איך מריצים

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

עם 82 מיליון פרמטרים, הוא רץ בלי שום בעיה על מעבד רגיל (CPU) של שרת פשוט או מחשב נייד, ועל GPU זול הוא יספק תפוקה גבוהה במיוחד. אין שום סיבה לשלם לספקי API חיצוניים על משימות embedding בסיסיות באנגלית כשאפשר להחזיק את המודל הזה עצמאית באפס מאמץ.

from sentence_transformers import SentenceTransformer

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

הרישיון

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

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

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