GPT
G

gte-reranker-modernbert-base

קוד פתוח

Alibaba-NLPapache-2.02025-01-20

  • transformers
  • onnx
  • safetensors
  • modernbert
  • text-classification

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

  • 150Mפרמטרים
  • 8,192טוקנים בהקשר
  • 2.4 GBמשקל הקבצים
  • 2,674,123הורדות בחודש

מה זה

במקום לייצר וקטורים נפרדים, המודל הזה לוקח שאילתה ומסמך ביחד, מעביר אותם ב־22 שכבות ופולט ציון התאמה ישיר. מה שמייחד אותו בגזרת ה־150M פרמטרים זה השילוב של ארכיטקטורת ModernBert יחד עם חלון של 8,192 טוקנים. רוב הכלים בגודל הזה נחנקים אחרי 512 טוקנים, מה שמאלץ לחתוך פסקאות או לפרק מסמכים בצורה עיוורת.

במבחני ביצועים, ההשפעה של החלון הארוך ברורה. במבחן LoCo לשליפת מסמכים ארוכים הוא מגיע לציון ממוצע של 90.68, כשהוא עוקף מודלים גדולים בהרבה כמו gte-qwen1.5-7b שעומד על 87.57. הוא מחזיק גם 79.99 במבחן הקוד CoIR ו־56.73 במבחן BEIR. המשמעות בפועל היא דירוג מדויק יותר של קטעי טקסט מורכבים וקוד מקור, בלי לאבד הקשר של מסמך שלם.

מתאים ל

  • שלב דירוג שני ב־RAG

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

  • חיפוש בתיעוד טכני וקוד

    התאמת שאילתות באנגלית לפונקציות וקבצי קוד שלמים, בזכות ציונים גבוהים במבחני CoIR.

  • שליפה מתוך מסמכים ארוכים

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

איפה זה נופל

המודל אומן והוגדר רשמית עבור השפה האנגלית בלבד. אם תזרקו עליו עברית, הוא ייכשל או יחזיר ציונים אקראיים, כך שלפרויקטים בעברית הוא פשוט לא מתאים כרגע. מעבר לכך, יש פערים גדולים בביצועים בין משימות שונות. במבחן CoIR לקוד הוא מצטיין בחיפוש כמו CodeSearchNet ב־JavaScript עם 98.32, אבל צונח ל־47.57 במשימת apps ול־36.36 ב־codetrans-dl. הוא לא מחליף שלב חיפוש ראשוני מהיר כי להריץ Cross-Encoder על אלפי תוצאות זה איטי וכבד מדי.

שאלות
נפוצות

האם אפשר להשתמש בו ישירות לחיפוש וקטורי מול מסד נתונים?

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

כמה זיכרון GPU צריך בשביל להריץ אותו?

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

איך מריצים

אתם יכולים לטעון אותו בפייתון עם sentence-transformers דרך CrossEncoder, או להשתמש ב־transformers הרגיל מגרסה 4.48.0 ומעלה. אם ה־GPU שלכם תומך ויש לכם flash_attn מותקן, הוא ישתמש בזה אוטומטית. למי שמעלה שרת עצמאי לפרודקשן, יש תמיכה ישירה ב־Text Embeddings Inference של Hugging Face דרך דוקר, גם ל־CPU וגם ל־GPU.

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

from transformers import pipeline

pipe = pipeline("text-ranking", model="Alibaba-NLP/gte-reranker-modernbert-base")
print(pipe("שלום"))

הרישיון

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

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

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