El mito de la base de datos vectorial: por qué la fuerza bruta basta para un millón de embeddings

Fuentes: Just brute force your embeddings

Muchas equipes que trabajan con embeddings asumen que necesitan una base de datos vectorial dedicada, pero la realidad suele ser más sencilla. Con alrededor de un millón de documentos y tráfico de consultas moderado, una operación directa de NumPy es capaz de resolver una búsqueda por similitud en milisegundos sin infraestructura adicional. El autor lo demuestra con una sola línea de Python — scores = self.doc_vectors @ query_vector.astype(np.float32, copy=False) — ejecutada sobre embeddings de 384 dimensiones en un MacBook Pro con chip M4. Sus benchmarks muestran que, sobre un millón de vectores, el método alcanza 79,7 consultas por segundo con un solo hilo y 170,5 con diez hilos, con una latencia media de 12 a 58 milisegundos. Incluso con casi nueve millones de documentos, el rendimiento se mantiene en el rango de los 9 a 18 QPS, suficiente para cargas de tráfico bajo. La clave, argumenta, es que cuando los embeddings se calculan todos por adelantado y el volumen es manejable, una búsqueda exhaustiva en memoria supera en simplicidad y coste a cualquier solución especializada. Antes de invertir meses en aprender a operar una base de datos vectorial o de gastar millones en ella, recomienda agotar primero el enfoque de fuerza bruta. Más allá de cierto umbral, herramientas como FAISS cargadas en memoria pueden ser el siguiente paso natural. La idea de fondo — que un algoritmo O(n) optimizado puede superar a uno O(log n) mal aplicado — se aplica tanto a la ordenación clásica como a la búsqueda vectorial moderna.