Repolode
RyanCodrai

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. 1

    Instala el paquete de Python desde PyPI

    pip install turbovec
  2. 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