A cheerful man wearing a black shirt stands in a flourishing garden, giving a thumbs up with a big smile. The text "RAG doesn't work" is prominently displayed on his shirt, suggesting a playful protest or humorous commentary. The background is filled with lush greenery, blooming flowers, and a picturesque waterfall, creating a serene and rejuvenating atmosphere.

RAG – חלום ושיברו

לחץ להאזנה

יש בלבול עמוק בנושא RAG

[יישור קו: RAG זו טכניקה של שילוב ידע חיצוני עם הפעולה של מודל שפה על מנת להשיג תוצאות מדוייקות יותר ולמנוע הזיות. כאשר מדובר בכמות גדולה של ידע אנו נאלצים לשלב ׳חיפוש סמנטי׳ סוג של חיפוש כדי להביא למודל השפה את המידע הרלוונטי לדיון. הבעיה במנגנון הזה שהוא עלול להיכשל בחלק של מציאת המידע הרלוונטי, ועד היום זה עושה הרבה בעיות… יש דיון מרתק בתעשייה האם יש עתיד לטכניקה הזו או שלא]

היסטוריה:

בשנת 2020 הופיע מאמר Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks או בקיצור: המאמר הראשון על RAG

באותם ימים – הרעיון של להנחות מודל שפה ״בתוך הפרומפט״ עצמו עוד לא היה קיים. אימון מודל שפה למילוי הנחיות (InstructGPT, מהדורה מוקדמת של ChatGPT) הגיע רק ב-2022. כך שבשלב הזה כל מה שמודל שפה עשה זה השלמת מילים (או יותר נכון ״טוקנים״)

במובן הזה RAG היה גאולה גדולה ✨. זה תהליך שקרה באמת הקוד עצמו, ע״י התערבות בעבודה של המודל הצליחו לדחוף לו טוקנים מבחוץ, יעני פריטי ידע, שהוא יכול להתחשב בהם (״טוב טוב נעשה לכם טובה״) בזמן שהוא יוצר את השלמת הטקסט שלו. מה שאומר שגם אם המודל אומן על ידע שנקטע בשנת הונולולו (למשל 2018) עדיין אפשר לתת לו ידע חדש שהוא יקח אותו בחשבון במהלך היצירה ופתאום הוא יכול ליצור לנו טקסט שרלוונטי גם לשנת 2020 העדכנית (דאז) כיף כיף כיף!!!!

בזמנו…

רגע, מה רע בראג (תגידו 10 פעמים בלי להתבלבל)

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

היום יש נהירה ל-RAG בתור פתרון הקסם שיצליח לפתור לנו את הבעיה *הכי קשה* של מודלי שפה, שהם כרגע תקוות האנושות, אז במובן מסויים מדובר ככל הנראה בבעיה *הכי קשה* של האנושות —- ״ההזיות״ של מודלי השפה, כמובן.

תארו לכם ChatGPT ללא הזיות —– בום! תרופה לסרטן. בום! חיי נצח. בום! משבר האנרגיה אאוט. בום! אין יותר רעב באפריקה.

מגניב רצח. לא?

הרי כל הבעיה של מודלי שפה זה ש– האימון שלהם חלקי חסר ולא מספיק עדכני… ובכן, כן בערך לא בדיוק. אבל נניח.

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

לפני שנדבר על בעיות של RAG נדבר על ביצועים של RAG.

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

אולימפיאדת ה-RAG מי ישמע… מתוך האתר: https://www.tonic.ai/rag-olympics

עצרו שנייה. מה זה אומר שמודל ״טוב ב-RAG״. פה יש משהו שהציבור צריך להבין. להיות טוב ב-RAG זה אומר שכאשר אני נותן למודל כמה משפטים שהוא צריך להתחשב בהם ביצירה שלו – הוא אכן מתחשב בהם ביצירה שלו. דוגמא: ״מיהו נשיא ארצות הברית״ שאלה למודל. ובמסמכי ה-RAG כתוב ״וואלה נשיא ארצות הברית היום הוא … הממ.. נו.. מה שמו… אה כן – זה. (ההוא ששוכח דברים) ג׳ו ביידן. כן.״ למרות הניסוח המאוד עמום במסמך – המודל כל כך חכם ומופלא שהוא מצליח לענות בכשרון רב: נשיא ארה״ב דהיום הוא ג׳ו ביידן. זה נקרא 10 מתוך 10 באיחזור RAG כל הכבוד למר מודל!

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

אנחנו בכלל לא עושים RAG

תזכרו – פעם (2020) RAG היה שיא הטכנולוגיה. הוא בעצם העיד על יכולת יוצאת דופן, שיטה חדשה שהיה צריך לפתח כדי לאפשר למודל שפה להתערבב עם טוקנים שמוזרקים לו מבחוץ. זה היה אתגר וזה היה וואו שזה מצליח. היום: אנחנו בכלל לא עובדים כבר בטכניקה הזו!!!!!! יש לנו InCONTEXTTTTTT LEARNING!!! אנחנו אשכרה — דוחפים לו את הטוקנים בתוך הפרומפט! אנחנו בכלל לא עושים RAG! הנה אמרתי את זה, ואני אגיד את זה שוב: אנחנו היום לא עושים RAG! ואנחנו עדיין בטעות קוראים לזה RAG ויחד עם זה מתגאים בביצועי RAG מופלאים.. שבעצם זה לא באמת RAG אלא טכניקה אחרת שעובדת הרבה יותר טוב והתאפשרה לנו כי העולם התפתח מאז 2020 ויש לנו קונטקסט ארוך ויכולת Instruct שלא היתה קודם. יאללה איתנו.

לחבר RAG ל-LLM זה לקחת מכונית פורשה ולשדרג אותה עם גלגל נוסף של סוסיתא

אז:

תראו איזה סמטוחה. אנחנו חושבים שפיצחנו משהו. מציגים מדדים גבוהים. מרמים בדרך. ובעצם מספרים שפתרנו את הבעיה הכי גדולה של האנושות (או מתקרבים לזה) בעוד שלמעשה – זו בכלל לא הבעיה…. ס-מ-ט-ו-ח-ה פר אקסלנס.

לעשות חיפוש סמנטי בתוך מאגרי ידע גדולים ולתת למודל שפה בתוך הקונטקסט את הטקסט הרלוונטי —- זה לא RAG אין פה שום אלמנט של RAG איפה הRAG פה למען השם?!?!

יש פה: חיפוש סמנטי + למידה בתוך הקונטקסט (in-context learning) מישהו ראה פה RAG?

כי במקור: RAG לא ניתן בתוך הקונטקסט של ה-Input עצמו. ובנוסף הוא לא שילב חיפוש סמנטי.

יש?

יופי.

חיפוש סמנטי זה פשוט ……. (לא רציתי לקלל בקול רם) עובד לפעמים. בחלק מהמקרים, עבור Use Cases מאוד מסויימים… אז כל החוכמולוגים שאומרים ״כן כן, תן לי רק לסדר את הבורג הזה… שנייה.. אני מחזק את הבורג… רגע…. אני שם עוד קצת שמן מנוע… שנייה… זה תיכף עובד.. רק מחזק פה … עושה עוד קצת אלגוריתמים… שנייייייה.. הנה הנה אוטוטו RAG יעבוד״ חברים! על זה נכתב סיפור העם הידוע ״מרק כפתור״ תפסיקו לחרטט.

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


שימו לב לדבר המדהים הבא – אנתרופיק לא מאמינים בRAG!

קלוד בשום שלב לא יישם RAG

מי כן?

למשל OpenAI ובכמויות: OpenAI מיישמים RAG בפונקציית הזכרון שלהם, וגם בGPTs מממשים RAG בתור Knowledge.

בנוסף Cohere מאוד בונים על RAG ומפתחים אותו (ודי מובילים שם אפילו)

מי עוד? ובכן גוגל, כן, סוג של. לגוגל יש יכולות של חיפוש באינטרנט עם ג׳מיני, חיבור למסמכים ועוד הכל מבוסס RAG (שעובד להם הכי דפוק בארץ!!)

מי עוד? אה.. Perplexity כמובן שעושים עבודה נפלאה ממש אבל עם RAG

נראה שהיחידים שבאמת לא נוגעים בRAG ולא מתקרבים אליו זה אנתרופיק.

זו נקודה סופר מעניינת בעיניי.

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

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

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

מה שכן – הפיצ׳ר שאנתרופיק שיחררו בשבוע שעבר Prompt Caching זה בדיוק צעד אחד קדימה לקראת חיסול סופי של ה-RAG. כי הם מראים לנו שאפשר לחסוך עלות מטורפת על שימוש בקונטקסט גדול, ובנוסף להאיץ את הפעולה של המודל גם בקונטקסט ארוך. כלומר: RAG ימיו ספורים רבותיי.

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

בעתיד הלא רחוק המודל שלנו יזכור המון מידע כשהוא יבוא לשוחח איתנו. הוא ידע את כל ההיסטוריה של התקשורת שלנו, הוא ידע עוד המון דברים, הוא ידע את כל זה *בבת אחת* בלי חיפוש ובלי נעליים. המענה שלו יהיה סופר איכותי… הוא יוכל לכתוב קוד שמתשלב בקוד שלנו באופן טבעי כי הוא באמת יראה את כל הקוד בבת אחת. בלי בעיה (יחד עם כל הדוקומנטציות העדכניות הנצרכות) הפנטזיה של *לדחוף לו את כל הידע הארגוני* עשויה לקרות – בתוך הקונטקסט שלו, דמיינו את זה!

יש מצב שאנתרופיק יגיעו לשם ראשונים. מה דעתכם?


Comments

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *