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

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

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

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

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

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

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

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

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

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

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

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

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

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

תמחור

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

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

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

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

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

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

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

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

מגבלות

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