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

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

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

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

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

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

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

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

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

יצירת הטמעות

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

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

אפשר להשתמש בפונקציה AI.EMBED עם מודלים של הטמעות ב-Vertex AI כדי ליצור הטמעה יחידה של הקלט.

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

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

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

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

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

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

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

אלה פונקציות החיפוש שזמינות:

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

תמחור

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

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

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

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

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

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

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

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

מגבלות

שאילתות שמכילות את הפונקציה VECTOR_SEARCH או AI.SEARCH לא מואצות על ידי BigQuery BI Engine.

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