GPT
M

m2-bert-80M-32k-retrieval

קוד פתוח

togethercomputerapache-2.02023-11-04

  • transformers
  • pytorch
  • m2_bert
  • text-classification
  • sentence-similarity

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

  • 32,768טוקנים בהקשר
  • 422 MBמשקל הקבצים
  • 362הורדות בחודש
  • 131לייקים

מה זה

מדובר במודל מבוסס ארכיטקטורת Monarch Mixer שמיועד למשימות דמיון בין טקסטים ואחזור מידע. בשונה ממודלי BERT רגילים שנעצרים בדרך כלל ב־512 טוקנים, כאן דחסו תמיכה ברצפים של עד 32,768 טוקנים לתוך 80 מיליון פרמטרים בלבד. המודל מייצר שיבוצים בגודל 768, תוך שימוש בארכיטקטורה תת־ריבועית שמנסה לפתור את צוואר הבקבוק החישובי של מנגנון הקשב הרגיל.

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

מתאים ל

  • חיפוש בקבצי מסמכים ארוכים

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

  • אחזור מידע למערכות RAG

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

  • סריקת חוזים באנגלית

    משקל קל של 422 מגהבייט מאפשר להריץ אותו ישירות על מעבד מקומי ולסווג מסמכים משפטיים ארוכים.

איפה זה נופל

המודל אומן על אנגלית בלבד ולא מתאים לטקסטים בעברית. בנוסף, הטעינה דרך ממשק AutoModel הרגיל זורקת הודעות שגיאה על פרמטרים חסרים או לא מנוצלים של FlashFFTConv, מה שאומר שכדי לנצל את מלוא היעילות החישובית שלו תצטרכו להתקין רכיבים ספציפיים ממאגר הגיטהאב של הפרויקט. הטוקנייזר שלו מבוסס על bert-base-uncased, כך שהוא מתעלם מאותיות גדולות ומוגבל לאוצר המילים המקורי שלו.

שאלות
נפוצות

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

לא. המודל הוגדר ואומן עבור השפה האנגלית בלבד, ומשתמש בטוקנייזר של bert-base-uncased שאינו מיועד לעברית.

למה מופיעה שגיאה על FlashFFTConv בעת הטעינה?

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

האם אפשר להריץ אותו בלי שרת ייעודי?

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

איך מריצים

המשקל הכולל של המודל הוא 422 מגהבייט בלבד, כך שכל מעבד מודרני או כרטיס מסך בסיסי לחלוטין יריצו אותו בלי בעיה. בטעינה רגילה דרך ספריית transformers תראו הודעת שגיאה גדולה לגבי פרמטרים לא מנוצלים של FlashFFTConv, אלא אם תגדירו את התלויות הייעודיות מהמאגר שלהם. הקוד דורש הרצת קוד מרוחק עם trust_remote_code ושימוש בטוקנייזר של bert-base-uncased.

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

from transformers import pipeline

pipe = pipeline("sentence-similarity", model="togethercomputer/m2-bert-80M-32k-retrieval")
print(pipe("שלום"))

הרישיון

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

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

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