איפה RAG רגיל נתקע
RAG רגיל מחפש את קטעי הטקסט הדומים ביותר לשאלה ומעביר אותם למודל. זה עובד היטב כשהתשובה נמצאת בכמה קטעים ספציפיים: נוהל, סעיף בחוזה, הגדרה במסמך.
המחקר של Microsoft Research שהציג את GraphRAG מצביע על שני סוגי שאלות שבהם הגישה הזאת מתקשה. הראשון הוא שאלות גלובליות על כל המאגר, כמו ״מה הנושאים המרכזיים במסמכים?״. לפי המאמר, זו בעצם משימת סיכום ממוקד־שאלה ולא משימת איתור, ולכן שליפה של כמה קטעים דומים לא מספיקה. השני, לפי התיעוד, הוא שאלות שמחייבות לחבר בין פיסות מידע שמפוזרות במסמכים שונים ומקושרות רק דרך מאפיינים משותפים.
- שאלה ספציפית שהתשובה לה במסמך אחד: RAG רגיל לרוב מספיק.
- שאלה על תמות, מגמות או תמונת מצב של כל המאגר: כאן GraphRAG נבנה לעזור.
- שאלה שמחברת אנשים, מערכות ואירועים לאורך מסמכים רבים: כאן גרף עשוי לעזור.
איך GraphRAG עובד
בשלב האינדוקס, לפי התיעוד, הטקסט מחולק ליחידות, ומודל שפה מחלץ מהן ישויות, קשרים וטענות מרכזיות. מהן נבנה גרף ידע. הגרף מחולק לקהילות של ישויות קשורות בעזרת אלגוריתם Leiden, באופן היררכי, ולכל קהילה נכתב סיכום, מלמטה למעלה.
בשלב השאילתה יש כמה מצבים. Global Search עונה על שאלות על המאגר כולו מתוך סיכומי הקהילות. Local Search עונה על שאלות על ישויות מסוימות דרך השכנים שלהן בגרף. DRIFT Search דומה ל־Local Search ומוסיף הקשר מהקהילות. Basic Search הוא חיפוש וקטורי רגיל, לשאלות שבהן RAG בסיסי מתאים יותר.
במאמר המקורי נבדקו מאגרים בהיקף של כמיליון טוקנים. החוקרים דיווחו על שיפור משמעותי לעומת RAG בסיסי בשאלות ״הבנה גלובלית״, במדדים של מקיפות ומגוון התשובה. זו תוצאה של החוקרים עצמם על סוג שאלות מסוים, ולא הבטחה לכל מאגר.
המחיר: אינדוקס יקר ותחזוקה
הריפו הרשמי מזהיר במפורש שאינדוקס ב־GraphRAG יכול להיות פעולה יקרה, וממליץ להתחיל בקטן. הסיבה ברורה: מודל שפה עובר על כל הטקסט כדי לחלץ ישויות וקשרים ולכתוב סיכומים. הם גם ממליצים בחום לכוונן את הפרומפטים לנתונים שלכם, כי ברירות המחדל לא תמיד מתאימות. בנוסף, הקוד מוגדר כהדגמה ולא כמוצר נתמך רשמית, ושדרוג גרסה עשוי לדרוש הגירה או אינדוקס מחדש.
Microsoft Research פרסמה בנובמבר 2024 גרסה בשם LazyGraphRAG. לפי הבלוג שלהם, היא מחלצת מושגים בעזרת NLP פשוט במקום מודל שפה ודוחה את כל השימוש במודל לזמן השאילתה. לפי הדיווח שלהם, עלות האינדוקס זהה ל־RAG וקטורי ועומדת על 0.1% מעלות GraphRAG המלא. באותה תצורה הם מדווחים על איכות דומה ל־Global Search בעלות שאילתה נמוכה פי יותר מ־700. אלה נתונים שהחברה מדווחת על עצמה, וכדאי לבדוק אותם על הנתונים שלכם.
מה צריך לבדוק בארגון
הרשאות. סיכום קהילה מחבר מידע מכמה מסמכים. אם למשתמשים שונים יש הרשאות שונות, סיכום כזה עלול לחשוף למשתמש מידע ממסמך שאין לו גישה אליו. בחיפוש רגיל מקובל לסנן תוצאות לפי זהות המשתמש בכל שאילתה, כמו בדפוס Security Filter של Azure AI Search. בגרף צריך לתכנן את זה מראש, למשל גרף נפרד לכל גבול הרשאה, או Global Search רק על תוכן שכולם רשאים לראות. זו המלצה תכנונית שלי, לא יכולת מובנית שמתוארת בתיעוד.
עדכניות. כשמסמך משתנה, גם הישויות, הקשרים והסיכומים שנגזרו ממנו צריכים להתעדכן. לפני שבוחרים בגישה, כדאי להבין כל כמה זמן המאגר משתנה ומה המחיר של עדכון.
- מי רשאי לראות כל מסמך, והאם הסיכומים מכבדים את זה?
- כל כמה זמן המקורות משתנים, ומה עולה לעדכן את האינדקס?
- האם כל תשובה מפנה למקורות שאפשר לבדוק?
איך להתחיל בלי להמר
אספו 30 עד 50 שאלות אמיתיות וחלקו אותן לשתי קבוצות: שאלות ממוקדות ושאלות על התמונה הכוללת. הריצו את שתיהן על RAG רגיל או חיפוש היברידי, ובדקו בנפרד אם נמצאו המקורות הנכונים ואם התשובה נשענת עליהם.
אם רוב הכישלונות הם בשאלות הגלובליות או בשאלות שמחברות בין מסמכים, נסו GraphRAG או LazyGraphRAG על תת־קבוצה קטנה של המסמכים. מדדו איכות, עלות אינדוקס ועלות לשאילתה מול אותו סט שאלות. אם השיפור לא מצדיק את העלות, הבחירה ב־RAG פשוט היא החלטה טובה, לא כישלון.