Qdrant TurboQuant explicado: ¿Es TurboQuant la solución milagrosa?

como un equilibrio entre la memoria y el recuerdo. El estándar es Float32 con alta fidelidad y alto costo de memoria. La solución básica es la cuantificación escalar, que reduce cada valor a menos bits (alrededor de 4 × compresión) con una ligera pérdida de recuperación. Aunque la cuantificación binaria exige mucho más, alcanzando a menudo una compresión de 32×, el resultado de la recuperación puede volverse inconsistente debido a la pérdida de información. Por otro lado, la cuantificación del producto puede ser más eficiente, pero es más difícil de ajustar y operar en producción real.

A principios de mayo de 2026, Qdrant lanzó TurboQuant, un nuevo método de cuantificación. Y afirmaron que “TurboQuant puede reducir el uso de memoria sin que la calidad de recuperación sea demasiado inestable”. TurboQuant suena como el tipo de característica que quieren los equipos de búsqueda de vectores.

Sin embargo, me preguntaba si TurboQuant todavía se mantiene cuando lo probamos en diferentes tamaños de conjuntos de datos. ¿Ofrece una mejora real con respecto a los métodos de cuantificación comunes o su ventaja depende de los datos?

Realicé experimentos para compararlo con métodos de cuantificación más familiares, como la cuantificación escalar y binaria. El objetivo era comprender dónde es útil TurboQuant, dónde es riesgoso y si puede tratarse como una opción predeterminada seria para la búsqueda de vectores.

Creo que esto ayudará a los ingenieros, profesionales de ML y usuarios de bases de datos vectoriales a comprender dónde encaja TurboQuant en comparación con los métodos de cuantificación más comunes, especialmente cuando se pasa de los experimentos a la producción.

1. ¿Qué es la cuantización?

Cada número float32 en un vector utiliza 4 bytes. Como resultado, una incrustación de 1536 dimensiones requiere 6 KB por vector; con un millón de vectores, la base de datos ocupa hasta 6 GB solo para el índice.

Aquí es cuando necesitamos la cuantización. La cuantificación reduce cada número de un vector a un número de bytes más pequeño. El enfoque estándar es la cuantificación escalar. Comienza encontrando el mínimo y el máximo en cada dimensión. Luego, ese rango se divide en 255 contenedores iguales. Cada valor del vector se redondea al contenedor más cercano y el número del contenedor se almacena como un solo byte en lugar de cuatro.

La incrustación Float32 original ahora se convierte en una incrustación uint8 con una compresión 4x, lo que significa un tamaño de almacenamiento 4 veces más pequeño.

La Figura 1 a continuación es una demostración simple de este proceso en un vector 6D.

Figura 1: Proceso de cuantificación escalar y comparación. El pequeño error (error de cuantificación) se acumula en todas las dimensiones durante el cálculo del producto escalar. Imagen del autor.

El pequeño error en la última fila se llama error de cuantificación y se acumula en 6 dimensiones del vector durante el cálculo del producto escalar. Esto es lo que hace que las puntuaciones de similitud sean ligeramente erróneas.

Sin embargo, existen compresiones más agresivas como 8x (4 bits), 16x (2 bits) o 32x (1 bit). Cuanto mayor sea la compresión, menor será el tamaño del vector y mayor será el error con respecto al original. Puede verlo en la Figura 2 a continuación, que demuestra el error después de transformar un número Float32 a diferentes espacios de cuantificación.

Figura 2: Diferencia entre métodos de compresión y original. Imagen del autor.

El equilibrio entre compresión y recuperación (o memoria y recuperación) es obvio. Una mayor compresión da como resultado una menor recuperación.

2. La verdadera pregunta no es la relación de compresión

La verdadera pregunta es: ¿qué geometría vectorial queda después de la compresión?

Los cuantificadores tradicionales, en la mayoría de los casos, comprimen directamente el vector. La cuantización escalar aplica la misma cuadrícula fija a cada dimensión, ya sea que esa dimensión contenga una señal útil o ruido. La cuantificación binaria mantiene sólo el bit de signo. Por lo tanto, ninguno de los métodos comprueba primero si algunas dimensiones transportan más señal que otras.

Qdrant 1.18 cambia este patrón con el nuevo TurboQuant integrado. Basado en un algoritmo de Google Research presentado en ICLR 2026, TurboQuant rota el vector antes de la compresión. Esta rotación aleatoria distribuye la variación de manera más uniforme entre las dimensiones, por lo que cada bit puede preservar información más útil.

TurboQuant no es mejor porque utiliza menos bits. Es mejor porque hace que el vector sea más fácil de comprimir antes de gastar esos bits.

Las diferencias clave entre TurboQuant y otros se muestran en la Figura 3 a continuación.

Scalar Quant fuerza una cuadrícula en todas las dimensiones, como el mismo par de zapatos para todos, independientemente de la longitud de su pie. Binary Quant transforma valores a 0 o 1 con las reglas: Los valores ≥ 0 se convierten en 1; Los valores <0 se convierten en 0. Esto es como cortar cada zapato a una sola opción: izquierda o derecha, grande o pequeño, sí o no. Es extremadamente barato, pero desecha casi toda la información sobre la forma, por lo que el “ajuste” resulta muy burdo. Product Quant aprende libros de códigos por subespacio; se adapta cada par de zapatos a cada pie. Es una excelente opción para todos, pero extremadamente costosa.

TurboQuant primero hace que todas las dimensiones parezcan iguales y luego utiliza un libro de códigos bien diseñado. Esto es lo mismo que cambiar todos los pies al mismo tamaño y tener un par de zapatos para todos.

Figura 3: Comparación de cuatro tipos de cuantificación: escalar, binaria, producto y TurboQuant. Imagen del autor con ayuda de ChatGPT.

3. TurboQuant en resumen: rotar primero, comprimir segundo

Cada vector en un modelo de incrustación tiene estructura.

Una incrustación de 1536 dimensiones podría transportar la mayor parte de su señal útil en sólo un pequeño subconjunto de coordenadas. Las dimensiones restantes a menudo contribuyen mucho menos, pero aún aparecen en cada vector, lo que añade ruido y hace que las comparaciones de distancia sean menos confiables.

3.1 El oleoducto TurboQuant

La idea es sencilla. Antes de comprimir, haga girar el vector mediante una rotación ortogonal aleatoria. Esa rotación no cambia las distancias: simplemente redistribuye la energía para que cada dimensión lleve aproximadamente la misma cantidad de información. Luego, se aplica un único libro de códigos precalculado a los vectores rotados, que puede manejar todas las dimensiones igualmente bien. No es necesario ningún ajuste por dimensión. No hay formación sobre sus datos.

Consulte la Figura 4 a continuación para obtener un resumen del proceso.

Figura 4: Canalización de TurboQuant: la rotación hace que las coordenadas sean predecibles antes de que se gasten bits. Imagen del autor con ayuda de ChatGPT.

3.2 ¿Qué le hace la rotación a las coordenadas?

Figura 5: Antes y después de la rotación con TurboQuant: la energía se redistribuye uniformemente entre dimensiones y las distancias no cambian. Imagen del autor.

En la Figura 5, antes de la rotación, unas pocas dimensiones transportan la mayor parte de la energía. El resto transporta mucha menos señal y, a menudo, más ruido.

Después de la rotación, cada dimensión transporta aproximadamente la misma energía y la misma cantidad de información.

Sin embargo, ¿significa esto realmente que la transformación de energía preserva información importante y mantiene la distancia con respecto a otro vector, como ocurre con el original?

Hice un cálculo simple entre 2 vectores 4D, con el Vector A transformado usando TurboQuant, y luego, en el momento de la inferencia, giré el Vector B con la misma matriz y medí la similitud del coseno en el mismo espacio rotado. Esta similitud de coseno se compara con la similitud de coseno del vector original A frente al vector original B.

3.3 Proceso TurboQuant estándar

Figura 6: Visualización de TurboQuant. Imagen del autor

En la Figura 6, después de aplicar TurboQuant al vector A original, la distancia entre el nuevo vector A y el Vector B apenas cambia en comparación con el vector A y el Vector B originales, lo que demuestra que la geometría importante entre los vectores aún se conserva y la recuperación se mantiene en gran medida.

3.4 ¿Cómo aplica Qdrant exactamente Turboquant en la base de datos?

Hay 2 procesos por separado en Qdrant:

3.4.1. Proceso de indexación:

Figura 7: Cómo indexar un vector usando TurboQuant en Qdrant. Imagen del autor con ayuda de ChatGPT.

La descripción general del flujo de indexación se visualiza en la Figura 7. Básicamente, el vector se procesa de la siguiente manera:

vector original → normalizar/preparar dependiendo de la métrica → pad si es necesario → rotación de Hadamard → calibración por coordenada opcional: x → (x + desplazamiento) · escala → asignación de centroide Lloyd-Max → códigos TurboQuant empaquetados

Específicamente para TurboQuant, Qdrant almacena la siguiente información como está escrita en la Tabla 1:

Tabla 1: Qué almacena Qdrant para TurboQuant. Fuente: autor

Un factor importante introducido por Qdrant es la renormalización de longitud, también conocida como factor de escala. Ocurre después de la cuantificación, cuando Qdrant mide cuánto más corta se volvió la reconstrucción cuantificada en comparación con la longitud original, almacena esa relación como un factor de escala por vector y luego la aplica durante la puntuación en el momento de la consulta.

El factor de escala = longitud_original / longitud_reconstrucción_centroide

¿Por qué necesitamos una renormalización de longitud?

Hay una observación después de la cuantificación.

El vector cuantificado apunta en la dirección correcta pero es demasiado corto

Lo que significa que al cuantificar un vector, siempre hay un error de cuantificación y se reduce sistemáticamente la longitud de cada vector. En el momento de la consulta, cuando calcula un producto escalar entre un vector cuantificado y una consulta rotada y codificada, está calculando el producto escalar de un vector ligeramente demasiado corto, lo que da una puntuación consistentemente demasiado baja. Qdrant llama a esto el "sesgo degradante del recuerdo".

Para solucionar este problema, necesitamos un factor para volver a multiplicarlo durante la fase de puntuación en lugar de fijar los vectores. Esta táctica es simple y efectiva.

3.4.2. Proceso de tiempo de consulta

Figura 8: ¿Cómo se compara la consulta con los vectores cuantificados Turbo en Qdrant? Imagen del autor con ayuda de ChatGPT.

La Figura 8 muestra el proceso de consulta con la base de datos vectorial TurboQuant.

La consulta se rota y se convierte en una representación de puntuación SIMD, y Qdrant utiliza puntuación asimétrica para comparar esa consulta codificada directamente con los códigos TurboQuant empaquetados almacenados para los vectores de la base de datos.

Después de eso, el factor de escala almacenado se multiplica por la puntuación.

4. ¿Qué método probar primero?

Qdrant ofrece múltiples opciones de cuantificación y TurboQuant también ofrece múltiples variantes de compresión de bits, como bits4, bits2, bits1.5 y bits1.

Según su documento, las profundidades de bits más bajas ofrecen una mayor compresión a costa de la precisión.

La Figura 9 muestra algunas sugerencias como referencia en caso de que todavía se pregunte qué métodos de compresión utilizar.

Figura 9: Diagrama de flujo de decisiones: comience desde arriba, siga sus limitaciones. El cuadro verde es el punto de partida predeterminado recomendado. Imagen del autor, basada en el artículo de Qdrant en https://qdrant.tech/blog/qdrant-1.18.x/,

5. Primeros pasos: el primer experimento

Cambie solo una configuración en el código Qdrant actual para habilitar TurboQuant. Sus colecciones existentes permanecen intactas.

Consulte el fragmento de código a continuación para obtener más detalles.

from qdrant_client import QdrantClient, models client = QdrantClient("localhost", port=6333) # Nueva colección: un cambio de configuración client.create_collection( collection_name="my_collection", vectores_config=models.VectorParams( size=1536, Distance=models.Distance.COSINE, ), quantization_config=models.TurboQuantization( turbo=models.TurboQuantQuantizationConfig( bits=models.TurboQuantBitSize.BITS4, always_ram=True, ) ), ) # Colección existente: parche sin recrear vectores client.update_collection( collection_name="existing_collection", quantization_config=models.TurboQuantization( turbo=models.TurboQuantQuantizationConfig( bits=modelos.TurboQuantBitSize.BITS4, siempre_ram=True, ) ), )

Para obtener más configuraciones, consulte la documentación de Qdrant para TurboQuant aquí.

6. Punto de referencia: ¿Se cumple la teoría?

Para probar TurboQuant con todos los demás cuantificadores de Qdrant en incrustaciones reales, realicé varias pruebas en diferentes tamaños (vectores de 10K, 50K y 100K) con diferentes métodos de cuantificación de Qdrant.

6.1 ¿Por qué el conjunto de datos DBpedia?

Elegí el conjunto de datos de incrustaciones de DBpedia (Licencia: CC-BY-SA 4.0 y Licencia de documentación libre GNU) porque tiene una relación de varianza de coordenadas de 233,5x, altamente anisotrópica. Unas pocas dimensiones transportan la mayor parte de la señal; el resto lleva ruido. Esta es exactamente la distribución donde la rotación de TurboQuant debería ayudar más y donde la rejilla fija de la cuantificación escalar desperdicia la mayor cantidad de bits.

Consulte los detalles del entorno de prueba en la sección Apéndice, parte 9.2.

6.2 Recuperación a través de escala

Los detalles del desempeño del retiro de pruebas se encuentran en la Figura 10.

Figura 10: Recall@10 en vectores de 50K y 100K. Fuente: autor

Saltan a la vista cuatro cosas:

La recuperación de TQ permanece sin cambios a medida que crece el conjunto de datos. Mientras que la cuantización binaria cae de 0,916 a 0,78 cuando el tamaño del conjunto de datos se duplica, las variantes de TurboQuant se mantienen mucho mejor. El paso de rotación ayuda a que cada bit conserve más información, lo que hace que TQ sea menos sensible al crecimiento del corpus. La mayoría de las variantes de TQ están cerca de Float32 y Scalar Quantization en el mercado. A excepción de TQ de 1 bit y TQ de 4 bits, los resultados de TurboQuant siguen siendo ampliamente comparables con la línea base de Float32 y la cuantificación escalar. TQ de 4 bits ofrece la mejor compensación entre precisión y compresión. Alcanza una recuperación cercana a la cuantificación escalar mientras utiliza aproximadamente la mitad del almacenamiento: compresión 8× frente a 4× de Scalar. En vectores de 100.000, TQ de 4 bits alcanza una recuperación de 0,965, sólo 1,5 puntos por debajo del 0,980 de Scalar. Con la nueva puntuación, la brecha desaparece: 0,996 para TQ de 4 bits frente a 0,993 para Scalar. La recuperación recupera gran parte de la brecha de recuperación, incluso para una compresión agresiva (TQ de 1 bit). TQ de 1 bit mejora significativamente con la nueva puntuación. La cuantización binaria con repuntuación puede funcionar en conjuntos de datos más pequeños, pero su recuperación se degrada más rápido a medida que el conjunto de datos crece.

6.3 Latencia en toda la escala

Los detalles del rendimiento de la latencia de las pruebas se encuentran en la Figura 11.

Figura 11: Latencia de consulta media en vectores de 50 000 y 100 000. Fuente: autor

La historia de la latencia es clara: volver a puntuar añade algo de coste, pero no mucho. En vectores de 100K, la rescore TQ de 4 bits + se ejecuta en 6,4 ms, más rápido que Float32 con 7,6 ms y solo ligeramente por detrás de Scalar Quantization con 6,8 ms. En todas las variantes de TQ, la nueva puntuación aumenta la latencia pero sigue siendo más rápida que la línea base Float32.

6.4 Huella de almacenamiento

La Figura 12 a continuación muestra el tamaño de almacenamiento de pruebas para cada método de cuantificación.

Figura 12: Tamaño de almacenamiento entre métodos. Barras sólidas = índice cuantificado en RAM. Tramado = float32 original en el disco (solo volver a puntuar). Fuente: autor

TQ de 1 bit tiene el mismo espacio de almacenamiento que Binary Quantization: ambos usan 18 MB, o alrededor de 32 × de compresión. TQ de 2 bits y TQ de 4 bits utilizan más almacenamiento para conservar más información. TQ de 2 bits duplica aproximadamente el almacenamiento de TQ de 1 bit, mientras que TQ de 4 bits lo aumenta aproximadamente 4 veces. Aun así, ambos son todavía mucho más pequeños que la cuantización escalar.

6.5 Tiempo de creación del índice

Los detalles del tiempo de creación del índice de prueba se encuentran en la Figura 13.

Figura 13: El tiempo de creación del índice incluye la construcción, cuantificación y calibración de HNSW. Fuente: autor

TQ es la configuración más rápida con 64 s para vectores de 50 000 y 179 s para vectores de 100 000, principalmente porque la extracción de bits de signo es barata. TQ de 4 bits toma 57 s/224 s, y TQ de 1,5 bits toma 75 s/239 s. Ambos son comparables o más rápidos que Float32 (110s/289s). Esto sugiere que la rotación y la calibración del libro de códigos añaden sólo un pequeño costo de indexación. TQ de 2 bits es la configuración más lenta (73s/357s). Esto puede deberse a un patrón de empaquetado de bits menos común o a una sobrecarga específica de la implementación. Aun así, completa la indexación de 100.000 vectores en menos de 6 minutos.

El tiempo de indexación depende más del entorno, por lo tanto, trate estos números como direccionales en lugar de absolutos. Los resultados pueden variar según la CPU, el ancho de banda de la memoria, la E/S del disco, el paralelismo y la carga general de la máquina durante la ejecución.

7. Qué significa esto en la práctica

En general, TurboQuant parece prometedor cuando priorizamos el equilibrio entre compresión y calidad de recuperación estable. Los resultados muestran que no todos los formatos comprimidos se comportan igual a medida que crece el conjunto de datos. Algunos métodos pierden la recuperación rápidamente, mientras que otros se mantienen mucho más cerca de la línea base de Float32.

TQ de 2 bits y TQ de 4 bits mantienen la recuperación relativamente estable a medida que crece el corpus. Mientras que la cuantificación binaria y el TQ de 1 bit caen más notablemente a medida que el conjunto de datos crece. Esto sugiere que el paso de rotación de TurboQuant ayuda a preservar más información útil en cada bit. Como resultado, estas variantes TQ de 2 bits y TQ de 4 bits son menos sensibles al crecimiento del corpus. TQ de 4 bits ofrece el mejor equilibrio entre recuperación y compresión. TQ de 4 bits alcanza una recuperación cercana a la cuantización escalar pero con el doble de compresión (la cuantización escalar proporciona alrededor de 4 veces una compresión, mientras que TQ de 4 bits proporciona una compresión de alrededor de 8 veces). Esto significa que TQ4-bit puede ahorrar aproximadamente la mitad del costo de memoria. TQ de 1,5 bits con recuperación es la opción más potente para una compresión extrema: proporciona alrededor de 24 veces de compresión y mantiene la recuperación cerca de Float32 después de la recuperación. Esto es útil cuando el almacenamiento es su principal limitación, pero el sistema aún necesita una calidad de recuperación aceptable. Sin una recuperación, una compresión agresiva puede perder demasiada información. Con la recuperación, gran parte de esa brecha se puede recuperar. TQ con nueva puntuación es el patrón más seguro cuando necesitas equilibrar la latencia y la precisión. Esto está en consonancia con otras prácticas. La recuperación agrega algo de latencia y es más efectiva para mejorar la calidad de la recuperación bajo una compresión extrema. Esto hace que recuperar la puntuación sea una compensación razonable. Le brinda al sistema una forma de utilizar una compresión más fuerte sin sufrir un gran impacto en la calidad de recuperación.

En resumen, TurboQuant no se trata sólo de reducir la memoria. TQ de 4 bits es la opción más equilibrada para uso general. TQ de 1,5 bits con recuperación es mejor cuando la compresión es la máxima prioridad. El patrón efectivo es emparejar TurboQuant con la recuperación.

Importante: Estos números no deben tratarse como una regla de producción. Estos actúan como referencia para su propio juicio. Mida el rendimiento de sus incorporaciones, sus consultas, su hardware y sus objetivos de retirada antes de migrar a producción.

8. Limitaciones de TurboQuant

Figura 14: Limitaciones de la implementación de TurboQuant en Qdrant. Imagen del autor

TurboQuant mejora el equilibrio de compresión. Pero esto no elimina por completo la compensación.

También es todavía nuevo. Se lanzó el 11 de mayo de 2026. Por lo tanto, la experiencia de producción real aún es limitada. El enfoque seguro es simple: compárelo primero y luego decida si debería convertirse en su opción predeterminada.

Quiero exponer algunas limitaciones que deben tenerse en cuenta. Un resumen de las limitaciones se puede encontrar en la Figura 14:

La primera limitación es la madurez. Los resultados de las pruebas comparativas de Qdrant parecen prometedores. Pero sus datos pueden comportarse de manera diferente. Es posible que su modelo de inserción, patrón de consulta, filtros y distribución de datos no coincidan con los conjuntos de datos de referencia. Por lo tanto, TurboQuant debe considerarse una opción sólida, no un reemplazo automático.

TurboQuant también puede ser más lento que Binary Quantization con el mismo tamaño de almacenamiento. Esto es importante si su objetivo principal es el rendimiento o la velocidad. Si le importa más la velocidad que la recuperación, la cuantización binaria sigue siendo la mejor opción. TurboQuant es más útil cuando desea recuperar mejor con un presupuesto de memoria pequeño.

También hay un costo de calibración. TurboQuant necesita un paso de calibración único para cada segmento. Esto suele tardar unos segundos, no unos minutos. Pero sigue siendo un costo. Si su sistema crea muchos segmentos o reconstruye índices con frecuencia, se debe considerar este paso adicional.

El tipo de distancia es otra limitación. TurboQuant funciona mejor con L2, producto escalar y similitud de coseno. La rotación preserva bien estas relaciones de distancia. Pero no preserva de la misma manera la distancia L1 o Manhattan. Las distancias L1 y Manhattan aún pueden funcionar, pero necesitan una reconstrucción vectorial completa para cada comparación. Eso puede hacer que la búsqueda sea más lenta. Si la distancia de Manhattan es importante en su sistema, la cuantificación escalar es la opción más segura.

Como se muestra en el resultado de la prueba, TQ de 1 bit no es una opción segura. TQ de 1 bit proporciona una compresión muy alta, pero la recuperación puede disminuir demasiado. El paso de rotación ayuda, pero 1 bit por dimensión suele ser demasiado poco. No siempre se puede preservar suficiente geometría a escala. Considere volver a puntuar en caso de que TQ de 1 bit no le proporcione el rendimiento esperado. O TQ de 1,5 bits parece un límite inferior más práctico. Todavía proporciona una fuerte compresión, pero mantiene la recuperación más estable. Para una compresión muy agresiva, es una opción más segura que TQ de 1 bit.

La lección principal no es "usar siempre TurboQuant". La lección principal es probar lo que importa para sus propios datos. TurboQuant lleva la compensación en una mejor dirección. Ayuda a reducir la pérdida de recuperación antes de que se gaste el presupuesto de bits. Pero no hace que la compresión esté libre. Aún deberá elegir entre memoria, velocidad, recuperación y comportamiento a distancia.

En resumen, TurboQuant es una nueva opción sólida. Es especialmente útil para recuperar puntuaciones y configurar bits moderados. Pero no se debe utilizar a ciegas. Primero compárelo con sus propias incrustaciones y mídalo cuidadosamente antes de pasar a producción.

9. Apéndice:

9.1 Soporte de cuantificación en bases de datos vectoriales populares

La Figura 15 a continuación es un resumen de 4 ofertas de cuantificación en bases de datos vectoriales populares para su referencia.

Qdrant es uno de los primeros servicios que ofrece TurboQuant en el mercado.

Figura 15: Matriz de soporte de cuantificación en Qdrant, Pinecone, Weaviate, Milvus y pgvector. Fuente: autor

9.2 Entorno de prueba

Máquina: Apple M3, 16 GB de RAM, macOS 15.6.1 Base de datos de prueba: Qdrant v1.18.0, Docker de un solo nodo, sin límites de recursos HNSW con valor predeterminado (m=16, ef_construct=100) Distancia: Coseno Conjunto de datos:

10. Recursos