הוצאתי 500$ על תשתית RAG לפני שעשיתי 7 טעויות
בניתי pipeline של RAG לחיפוש במסמכים פרטיים. זה עלה לי 500$ בכוח מחשוב ושבועות של debugging. התוצאות היו גרועות. המשתמשים קיבלו תשובות לא רלוונטיות והשאילתות היו איטיות.
ביצעתי audit ל-pipeline ומצאתי 7 טעויות נפוצות. התיקון שלהן שינה הכל.
- חלוקה לקטעים (Chunking) לפי מספר טוקנים קבוע חילקתי מסמכים לפי כמות טוקנים קבועה. זה הרס את ההקשר. משפט היה מתפצל באמצע. ה-LLM קיבל נתונים מקוטעים ונתן תשובות גרועות.
- התיקון: שימוש ב-semantic chunking עם parent-document retrieval.
- חלוקה לפי גבולות טבעיים כמו פסקאות או כותרות.
- יצירת child chunks קטנים לחיפוש.
- החזרת ה-parent document המלא ל-LLM כאשר מתרחשת התאמה.
- הוספת 10-20% חפיפה (overlap) בין הקטעים.
- משקלי חיפוש ברירת מחדל השתמשתי בחלוקה של 50/50 בין vector search ל-keyword search. במסמכים טכניים, מילות מפתח מדויקות חשובות יותר.
- התיקון: שימוש במשקלים דינמיים.
- שאילתות עובדתיות: 35% vector, 65% keyword.
- שאילתות סמנטיות: 75% vector, 25% keyword.
- אופטימיזציה יתר של פרמטרי HNSW
הגדרתי את
ef_constructionלערך המקסימלי. באינדקס גדול, זה גרם לקריסת השרת שלי וצרך את כל ה-RAM שלי.
- התיקון: שימוש בהגדרות HNSW מתאימות.
- שמירה על M בין 8 ל-32.
- הגדרת
ef_constructionל-200. - הגדרת
ef_searchל-50.
- מודלי Embedding לא מתאימים השתמשתי במודל כללי שאומן על טקסט מהאינטרנט. הוא לא הבין את המסמכים ההנדסיים הטכניים שלי.
- התיקון: מעבר למודל שעבר fine-tuning לתוכן טכני או קוד.
- חוסר התאמה בשפה טבעית משתמשים שואלים שאלות כמו "why is my build slow". התיעוד משתמש במונחים כמו "CI pipeline optimization". לא הייתה שום חפיפה.
- התיקון: הוספת שלב של LLM query rewrite.
- כתיבה מחדש של שאילתת המשתמש למונחים טכניים לפני החיפוש.
- הקשר (Context) מיותר שליפת 10 הקטעים המובילים פירושה היה לעיתים קרובות לקבל את אותה פסקה שלוש פעמים. זה גרם להזיות (hallucinations).
- התיקון: שימוש ב-Maximal Marginal Relevance (MMR) כדי להבטיח גיוון בתוצאות.
- הערכה מקצה לקצה בלבד בדקתי רק את התשובה הסופית. לא ידעתי אם הבעיה הייתה בשליפה (retrieval) או ב-LLM.
- התיקון: הערכת השליפה בנפרד.
- מעקב אחר hit rate ו-Mean Reciprocal Rank (MRR).
- בניית סט בדיקה של 100 זוגות שאילתה-מסמך.
תוצאות לאחר התיקונים: • רלוונטיות התשובה: 45% ל-85% • שיהוי שאילתה (latency): 3.2s ל-1.8s • עלות חודשית: $180 ל-$95
תקן קודם את ה-chunking. אחר כך את המשקלים. ואז את איכות ה-embedding.
מהו ה-RAG headache הכי גדול שלכם? ספרו לי בתגובות.
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi_