GPT
M

ModernBERT-base

קוד פתוח

answerdotaiapache-2.02024-12-11

  • transformers
  • pytorch
  • onnx
  • safetensors
  • modernbert

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

  • 150Mפרמטרים
  • 8,192טוקנים בהקשר
  • 2.9 GBמשקל הקבצים
  • 4,756,180הורדות בחודש

מה זה

המודל הזה לוקח את רעיון האנקודר הדו כיווני הוותיק ומעדכן אותו עם RoPE, מנגנון קשב מקומי וגלובלי לסירוגין ותמיכה ב־Flash Attention 2. האימון שלו כלל שני טריליון טוקנים של טקסט באנגלית וקוד, מה שהופך אותו לבסיס חזק למשימות הבנה, אחזור וחיפוש סמנטי.

במבחני ביצועים רואים את ההבדל בעיקר באחזור מסמכים ובקוד. בבדיקות ColBERT על מאגר MLDR לטווח ארוך הוא הגיע לציון של 80.2 לעומת 28.1 של BERT המקורי, ובמשימות חיפוש קוד כמו CodeSearchNet הוא עוקף משמעותית את RoBERTa ו־DeBERTaV3. הוא מנצח אנקודרים ותיקים כמעט בכל מדד של הבנת שפה טבעית ואחזור נתונים.

מתאים ל

  • אחזור מסמכים ארוכים

    חלון של 8,192 טוקנים מאפשר לקרוא מסמכים מלאים בלי לחתוך אותם לחתיכות קטנות.

  • חיפוש סמנטי בקוד

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

  • סיווג טקסטים באנגלית

    תוצאות GLUE גבוהות הופכות אותו לבסיס מדויק ומהיר למיון וסיווג תוכן.

איפה זה נופל

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

שאלות
נפוצות

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

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

האם צריך להעביר לו token type IDs כמו ב־BERT הישן?

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

איך מריצים

טוענים אותו דרך ספריית transformers מגרסה 4.48.0 ומעלה, באמצעות AutoModelForMaskedLM או פייפליין ייעודי. כדי לנצל את המהירות שלו באמת על טקסטים ארוכים, מתקינים flash-attn ומריצים על מעבד גרפי שתומך בזה בפורמט bfloat16.

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

from transformers import pipeline

pipe = pipeline("fill-mask", model="answerdotai/ModernBERT-base")
print(pipe("שלום"))

הרישיון

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

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

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