GPT
N

NeoBERT

קוד פתוח

chandar-labmit2025-02-28

  • transformers
  • safetensors
  • neobert
  • fill-mask
  • feature-extraction

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

  • 245Mפרמטרים
  • 936 MBמשקל הקבצים
  • 69,653הורדות בחודש
  • 198לייקים

מה זה

מדובר באנקודר של כ־245 מיליון פרמטרים שמיועד לחילוץ מאפיינים וייצוג טקסט, ואומן מאפס על 2.1 טריליון טוקנים ממאגר RefinedWeb. במקום המבנה המיושן של BERT הקלאסי, הכניסו כאן שדרוגים שנלקחו ממודלי שפה מודרניים: אקטיבציית SwiGLU, נורמליזציית Pre-RMSNorm וקידודי מיקום מסוג RoPE. הארכיטקטורה עמוקה וצרה יחסית עם 28 שכבות, והיא דוחפת את חלון ההקשר עד ל־4,096 טוקנים לעומת ה־512 שהגבילו אותנו במשך שנים.

המשמעות של תוצאות המדידה במבחן MTEB היא שהוא עוקף מודלים כבדים בהרבה כמו BERT large ו־RoBERTa large, ואפילו מתחרים עדכניים כמו NomicBERT ו־ModernBERT באותם תנאי אימון. זה אומר שאפשר לקבל וקטורים איכותיים יותר לחיפוש סמנטי בלי לשלם בזמני תגובה של מודל ענק.

מתאים ל

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

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

  • החלפת מודלי BERT ישנים

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

  • בניית אינדקס וקטורי מהיר

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

איפה זה נופל

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

שאלות
נפוצות

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

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

למה צריך להתקין flash-attention ו־xformers?

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

האם אפשר להשתמש בו לחיפוש בלי אימון נוסף?

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

איך מריצים

טוענים אותו ישירות דרך ספריית transformers הרגילה, אבל חובה להעביר trust_remote_code=True בטעינה. כדי לנצל את המהירות המובטחת ולעבוד עם טקסטים ארוכים בלי לקרוס, צריך להתקין גם את xformers או flash-attention. הקבצים שוקלים פחות מגיגהבייט אחד, כך שכל כרטיס מסך בסיסי או שרת ענן פשוט עם כמה גיגהבייט של זיכרון יריץ אותו בקלות.

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

from transformers import pipeline

pipe = pipeline("feature-extraction", model="chandar-lab/NeoBERT")
print(pipe("שלום"))

הרישיון

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

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

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