מבוא להטמעות ולחיפוש וקטורי
במסמך הזה מפורטת סקירה כללית על הטמעות ועל חיפוש וקטורי ב-BigQuery. חיפוש וקטורי הוא טכניקה להשוואה בין אובייקטים דומים באמצעות הטמעה, והוא משמש להפעלת מוצרי Google, כולל חיפוש Google, YouTube ו-Google Play. אתם יכולים להשתמש בחיפוש וקטורי כדי לבצע חיפושים בהיקף גדול. כשמשתמשים באינדקסים של וקטורים עם חיפוש וקטורי, אפשר לנצל טכנולוגיות בסיסיות כמו אינדקס קבצים הפוך (IVF) ואלגוריתם ScaNN.
חיפוש וקטורי מבוסס על הטמעות. הטמעה היא וקטור מספרי רב-ממדי שמייצג ישות נתונה, כמו קטע טקסט או קובץ אודיו. מודלים של למידת מכונה (ML) משתמשים בהטמעות כדי לקודד סמנטיקה לגבי ישויות כאלה, וכך להקל על ניתוח שלהן והשוואה ביניהן. לדוגמה, פעולה נפוצה במודלים של אשכולות, סיווג והמלצות היא מדידת המרחק בין וקטורים במרחב הטמעה כדי למצוא פריטים שהדמיון הסמנטי ביניהם הוא הגדול ביותר.
כדי להבין את המושג הזה של דמיון סמנטי ומרחק במרחב הטמעה, כדאי להסתכל על האופן שבו פריטים שונים יכולים להיות ממוקמים בתרשים. לדוגמה, מונחים כמו חתול, כלב ואריה, שכולם מייצגים סוגים של בעלי חיים, מקובצים קרוב זה לזה במרחב הזה בגלל המאפיינים הסמנטיים המשותפים שלהם. באופן דומה, מילים כמו מכונית, משאית והמונח הכללי יותר רכב ייצרו עוד אשכול. כפי שמוצג בתמונה הבאה:
אפשר לראות שקבוצות בעלי החיים וכלי הרכב ממוקמות רחוק זו מזו. ההפרדה בין הקבוצות ממחישה את העיקרון שלפיו ככל שהאובייקטים קרובים יותר במרחב ההטמעה, כך הם דומים יותר מבחינה סמנטית, ומרחקים גדולים יותר מצביעים על חוסר דמיון סמנטי גדול יותר.
תרחישים לדוגמה
השילוב של יצירת הטמעה וחיפוש וקטורי מאפשר הרבה תרחישי שימוש מעניינים. הנה כמה תרחישי שימוש אפשריים:
- יצירה משולבת-אחזור (RAG): ניתוח מסמכים, ביצוע חיפוש וקטורי בתוכן ויצירת תשובות מסוכמות לשאלות בשפה טבעית באמצעות מודלים של Gemini, והכול בתוך BigQuery. במאמר פיתוח אפליקציית חיפוש וקטורי באמצעות BigQuery DataFrames יש Notebook שממחיש את התרחיש הזה.
- המלצה על מוצרים חלופיים או על מוצרים תואמים: שיפור אפליקציות של מסחר אלקטרוני באמצעות הצעת חלופות למוצרים על סמך התנהגות הלקוחות ודמיון בין מוצרים.
- ניתוח יומנים: עוזר לצוותים לתעדף באופן יזום אנומליות ביומנים ולזרז את החקירות. אפשר גם להשתמש ביכולת הזו כדי להעשיר את ההקשר של מודלים של LLM, וכך לשפר את זיהוי האיומים, את פורנזיקה דיגיטלית ואת תהליכי העבודה לפתרון בעיות. במאמר 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, אפשר להיעזר בנושאים הבאים:
- יצירת טקסט, תמונות או סרטונים באמצעות הפונקציה
AI.GENERATE_EMBEDDING. - יצירה וחיפוש של הטמעות מרובות מצבים
- ביצוע חיפוש סמנטי ויצירה משופרת באמצעות אחזור
יצירה אוטונומית של הטמעה
אתם יכולים להשתמש ביצירה אוטונומית של הטמעות כדי לפשט את התהליך של יצירה, תחזוקה ושאילתות של הטמעות. 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 כדי למדוד את המרחק של כל רשומה. אפשר גם לבחור להשתמש בשיטת הכוח הגס כדי לקבל תוצאות מדויקות גם כשזמין אינדקס וקטורי.
תמחור
הפונקציות 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.
המאמרים הבאים
- מידע נוסף על יצירת אינדקס וקטורי
VECTOR_SEARCHכאן מוסבר איך לבצע חיפוש וקטורי באמצעות הפונקציה.- איך מבצעים חיפוש סמנטי באמצעות הפונקציה
AI.SEARCH - מידע נוסף על יצירה אוטונומית של הטמעות
- כדי ללמוד איך ליצור אינדקס וקטורי, ואז לבצע חיפוש וקטורי של הטמעות עם האינדקס ובלעדיו, אפשר לנסות את המדריך Search embeddings with vector search (חיפוש הטמעות באמצעות חיפוש וקטורי).
כדאי לנסות את המדריך ביצוע חיפוש סמנטי ויצירת טקסט עם Retrieval-Augmented Generation (יצירה משולבת-אחזור, RAG) כדי ללמוד איך לבצע את המשימות הבאות:
- ליצור הטמעות טקסט.
- יצירת אינדקס וקטורי להטמעות.
- מבצעים חיפוש וקטורי באמצעות ההטמעות כדי לחפש טקסט דומה.
- ביצוע יצירה משולבת-אחזור (RAG) באמצעות תוצאות חיפוש וקטורים כדי להוסיף מידע לקלט של ההנחיה ולשפר את התוצאות.
כדי ללמוד איך ליצור צינור RAG על סמך תוכן PDF מנותח, אפשר לנסות את המדריך לניתוח קובצי PDF בצינור ליצירת תוכן עם שליפה משופרת.
אפשר גם לבצע חיפושי וקטורים באמצעות BigQuery DataFrames ב-Python. במאמר פיתוח אפליקציית חיפוש וקטורי באמצעות BigQuery DataFrames יש Notebook שממחיש את הגישה הזו.