מידע תקין הוא לא תמיד מידע נדרש.


יש לך 1,000 פיסות מידע שעברו אימות

נניח שהאימות המכני עבד.

הפורמט תקין, שדות נדרשים קיימים, מזהים תקינים, טיפוסים מתאימים, ושלמות ההפניות מתקיימת – נותרו 1,000 הצהרות.

כולן מידע תקין. הן תואמות את המפרט. אין סיבה לדחות אותן.

אבל חלון ההקשר יכול להכיל רק 300.

אילו 300 מכניסים?

זו בעיית הסינון.


אימות וסינון שואלים שאלות שונות

מה האימות שואל: “האם המידע הזה תקין?” מה הסינון שואל: “האם המידע הזה נדרש עכשיו?”

אימות מסתכל על תכונות המידע עצמו. האם הפורמט נכון? האם השדות קיימים? האם ההפניות תקינות? לא אכפת לו ממה המידע עוסק או לאיזו מטרה ישמש.

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

אימות אפשרי ללא הקשר. צריך רק את המפרט. סינון בלתי אפשרי ללא הקשר. צריך לדעת “מה נדרש עכשיו.”

אימות הוא דטרמיניסטי. תקין או לא תקין. סינון הוא שיפוט. לרלוונטיות יש דרגות, לאמינות יש ספים, לעדכניות יש הקשר.

אימות זול. סינון יחסית יקר.

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


שלושה דברים שסינון שופט

סינון מסתכל על שלושה דברים עיקריים.

רלוונטיות: האם זה נדרש להסקה הזו?

המשתמש שאל על “הרווח התפעולי של Samsung Electronics ברבעון 3 של 2024.”

מתוך ההצהרות התקינות שעברו אימות:

  • הרווח התפעולי של Samsung Electronics ברבעון 3 של 2024 היה 9.18 טריליון וון.
  • הכנסות Samsung Electronics ברבעון 3 של 2024 היו 79 טריליון וון.
  • הרווח התפעולי של Samsung Electronics ברבעון 3 של 2023 היה 2.43 טריליון וון.
  • תוכנית ההשקעות ברבע מוליכים של Samsung Electronics היא 53 טריליון וון נכון ל-2025.
  • המטה של Samsung Electronics נמצא בסואון.

כולן תקינות. כולן על Samsung Electronics. האם מכניסים את כולן להקשר?

מיקום המטה לא רלוונטי. תוכנית ההשקעות ברלוונטיות נמוכה. הרווח התפעולי של 2023 עשוי להיות שימושי להשוואה. ההכנסות קשורות קשר הדוק לרווח התפעולי.

ב-RAG של שפה טבעית, השיפוט הזה מואצל לדמיון embedding. מדורגים לפי מרחק וקטורי מ-“רווח תפעולי Samsung Electronics.” אבל כפי שכבר נדון, דומה אינו רלוונטי.

בייצוג מובנה, לשיפוט רלוונטיות יש קלטים שונים. על איזו ישות ההצהרה מצביעה? Samsung Electronics. איזה מאפיין? רווח תפעולי. איזה זמן? רבעון 3 של 2024.

אם ישות, מאפיין וזמן קיימים כשדות, אפשר למצוא “אותה ישות, אותו מאפיין, אותו זמן” במדויק. ואפשר לכלול או להוציא בכוונה “אותה ישות, אותו מאפיין, זמן שונה.” התאמת שדות, לא מרחק וקטורי.

רלוונטיות היא עדיין שיפוט. לא דטרמיניסטית. אבל אם הקלט לשיפוט הוא מרחק וקטורי או שדות מובנים – זה עושה הבדל בדיוק.

אמינות: האם אפשר להאמין למידע הזה?

שתי הצהרות קיימות על אותו תוכן.

  • מקור: גילוי IR של Samsung Electronics. ודאות: 1.0. “רווח תפעולי רבעון 3 2024: 9.18 טריליון וון.”
  • מקור: בלוג אנונימי. ודאות: 0.3. “רווח תפעולי רבעון 3 2024: בערך 10 טריליון וון.”

מה נכנס להקשר?

ברור שהראשונה.

אבל כדי שהשיפוט הזה יהיה “ברור,” המקור והוודאות חייבים להיות קיימים בצורה קריאה.

בקטעי שפה טבעית, המקור טמון איפשהו בטקסט או חסר. ודאות מעולם לא בוטאה. כדי להשוות שני קטעים ולשפוט מי אמין יותר, LLM חייב לקרוא ולהסיק.

בייצוג מובנה, מקור וודאות הם שדות. “הוצא ודאות מתחת ל-0.5” זו השוואה אחת. “כלול רק מקורות ראשוניים” זו התאמת שדה.

עלות סינון האמינות עוברת מהסקת LLM להשוואת שדות.

עדכניות: האם המידע הזה עדכני מספיק?

“מי המנכ"ל של Samsung Electronics?”

  • זמן: מרץ 2024. “מנכ"ל Samsung Electronics: קיונג קייה-היון.”
  • זמן: דצמבר 2022. “מנכ"לים משותפים של Samsung Electronics: האן ג’ונג-הי, קיונג קייה-היון.”

שתיהן תקינות. פורמט נכון, מקורות קיימים. אבל נדרשת העדכנית ביותר.

בשפה טבעית, הזמן עשוי או לא עשוי להיות מוזכר בטקסט. אם כתוב “בשנה שעברה,” צריך גם לחשב מתי הייתה “שנה שעברה.”

בייצוג מובנה, זמן הוא שדה. תאריך ISO 8601. “כלול רק את ההצהרה העדכנית ביותר” זו פעולת מיון אחת.

חשוב מכך, הקריטריון לעדכניות תלוי בהקשר. אם שואלים על המנכ"ל, נדרש הרשומה העדכנית ביותר. אם שואלים על כל המנכ"לים הקודמים, נדרשת כל רשומה. אם שואלים על מגמות הכנסות, נדרשים 8 הרבעונים האחרונים.

אם זמן קיים כשדה, אפשר לבטא את התנאים האלה כשאילתה. אם זמן טמון בשפה טבעית, צריך לחלץ אותו בכל פעם.


למה סינון אינו אימות מכני

יש הבחנה חשובה כאן.

משלושת הקריטריונים של סינון – רלוונטיות, אמינות, עדכניות – אמינות ועדכניות ניתנות לעיבוד מכני ברובן בייצוג מובנה. השוואת שדות, מיון ערכים, סינון טווח.

אז למה לקרוא לזה “סינון” ולא “אימות”?

אימות מסתכל רק על תכונות המידע עצמו. “האם להצהרה הזו יש שדה זמן?” קיים או לא. אין צורך בהקשר.

סינון מסתכל על היחס בין מידע למצב. “האם הזמן של ההצהרה הזו מתאים לשאלה הזו?” צריך לדעת מה השאלה כדי לענות.

שניהם בוחנים את אותו שדה זמן, אבל אימות בודק “קיום” וסינון שופט “התאמה.”

קיום לא צריך הקשר. התאמה צריכה הקשר.

ההבדל הזה הוא הסיבה שהצינור מפריד את שני השלבים.


מבנה העלויות של סינון

סינון יקר יותר מאימות. אבל כמה יקר תלוי בייצוג.

סינון בצינור שפה טבעית: שיפוט רלוונטיות – הסקת LLM או חישוב דמיון embedding. שיפוט אמינות – LLM מחלץ מידע מקור מהטקסט ומעריך. שיפוט עדכניות – LLM מחלץ מידע זמן מהטקסט ומשווה. הכל הסקה. הכל יקר.

סינון בייצוג מובנה: שיפוט רלוונטיות – התאמת שדות ישות/מאפיין + שיפוט מבוסס הקשר. שיפוט אמינות – השוואת שדה ודאות. התאמת שדה מקור. שיפוט עדכניות – מיון שדה זמן. השוואת טווח. אמינות ועדכניות הן פעולות שדה. רק רלוונטיות דורשת שיפוט.

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

העלות הכוללת של סינון יורדת משמעותית.


מה קורה בלי סינון

אם מאמתים אבל מכניסים הכל להקשר ללא סינון.

כל 1,000 פיסות המידע התקינות נכנסות. מתוכן, רק 30 נדרשות עכשיו.

ה-LLM קורא את כל 1,000. קריאה עולה כסף. 970 פיסות מידע מיותרות מפזרות את הקשב. מחקר מראה שככל שיש יותר מידע לא רלוונטי בהקשר, הסיכוי להזיות עולה. איכות ההסקה על 30 שבאמת חשובים יורדת.

גם החלון מבוזבז. מתוך המרחב ש-1,000 פריטים תופסים, המרחב של 970 פריטים הוא בזבוז. המרחב הזה יכול היה להכיל מידע אחר, רלוונטי יותר.

סינון הוא ניהול חלון סופי באופן סופי. אם אימות מאשר “האם הוא כשיר להיכנס,” סינון שופט “האם יש לו סיבה להיכנס.”

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


סינון הוא מדיניות

עוד נקודה חשובה.

הקריטריונים לסינון אינם קבועים. הם משתנים עם ההקשר.

סינון לסוכן ייעוץ רפואי: סף אמינות גבוה. הוצא ודאות מתחת ל-0.9. תקן עדכניות מחמיר. הוצא מידע רפואי ישן מ-3 שנים. הוצא מקורות שאינם כתבי עת עם ביקורת עמיתים.

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

אותו מידע עובר בסוכן אחד ונדחה באחר. המידע לא השתנה. המדיניות שונה.

המשמעות היא שסינון הוא לא רק בעיה טכנית אלא בעיה עיצובית. “מה נכנס להקשר” זו אותה שאלה כמו “לפי אילו סטנדרטים אנחנו רוצים שהסוכן הזה יפעל.”

בייצוג מובנה, מדיניות זו מבוטאת באופן הצהרתי. “confidence >= 0.9, time >= 2022, source_type = peer-reviewed.” שורת שאילתה אחת.

בשפה טבעית, מדיניות זו כתובה כשפה טבעית בפרומפט. “אנא התייחס רק למידע אמין ועדכני.” אם ה-LLM ממלא את זה באופן עקבי – זו שאלה של הסתברות.


סיכום

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

סינון שופט שלושה דברים. רלוונטיות – האם המידע הזה נדרש לשאלה הנוכחית? אמינות – האם אפשר להאמין למידע הזה? עדכניות – האם המידע הזה עדכני מספיק?

אימות וסינון שואלים שאלות שונות. אימות שואל “האם זה תקין?”; סינון שואל “האם זה נדרש?” אימות אפשרי ללא הקשר; סינון דורש הקשר. אימות בא קודם; סינון בא אחרי.

בייצוג מובנה, שניים משלושת קריטריוני הסינון – אמינות ועדכניות – מומרים לפעולות שדה. מה שנשאר הוא רלוונטיות בלבד, וגם היא נהיית ברורה יותר דרך התאמת שדות מובנית.

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