Diese Seite enthält Referenzmaterial für den ScaNN-Index.
Parameter für die Abstimmung
Die folgenden Indexparameter und Datenbankflaggen werden zusammen verwendet, um das richtige Gleichgewicht zwischen Rückruf und QPS zu finden.
Parameter für die Abstimmung | Beschreibung | Optionstyp |
---|---|---|
max_num_levels |
Die maximale Anzahl von Centroidebenen des K-Means-Clustering-Baums.
|
Indexerstellung (optional) |
num_leaves |
Die Anzahl der Partitionen, die auf diesen Index angewendet werden sollen. Die Anzahl der Partitionen, auf die Sie beim Erstellen eines Index anwenden, wirkt sich auf die Indexleistung aus. Wenn Sie die Partitionen für eine festgelegte Anzahl von Vektoren erhöhen, erstellen Sie einen detaillierteren Index, was die Abruf- und Abfrageleistung verbessert. Dies geht jedoch zu Lasten der Indexerstellungszeit. Da Drei-Ebenen-Bäume schneller erstellt werden als Zwei-Ebenen-Bäume, können Sie den Wert für num_leaves_value beim Erstellen eines Drei-Ebenen-Baumindexes erhöhen, um eine bessere Leistung zu erzielen.
|
Indexerstellung (erforderlich) |
quantizer |
Die Art des Quantisierers, die Sie für den K-Means-Baum verwenden möchten. Der Standardwert ist SQ8 . Dies bietet eine bessere Abfrageleistung bei minimalen Recall-Verlusten (in der Regel weniger als 1–2%).Legen Sie den Wert auf FLAT fest, wenn ein Recall von mindestens 99% erforderlich ist. |
Indexerstellung (optional) |
scann.enable_pca |
Hiermit wird die Hauptkomponentenanalyse (Principal Component Analysis, PCA) aktiviert. Dabei handelt es sich um eine Dimensionsreduktionstechnik, mit der die Größe der Einbettung nach Möglichkeit automatisch verringert wird. Diese Option ist standardmäßig aktiviert. Legen Sie false fest, wenn sich die Erinnerungsfähigkeit verschlechtert. |
Indexerstellung (optional) |
scann.num_leaves_to_search |
Mit diesem Datenbankflag wird die absolute Anzahl der Blätter oder Partitionen gesteuert, in denen gesucht werden soll. So können Sie einen Kompromiss zwischen Rückruf und Abfragerate eingehen. Der Standardwert ist 1% des in num_leaves festgelegten Werts. Ein höherer Wert führt zu einer besseren Trefferquote, aber zu einer niedrigeren QPS. Ein niedrigerer Wert führt dagegen zu einem geringeren Recall, aber zu einer höheren QPS. |
Abfragelaufzeit (optional) |
scann.pre_reordering_num_neighbors |
Wenn das Datenbankflag festgelegt ist, gibt es an, wie viele Kandidaten in den Neusortierungsphasen berücksichtigt werden sollen, nachdem bei der ersten Suche eine Reihe von Kandidaten ermittelt wurde. Legen Sie für diesen Parameter einen Wert fest, der höher ist als die Anzahl der Nachbarn, die in der Abfrage zurückgegeben werden sollen. Ein höherer Wert führt zu einer besseren Trefferquote, aber zu einer geringeren Abfragerate pro Sekunde. Setzen Sie diesen Wert auf 0 , um die Neuanordnung zu deaktivieren. Der Standardwert ist 0 , wenn die PCA während der Indexerstellung nicht aktiviert ist. Andernfalls ist der Standardwert 50 x K , wobei K das in der Abfrage angegebene LIMIT ist. |
Abfragelaufzeit (optional) |
scann.num_search_threads |
Die Anzahl der Sucher-Threads für die parallele Suche. So lässt sich die Latenz einzelner Abfragen reduzieren, indem in latenzempfindlichen Anwendungen mehr als ein Thread für die ScaNN-ANN-Suche verwendet wird. Diese Einstellung verbessert die Latenz einzelner Abfragen nicht, wenn die Datenbank bereits CPU-gebunden ist. Der Standardwert ist 2 . |
Abfragelaufzeit (optional) |