RAG כבר לא מסתפק ב-Vector Search, והארכיטקטורה משתנה

עד לא מזמן, כמעט כל מערכות ה-RAG (Retrieval-Augmented Generation, שיפור תגובות המודל באמצעות שליפת מידע חיצוני) נבנו באותה צורה. חתכו מסמכים למקטעים, הפכו אותם ל-embeddings (ייצוגים וקטוריים של טקסט), שמרו אותם בבסיס נתונים וקטורי וחיפשו לפיהם הקשר עבור ה-LLM. זה היה שיפור ניכר לעומת חיפוש מילות מפתח רגיל, אבל ככל שבסיסי הידע הארגוניים גדלו, התברר שחיפוש סמנטי לבדו לא מספיק.
מאיפה נובע הפער
הבעיה נעוצה בסוג השאילתות. כשמשתמש מחפש פונקציה ספציפית, מספר שגיאה, מתודת API או מסמך מגרסה מסוימת, חיפוש על בסיס embeddings לא תופס את המידע בדיוק הנדרש. המצב מסתבך עוד יותר כשהשאילתה נוגעת במידע שמקשר בין מספר ישויות שונות. במקרים כאלה, הקרבה המרחבית בין וקטורים פשוט לא נותנת תשובה. בעקבות זאת, מערכות AI מודרניות עוברות למודל של שליפה היברידית, שבו כמה אלגוריתמים עובדים במקביל וכל אחד מהם פותר משימה אחרת.
איך נראית הארכיטקטורה החדשה
במקום להסתמך על אלגוריתם אחד, מוסיפים שכבות נוספות. חיפוש מילות מפתח מסוג BM25 משתלב במערכת כדי למצוא התאמות מדויקות יותר. מנגנון Metadata Filtering מגביל את החיפוש לפי גרסת מסמך, תאריך, מחבר או פרויקט. Reranker מקבל את תוצאות החיפוש ומדרג אותן מחדש כדי להשאיר רק את המסמכים הרלוונטיים ביותר למודל. וברמה המבנית יותר, מוסיפים Knowledge Graph (גרף ידע) שמאפשר לאתר לא רק מסמכים אלא גם קשרים בין ישויות כמו משתמשים, שירותים ואירועים. כלים כמו Graphiti כבר משלבים גרף ידע, חיפוש סמנטי ומנגנוני שליפה נוספים במקום לבנות מערכת רק סביב וקטורים.
גם Anthropic זורקת RAG קלאסי לפח
הצוות של Anthropic מתאר תהליך דומה מנקודת מבט של פיתוח. בבניית Claude Code, המהנדסים ויתרו על גיבוש הקשר מראש באמצעות RAG קלאסי. במקום זאת, הסוכן עצמו משתמש בכלי חיפוש תוך כדי עבודה ואוסף את המידע הנדרש בהדרגה, לפי הצורך, תוך כדי ביצוע המשימה. הגישה הזאת משתלמת במיוחד לבסיסי קוד גדולים ולהקשרים שמשתנים כל הזמן, ומאפשרת לסוכן להתמודד עם מורכבות שמערכת שליפה סטטית לא מצליחה לפתור.