Explore a quantização vetorial para compressão de dados e discretização em ML. Saiba como esta técnica otimiza as implementações de VQ-VAEs, pesquisa vetorial e Ultralytics .
A quantização vetorial é uma técnica poderosa de compressão e discretização de dados amplamente utilizada na aprendizagem automática (ML) moderna e no processamento de sinais digitais. Na sua essência, funciona através da divisão de um grande conjunto de pontos ou vetores contínuos em grupos e da representação de cada grupo por um único vetor «protótipo», formando coletivamente uma estrutura conhecida como livro de códigos. Ao mapear vetores contínuos de alta dimensão para estas entradas discretas do livro de códigos, os sistemas podem reduzir drasticamente o uso de memória, ao mesmo tempo que preservam as características semânticas essenciais dos dados para uma redução de dimensão eficaz.
No deep learning (DL) contemporâneo, este conceito foi popularizado de forma notável pelo Autoencoder Variacional com Quantização Vetorial (VQ-VAE). Ao contrário dos autoencoders padrão, que aprendem um espaço latente contínuo para realizar a extração de características, os VQ-VAEs aprendem uma representação discreta. Isto permite que os modelos generativos tratem imagens, áudio ou vídeo como uma sequência de tokens discretos, de forma semelhante à forma como os Modelos de Linguagem de Grande Dimensão (LLMs) processam entradas de texto . Pode explorar a investigação fundamental sobre a aprendizagem de representações discretas para ver como as primeiras implementações abriram caminho para os modernos sistemas de visão baseados em tokens.
A quantização vetorial desempenha um papel fundamental em várias aplicações de IA no mundo real, nas quais o desempenho e a eficiência da memória são fundamentais:
Compreender as nuances entre a quantização vetorial e terminologia semelhante é útil na conceção de uma arquitetura eficiente de visão computacional (CV):
Para ver como a quantização vetorial mapeia entradas contínuas para valores discretos na prática, pode usar PyTorch calcular distâncias euclidianas e encontrar o protótipo mais próximo num livro de códigos predefinido:
import torch
# Define a continuous input batch and a discrete codebook vocabulary
inputs = torch.randn(4, 128) # 4 input vectors of dimension 128
codebook = torch.randn(10, 128) # 10 discrete prototype vectors
# Compute distances and find the nearest codebook index for each input
distances = torch.cdist(inputs, codebook)
quantized_indices = torch.argmin(distances, dim=1)
# Retrieve the discrete quantized vectors corresponding to the inputs
quantized_vectors = codebook[quantized_indices]
Para uma análise aprofundada sobre o cálculo tensor de forma nativa e a otimização dessas operações, consulte a documentação oficial do PyTorch .
A integração de embeddings otimizadas no seu pipeline requer ferramentas robustas. A Ultralytics oferece um ambiente completo para a seleção de dados de treino e o treino de modelos de visão de última geração. Ao otimizar a gestão de dados e simplificar a implementação de modelos, os programadores podem gerar facilmente características visuais de alta qualidade adequadas para a quantização vetorial, o que resulta em aplicações mais rápidas de deteção de objetos e de pesquisa de multimédia em grande escala.

Comece sua jornada com o futuro do aprendizado de máquina