En esta página, se proporciona material de referencia para el índice ScaNN.
Parámetros de ajuste
Los siguientes parámetros de índice y marcas de base de datos se usan en conjunto para encontrar el equilibrio correcto entre la recuperación y la QPS.
Parámetro de ajuste | Descripción | Tipo de opción |
---|---|---|
max_num_levels |
Es la cantidad máxima de niveles de centroides del árbol de agrupamiento de K-means.
|
Creación de índices (opcional) |
num_leaves |
Es la cantidad de particiones que se aplicarán a este índice. La cantidad de particiones a las que se aplica un índice cuando se crea afecta su rendimiento. Si aumentas las particiones para una cantidad determinada de vectores, creas un índice más detallado, lo que mejora el rendimiento de la recuperación y las consultas. Sin embargo, esto implica tiempos de creación de índices más largos. Dado que los árboles de tres niveles se compilan más rápido que los de dos niveles, puedes aumentar el num_leaves_value cuando crees un índice de árbol de tres niveles para lograr un mejor rendimiento.
|
Creación de índices (obligatorio) |
quantizer |
Es el tipo de cuantificador que deseas usar para el árbol de K-means. El valor predeterminado se establece en SQ8 , lo que proporciona un mejor rendimiento de las consultas con una pérdida de recuperación mínima (por lo general, inferior al 1 o 2%).Establece el valor en FLAT si se requiere una recuperación del 99% o superior. |
Creación de índices (opcional) |
scann.enable_pca |
Habilita el análisis de componentes principales (PCA), que es una técnica de reducción de dimensión que se usa para reducir automáticamente el tamaño de la incorporación cuando sea posible. Esta opción está habilitada de forma predeterminada. Establece la opción en false si observas un deterioro en la recuperación. |
Creación de índices (opcional) |
scann.num_leaves_to_search |
Esta marca de base de datos controla la cantidad absoluta de hojas o particiones que se deben buscar, lo que te permite equilibrar la recuperación y las QPS. El valor predeterminado es el 1% del valor establecido en num_leaves . Un valor más alto generará una mejor recuperación, pero una QPS más baja. Del mismo modo, un valor más bajo generará una recuperación más baja, pero una QPS más alta. |
Tiempo de ejecución de consulta (opcional) |
scann.pre_reordering_num_neighbors |
Cuando se establece, la marca de base de datos especifica la cantidad de vecinos candidatos que se deben tener en cuenta durante las etapas de reordenamiento después de que la búsqueda inicial identifica un conjunto de candidatos. Establece este parámetro en un valor superior a la cantidad de vecinos que deseas que muestre la búsqueda. Un valor más alto genera una mejor recuperación, pero una QPS más baja. Establece este valor en 0 para inhabilitar el reordenamiento. El valor predeterminado es 0 si no se habilita el PCA durante la creación del índice. De lo contrario, el valor predeterminado es 50 x K , donde K es el LIMIT especificado en la consulta. |
Tiempo de ejecución de consulta (opcional) |
scann.num_search_threads |
Es la cantidad de subprocesos de búsqueda para la búsqueda multisubproceso. Esto puede ayudar a reducir la latencia de una sola consulta mediante el uso de más de un subproceso para la búsqueda de ANN de ScaNN en aplicaciones sensibles a la latencia. Este parámetro de configuración no mejora la latencia de una sola consulta si la base de datos ya está vinculada a la CPU. El valor predeterminado es 2 . |
Tiempo de ejecución de consulta (opcional) |