אסטרטגיות chunking ל-RAG: פיצול מסמכים לאחזור טוב יותר
רוב הכשלים ב-RAG קורים בגלל האופן שבו אתם מפצלים את המסמכים שלכם.
אם האחזור (retrieval) שלכם גרוע, אל תשנו קודם כל את ה-prompt או את ה-LLM. הסתכלו על ה-chunks שלכם. אם המידע הנכון נמצא במסד הנתונים אך המערכת אינה מצליחה למצוא אותו, סביר להניח שאסטרטגיית ה-chunking היא הבעיה.
chunking גרוע גורם לשלוש בעיות עיקריות:
• קטיעת גבולות (Boundary truncation): משפט שמכיל את התשובה מתפצל לשני חלקים. לאף אחד מהחלקים אין מספיק מידע כדי להתאים לשאילתה. • דילול הקשר (Context dilution): chunk גדול מכיל משפט אחד רלוונטי ועשרה משפטים מיותרים. הטקסט העודף מחליש את האות (signal) הסמנטית. • חוסר במטא-דאטה: לחלקים חסר מידע על המקור או התאריך שלהם, מה שהופך חיפוש מסונן לבלתי אפשרי.
השתמשו בארבע האסטרטגיות הללו כדי לתקן את ה-pipeline שלכם:
1. Fixed-size chunking
הכי מתאים לטקסט רציף וארוך כמו דוחות או מאמרים. • השתמשו ב-256 עד 512 tokens. • הגדירו overlap (חפיפה) של 10% עד 15% כדי למנוע פיצול של משפטים.
2. Semantic chunking
הכי מתאים לטקסט בעל צפיפות גבוהה כמו שאלות נפוצות (FAQs) או מסמכי תמיכה. • היא מפצלת את הטקסט על בסיס שינויי נושא ולא על בסיס ספירת tokens. • זה שומר על רעיונות שלמים יחד.
3. Structural chunking
הכי מתאים למסמכים טכניים, Markdown או HTML. • היא מפצלת את הטקסט על בסיס כותרות (H1, H2, H3). • זה מוסיף מטא-דאטה המאפשר לסנן את האחזור לפי סעיפים.
4. Hierarchical (Parent-Child) chunking
הכי מתאים למערכות production הזקוקות גם לדיוק וגם להקשר. • צרו child chunks קטנים (64-128 tokens) לחיפוש וקטורי מדויק. • קשרו אותם ל-parent chunks גדולים (512-1024 tokens) עבור ה-LLM שיקרא אותם. • זה נותן לכם את הטוב משני העולמות.
איך לבחור את הגודל שלכם:
• 128–256 tokens: טוב לחיפוש עובדות (fact-lookup) ומסמכים טכניים. • 256–512 tokens: נקודת התחלה טובה לשימוש כללי. • 512–1024 tokens: לשימוש בשאלות אנליטיות ארוכות.
חוק הזהב: תמיד תבחנו את האסטרטגיה שלכם לפני שאתם משיקים (ship).
בנו סט של 30 עד 50 שאילתות אמיתיות. סמנו (annotate) את התשובות הנכונות. מדדו את ה-recall@3 שלכם. אל תשנו את מודל ה-embedding שלכם עד שה-recall שלכם גבוה מ-80%.
Optional learning community: https://t.me/GyaanSetuAi
