GPT
D

dragon-plus-context-encoder

קוד פתוח

facebookרישיון לא דווח2023-02-15

  • transformers
  • pytorch
  • bert
  • fill-mask
  • feature-extraction

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

  • 512טוקנים בהקשר
  • 418 MBמשקל הקבצים
  • 3,385הורדות בחודש
  • 39לייקים

מה זה

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

במבחן התוצאה, השילוב הזה מציג ציון של 39.0 ב־MARCO Dev ו־47.4 בבנצ'מרק של BEIR. המשמעות בשטח היא יכולת הכללה טובה כשעוברים מחיפוש כללי לחיפוש בקבצים פנימיים או טקסטים מקצועיים, בלי צורך לכייל את המשקולות מחדש על כל דומיין קטן. הוא נשאר בגודל סטנדרטי של ברט, כך שמקבלים איכות אחזור מודרנית במחיר חישובי מוכר ונמוך יחסית.

מתאים ל

  • אינדוקס מסמכים באנגלית

    יצירת וקטורים לקטעי טקסט עד 512 טוקנים עבור מנועי חיפוש פנימיים.

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

    שליפת פסקאות מדויקות מתוך מאגר ידע רחב, הודות לתוצאות טובות ב־BEIR.

  • חיפוש סמנטי על שרת צנוע

    הפקת אמבדינגס מקומית בקצב מהיר בלי צורך בחומרת GPU יקרה.

איפה זה נופל

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

שאלות
נפוצות

אפשר להשתמש במודל הזה גם כדי לקודד את השאילתה של המשתמש?

לא, זה לא יעבוד טוב. המערכת בנויה משני חלקים שונים עם משקולות נפרדות, ואת השאילתות חובה להעביר דרך המודל dragon-plus-query-encoder. אם תקודדו את שניהם באותו מודל, מרחב הווקטורים לא יתאים והאחזור ייכשל.

איך המודל מתמודד עם טקסטים ארוכים כמו מאמרים או חוזים?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("feature-extraction", model="facebook/dragon-plus-context-encoder")
print(pipe("שלום"))

הקבצים

7 קבצים במאגר, 418 MB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

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

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