כדי שמודל AI יהיה שימושי בהקשרים ספציפיים, הוא לרוב זקוק לגישה לידע רקע. לדוגמה, צ'אטבוטים לתמיכה בלקוחות דורשים מידע על העסק הספציפי שהם משרתים, וסוכני ניתוח משפטיים צריכים להכיר מגוון רחב של מקרים קודמים.
מפתחים משפרים בדרך כלל את הידע של מודל AI באמצעות RAG (Retrieval-Augmented Generation). שיטת RAG שולפת מידע רלוונטי מבסיס ידע ומצרפת אותו לפרומפט של המשתמש, ובכך משפרת משמעותית את תגובת המודל. עם זאת, לפתרונות RAG מסורתיים יש מגבלה מרכזית: הם נוטים לאבד הקשר בעת קידוד המידע, מה שלעתים קרובות מוביל לכך שהמערכת לא מצליחה לשלוף את המידע הרלוונטי מבסיס הידע.
אנתרופיק מציגה כעת את "שליפה הקשרית" (Contextual Retrieval), גישה חדשה המשפרת באופן דרמטי את שלב השליפה ב-RAG. שיטה זו, המשתמשת בשתי תת-טכניקות – Contextual Embeddings ו-Contextual BM25 – יכולה להפחית את מספר הכישלונות בשליפה ב-49%, ואף ב-67% כשהיא משולבת עם reranking. שיפורים משמעותיים אלה בדיוק השליפה מתורגמים ישירות לביצועים טובים יותר במשימות עוקבות.
אתם יכולים לפרוס בקלות פתרון שליפה הקשרית משלכם עם קלוד באמצעות המדריך שלנו.
חשוב לציין כי עבור בסיסי ידע קטנים יותר, של עד כ-200 אלף טוקנים (כ-500 עמודים), ניתן לכלול את בסיס הידע כולו ישירות בפרומפט הניתן למודל, ללא צורך ב-RAG. לשם כך, אנתרופיק השיקה לאחרונה את Prompt Caching עבור קלוד, תכונה המאיצה את הגישה למידע ומפחיתה עלויות באופן דרמטי – עד פי 2 בהשהיה ועד 90% בעלויות. אך ככל שבסיס הידע גדל, נדרש פתרון הרחבה (סקיילינג) מתקדם יותר, וכאן נכנסת לתמונה השליפה הקשרית.
עבור בסיסי ידע גדולים מדי עבור חלון ההקשר, RAG הוא הפתרון הסטנדרטי. RAG פועל על ידי פירוק בסיס ידע ל"חתיכות" טקסט קטנות, המרה שלהן ל-embeddings ואינדוקסן בבסיס נתונים וקטורי. בשילוב עם BM25, המאפשר התאמות מדויקות של מילים, RAG יכול לשלוף מידע בצורה יעילה. עם זאת, כאן טמונה בעיה מהותית: חלוקת המסמכים לחתיכות קטנות לצורך שליפה יעילה עלולה לגרום לאובדן הקשר חיוני. לדוגמה, חתיכה כמו "הכנסות החברה צמחו ב-3% ביחס לרבעון הקודם", חסרה מידע על איזו חברה או איזה רבעון מדובר, מה שמקשה על שליפה וניצול המידע ביעילות.

פתרונות RAG מסורתיים נוטים להרחיב את בסיס הידע, אך מגבלת ההקשר הזו היא קריטית.
שליפה הקשרית: הפתרון של אנתרופיק
שליפה הקשרית פותרת את בעיית ההקשר על ידי הוספת הקשר הסברתי ספציפי לכל חתיכה (chunk) עוד לפני ה-embedding (Contextual Embeddings) ויצירת אינדקס BM25 (Contextual BM25). כך, חתיכה כמו "הכנסות החברה צמחו ב-3% ביחס לרבעון הקודם", הופכת ל"חתיכה זו מוגשת מתוך דוח SEC על ביצועי חברת ACME ברבעון 2 של 2023; הכנסות הרבעון הקודם היו 314 מיליון דולר. הכנסות החברה צמחו ב-3% ביחס לרבעון הקודם." - ומספקת את ההקשר החסר.
כדי ליישם זאת בקנה מידה, אנתרופיק פיתחה פרומפט מיוחד עבור קלוד 3 Haiku, המורה למודל לספק הקשר תמציתי עבור כל חתיכה, תוך שימוש בהקשר המסמך השלם. הקשר זה, באורך של 50-100 טוקנים, מתווסף לחתיכה לפני יצירת ה-embedding והאינדקס. השימוש ב-Prompt Caching של קלוד הופך את התהליך לחסכוני במיוחד, עם עלות חד-פעמית של 1.02 דולר למיליון טוקנים של מסמכים עבור יצירת חתיכות ממוקדות הקשר.

שיפורי ביצועים ושיקולים ליישום
ניסויים שבוצעו על פני מגוון תחומי ידע הראו ש-Contextual Embeddings הפחיתו את שיעור כשל השליפה ב-35%. שילוב של Contextual Embeddings יחד עם Contextual BM25 הוביל להפחתה של 49% בשיעור זה. בעת יישום שליפה הקשרית, יש לקחת בחשבון את גבולות החתיכות, בחירת מודל ה-embedding (מודלי Gemini ו-Voyage נמצאו יעילים במיוחד), התאמה אישית של פרומפטים ליצירת הקשר, ומספר החתיכות המועברות למודל, תוך עדיפות תמיד להרצת הערכות ביצועים (evals) מותאמות.

שיפור נוסף עם Reranking
לשם דחיפה נוספת של הביצועים, ניתן לשלב את השליפה הקשרית עם טכניקת Reranking. Reranking הוא תהליך סינון המבטיח שרק החתיכות הרלוונטיות ביותר מועברות למודל, מה שמוביל לתגובות מדויקות יותר ולהפחתה בעלויות ובהשהיה. הניסויים שלנו הראו ששילוב של Reranked Contextual Embedding ו-Contextual BM25 מפחית את שיעור כשל השליפה ב-67% – שיפור דרמטי ביותר. יש לזכור ש-Reranking מוסיף שלב בזמן ריצה, ולכן דורש איזון בין ביצועים לעלות והשהיה.

לסיכום, אנתרופיק גילתה כי יתרונות אלה מצטברים: כדי למקסם את שיפורי הביצועים, מומלץ לשלב Contextual Embeddings (ממודלי Voyage או Gemini) עם Contextual BM25, בתוספת שלב Reranking, והעברת 20 חתיכות פרומפט. אנו מעודדים את כל המפתחים העובדים עם בסיסי ידע להתנסות בגישות אלה באמצעות המדריך שלנו, כדי למצות רמות חדשות של ביצועים.




