Puedes medir la precisión de la consulta de MongoDB Vector Search evaluando cuán cercanos están los resultados de una búsqueda ANN de los resultados de una búsqueda ENN con vectores cuantificados, utilizando los mismos criterios de consulta. Es decir, puede comparar los resultados de la búsqueda ANN con los resultados de la búsqueda ENN y medir con qué frecuencia los resultados de búsqueda de ANN incluyen a los vecinos más cercanos en los resultados de la búsqueda de ENN.
Casos de uso
Es posible que quieras medir la precisión de los resultados si tienes alguna de las siguientes condiciones:
Vectores cuantizados
Gran cantidad de vectores
Vectores de baja dimensión
Requisitos previos
Para probar los ejemplos de esta página, requiere lo siguiente:
Un clúster con, opcionalmente, el conjunto de datos de muestra.
Procedimientos
Para evaluar la precisión de los resultados de tu consulta de $vectorSearch, debes realizar lo siguiente:
Crea un índice de MongoDB Vector Search en el campo de vectores y en cualquier otro campo por el que quieras prefiltrar los datos.
Recomendamos usar vectores cuantizados para mejorar el almacenamiento de los vectores y la velocidad de las queries. Si no tienes vectores cuantizados, puedes habilitar la cuantización automática al realizar la indexación de tu campo tipo
vector.Construya y ejecute la consulta ENN seguida de la consulta ANN.
Compara los resultados de la consulta ANN con los resultados de la consulta ENN para evaluar las semejanzas y diferencias en los resultados.
Esta sección demuestra cómo realizar los pasos 3 anteriores sobre datos en la colección sample_mflix.embedded_movies. Si no desea usar el conjunto de datos de muestra, puede realizar los procedimientos con sus propios datos.
Cree el índice de búsqueda vectorial de MongoDB
Esta sección demuestra cómo crear un índice de Búsqueda Vectorial de MongoDB para ejecutar ANN y ENN MongoDB Vector Search queries.
Ejecuta las consultas
Comparar los Resultados
Los nueve primeros documentos en los resultados de ENN y ANN query de ejemplo son los mismos y tienen la misma puntuación. Esto indica un elevado nivel de similitud en los principales resultados de la query. Sin embargo, el décimo documento en los resultados de la query ENN y ANN es diferente, lo que refleja una ligera variación en la búsqueda exacta y aproximada del vecino más cercano.
La búsquedaENN examina todos los candidatos posibles y devuelve la coincidencia más cercana a la consulta según el índice de similitud. La búsquedaANN utiliza aproximaciones para acelerar la búsqueda, lo que podría alterar la puntuación de los documentos. Si se aumenta el valor numCandidates en la consulta ANN, los resultados se asemejarán más a los de la consulta ENN. Sin embargo, esto consumiría recursos computacionales adicionales y podría reducir la velocidad de la consulta. El décimo documento en los resultados refleja el equilibrio entre precisión y velocidad.
Tras evaluar cuantitativamente los resultados comparándolos con la verdad fundamental de ENN, recomendamos probar un conjunto de consultas 100 de la misma manera y calcular la similitud de Jaccard entre los conjuntos de resultados. La similitud de Jaccard se calcula dividiendo la intersección entre dos conjuntos (es decir, los elementos superpuestos) por el tamaño total del conjunto. Esto permite evaluar el rendimiento de recuperación de las consultas de ANN, incluidas aquellas realizadas con vectores cuantificados.
Si observa grandes discrepancias entre los resultados de sus consultas ENN y ANN, le recomendamos ajustar el valor numCandidates para lograr un equilibrio ideal entre precisión y velocidad para su aplicación.
Se recomienda utilizar listas de evaluación para una lista estructurada de queries con los resultados ideales para la query de ANN o los valores de información fundamental de ENN. Se pueden utilizar los resultados de la query de ENN como lista de evaluación de referencia y luego evaluar los resultados de la query de ANN con esta lista de evaluación para medir la recuperación, la superposición y el rendimiento. Las listas de evaluación proporcionan una forma de evaluar si las queries de ANN cumplen con los umbrales de precisión o recuperación deseados en comparación con la línea de base de ENN. Utiliza los LLM para generar las queries de ejemplo.
Mejorar la precisión con la reordenación
Para mejorar la precisión de los resultados de $vectorSearch, puede volver a clasificarlos por relevancia semántica para la query. La reclasificación reordena los resultados para priorizar los documentos más pertinentes. Puede aplicar la etapa $rerank después de la etapa $vectorSearch para reordenar los resultados utilizando un modelo de reclasificación.
Para obtener más información, consulte $rerank Etapa del pipeline de agregación.