Volver al inicio

Prefiltrado KNN Manticore Search con ACORN-1

Filtrado Preliminar KNN en Manticore Search optimiza HNSW para consultas con filtros de atributos. ACORN-1 reduce cálculos de distancia, fullscan automático para subconjuntos pequeños. Ejemplos Detallados SQL y JSON.

ACORN-1 en Manticore: Cómo Acelerar KNN con Filtros
Advertisement 728x90

# Prefiltrado KNN en Manticore Search: Optimizando HNSW con ACORN-1

El prefiltrado KNN en Manticore Search versión 19.0.1+ integra filtros de atributos directamente en la travesía del grafo HNSW. Esto elimina la ineficiencia del post-filtrado, donde KNN escanea todo el conjunto de datos y luego se aplican los filtros. En un catálogo de 10 millones de productos con un filtro de categoría 'electrónicos' (5% de documentos), el post-filtrado podría devolver menos de los k resultados solicitados, desperdiciando recursos en nodos irrelevantes.

El prefiltrado verifica las condiciones durante la exploración de candidatos, asegurando exactamente k resultados de documentos que coincidan.

Problemas del post-filtrado y el cambio al prefiltrado

En el post-filtrado, HNSW ignora los filtros: el algoritmo encuentra los k vectores globalmente más cercanos y luego descarta los que no coinciden. Con filtros estrictos (p. ej., categoría='electrónicos' AND precio<500), el grafo explora principalmente áreas irrelevantes, reduciendo el recall y aumentando la latencia.

Google AdInline article slot

Ejemplo de consulta SQL con prefiltrado automático:

SELECT id, title, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33))
  AND category = 'electronics'
  AND price < 500
LIMIT 10;

Equivalente en JSON:

{
    "table": "products",
    "knn": {
        "field": "embedding",
        "query": [0.12, 0.45, 0.78, 0.33]
    },
    "query": {
        "bool": {
            "must": [
                { "equals": { "category": "electronics" } },
                { "range": { "price": { "lt": 500 } } }
            ]
        }
    },
    "limit": 10
}

Los filtros de categoría y precio se verifican durante la travesía de HNSW.

Google AdInline article slot

Prefiltrado ingenuo: Principios y limitaciones

El enfoque ingenuo recorre HNSW como siempre, pero solo añade nodos que pasen el filtro a la cola de prioridad. Los nodos no coincidentes aún ayudan en la navegación para mantener la conectividad del grafo.

Limitación: Se calculan distancias para todos los vecinos, independientemente de los filtros. Con 5% de selectividad, el 95% de los cálculos (la operación más costosa) se desperdicia.

ACORN-1 en Manticore: Optimización avanzada

Manticore implementa ACORN-1 para filtros selectivos (<60% de documentos):

Google AdInline article slot
  • Verificación de filtro antes de distancia: Los vecinos se filtran antes de calcular la distancia. Los no coincidentes se saltan sin evaluación.
  • Expansión adaptativa: Desde nodos no coincidentes, el algoritmo explora sus vecinos (hasta 3-4 niveles), enfocándose en encontrar candidatos adecuados.

Esto reduce los cálculos de distancia en un 95% con baja selectividad, acelerando las búsquedas sin pérdida de calidad.

ACORN-1 se activa automáticamente para alta selectividad.

Selección automática de estrategia de ejecución

El planificador de Manticore evalúa la selectividad usando histogramas de atributos:

  • HNSW estándar: >60% documentos pasan el filtro — prefiltrado ingenuo.
  • ACORN-1: 1–60% — traversa optimizada.
  • Escaneo completo: <1% (p. ej., 50 de 10 millones) — escaneo directo de documentos filtrados, obviando HNSW.

Compara nodos HNSW esperados vs. tamaño del subconjunto filtrado.

Gestión de modos de filtrado

Post-filtrado (prefilter=0 o "prefilter": false):

SELECT id, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33), { prefilter=0 })
  AND category = 'electronics'
LIMIT 10;

Escaneo completo (fullscan=1 o "fullscan": true):

SELECT id, knn_dist()
FROM products
WHERE knn(embedding, (0.12, 0.45, 0.78, 0.33), { fullscan=1 })
  AND category = 'electronics'
LIMIT 10;

El post-filtrado es ideal para vecinos globales o >95% paso de documentos. El escaneo completo funciona para conjuntos filtrados minúsculos.

| Modo | Selectividad | Ventajas | Desventajas |

|------|-------------|----------|-------------|

| Post-filtrado | Alta (>95%) | Simplicidad, predictibilidad | Menos de k resultados |

| Prefiltrado (ingenuo) | Media (60–95%) | k resultados fiables | Sobrecarga |

| ACORN-1 | Baja (1–60%) | Ahorro computacional | Complejidad implementación |

| Escaneo completo | Muy baja (<1%) | Recall exacto | Complejidad lineal |

Conclusiones clave

  • El prefiltrado es el predeterminado para KNN+atributos, garantizando k resultados.
  • ACORN-1 ahorra hasta 95% de cálculos de distancia con <60% selectividad.
  • Escaneo completo automático para filtros ultra-selectivos.
  • Post-filtrado para ranking global o depuración.
  • El planificador se adapta por consulta/segmento usando histogramas.

— Editorial Team

Advertisement 728x90

Leer después