Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Vector Quantization

A quantização vetorial substitui cada vetor pelo índice da entrada mais próxima do codebook. Abrange codebooks de k-means, quantização de produto e tokens VQ-VAE.

A quantização vetorial (VQ) é uma técnica de compressão que substitui cada vetor de um conjunto de dados pelo índice da entrada mais próxima em um pequeno conjunto de vetores representativos chamado livro de códigos. A codificação armazena apenas o índice, a decodificação consulta esse índice, e o erro de reconstrução corresponde à distância entre o vetor original e sua palavra-código. Um livro de códigos com K entradas custa log₂(K) bits por vetor, independentemente do número de dimensões do vetor; assim, um livro de códigos com 256 entradas armazena qualquer vetor em um byte. A VQ tem origem no processamento de sinais: o algoritmo de Stuart Lloyd, de 1957, dos Bell Labs, para projetar quantizadores escalares, publicado em 1982, é o algoritmo hoje geralmente chamado de k-means, e Yoseph Linde, Andrés Buzo e Robert Gray o estenderam a vetores em 1980. No aprendizado profundo, a VQ tornou-se a forma padrão de converter imagens, áudio e vídeo em tokens discretos para IA generativa.

Como funciona a quantização vetorial#

Em geral, aprende-se um livro de códigos com agrupamento k-means: cada vetor de treino é atribuído à palavra de código mais próxima, cada palavra de código é movida para a média dos vetores que lhe foram atribuídos, e o processo repete-se, sem nunca aumentar a distorção média. A quantização de cores mostra todo o ciclo nos píxeis de uma fotografia, usando o módulo scipy.cluster.vq do 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")

Os 273.280 píxeis são armazenados como índices de 4 bits para 16 cores, com seis vezes menos dados de cor do que o RGB de 24 bits e um erro quadrático médio de 11,3 níveis de intensidade em 255.

A quantização escalar é o caso unidimensional, e a quantização de modelos aplica-a às redes neurais. O Ultralytics YOLO26 usa-a na exportação: quantize=8 arredonda cada peso e ativação, de forma independente, para um dos 256 níveis inteiros, com intervalos de ativação observados numa única passagem de calibração pelas imagens em data. Quantizar vetores inteiros em conjunto explora as correlações entre dimensões e, à mesma taxa de bits, um quantizador vetorial ótimo nunca tem distorção superior à de um quantizador escalar ótimo aplicado a cada valor.

Quantização de produto e residual#

Um único livro de códigos cresce exponencialmente com o orçamento de bits, pois 64 bits exigiriam 2⁶⁴ palavras-código. A quantização de produto, apresentada por Hervé Jégou, Matthijs Douze e Cordelia Schmid em 2011, divide cada vetor em m subvetores e quantiza cada um com seu próprio livro de códigos de 256 entradas. Com m = 8, um embedding float32 de 128 dimensões encolhe de 512 bytes para 8, e as distâncias até uma consulta são obtidas por meio de pequenas tabelas de consulta. A biblioteca FAISS da Meta combina essa técnica com um índice de arquivo invertido, um quantizador k-means grosseiro que limita cada consulta a alguns agrupamentos, para busca vetorial em escala de bilhões.

A quantização residual empilha livros de códigos: o segundo quantiza o erro deixado pelo primeiro, o terceiro quantiza o erro deixado pelo segundo e assim por diante. Os codecs de áudio neurais SoundStream (2021), da Google, e EnCodec (2022), da Meta, usam-na para comprimir fala e música a algumas quilobits por segundo, e a modelação autorregressiva visual (VAR) aplica-a em várias resoluções de imagem.

VQ-VAE e tokens de imagem#

Aäron van den Oord, Oriol Vinyals e Koray Kavukcuoglu, da DeepMind, introduziram o VQ-VAE em Neural Discrete Representation Learning, em 2017. A saída do codificador de um autoencoder em cada posição espacial é substituída pela palavra de código mais próxima, e o descodificador reconstrói a entrada a partir das palavras de código. A consulta do vizinho mais próximo não tem gradiente, por isso um estimador straight-through copia o gradiente do descodificador para além dela durante a retropropagação, escrita em PyTorch como z_q = z + (z_q - z).detach(). Dois termos de perda adicionais aproximam as palavras de código das saídas do codificador e comprometem o codificador com as palavras de código escolhidas; no artigo, o segundo termo tem peso 0,25.

As grelhas de tokens resultantes alimentam um segundo modelo, geralmente um transformer, que aprende a gerá-las. O VQGAN (2021) acrescentou perdas adversariais e percetuais para obter tokens mais nítidos e tornou-se o tokenizador por trás de muitos modelos de texto para imagem. Uma falha comum é o colapso do livro de códigos, em que a maioria das palavras de código nunca é selecionada e o vocabulário efetivo diminui. A inicialização k-means, as atualizações do livro de códigos por média móvel e a reposição dos códigos não utilizados ajudam a evitá-lo. A quantização escalar finita (FSQ, 2023) da Google evita-o arredondando cada uma de algumas dimensões latentes para um pequeno número de níveis fixos, de modo que todos os códigos do livro de códigos implícito possam ser alcançados.

  • Bases de dados vetoriais: Armazenam e indexam embeddings e, muitas vezes, aplicam internamente a quantização de produto para os manter na memória.
  • Redução de dimensionalidade: Mapeia vetores para menos dimensões contínuas, como faz a PCA, enquanto a VQ mapeia cada vetor para um código discreto.
  • Tokenização: Divide o texto em unidades de um vocabulário fixo; a VQ cria o vocabulário equivalente para sinais contínuos, como recortes de imagens e segmentos de áudio.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina