סקירה כללית של ביצועי שאילתות וקטוריות ב-ScaNN

בוחרים גרסה של מאמר העזרה:

בדף הזה מובאת סקירה כללית של שיפור הביצועים של שאילתות וקטוריות באמצעות אינדקס Scalable Nearest Neighbor ‏ (ScaNN) של AlloyDB AI. מידע נוסף מופיע במאמר יצירת אינדקסים ושאילתות של וקטורים.

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

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

מודלים של הטמעה בממדים גבוהים יכולים לשמור חלק גדול מהמידע בממדיות נמוכה בהרבה. לדוגמה, אפשר לשמור 90% מהמידע עם 20% בלבד מהמאפיינים של ההטמעה. כדי להאיץ את החיפוש במערכי נתונים כאלה, אינדקס ה-ScaNN של AlloyDB AI מבצע באופן אוטומטי צמצום ממדים באמצעות ניתוח רכיבים ראשיים (PCA) על הווקטורים המאונדקסים, וכך מצמצם עוד יותר את השימוש במעבד ואת השימוש בזיכרון לחיפוש הווקטורים. מידע נוסף זמין במאמר scann.enable_pca.

מכיוון שהפחתת המימד גורמת לאובדן קל של היזכרות באינדקס, אינדקס AlloyDB AI ScaNN מפצה על אובדן היזכרות על ידי ביצוע שלב דירוג עם מספר גדול יותר של וקטורים מועמדים שעברו PCA מהאינדקס. לאחר מכן,‏ ScaNN מדרג מחדש את הווקטורים המועמדים שעברו PCA לפי הווקטורים המקוריים. מידע נוסף זמין במאמר scann.pre_reordering_num_neighbors.

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