GPT
R

rag-sequence-nq

קוד פתוח

facebookapache-2.02022-03-02

  • transformers
  • pytorch
  • tf
  • rag
  • en

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

  • 3.8 GBמשקל הקבצים
  • 1,899הורדות בחודש
  • 43לייקים

מה זה

מדובר במימוש של ארכיטקטורת RAG מסוג Sequence, שמבוססת על המאמר המקורי של חוקרי פייסבוק. המערך כולו משלב שלושה רכיבים שמחוברים יחד: מקודד שאלות, מנגנון שליפה ומחולל טקסט. מקודד השאלות נשען על dpr-question_encoder-single-nq-base, ואילו יצירת התשובה עצמה נעשית דרך bart-large, כאשר שניהם אומנו יחד מקצה לקצה על בסיס נתוני wiki_dpr.

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

מתאים ל

  • מענה לשאלות עובדתיות

    שליפת עובדות ממאגר ויקיפדיה באנגלית ומענה ישיר לשאלות ידע כללי.

  • מחקר על ארכיטקטורת RAG

    בדיקת המימוש המקורי של שליפה משולבת יצירה שאומנה מקצה לקצה.

  • בדיקות מקומיות עם אינדקס דמה

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

איפה זה נופל

המודל עובד באנגלית בלבד, ואין לו שום תמיכה מובנית בעברית. המגבלה הכי כבדה היא דרישת החומרה של 75 גיגה בייט RAM רק עבור האינדקס המלא, מה שהופך את דוגמת הקוד הפשוטה למוגבלת למערך נתונים מזויף אלא אם תשקיעו בשרת ייעודי. מעבר לזה, הכרטיס עצמו מראה חוסר דיוק: לשאלה כמה מדינות יש באירופה המודל החזיר 54, בזמן שהיוצרים עצמם ציינו שבגוגל המספר הוא 44 או 51.

שאלות
נפוצות

האם אני יכול להריץ את המודל המלא על המחשב הנייד שלי?

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

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

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="facebook/rag-sequence-nq")
print(pipe("שלום"))

הרישיון

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

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

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