Biblioteca de C++ con bindings para Python para buscar similitudes y agrupar vectores densos de forma eficiente, con aceleración opcional mediante GPU.
RyanCodrai/turbovec
Índice vectorial en proceso para Python y Rust que comprime embeddings a 2 o 4 bits por dimensión con TurboQuant y los busca directamente.
Alternativa open source a:FAISS
- Estrellas
- 17,411
- Forks
- 1,488
- Issues abiertos
- 23
- Último commit
- hace 15 días
¿Qué es?
turbovec es una biblioteca de índices vectoriales para Python y Rust. Almacena cada embedding a 2 o 4 bits por dimensión mediante el método de cuantización TurboQuant y busca los vecinos más cercanos directamente en los datos comprimidos con kernels SIMD, por lo que el índice permanece en la memoria del proceso en lugar de depender de un servicio independiente.
El proyecto está dirigido a cargas de trabajo de recuperación, como los pipelines RAG, en los que, de otro modo, habría que almacenar grandes conjuntos de embeddings en float32. Permite añadir y eliminar vectores sin volver a entrenar, ofrece persistencia incremental mediante una llamada a sync que escribe solo los cambios e incluye una variante IdMapIndex cuyas claves son ids uint64 definidos por el usuario. La búsqueda puede limitarse mediante una lista de ids permitidos. También ofrece integraciones listas para usar con LangChain, LlamaIndex, Haystack y Agno.
En lugar de usar un índice de grafos, realiza un barrido por fuerza bruta, por lo que el costo de las consultas aumenta linealmente con el tamaño del corpus. La cuantización tiene pérdida y el proyecto documenta comparativas con FAISS sobre embeddings de OpenAI y GloVe.
Funciones clave
- 01Almacena vectores a 2 o 4 bits por dimensión; con 4 bits, ocupan aproximadamente 7,8 veces menos que en float32.
- 02Busca directamente en códigos comprimidos con optimización SIMD y ofrece una API para Python y otra para Rust.
- 03Añade y elimina vectores sin necesidad de entrenar ni reconstruir el índice.
- 04sync() escribe solo los datos modificados y los guarda de forma atómica.
- 05Permite indexar por id y filtrar mediante una lista de ids permitidos al buscar.
Casos de uso
- Crear un sistema de recuperación RAG local que mantenga los embeddings en la memoria del proceso.
- Buscar en grandes colecciones de embeddings en una máquina con RAM limitada.
- Añadir un almacén vectorial a una aplicación de LangChain o LlamaIndex sin ejecutar una base de datos independiente.
- Realizar búsquedas semánticas sin conexión o con requisitos de privacidad, cuando ningún dato debe salir del proceso.
Inicio rápido
- 1
Instala el paquete de Python desde PyPI
pip install turbovec - 2
Construye e indexa vectores con TurboQuantIndex (consulta el ejemplo del README)
Antes de usarlo
- Analiza todos los vectores, por lo que no es adecuado para corpus muy grandes con requisitos estrictos de latencia.
- La cuantización tiene pérdida, así que los resultados son aproximados y no resultados exactos en coma flotante.
Temas
Preguntas frecuentes
- ¿Qué es turbovec?
- Índice vectorial en proceso para Python y Rust que comprime embeddings a 2 o 4 bits por dimensión con TurboQuant y los busca directamente. turbovec es una biblioteca de índices vectoriales para Python y Rust. Almacena cada embedding a 2 o 4 bits por dimensión mediante el método de cuantización TurboQuant y busca los vecinos más cercanos directamente en los datos comprimidos con kernels SIMD, por lo que el índice permanece en la memoria del proceso en lugar de depender de un servicio independiente.
- ¿turbovec es gratuito? ¿Qué licencia tiene?
- turbovec es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿turbovec sigue mantenido?
- Mantenimiento activo. El último commit de turbovec fue el 7 oct 2026.
- ¿Para qué puedo usar turbovec?
- Crear un sistema de recuperación RAG local que mantenga los embeddings en la memoria del proceso. Buscar en grandes colecciones de embeddings en una máquina con RAM limitada. Añadir un almacén vectorial a una aplicación de LangChain o LlamaIndex sin ejecutar una base de datos independiente. Realizar búsquedas semánticas sin conexión o con requisitos de privacidad, cuando ningún dato debe salir del proceso.
- ¿Cómo se instala turbovec?
- Instala el paquete de Python desde PyPI: pip install turbovec Construye e indexa vectores con TurboQuantIndex (consulta el ejemplo del README)
- ¿Dónde consigo turbovec?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/RyanCodrai/turbovec
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Índice vectorial local y toolkit de RAG que reduce el almacenamiento cerca de un 97 % al recalcular embeddings bajo demanda, para buscar datos personales en tu laptop.
Pipeline de código abierto que renderiza páginas web y PDF como capturas de pantalla y permite buscarlas visualmente, conservando tablas y gráficos para RAG.
Curso online gratuito y de código abierto de 10 semanas sobre cómo crear aplicaciones con LLM usando RAG, búsqueda vectorial, agentes, evaluación y monitoreo.
Biblioteca oficial de Python para el motor de búsqueda vectorial Qdrant, con acceso REST/gRPC síncrono y asíncrono, y modo local en memoria.
Proyecto educativo paso a paso para crear Retrieval-Augmented Generation desde cero en JavaScript, con LLM locales y sin API en la nube.