יחידה 1 / 11

מהו RAG ומדוע הוא נחוץ?

רווחים:

  • הסבר ש-RAG מחדיר הקשר מבלי לשנות את משקלי המודל ועובד עם היגיון של 'בחינת ספר פתוח'
  • השוואת RAG עם גישות כוונון עדין והקשר ארוך לפי עלות, זמני ותרחיש שימוש
  • פירוט השלבים של צינור RAG טיפוסי המורכב משלבי אינדקס ושאילתה

לא משנה כמה חזק מודל שפה (בינה מלאכותית שמבינה ומייצרת טקסט; מעכשיו נקרא לזה בקיצור מודל), הוא לא יודע את החוזה שחתמה החברה שלך אתמול, את דף הוויקי הפנימי שלך (בסיס ידע פנימי), או את הערת השחרור שפורסמה הבוקר. המודל מוגבל לידע כללי עד למועד הכשרתו; זה נקרא "מועד הפסקת החינוך". RAG (Retrieval-Augmented Generation) ממלא בדיוק את החסר הזה: הוא מוצא את מסמכי החברה הקשורים לשאלה, נותן אותו למודל כהקשר (כלומר, הטקסט הנוסף שהוא יקרא בזמן הפקת התשובה) ומפיק את התשובה על סמך הקשר זה.

ביחידה זו נראה בבירור מהו RAG, מתי הוא מועדף על פני אילו חלופות, ואת השלבים של צינור RAG טיפוסי. כל היחידות הבאות יעמיקו את חלקי המפה הזו בזה אחר זה.

הרעיון הבסיסי של RAG: בחינת ספר פתוח

בואו נסביר את RAG במשפט אחד: "תחילה מצא את המסמך הרלוונטי, לאחר מכן בקש מהדגם לקרוא את המסמך הזה ולהדפיס את התשובה בהתאם".

האנלוגיה השימושית ביותר היא זו: RAG מעביר את המודל מ"בחינת ספר סגור" ל"בחינת ספר פתוח". בבחינת ספר סגור התלמיד עונה רק מהזיכרון; יש סיכון גבוה להמציא את מה שאתה לא זוכר. בבחינת הספר הפתוח התלמיד עונה בהסתכלות על המקור המוצב מולו. ב-RAG המודל כבר לא עונה מהזיכרון שלו, אלא מהטקסט העדכני והספציפי שאתה נותן לו.

נקודה קריטית: RAG לא משנה את משקלי המודל, כלומר את מיליארדי הפרמטרים המספריים שהמודל למד. אתה לא מחנך מחדש את הדגם. עבור כל שאלה, אתה מחדיר נתחי טקסט הרלוונטיים לשאלה זו להודעה (טקסט הוראות שנשלח למודל). כך שלא תצטרך לאמן מחדש את המודל כאשר מסמך מתעדכן; אתה פשוט מרענן את הרשומה הרלוונטית במסד הנתונים של החיפוש.

רמז: שתי שאלות קובעות את איכות ה-RAG: (1) האם מצאת את המסמך הנכון? (2) האם הדגם קרא אותו נכון? הראשון הוא "איכות השליפה", השני הוא "איכות הדור". שניהם נמדדים ומשופרים בנפרד.

RAG, Fine-Tuning או Long Context?

שלושה נתיבים מתבלבלים לרוב כאשר מחפשים פתרון לבעיה ארגונית. בואו נבהיר את ההבדלים ביניהם. כוונון עדין הוא עדכון משקלי המודל עם הנתונים שלך וללמד אותו התנהגות/סגנון חדש. הקשר ארוך פירושו מילוי כל המסמכים ישירות בהודעה ללא כל בחירה.

גישה

מה עושה

מתי זה מתאים?

עלות / סיכון

סמרטוט

מזריק את המסמך הרלוונטי כהקשר

מידע משתנה תדיר, נרחב וספציפי

נמוך; קל לעדכן, ניתן לצטט מקור

כוונון עדין

מעדכן משקלים עם נתונים חדשים

הוראת סגנון/פורמט/שפה קבועים

גבוה; נדרשת הכשרה מחדש בכל עדכון

הקשר ארוך בלבד

ממלא את כל המסמכים בהודעה

ערכת מסמכים קטנה ונייחת

העלות הסמלית והסיכון ל"איבוד החלק האמצעי" עולים

ככלל: כוונון עדין מלמד את הדגם כיצד לדבר; RAG אומר לדגם מה לדעת. ברוב התרחישים הארגוניים, RAG מנוסה תחילה מכיוון שהוא זול, ניתן לעדכון ויכול להראות את מקור התשובה. הקשר ארוך הוא סביר אם ערכת המסמכים ממש קטנה וקבועה (למשל מדריך בודד בן 20 עמודים); אבל עם אלפי עמודים, זה יקר והדגם עלול לפספס מידע באמצע טקסט ארוך.

צינור RAG טיפוסי

RAG מורכב משני שלבים עיקריים: אינדקס (הכנה, נעשה פעם אחת או מעת לעת) ושאילתה (רוץ על כל שאלה של משתמש).

אינדקס שלב אחר שלב (לא מקוון, ללא המתנה של משתמש):

  1. איסוף: שלוף מסמכים ממקורות (PDF, ויקי, מערכת כרטיסים, מסד נתונים, מייל).
  2. חתיכה: חלקו טקסט ארוך לחתיכות קטנות יותר הניתנות לניהול.
  3. Embed: המר כל חלק להטבעה (וקטור המספרים הנושא את משמעות הטקסט).
  4. שמירה: כתוב את הוקטורים יחד עם הטקסט והמטא נתונים (מקור, תאריך, פרטי הרשאה) למסד הנתונים הוקטור.

שאילתה שלב אחר שלב (מקוונת, בזמן שהמשתמש ממתין):

  1. המר את שאלת המשתמש להטמעה.
  2. אחזר את החלקים הדומים ביותר ממסד הנתונים הווקטוריים.
  3. הצב את החלקים + השאלה בתבנית הנחיה.
  4. קבלו את התשובה ההקשרית ואת מקורותיה מהמודל.

# מתאר מושגי של שלב החקירה (לא תלוי בשפה)question = "כמה ימים של חופשה שנתית?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # most similar partsprompt = f"""ענה על השאלה אם אין מידע לגבי "הקשר הזה." Fitting.CONTEXT:{parts}שאלה: {question}"""answer = model.uret(prompt) # למשל. דגם: claude-opus-4-8

זרימה זו היא מפה של כל שלב, אותה נפרק אחד אחד ביחידות הבאות.

הנחיה חלשה / הנחיה חזקה

אפילו עם אותו הקשר RAG, איכות ההנחיה משנה את התשובה.

הנחיה חלשה (פתוחה להתאמה לדגם, אינה דורשת משאבים):

השתמש במידע זה ותגיד חופשה שנתית: {חלקים}. שאלה: {שאלה}

הנחיה עוצמתית (הארקה + הרשאת "אני לא יודע" + בקשת משאב):

ענה רק על סמך ההקשר שלהלן. אם אין תשובה ברורה בהקשר, כתוב "לא הצלחתי למצוא מידע על כך בתיעוד"; אל תנחש. הוסף את התג [מקור: file_name] של היצירה שאתה מסתמך עליה בסוף התשובה שלך. CONTEXT: {pieces} שאלה: {שאלה}

שלושה מיני מארזים

מקרה 1 - עוזר משאבי אנוש (משאבי אנוש). לחברה יש מדריך משאבי אנוש בן 340 עמודים והעובדים שואלים בממוצע 90 שאלות ביום. נוסה כוונון עדין, אך מכיוון שהמדריך עודכן מדי חודש, נדרשה הדרכה מחדש בכל פעם; העלות הגיעה לאלפי דולרים בחודש. לאחר המעבר לר"ג, העדכון צומצם לשלב "אינדקס מחדש את המסמך" (דקות) ושיעור התשובה הנכונה עלה מ-71% ל-93% במדידה ידנית.

מקרה 2 - תמיכת לקוחות. לצוות התמיכה יש 12,000 כרטיסים שנפתרו ו-800 מאמרי עזרה. לוקח לנציג 4 דקות בממוצע למצוא תשובה באופן ידני. כאשר העוזר RAG הביא את 5 הרשומות הרלוונטיות ביותר והפיק טיוטת תגובה, הזמן הצטמצם ל-40 שניות; אבל הצוות הבין את הסיכון של "להיראות לא בטוח על ידי הבאת המאמר הלא נכון" והפך את ציטוט המקור לחובה.

מקרה 3 - חוק. צוות קבלני שאל "באילו חוזים סעיף הסודיות נמשך 5 שנים?" הוא שואל את השאלה. בניסוי ההקשר הארוך, 60 חוזים מולאו בהנחיה אחת; הדוגמנית דילגה על שני החוזים האמצעיים. כאשר רק הפריטים הרלוונטיים הוצגו עם RAG, העלות הסמלית ירדה ב-80% והדילוג החסר אופס.

למה צריך RAG?

  • עדכניות: אתה ניגש למידע לאחר תאריך הפסקת האימון.
  • מידע מיוחד: המסמכים הפנימיים שלך אינם כלולים בהכשרה של כל דגם; רק אתה יכול לתת.
  • אימות: אתה יכול לצטט את מקור התשובה (ציטוט) - חיוני לביקורת ואמון.
  • בקרת הזיות: היא מסתמכת על הטקסט המוצב לפניו במקום להמציא מודל.
  • עלות: זה הרבה יותר זול ומהיר להפעלה מאשר כוונון עדין.
זהירות: RAG אינו קסם. אם אתה מביא את היצירה הלא נכונה, הדוגמנית מגיעה לתשובה הלא נכונה ונראית "בטוחה". זכור את המשפט "איכות שליפה = איכות RAG".

טעויות נפוצות

  • בטעות RAG לכוונון עדין: RAG אינו משנה את המשקולות; זה רק מוסיף הקשר. בלבול בין שני אלה יוביל לבחירה בארכיטקטורה הלא נכונה.
  • לא לאפשר "אני לא יודע": אם ההנחיה משאירה את הדגם פנוי למלא את החסר, הוא יפצה.
  • לא מצטט מקורות: לא ניתן לבדוק תשובה ללא מקור; המשתמש לא יכול להבחין בטעות.
  • לדחוס הכל להנחיה אחת: הקשר ארוך נראה זול אבל הוא יקר ומפספס את המידע האמצעי.
  • להיתקע בדור מבלי למדוד את השליפה: אם התשובה גרועה, תחילה שאלו "האם הגיע החלק הנכון?" צריך לשאול.

לסיכום

  • RAG היא גישה שמחדירה מסמכים רלוונטיים לשאלה לתוך המודל כהקשר; לא משנה את המשקולות ("בחינת ספר פתוח").
  • כוונון עדין מלמד סגנון/פורמט, RAG נותן מידע עדכני וספציפי; הקשר ארוך עובד היטב עבור סטים קבועים קטנים. ברוב התרחישים, RAG מנוסה תחילה.
  • לצינור יש שני שלבים: אינדקס לא מקוון (נתח + הטמעה + שמירה) ושאילתה מקוונת (שליפה + הנחיה + יצירה).
  • RAG מספקת עמידה בזמנים, מידע ספציפי, יכולת אימות, בקרת הזיות ועלות נמוכה.
  • איכות המערכת תלויה ישירות באיכות השליפה: חתיכה לא נכונה פירושה תשובה לא נכונה.

משימת יישום

בחר מקור מידע אמיתי מהצוות שלך (למשל מסמך נוהל או דף שאלות נפוצות). (1) כתבו 5 שאלות עובדתיות על מקור זה. (2) שימו לב איזה חלק במסמך מכיל את התשובה הנכונה לכל שאלה - זו הופכת לרשימת "תשובות הזהב" שלכם. (3) בעזרת תבנית "הנחיה חזקה" למעלה, הדבק ידנית את הקטע הרלוונטי כהקשר ושאל מודל. (4) השווה את התשובה שנתן המודל עם התשובה המוזהבת וסמן כאמת/לא נכון. זוהי הגרסה הידנית הראשונה של ההערכה שתבצע אוטומטית ביחידות עתידיות.

רשימת בדיקה

  • [ ] אני יכול להסביר במשפט אחד ש-RAG לא משנה את המשקולות, אלא רק מוסיף הקשר.
  • [ ] אני יכול להבחין בין RAG, כוונון עדין והקשר ארוך ומתי מה מתאים.
  • [ ] אני יכול לספור את שלבי האינדקס (collect-shred-embed-save) והשאילתה (הטבעת-fetch-prompt-generate) לפי הסדר.
  • [ ] אני יודע למה הוספתי את ההוראות "אם זה לא בהקשר, תגיד שאני לא יודע" ו"ציטט מקור" להנחיה.
  • [ ] אני יכול להתאים את העיקרון של "איכות שליפה = איכות RAG" למקרה שלי.