אסטרטגיות 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%.

Source: https://dev.to/dishant_sethi/rag-pipeline-chunking-strategies-split-documents-for-better-retrieval-aoe

Optional learning community: https://t.me/GyaanSetuAi