Lo que aprendí tras trabajar 2 años en una empresa de Vector DB
(leoniemonigatti.com)Trabajando en Weaviate, una base de datos vectorial, se recopilaron 37 lecciones obtenidas de la experiencia real en operación
↳ Desde la utilidad de BM25 y la búsqueda por palabras clave hasta la búsqueda vectorial, los embeddings y la búsqueda híbrida
1. BM25 es una línea base potente en búsqueda
- En la práctica, conviene empezar por búsqueda simple por palabras clave, como BM25, verificar el rendimiento y luego expandirse gradualmente hacia la búsqueda vectorial en lugar de comenzar con búsquedas vectoriales complejas
2. La búsqueda vectorial es aproximada (Approximate), no exacta (Exact)
- En datos a gran escala, se usan algoritmos de vecinos cercanos aproximados (ANN) (HNSW, IVF, ScaNN, etc.) para acelerar la búsqueda, aunque sacrificando algo de precisión
- El indexado vectorial es la clave para garantizar la velocidad a gran escala en una vector DB
3. Una vector DB no solo almacena embeddings
- También guarda datos originales (como texto) y metadatos, lo que permite filtrado por metadatos, búsqueda por palabras clave, búsqueda híbrida, etc.
4. El uso principal de una vector DB no es la IA generativa, sino la ‘búsqueda’
- Incluso pasar contexto a un LLM es, en esencia, ‘búsqueda’, y las vector DB y los LLM forman una combinación muy natural
5. Hay que especificar directamente cuántos resultados devolver
- Si no se define el parámetro
limitotop_k, se ordenan y devuelven todos los resultados más cercanos a la consulta
6. Existen muchos tipos de embeddings
- Además de vectores dense (densos), existen varios formatos de vectores de embedding como sparse (dispersos), binary (binarios) y multi-vector
7. Benchmarks para elegir modelos de embedding
- MTEB abarca múltiples tareas de embedding (clasificación, clustering, búsqueda, etc.)
- Para benchmarks especializados en recuperación de información, conviene revisar BEIR
8. La mayoría de los modelos de MTEB son solo para inglés
- Si se trabaja en un entorno multilingüe o no anglófono, se recomienda usar el benchmark MMTEB
9. Historia de los embeddings: Static vs Contextual
- Los embeddings estáticos, como Word2Vec o GloVe, son representaciones fijas por palabra
- Los embeddings contextuales, como BERT, generan vectores dinámicamente según el contexto
- Los embeddings estáticos pueden consultarse rápidamente en entornos con recursos limitados
10. Diferencia entre sparse vector y sparse embedding
- sparse vector: se genera con métodos estadísticos como TF-IDF/BM25 o con métodos basados en redes neuronales (sparse embedding, SPLADE, etc.)
- Todo sparse embedding es un sparse vector, pero no todo sparse vector es un sparse embedding
11. Se pueden generar embeddings para muchos tipos de datos además de texto
- Imágenes, PDF (convertidos a imagen), grafos, etc. también pueden convertirse en embeddings para habilitar búsqueda vectorial multimodal
12. Dimensionalidad del embedding y costo de almacenamiento
- A mayor cantidad de dimensiones, mayor costo de almacenamiento
- Para usos simples, como “chatbots”, quizá no haga falta un modelo de alta dimensionalidad
- También es posible reducir dimensiones con Matryoshka Representation Learning
13. El tutorial “Chat with your docs” es el hello world de la IA generativa
14. Los modelos de embedding deben invocarse repetidamente
- No solo durante la ingestión de documentos, sino también al consultar, al agregar/modificar documentos y cada vez que cambia el modelo de embedding se requiere embedding e indexado
15. La similitud vectorial y la relevance real pueden ser distintas
- Frases parecidas (por ejemplo, “cómo reparar un grifo” vs “dónde comprar un grifo”) pueden tener baja relevancia real entre sí
16. Cosine similarity y cosine distance no son lo mismo
- La similitud y la distancia tienen una relación matemática inversa
- Si el vector es idéntico, la similitud es 1 y la distancia es 0
17. Si el vector está normalizado, cosine similarity y dot product son equivalentes
- Con vectores normalizados, computacionalmente el dot product es más eficiente
18. La R de RAG no significa ‘vector search’, sino ‘retrieval’
- En RAG existen múltiples formas de retrieval (palabras clave, vectores, filtros, etc.)
19. La búsqueda vectorial es solo una de las herramientas de búsqueda
- Son importantes diversos métodos y sus combinaciones (híbridas), como búsqueda por palabras clave, filtrado y reranking
20. Aplicación adecuada de la búsqueda por palabras clave y la búsqueda vectorial
- Para matching semántico o de sinónimos, búsqueda vectorial; para palabras clave exactas, búsqueda por palabras clave; cuando se necesitan ambas, usar búsqueda híbrida y ajustar el peso de
alpha
21. Qué significa búsqueda híbrida
- Normalmente se refiere a la combinación de palabras clave + vectores, pero también se llama ‘híbrida’ a cualquier combinación con otros métodos de búsqueda, como metadatos
22. Filtrar no siempre mejora la velocidad
- Por ejemplo, puede romperse la conectividad del grafo HNSW y, con filtrado posterior, puede no haber resultados
- Cada vector DB usa técnicas de optimización distintas para resolver esto
23. La utilidad de un pipeline de búsqueda en dos etapas
- No solo en sistemas de recomendación: en RAG y otros casos, se puede extraer primero un conjunto candidato y luego mejorar la calidad con un reranking de alto rendimiento en una segunda etapa
24. Diferencia entre búsqueda vectorial y reranking
- La búsqueda vectorial devuelve algunos resultados desde toda la base de datos; el reranking reordena el conjunto de resultados recibido
25. La dificultad de elegir el tamaño del chunk para embedding
- Si es demasiado pequeño, se pierde contexto; si es demasiado grande, el significado se diluye
- También se puede vectorizar el documento completo con técnicas como mean pooling, pero la información puede diluirse (como un póster hecho al combinar todos los fotogramas de una película)
26. Diferencia entre bibliotecas de indexado vectorial y vector DB
- Ambas son rápidas, pero una vector DB también ofrece durabilidad, CRUD y funciones de gestión de datos como filtros e híbridos
27. RAG sigue evolucionando incluso con la expansión del contexto de los LLM
- Cada vez que aparecen LLM con contexto largo surge la discusión de que “RAG ha muerto”, pero en la práctica sigue siendo necesario
28. Con cuantización vectorial se puede reducir 97% de la información y mantener la búsqueda
- Al usar binary quantization, por ejemplo, el almacenamiento puede reducirse 32 veces (de float de 32 bits a 1 bit, etc.)
29. La búsqueda vectorial no es robusta frente a errores tipográficos
- Incluso en corpus de texto grandes, no todos los errores tipográficos quedan reflejados; solo algunos
30. Existen muchas métricas para evaluar la calidad de búsqueda
- Métricas basadas en ranking como NDCG@k, y métricas simples como Precision/Recall, también pueden ser efectivas según el caso
31. Ejemplo práctico del trade-off entre Precision y Recall
- Se explica con casos extremos, como devolver un solo resultado (Precision ↑ / Recall ↓) o devolver todos los resultados (Recall ↑ / Precision ↓)
32. Métricas que reflejan el orden de los resultados de búsqueda
- Precision/Recall no reflejan el orden; se necesitan métricas que sí lo consideren, como MRR@k, MAP@k y NDCG@k
33. La influencia del tokenizer
- No solo BPE: el tokenizer también influye en la calidad de la búsqueda por palabras clave e híbrida
34. Out-of-domain y out-of-vocabulary no son lo mismo
- OOV puede resolverse con tokenizers inteligentes, pero en out-of-domain el embedding en sí deja de tener significado
35. La necesidad de optimizar las consultas
- Igual que en la búsqueda por palabras clave, en la búsqueda vectorial también hace falta el hábito de optimizar la entrada de consulta
36. El paradigma después de la búsqueda vectorial
- La evolución va de búsqueda por palabras clave → búsqueda vectorial → retrieval basado en razonamiento con LLM
37. La recuperación de información (retrieval) es hoy el campo más ‘hot’
- Junto con los LLM, encontrar la ‘información óptima’ para entregar al LLM es la tarea más central e importante
1 comentarios
Está bueno porque hay muchas ideas interesantes surgidas de trabajar con búsqueda vectorial.