Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Vector Quantization

La cuantización vectorial sustituye cada vector por el índice de la entrada más cercana del libro de códigos. Explica los libros de códigos de k-means, la cuantización de productos y los tokens de VQ-VAE.

La cuantización vectorial (VQ) es una técnica de compresión que sustituye cada vector de un conjunto de datos por el índice de la entrada más cercana en un pequeño conjunto de vectores representativos llamado libro de códigos. La codificación solo almacena el índice; la decodificación lo busca, y el error de reconstrucción es la distancia entre el vector original y su palabra de código. Un libro de códigos de K entradas requiere log₂(K) bits por vector, independientemente de cuántas dimensiones tenga el vector, por lo que un libro de códigos de 256 entradas almacena cualquier vector en un byte. La VQ procede del procesamiento de señales: el algoritmo de Stuart Lloyd de 1957, desarrollado en Bell Labs para diseñar cuantizadores escalares y publicado en 1982, es el algoritmo que ahora suele llamarse k-means; Yoseph Linde, Andrés Buzo y Robert Gray lo ampliaron a vectores en 1980. En aprendizaje profundo, la VQ se convirtió en el método estándar para convertir imágenes, audio y vídeo en tokens para la IA generativa.

Cómo funciona la cuantización vectorial#

Un libro de códigos suele aprenderse mediante agrupamiento k-means: asigna cada vector de entrenamiento a la palabra de código más cercana, desplaza cada palabra de código a la media de los vectores asignados y repite el proceso, que nunca aumenta la distorsión media. La cuantización del color muestra el ciclo completo con los píxeles de una foto, usando el módulo scipy.cluster.vq de SciPy:

import numpy as np
from scipy.cluster.vq import kmeans2, vq
from sklearn.datasets import load_sample_image

image = load_sample_image("china.jpg")  # 427 x 640 RGB photo bundled with scikit-learn
pixels = image.reshape(-1, 3).astype(np.float64)  # one 3-D color vector per pixel

# Learn a 16-entry codebook with k-means (Lloyd's algorithm) on a sample of pixels
rng = np.random.default_rng(0)
codebook, _ = kmeans2(rng.choice(pixels, 5000), 16, minit="++", seed=0)

# Encode: replace each pixel with the index of its nearest codeword (4 bits instead of 24)
indices, _ = vq(pixels, codebook)
# Decode: look each index up in the codebook
reconstruction = codebook[indices]

rmse = np.sqrt(((pixels - reconstruction) ** 2).mean())
print(f"{len(pixels):,} pixels, {len(codebook)} codewords, 24 -> 4 bits per pixel")
print(f"Reconstruction RMSE: {rmse:.1f} on the 0-255 scale")

Los 273.280 píxeles se almacenan como índices de 4 bits en una paleta de 16 colores, con seis veces menos datos de color que RGB de 24 bits y un error cuadrático medio de 11,3 niveles de intensidad sobre 255.

La cuantización escalar es el caso unidimensional, y la cuantización de modelos la aplica a las redes neuronales. Ultralytics YOLO26 la utiliza durante la exportación: quantize=8 redondea cada peso y activación por separado a uno de 256 niveles enteros, con rangos de activación observados en una pasada de calibración sobre las imágenes de data. La cuantización conjunta de vectores enteros aprovecha las correlaciones entre dimensiones, y, a la misma tasa de bits, un cuantizador vectorial óptimo nunca tiene más distorsión que un cuantizador escalar óptimo aplicado a cada valor.

Cuantización por producto y residual#

Un único libro de códigos crece exponencialmente con el presupuesto de bits, ya que 64 bits requerirían 2⁶⁴ palabras de código. La cuantización de productos, presentada por Hervé Jégou, Matthijs Douze y Cordelia Schmid en 2011, divide cada vector en m subvectores y cuantiza cada uno con su propio libro de códigos de 256 entradas. Con m = 8, una incrustación float32 de 128 dimensiones pasa de 512 bytes a 8, y las distancias a una consulta se calculan mediante pequeñas tablas de consulta. La biblioteca FAISS de Meta la combina con un índice de archivo invertido, un cuantizador k-means grueso que limita cada consulta a unos pocos clústeres, para realizar búsquedas vectoriales a escala de miles de millones.

La cuantización residual apila libros de códigos: el segundo cuantiza el error que deja el primero, el tercero el error que deja el segundo, y así sucesivamente. Los códecs de audio neuronales SoundStream (2021), de Google, y EnCodec (2022), de Meta, la utilizan para comprimir voz y música a unos pocos kilobits por segundo, y el modelado visual autorregresivo (VAR) la aplica a distintas resoluciones de imagen.

VQ-VAE y los tokens de imagen#

Aäron van den Oord, Oriol Vinyals y Koray Kavukcuoglu, de DeepMind, presentaron VQ-VAE en Neural Discrete Representation Learning en 2017. La salida del codificador de un autocodificador en cada posición espacial se sustituye por la palabra de código más cercana, y el decodificador reconstruye la entrada a partir de las palabras de código. La búsqueda del vecino más cercano no tiene gradiente, así que un estimador de paso directo copia el gradiente del decodificador a través de ella durante la retropropagación, expresada en PyTorch como z_q = z + (z_q - z).detach(). Dos términos de pérdida adicionales acercan las palabras de código a las salidas del codificador y hacen que el codificador se comprometa con las palabras de código que ha elegido; en el artículo, el segundo término tiene un peso de 0.25.

Las cuadrículas de tokens resultantes alimentan un segundo modelo, normalmente un transformer, que aprende a generarlas. VQGAN (2021) añadió pérdidas adversarias y perceptuales para obtener tokens más nítidos y se convirtió en el tokenizador de muchos modelos de texto a imagen. Un fallo habitual es el colapso del libro de códigos, en el que la mayoría de las palabras de código nunca se seleccionan y el vocabulario efectivo se reduce. La inicialización k-means, las actualizaciones del libro de códigos mediante medias móviles y el reinicio de los códigos no utilizados lo contrarrestan; la cuantización escalar finita de Google (FSQ, 2023) lo evita redondeando cada una de unas pocas dimensiones latentes a unos pocos niveles fijos, de modo que se puede acceder a todos los códigos del libro de códigos implícito.

  • Bases de datos vectoriales: Almacenan e indexan incrustaciones y suelen aplicar internamente la cuantización por producto para que quepan en memoria.
  • Reducción de dimensionalidad: Transforma los vectores en menos dimensiones continuas, como hace PCA, mientras que la VQ asigna cada vector a un único código discreto.
  • Tokenización: Divide el texto en unidades de un vocabulario fijo; la VQ crea el vocabulario equivalente para señales continuas, como los parches de imagen y los fotogramas de audio.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático