Repolode
microsoft

microsoft/SPTAG

Biblioteca de C++ para búsquedas aproximadas de vecinos más cercanos a gran escala, con herramientas para crear índices, buscar y ofrecer servicio distribuido.

Estrellas
5,021
Forks
625
Issues abiertos
143
Último commit
anteayer

¿Qué es?

SPTAG (Space Partition Tree And Graph) es una biblioteca para buscar vecinos más cercanos aproximados en vectores, un tipo de consulta que se usa en búsquedas semánticas y sistemas de recomendación. Dado un vector de consulta, devuelve los vectores almacenados con menor distancia L2 o coseno, sacrificando un poco de precisión para lograr búsquedas mucho más rápidas que una comparación exhaustiva.

Ofrece dos variantes de índice: SPTAG-KDT, que usa árboles kd y tiene un menor costo de creación del índice, y SPTAG-BKT, que usa árboles k-means balanceados y está pensado para lograr mayor precisión de búsqueda con datos de muy alta dimensionalidad. Ambas combinan un árbol de partición del espacio con un grafo de vecindad relativa, y la búsqueda alterna entre ambos para encontrar resultados.

La biblioteca admite la inserción y eliminación de vectores en línea sin tener que reconstruir el índice completo, y permite distribuir las búsquedas entre varias máquinas. Incluye un wrapper de Python y se compila en Linux, Windows y Docker.

Funciones clave

  • 01Admite las distancias L2 y coseno para medir la similitud entre vectores.
  • 02Ofrece variantes de índice basadas en árboles kd (SPTAG-KDT) y árboles k-means balanceados (SPTAG-BKT).
  • 03Permite insertar y eliminar vectores en línea sin reconstruir el índice.
  • 04Distribuye las búsquedas entre varias máquinas para ofrecer el servicio.
  • 05Incluye un wrapper de Python y un tutorial para crear un servicio de búsqueda vectorial en línea.

Casos de uso

  • Crear un backend de búsqueda semántica a gran escala sobre vectores de embeddings.
  • Ofrecer consultas de vecinos más cercanos para recomendaciones o búsquedas de similitud entre imágenes.
  • Indexar conjuntos de datos que cambian con frecuencia y necesitan actualizaciones en línea.
  • Ejecutar búsquedas vectoriales en varias máquinas cuando un índice no cabe en una sola.

Inicio rápido

  1. 1

    Clona el repositorio con sus submódulos

    git clone --recurse-submodules https://github.com/microsoft/SPTAG
  2. 2

    Compila con CMake desde el directorio build (se requieren swig, cmake y boost)

    mkdir build && cd build && cmake -DSPDK=OFF -DROCKSDB=OFF .. && make
  3. 3

    Ejecuta el binario SPTAGTest en la carpeta Release para verificar la compilación

Antes de usarlo

  • Para compilar desde el código fuente se necesitan swig, cmake y boost, y los pasos son distintos en Linux y Windows.
  • La clonación rápida del repositorio depende de Git LFS y de los submódulos.

En colecciones

Temas

#vector-search#approximate-nearest-neighbor#similarity-search#distributed-systems#cpp#indexing#approximate-nearest-neighbor-search#distributed-serving#fresh-update#neighborhood-graph

Preguntas frecuentes

¿Qué es SPTAG?
Biblioteca de C++ para búsquedas aproximadas de vecinos más cercanos a gran escala, con herramientas para crear índices, buscar y ofrecer servicio distribuido. SPTAG (Space Partition Tree And Graph) es una biblioteca para buscar vecinos más cercanos aproximados en vectores, un tipo de consulta que se usa en búsquedas semánticas y sistemas de recomendación. Dado un vector de consulta, devuelve los vectores almacenados con menor distancia L2 o coseno, sacrificando un poco de precisión para lograr búsquedas mucho más rápidas que una comparación exhaustiva.
¿SPTAG es gratuito? ¿Qué licencia tiene?
SPTAG es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿SPTAG sigue mantenido?
Mantenimiento activo. El último commit de SPTAG fue el 6 nov 2026.
¿Para qué puedo usar SPTAG?
Crear un backend de búsqueda semántica a gran escala sobre vectores de embeddings. Ofrecer consultas de vecinos más cercanos para recomendaciones o búsquedas de similitud entre imágenes. Indexar conjuntos de datos que cambian con frecuencia y necesitan actualizaciones en línea. Ejecutar búsquedas vectoriales en varias máquinas cuando un índice no cabe en una sola.
¿Cómo se instala SPTAG?
Clona el repositorio con sus submódulos: git clone --recurse-submodules https://github.com/microsoft/SPTAG Compila con CMake desde el directorio build (se requieren swig, cmake y boost): mkdir build && cd build && cmake -DSPDK=OFF -DROCKSDB=OFF .. && make Ejecuta el binario SPTAGTest en la carpeta Release para verificar la compilación
¿Dónde consigo SPTAG?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/microsoft/SPTAG

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados