קראתי מאמר מעניין על למידה מתמשכת של אייג’נטים.

בעיה מרכזית בעבודה עם LLM היא שהם לא זוכרים אם לא יוצרים להם זיכרון. הרעיון הוא לצבור ידע מובנה ב-retrieval layer, במקום לעשות fine tuning או שינויים במודל עצמו.

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

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

העקרונות

  • Snapshots - כל שאלה נשמרת כ-snapshot ב-DB עם חיפוש סמנטי
  • תמציתיות - המודל מזקק את המידע הגולמי ושומר טענות ברורות
  • השוואה - אם אותה טענה מופיעה שוב במידע חדש נוכל לזהות אותה
  • מעקב - אם אותה טענה חוזרת כמה פעמים האמינות שלה מתחזקת

מה נשמר ב-DB

  • Snapshot - השאלה + embedding לחיפוש סמנטי
  • טענה (Claim) - טענות מובנית מתוך תוצאות המחקרים
  • מקורות המידע - מאיפה הגיעה כל טענה

הזרימה

  1. משתמש שואל שאלה - “מה זה RAG?”
  2. אחרי embedding לשאלה, האייג’נט מחפש שאלות דומות
  3. האייג’נט מחפש באינטרנט מידע ומחלץ טענות מרכזיות, שומר כל טענה עם רמת אמינות
  4. האייג’נט משווה claims חדשים לישנים: מה חדש? מה התחזק? מה נעלם? (מעדכן, משנה אמינות, מסיר מה שלא רלוונטי)
  5. מציג את התוצאות למשתמש ושומר סנאפשוט לפעם הבאה

איפה הלמידה קורית

אחרי כל מחקר האייג’נט שומר את הטענות עם embeddings ל-pgvector DB. כשמגיעה שאלה חדשה האייג’נט בודק אם יש שאלות דומות מהעבר. אם יש שאלות דומות הוא משווה את הממצאים.

אחרי שהאייג’נט רץ בנינו לו ממשק עם FastAPI כדי לראות את כל התהליך.

יישום נוסף: תובנות משיחות

בסוף יצרתי עם קלוד קוד מנגנון דומה לשיחות איתו: /command שנותנת לו הוראות לחלץ תובנות מהשיחה שלנו ולשמור אותן בתיקייה ייעודית.

אותו עיקרון - תובנות שחוזרות על עצמן מתחזקות, כפילויות מסוננות.

למה זה שימושי

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

מעניין מאוד להבין איך להשתמש בצורה אופטימלית בכוח של LLM, לבנות סביבו מערכות וכלים, לבחון ולהרחיב את הגבולות שלו ושלי ;)