סקירה כללית על Vector Search ב-AlloyDB AI

‫AlloyDB AI משלב עיבוד וקטורי וחיפוש דמיון ישירות ב-AlloyDB ל-PostgreSQL, ומאפשר לשלוח שאילתות גם לנתונים רלציוניים מובְנים וגם לנתונים לא מובְנים לפי משמעות סמנטית. השילוב של יכולות SQL סטנדרטיות עם הוספה לאינדקס של Approximate Nearest Neighbor ‏ (ANN) מאפשר ל-AlloyDB AI לתמוך בתהליכי עבודה של חיפוש סמנטי ו-Retrieval-Augmented Generation ‏ (RAG), בלי שתצטרכו לפרוס ולנהל מסד נתונים וקטורי נפרד.

ארכיטקטורה וביצועים מרכזיים

‫AlloyDB משתמש בתוסף pgvector של PostgreSQL לפונקציונליות של וקטורים. הוא תומך באינדקס HNSW הפופולרי, וגם באינדקס Scalable Nearest Neighbors‏ (ScaNN) – אלגוריתם מתקדם לחיפוש וקטורי שמבוסס על שנים של מחקר בחיפוש Google. השילוב העמוק הזה בסביבת PostgreSQL מאפשר פעולות מהירות ותואמות ל-pgvector, ושאילתות סמנטיות מתקדמות.

ביצועי האינדקס של ScaNN

אינדקס ScaNN מציע יתרונות מהירות משמעותיים בהשוואה לאינדקס HNSW (עולמות קטנים ניתנים לניווט היררכי) הרגיל של PostgreSQL, ומספק פעולות וקטוריות מהירות שנדרשות לעומסי עבודה תובעניים של AI:

פעולה שיפור בביצועים (בהשוואה לאינדקס HNSW רגיל של PostgreSQL) תכונות
יצירת אינדקס עד פי 10 מהר יותר יצירת אינדקס מקבילית
שאילתות חיפוש וקטורי עד פי 4 יותר מהר תחזוקה אוטומטית של האינדקס
שאילתות חיפוש וקטורי שסוננו עד פי 10 יותר מהר ניראות ברמה שמתאימה לארגונים

סינון דינמי ואופטימיזציה של שאילתות

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

  • סינון דינמי: המנגנון הזה מבטיח ביצועים אופטימליים כשמשתמשים במסננים, בצירופים ובאינדקסים וקטוריים בו-זמנית. הוא פועל על ידי מעקב אחרי הנתונים הסטטיסטיים של הרצת השאילתות בזמן הריצה, למידת הסלקטיביות של המסננים והתאמה של תוכנית ההרצה כדי לקבוע את הסדר היעיל ביותר של הפעלת המסננים והחיפוש הווקטורי.
  • סינון מוטבע: סינון מוטבע הוא אסטרטגיית אופטימיזציה שספציפית לאלגוריתם ScaNN, ומבצעת חיפוש וקטורי והערכה של מסנן מטא נתונים במקביל. הוא משתמש באינדקסים משניים של PostgreSQL (כמו B-trees,‏ GIN או GiST) כדי ליצור רשימה קצרה (מפת סיביות) של שורות שעומדות בקריטריונים של הסינון. בסריקת הווקטורים הבאה, המערכת מחשבת רק את המרחקים של הווקטורים שנכללים בקבוצה המסוננת מראש, וכך מצמצמת באופן משמעותי את התקורה החישובית, במיוחד כשמדובר במסננים סלקטיביים במידה בינונית.

שילוב חלק עם Gemini Enterprise Agent Platform

‫AlloyDB AI מתוכנן לשילוב מובנה עם האקוסיסטם של Agent Platform, שמאפשר לבצע טרנספורמציה של נתונים ולהעשיר אותם ישירות במסד הנתונים באמצעות SQL.

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

הפלטפורמה תומכת ביצירת הטמעות אוטומטיות באמצעות התוסף google_ml_integration. היכולת הזו מאפשרת להמיר נתונים תפעוליים (טקסט, תמונות וסרטונים) להטמעות וקטוריות באמצעות מודלים של Agent Platform, כמו text-embedding-005.

  • רישום מודלים: מודלים של Agent Platform (הטמעה וגנרטיביים) נרשמים במסד הנתונים באמצעות הפרוצדורה google_ml.create_model.
  • עמודות וירטואליות: אפשר ליצור הטמעות באופן אוטומטי ולשמור אותן בעמודה שנוצרה באמצעות הפונקציה embedding(), כדי לוודא שנתוני הווקטורים יישארו מסונכרנים עם נתוני עמודת המקור:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

שאילתות והעשרה באמצעות AI גנרטיבי

אחרי ששומרים את הטמעות הווקטורים, המפתחים יכולים לבצע חיפושים סמנטיים מתוחכמים באמצעות אופרטור הדמיון הווקטורי (<=>) ב-SQL סטנדרטי. בנוסף, אפשר להעביר את תוצאות החיפושים האלה ישירות למודלים של AI גנרטיבי, כמו gemini-2.0-flash-001, באמצעות פונקציות כמו google_ml.generate_content להעשרת שאילתות שמבוססות על RAG וליצירת פלט ידידותי למשתמש.