GPT
N

nli-deberta-v3-large

קוד פתוח

cross-encoderapache-2.02022-03-02

  • sentence-transformers
  • pytorch
  • onnx
  • safetensors
  • deberta-v2

זהו cross encoder מבוסס DeBERTa v3 שמיועד להסקה לוגית וסיווג zero shot באנגלית. הוא נותן דיוק גבוה במיוחד בהשוואת זוגות טקסטים, אבל דורש משאבים כבדים ביחס לגודלו.

  • 435Mפרמטרים
  • 512טוקנים בהקשר
  • 9.0 GBמשקל הקבצים
  • 41,343הורדות בחודש

מה זה

הבסיס כאן הוא microsoft/deberta-v3-large שעבר אימון על שני מאגרי נתונים מוכרים של היסק לשוני, SNLI ו־MultiNLI. הוא בוחן זוגות של משפטים ופולט שלושה ציונים שמגדירים סתירה, גרירה לוגית או ניטרליות. מכיוון שמדובר ב־cross encoder, הוא מעביר את שני המשפטים יחד דרך 24 שכבות של מנגנוני תשומת לב, במקום לייצר וקטור נפרד לכל משפט כמו bi-encoder רגיל. זה הופך אותו למדויק בהרבה בהבנת הקשרים עדינים.

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

מתאים ל

  • סיווג טקסט ללא אימון

    מאפשר לסווג טקסטים באנגלית לקטגוריות משתנות מראש בעזרת pipeline מתאים ובדיוק גבוה.

  • אימות עובדות והיסק לוגי

    מזהה האם טענה מסוימת נתמכת על ידי טקסט מקור, סותרת אותו או שאינה קשורה אליו.

  • שלב דירוג מחדש בחיפוש

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

איפה זה נופל

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

שאלות
נפוצות

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

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

האם הוא מתאים לחיפוש סמנטי על מיליוני מסמכים?

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

איך מריצים

אתם טוענים אותו ישירות דרך ספריית sentence-transformers עם מחלקת CrossEncoder, או בעזרת pipeline לסיווג zero shot ב־transformers של Hugging Face. הקבצים שוקלים 9.0 גיגה בייט בדיוק של float32, כך שפריסה שלו דורשת כרטיס מסך עם זיכרון וידאו ייעודי של לפחות 12 עד 16 גיגה בייט כדי לעבוד בקצב סביר ולקבל באצ'ים בלי לקרוס.

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("cross-encoder/nli-deberta-v3-large")
v = m.encode(["שלום עולם"])

הרישיון

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

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

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