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

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

24 בפברואר 2025

party-gif

הגבר את התוכן שלך באמצעות חזותיות! הפוסט הזה בבלוג חוקר כיצד לבנות מערכת הפקת שיבוץ רב-מודלי (RAG) המשלבת טקסט ותמונות כדי לספק תגובות מקיפות ומעניינות יותר לשאילתות של המשתמש. גלה כיצד לנצל מודלי שפה חזקים כמו GPT-4 ו-CLIP כדי ליצור מערכת מקצה לקצה שמספקת תוכן מותאם אישית ומניב תועלת.

התחלה עם מערכות RAG רב-מודליות

בחלק זה, נצלול לתוך תהליך בניית מערכת רב-מודלית של אחזור מוגבר על ידי יצירה (RAG) באמצעות GPT-4 ו-Llama Index.

ראשית, נקים את הסביבה הנדרשת על ידי התקנת החבילות הדרושות, כולל הדגם CLIP והספרייה Llama Index. כמו כן, נקבע את מפתח ה-API של OpenAI כדי לאפשר את השימוש ב-GPT-4.

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

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

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

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

הכנת הסביבה למערכת RAG רב-מודלית

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

  1. התקנת החבילות הנדרשות:

    • התקן את הדגם clip ליצירת אמבדינגים של תמונות.
    • התקן את החבילה openai לגישה למודל השפה GPT-4.
    • התקן את החבילה lama-index ליצירת אחסון ווקטורים רב-מודלי ולהטמעת צינור האחזור.
    • התקן כל חבילות עזר נוספות לפי הצורך.
  2. הגדרת מפתחות API:

    • השג מפתח API של OpenAI ואחסן אותו בסביבה שלך בצורה מאובטחת.
  3. יצירת תיקיות:

    • צור תיקיית input_images לאחסון התמונות הנכנסות.
    • צור תיקיית mixed_wiki לאחסון נתוני הטקסט והתמונות מויקיפדיה.
  4. הורדה והכנת הנתונים:

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

    • צור עותק של QuadrantClient לניהול אחסון הווקטורים הרב-מודלי.
    • הגדר שתי אוספים נפרדים, אחד לקטעי טקסט ואחד לאמבדינגים של תמונות.
    • צור StorageContext המכיל את המידע על אחסון הווקטורים.
    • טען את הנתונים מתיקיית mixed_wiki וצור את אחסון הווקטורים הרב-מודלי.
  6. הטמעת צינור האחזור:

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

    • צור תבנית פרומפט המשלבת את הטקסט והתמונות שנאחזרו עם שאילתת המשתמש.
    • השתמש בפונקציה openai.Completion.create() כדי לייצר את התגובה הסופית על ידי העברת תבנית הפרומפט והקשר שנאחזר.

איסוף והכנת נתונים רב-מודליים

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

  1. איסוף נתונים:

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

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

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

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

יצירת אינדקסים רב-מודליים

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

אחר כך, נוריד תמונות מדפי ויקיפדיה שונים הקשורים לרכבים חשמליים, כולל דגמי טסלה S, X ו-Rivian R1. נצור שני אחסוני ווקטורים נפרדים באמצעות Pinecone, אחד עבור קטעי הטקסט ואחד עבור אמבדינגי התמונות.

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

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

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

יישום צינור אחזור רב-מודלי

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

השלבים המרכזיים הם:

  1. אינדקסציה: נשלב נתוני תמונה וטקסט ונאחסן אותם באחסוני ווקטורים נפרדים. נחקור גם את השימוש ב-GPT-4 כדי ליצור תיאורים של תמונות, אשר יכולים להתווסף לקטעי הטקסט באחסון הווקטורים.

  2. אחזור: נקים צינור אחזור שיכול לאחזר את קטעי הטקסט והתמונות הרלוונטיים ביותר בהתבסס על שאילתת המשתמש.

  3. העשרה: המידע שנאחזר ישמש להעשרת הקלט למודל השפה (GPT-4 במקרה זה), אשר יייצר את התגובה הסופית.

להטמעה של זה, נשתמש בכלים והספריות הבאים:

  • CLIP: מודל רב-מודלי שיכול ליצור אמבדינגים עבור טקסט ותמונות.
  • Langchain: מסגרת לבניית יישומים עם מודלי שפה גדולים.
  • Pinecone: אחסון ווקטורים התומך בנתוני טקסט ותמונה.

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

לאחר מכן, נממש את צינור האחזור, אשר יאחזר את קטעי הטקסט והתמונות הרל

שאלות נפוצות