ניסוי ב-RAG
כמקצוען ותיק בתעשיית ההיי-טק, נרשמתי להרבה רשימות תפוצה לפיתוח תוכנה וניוזלטרים טכניים אחרים במהלך השנים. אני מקבל הרבה מיילים הקשורים לטכנולוגיה/תוכנה – שברוב הפעמים אין לי זמן לקרוא והם פשוט מצטברים בתיקיית הפיתוח ב-Outlook שלי.
כשה-Outlook הנאמן והוותיק החל להיסדק ידעתי שעלי לעזור לו להתאושש ולהחזיר לו את נעוריו. חשבתי שאמחק כמה הודעות דוא"ל שמורות וחסרות תועלת ואפנה קצת זיכרון מקובץ ה-.pst (שם Outlook שומר את הפריטים שלו) כדי לעזור לו להיטען מהר יותר ולשפר את ביצועיו. סריקה מהירה של תיקיות פריטי Outlook חשפה עשרות אלפי מיילים בתיקיית Dev – שהצטברו במהלך יותר משני עשורים של ניוזלטרים נכנסים. התכוונתי למחוק אותם – אבל לפני שלחצתי על הפקודה "רוקן תיקיה" – הרגשתי צורך נוסטלגי לעיין בכמה מהמיילים האלה. גיבשתי תוכנית לעיין בהם במהירות לפני שאמחק אותם לתמיד.
הגישה הנאיבית
חשבתי שאעיין במהירות בתוכן האימייל ואז אמחק אותו. זה היה כל כך תמים. עד מהרה מצאתי את עצמי נופל במנהרת הארנב מארץ הפלאות בנסיון לקרוא את המיילים, כשהתברר שלרבים מהם יש תוכן מעניין. אחרי כמה כאלה הבנתי שהמשימה החשובה הזו לא תושלם במהלך חיי.
הייתי צריך למצוא דרך אחרת להוציא קצת ערך מהמיילים האלה, אז חשבתי על LLM ו-RAG.
RAG
התוכנית החדשה הייתה להפוך את כל המיילים הללו למאגר ידע שניתן לחיפוש, וללמוד משהו חדש בדרך.
החלטתי להשתמש ב-LLM מקומי למשימה זו.
נכנסתי מייד למצב עבודה. כבר התקנתי בעבר למטרות חינוכיות Ollama עם מודלים של llama3 ו-mistral. החלטתי להשתמש בו עבור פרויקט ה-retrieval augmented generation (RAG).
שלב 1 – ייצוא דואר אלקטרוני של Outlook
השתמשתי ב-pywin32 כדי להתחבר לאאוטלוק שלי (במחשב Windows).
שלב 2 – יצירת קובץ התוכן הטקסטואלי
שלב 3 – צ'אט עם האימיילים
כעת, כשיש לנו vault.txt, אנו יכולים להשתמש בו עם כלי ה-LLM המקומיים שלנו.
לא אעסוק בפוסט זה כיצד להתקין ולהשתמש ב- Ollama, דגמי ה-LLM או Open Web UI. יש הרבה מדריכים באינטרנט בשביל זה. דוגמה בצ'יק: צ'אק (מתנצל על משחק המילים).
ראשית נשתמש בממשק משתמש פתוח:
לאחר הוספת קובץ התוכן להקשר של LLM, נוכל לשוחח על נושאים ספציפיים לתוכן שנצבר בכספת מכל המיילים.
לשם השוואה, אותה שאלה ללא שימוש בקובץ התוכן:
אנו יכולים לראות קישורים שהסרנו כאשר עיבדנו את תוכן ה-html של הודעות האימייל, כך שהתוצאות הללו הן ממודל llama3 עצמו.
אותה שאלה עם ההקשר נותנת את התגובה הצפויה:
נראה בהמשך כיצד נוכל לשפר זאת, עם תוכן ה-HTML של המיילים.
אנחנו יכולים גם להפעיל את זה פרוגרמטית:
התגובה:
Based on the provided text, the following are the Medium posts related to Algorithmic Trading:
1. **I built a trading Algorithm that predicts the price of Bitcoin** by CyberPunkMetalHead (5 min read)
2. **Atomic Arbitrage: A Quantitative Study** by Open Crypto Trading Initiative (8 min read)Please note that these are the only two posts explicitly mentioning algorithmic trading in the provided text. There might be other related articles or topics discussed within the posts, but these two specifically focus on algorithmic trading.
בפוסט הבא נשתמש בתוכן HTML של האימיילים וננסה לשפר את תשובות ה- RAG.
פוסט זה מתורגם לעברית מהפוסט המקורי שלי: How I Read Tens Of Thousands Of Emails In Seconds