מבוא להטמעות ולחיפוש וקטורי

במאמר הזה מוסבר על הטמעות וחיפוש וקטורי ב-BigQuery. חיפוש וקטורי הוא שיטה להשוואה בין אובייקטים דומים באמצעות הטמעות, והוא משמש להפעלת מוצרי Google, כולל חיפוש Google,‏ YouTube ו-Google Play. אתם יכולים להשתמש בחיפוש וקטורי כדי לבצע חיפושים סמנטיים בקנה מידה נרחב, או לבצע חיפוש משולב שמשלב חיפוש סמנטי עם חיפוש לקסיקלי (מילת מפתח). כשמשתמשים באינדקסים וקטוריים עם חיפוש וקטורי, אפשר לנצל טכנולוגיות בסיסיות כמו הוספה לאינדקס של קובץ הפוך (IVF) ואלגוריתם ScaNN.

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

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

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

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

תרחישים לדוגמה

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

  • ‫Retrieval-augmented generation (RAG): ניתוח מסמכים, חיפוש וקטורי בתוכן ויצירת תשובות מסוכמות לשאלות בשפה טבעית באמצעות מודלים של Gemini, והכול ב-BigQuery. ב-Notebook פיתוח אפליקציה של חיפוש וקטורי באמצעות BigQuery DataFrames מוסבר איך לעשות את זה.
  • המלצה על מוצרים חלופיים או מוצרים תואמים: שיפור אפליקציות של מסחר אלקטרוני על ידי הצעת מוצרים חלופיים על סמך התנהגות הלקוחות ודמיון בין מוצרים.
  • ניתוח נתוני יומן: עוזר לצוותים לזהות באופן יזום חריגות ביומנים ולזרז את החקירות. אתם יכולים גם להשתמש ביכולת הזו כדי להעשיר את ההקשר של מודלי LLM, במטרה לשפר את זיהוי האיומים, את הניתוח הפורנזי ואת תהליכי העבודה לפתרון בעיות. ב-Notebook‏ Log Anomaly Detection & Investigation with Text Embeddings + BigQuery Vector Search מוסבר איך עושים את זה.
  • אשכולות וטירגוט: פילוח קהלים בצורה מדויקת. לדוגמה, רשת בתי חולים יכולה לקבץ מטופלים באמצעות הערות בשפה טבעית ונתונים מובְנים, ומשווקים יכולים לטרגט מודעות על סמך כוונת השאילתה. ב-notebook‏ Create-Campaign-Customer-Segmentation מופיעה דוגמה לתרחיש הזה.
  • זיהוי ישויות וביטול כפילויות: ניקוי ואיחוד של נתונים. לדוגמה, חברת פרסום יכולה לבטל כפילויות של רשומות עם פרטים אישיים מזהים (PII), או שחברת נדל"ן יכולה לזהות כתובות תואמות למשלוח דואר.

יצירת הטמעות

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

יצירת הטמעות בודדות

אתם יכולים להשתמש בפונקציה AI.EMBED עם מודלים להטמעה של Gemini Enterprise Agent Platform כדי ליצור הטמעה אחת של הקלט.

הפונקציה AI.EMBED תומכת בסוגי הקלט הבאים:

  • נתוני טקסט.
  • נתוני תמונה שמיוצגים על ידי ערכי ObjectRef.

יצירת טבלה של הטמעות

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

במודלים מרוחקים, כל ההסקה מתרחשת ב-Agent Platform. בסוגי מודלים אחרים, כל ההסקה מתרחשת ב-BigQuery. התוצאות נשמרות ב-BigQuery.

כדי לנסות ליצור הטמעות ב-BigQuery ML, השתמשו בנושאים הבאים:

יצירת הטמעת נתונים אוטונומית

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

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

  • ‫VECTOR_SEARCH: הרצת חיפוש וקטורי סמנטי או חיפוש היברידי באמצעות SQL.

  • ‫AI.SEARCH: חיפוש סמנטי או היברידי של תוצאות שקרובות למחרוזת שציינתם. אפשר להשתמש בפונקציה הזו אם בטבלה מופעלת יצירת הטמעות אוטונומית.

  • ‫AI.SIMILARITY: משווה בין שני קלטים על ידי חישוב דמיון הקוסינוס בין ההטמעות שלהם. הפונקציה הזו מתאימה אם רוצים לבצע מספר קטן של השוואות ולא חישבתם מראש הטמעות. כדאי להשתמש ב-VECTOR_SEARCH כשהביצועים קריטיים ואתם עובדים עם מספר גדול של הטמעות. השוואה בין הפונקציות כדי לבחור את הפונקציה שהכי מתאימה לתרחיש לדוגמה שלכם.

אפשר גם ליצור אינדקס וקטורי באמצעות ההצהרה CREATE VECTOR INDEX. כשמשתמשים באינדקס וקטורי, הפונקציות VECTOR_SEARCH ו-AI.SEARCH משתמשות בטכניקת החיפוש Approximate Nearest Neighbor כדי לשפר את ביצועי החיפוש הווקטורי, אבל זה בא על חשבון צמצום האחזור, ולכן התוצאות שמתקבלות הן יותר מקורבות. בלי אינדקס וקטורי, הפונקציות האלה משתמשות בחיפוש Brute Force כדי למדוד את המרחק של כל רשומה. אתם יכולים גם לבחור להשתמש ב-brute force כדי לקבל תוצאות מדויקות, גם כשיש אינדקס וקטורי זמין.

טיפול בהוצאה משימוש של מודל הטמעה

כשהמודל להטמעה יוצא משימוש, צריך להעביר את תהליכי העבודה למודל חלופי נתמך לפני שהמודל שהוצא משימוש יושבת. המודלים הבאים יצאו משימוש ב-1 באפריל 2027:

  • text-embedding-005
  • text-embeding-004
  • text-multilingual-embedding-002
  • multimodalembedding@001

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

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

כדי לעבור למודל הטמעה חלופי:

  1. ליצור מחדש את ההטמעות בטבלאות הקיימות באמצעות המודל החלופי, כדי שכל ההטמעות המאוחסנות ישתפו את אותו מרחב הטמעה.
    • אם אתם משתמשים בפונקציה AI.EMBED או AI.GENERATE_EMBEDDING, אתם צריכים לעדכן את השאילתות או את המודלים המרוחקים כך שישתמשו במודל החלופי, ואז ליצור מחדש את ההטמעות של הטבלאות.
    • אם אתם משתמשים ביצירת הטמעות אוטונומית, הסירו את עמודת ההטמעות שנוצרו והוסיפו עמודת הטמעות שנוצרו באמצעות המודל החלופי.
  2. מעדכנים את השאילתות או את צינורות עיבוד הנתונים שיוצרים הטמעות בזמן החיפוש, כדי להשתמש באותו מודל חלופי כמו בהטמעות של הטבלה.
  3. אחרי שיוצרים מחדש את ההטמעות בטבלה, צריך ליצור מחדש את האינדקסים של הווקטורים בעמודת ההטמעה.

תמחור

הפונקציות VECTOR_SEARCH ו-AI.SEARCH וההצהרה CREATE VECTOR INDEX משתמשות בתמחור המחשוב של BigQuery.

  • הפונקציות VECTOR_SEARCH ו-AI.SEARCH: החיוב על חיפוש דמיון מתבצע לפי תמחור VOD או לפי מהדורות.

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

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

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

  • אינדקסים של וקטורים צוברים עלויות אחסון כשהם פעילים.
  • אפשר למצוא את גודל האחסון של האינדקס באמצעות התצוגה INFORMATION_SCHEMA.VECTOR_INDEXES. אם אינדקס הווקטורים עדיין לא הגיע ל-100% כיסוי, עדיין תחויבו על מה שנוסף לאינדקס. אפשר לבדוק את הדפים שנכללים באינדקס באמצעות התצוגה INFORMATION_SCHEMA.VECTOR_INDEXES.

מכסות ומגבלות

מידע נוסף זמין במאמרים מגבלות על אינדקסים וקטוריים ומגבלות על פונקציות AI גנרטיבי.

מגבלות

המאמרים הבאים