מבוא להטמעות ולחיפוש וקטורי
במסמך הזה מפורטת סקירה כללית על הטמעות ועל חיפוש וקטורי ב-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, אתם יכולים להיעזר בנושאים הבאים:
- אפשר ליצור טקסט, תמונות או סרטונים באמצעות הפונקציה
AI.GENERATE_EMBEDDING. - יצירה וחיפוש של הטמעות מולטימודאליות
- ביצוע חיפוש סמנטי ו-Retrieval-Augmented Generation (יצירה משולבת-אחזור, RAG)
יצירה אוטונומית של הטמעת נתונים
אתם יכולים להשתמש ביצירה אוטונומית של הטמעות כדי לפשט את התהליך של יצירה, תחזוקה ושאילתות של הטמעות. 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 גנרטיבי.
מגבלות
- שאילתות שמכילות את הפונקציה
VECTOR_SEARCHאוAI.SEARCHלא מואצות על ידי BigQuery BI Engine. - צמצום הנתונים בסינון מקדים בשאילתות
VECTOR_SEARCHו-AI.SEARCHעובר אופטימיזציה רק כשמסננים לפי עמודות מחולקות למחיצות או עמודות מאוחסנות, ולא לפי עמודות מקובצות. שימוש בעמודות מקובצות שלא מאוחסנות בשאילתת משנה של סינון מראש גורם לסריקה מלאה של הטבלה. מידע נוסף מופיע בקטע מגבלות הסינון המקדים.
המאמרים הבאים
- מידע נוסף על יצירת אינדקס וקטורי ועל שימוש באינדקסים וקטוריים עם חיפוש היברידי
- איך מבצעים חיפוש סמנטי או היברידי באמצעות הפונקציה
VECTOR_SEARCH - איך מבצעים חיפוש סמנטי או היברידי באמצעות הפונקציה
AI.SEARCH - מידע נוסף על יצירה אוטונומית של הטמעות
- במדריך חיפוש הטמעות באמצעות חיפוש וקטורי מוסבר איך ליצור אינדקס וקטורי, ואז לבצע חיפוש וקטורי של הטמעות עם ובלי האינדקס.
במדריך ביצוע חיפוש סמנטי ו-RAG מוסבר איך:
- ליצור הטמעות טקסט.
- יוצרים אינדקס וקטורי במערכים המוטמעים.
- ביצוע חיפוש וקטורי באמצעות ההטמעות כדי לחפש טקסט דומה.
- לבצע יצירה משולבת-אחזור (RAG) באמצעות תוצאות של חיפוש וקטורי כדי להרחיב את הקלט של ההנחיה ולשפר את התוצאות.
במדריך ניתוח קובצי PDF בצינור עיבוד נתונים של יצירת נתונים משולבת אחזור (RAG) מוסבר איך ליצור צינור עיבוד נתונים של RAG שמבוסס על תוכן מנותח של קובצי PDF.
אתם יכולים גם לבצע חיפושים וקטוריים באמצעות BigQuery DataFrames ב-Python. ב-Notebook פיתוח אפליקציה של חיפוש וקטורי באמצעות BigQuery DataFrames מוסבר איך לעשות את זה.