כשמערכת RAG נכשלת, המודל בדרך כלל מקבל את האשמה. המסמכים בדרך כלל התחילו לפניו.
מסמך הוא יחידת מוצר
מסמכים במערכת RAG הם לא רק חומר גלם. חלק מהמוצר.
לכל מסמך צריך זהות ברורה, כותרת שימושית, מקור, תאריך או גרסה, מבנה שאפשר לנווט בו, חלוקה שאפשר להסביר. בלי זה גם embedding טוב נשאר עם חומר קלט חלש.
Chunking חלש יוצר retrieval חלש
Chunking בגודל קבוע נשמע פשוט. נוטה לשבור בדיוק את הדברים שצריך להשאיר יחד. כותרת והגוף שמתחתיה. סעיף והחריג שלו. טבלה והטקסט שמסביר אותה. הגדרה והמקרה שהיא חלה עליו.
Chunk טוב לא מוגדר רק לפי אורך. מוגדר לפי שלמות הרעיון שהמשתמש יצטרך להחזיר אחר כך.
Titles ומטא-דאטה עושים יותר ממה שנדמה
Titles טובים ומטא-דאטה סבירים מקטינים את הצורך ב-query gymnastics. עוזרים ל-retrieval הראשוני, reranking, סינון לפי סוג מקור, page-level grounding, review אנושי.
כשהכותרות חלשות, המערכת מפצה עם שכבות אחרות. rewrite, fusion, עוד context. כמעט תמיד יקר יותר מלתקן את הכותרות עצמן.
Parent-child structure
הרבה קורפוסים מרוויחים ממבנה parent-child. parent בשביל יחידת המשמעות הגדולה, child בשביל retrieval מדויק יותר.
אפשר למצוא קטע קטן ומדויק ועדיין להחזיר מספיק הקשר מה-parent בלי להעמיס context לא רלוונטי. דפוס טוב במסמכים ארוכים, פוליסות, חוזים ורגולציה.
Sentence-window retrieval ו-reranking
לפעמים הבעיה היא לא למצוא את האזור הנכון, אלא להביא חלון מספיק מדויק סביבו. שם sentence-window retrieval או reranking יכולים לעזור.