Aivizor
Aivizor
EstilosCreacionesComunidad
Atrás
  1. Comunidad
  2. /
  3. Other AI

Turbovec aplica TurboQuant en Rust y comprime 10 millones de embeddings a 4 GB para búsqueda vectorial

News
E
Elena Castellanos

5/20/2026, 10:45:45 PM

Turbovec aplica TurboQuant en Rust y comprime 10 millones de embeddings a 4 GB para búsqueda vectorial

Turbovec presenta un índice vectorial en Rust con bindings en Python que integra TurboQuant de Google Research para reducir el consumo de memoria en búsquedas vectoriales: según la publicación, un corpus de 10 millones de embeddings en float32 (31 GB) puede caber en 4 GB con turbovec, lo que facilita despliegues locales y on‑prem con restricciones de RAM.

La biblioteca aplica una cuantización en cuatro pasos: (1) normaliza los vectores y almacena la norma por separado; (2) realiza una rotación ortogonal aleatoria para homogeneizar la distribución por coordenada; (3) usa cuantización escalar Lloyd — Max con umbrales y centroides precomputados; y (4) empaqueta los bits resultantes. Este flujo elimina la necesidad de entrenar codebooks sobre los datos. Un ejemplo ilustrativo: un vector de 1.536 dimensiones pasa de 6.144 bytes en FP32 a 384 bytes con codificación de 2 bits (reducción 16×). Para el scoring turbovec rota la consulta de la misma forma y acelera cálculos con SIMD — NEON en ARM y AVX‑512BW en x86 — con fallback a AVX2 cuando procede.

TurboQuant, propuesto por Google Research como un cuantizador data‑oblivious, evita la fase de entrenamiento que requieren cuantizadores de producción como FAISS Product Quantization (k‑means). Al ser independiente de los datos, TurboQuant promete distorsiones próximas al óptimo teórico y elimina pasos de calibración y retraining cuando cambia el corpus.

Los benchmarks reproducidos emplean 100.000 vectores, 1.000 consultas, k=64 y la mediana de 5 ejecuciones. Para embeddings de OpenAI con d=1.536 y d=3.072, turbovec queda dentro de 0–1 puntos en R@1 frente a FAISS IndexPQ (LUT256, nbits=8) y alcanza recall≈1.0 con k=4–8. Con GloVe d=200 queda 3–6 puntos por detrás en R@1, acercándose a FAISS alrededor de k≈16 — 32.

En rendimiento, sobre ARM (Apple M3 Max) turbovec supera a FAISS IndexPQFastScan entre 12 — 20%; en x86 (Intel Xeon Platinum 8481C, 8 vCPUs) gana configuraciones a 4 bits por 1–6% y muestra una ventaja aproximada de ~1% en 2 bits single‑threaded. Queda por detrás en dos casos multihilo a 2 bits (d=1.536 y d=3.072), donde la ruta AVX‑512 VBMI de FAISS domina por 2–4%.

La experiencia para desarrolladores es sencilla: instalación con pip install turbovec y la clase principal TurboQuantIndex, inicializada con dim y bit_width. Ejemplo citado: from turbovec import TurboQuantIndex; index = TurboQuantIndex(dim=1536, bit_width=4); index.add(vectors); scores, indices = index.search(query, k=10). El motor está escrito en Rust con bindings en Python y está pensado para integrarse en pipelines RAG locales o on‑prem y para despliegues en hardware ARM.

Fuentes

  1. MarkTechPost AI · 5/20/2026
1
0
0

Respuestas (0)

Aún no hay respuestas en este tema.

9:41