Leistung von ScaNN-Vektorabfragen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite finden Sie eine konzeptionelle Übersicht zur Verbesserung der Leistung von Vektorabfragen mit dem Scalable Nearest Neighbor (ScaNN)‑Index von AlloyDB AI. Weitere Informationen finden Sie unter Indizes erstellen und Vektoren abfragen.

Der ScaNN-Index verwendet die auf der Baumquantisierung basierende Indexierung, bei der Indizes einen Suchbaum zusammen mit einer Quantisierungs- oder Hash-Funktion lernen. Wenn Sie eine Abfrage ausführen, wird der Suchbaum verwendet, um den Suchraum zu verkleinern, während die Quantisierung zur Komprimierung der Indexgröße verwendet wird. Durch diese Bereinigung wird die Berechnung der Ähnlichkeit – also der Distanz – zwischen dem Abfragevektor und den Datenbankvektoren beschleunigt.

Um sowohl eine hohe QPS-Rate (Queries per Second, Abfragen pro Sekunde) als auch einen hohen Recall bei Ihren Nearest-Neighbor-Abfragen zu erzielen, müssen Sie den Baum Ihres ScaNN-Index so partitionieren, dass er am besten zu Ihren Daten und Abfragen passt.

Mit hochdimensionalen Einbettungsmodellen lässt sich ein Großteil der Informationen bei einer viel geringeren Dimensionalität beibehalten. So können Sie beispielsweise 90% der Informationen mit nur 20% der Dimensionen des Einbettungsvektors beibehalten. Um die Verarbeitung solcher Datasets zu beschleunigen, wird im AlloyDB AI ScaNN-Index automatisch eine Dimensionsreduzierung mithilfe der Hauptkomponentenanalyse (Principal Component Analysis, PCA) für die indexierten Vektoren durchgeführt. Dadurch wird die CPU- und Speicherauslastung für die Vektorsuche weiter reduziert. Weitere Informationen finden Sie unter scann.enable_pca.

Da die Dimensionsreduzierung zu einem geringfügigen Recall-Verlust im Index führt, wird dieser Verlust im AlloyDB AI ScaNN-Index dadurch kompensiert, dass zuerst ein Ranking-Schritt mit einer größeren Anzahl von PCA-Vektorkandidaten aus dem Index durchgeführt wird. Anschließend werden die PCA-Vektorkandidaten von ScaNN anhand der Originalvektoren neu eingestuft. Weitere Informationen finden Sie unter scann.pre_reordering_num_neighbors.

Nächste Schritte