Vector Quantization
Explore la quantification vectorielle pour la compression et la discrétisation des données en ML. Apprends comment elle optimise les VQ-VAE, la recherche vectorielle et les déploiements d’Ultralytics YOLO26.
La quantification vectorielle est une technique puissante de compression et de discrétisation des données, largement utilisée dans le machine learning (ML) moderne et le traitement numérique du signal. À la base, elle consiste à diviser un vaste ensemble de points ou de vecteurs continus en groupes et à représenter chaque groupe par un unique vecteur « prototype », l'ensemble formant une structure appelée dictionnaire de codes. En mappant les vecteurs continus de grande dimension vers ces entrées discrètes du dictionnaire de codes, les systèmes peuvent réduire considérablement l'utilisation de la mémoire tout en préservant les caractéristiques sémantiques essentielles des données pour une réduction de la dimensionnalité efficace.
Le rôle de la discrétisation dans le deep learning#
Dans le deep learning (DL) contemporain, ce concept a été popularisé par le Variational Autoencoder quantifié vectoriellement (VQ-VAE). Contrairement aux autoencodeurs standard, qui apprennent un espace latent continu pour effectuer l'extraction de caractéristiques, les VQ-VAE apprennent une représentation discrète. Cela permet aux modèles génératifs de traiter les images, l'audio ou la vidéo comme une séquence de jetons discrets, de la même manière que les grands modèles de langage (LLMs) traitent les entrées textuelles. Tu peux consulter les travaux de recherche fondamentaux sur l'apprentissage des représentations discrètes pour voir comment les premières implémentations ont ouvert la voie aux systèmes de vision modernes fondés sur les jetons.
Applications concrètes#
La quantification vectorielle joue un rôle essentiel dans plusieurs applications d'IA concrètes où les performances et l'efficacité mémoire sont primordiales :
- IA générative et compression multimédia : en compressant des données visuelles complexes en codes latents discrets, la quantification vectorielle permet une génération d'images et de vidéos très efficace. Les modèles qui mappent les pixels continus vers des jetons discrets réduisent considérablement la charge de calcul, ce qui facilite les architectures avancées comme les modèles de diffusion latente.
- Recherche vectorielle à haute vitesse : pour effectuer une recherche de similarité rapide, les systèmes modernes doivent interroger des millions d'embeddings. La quantification vectorielle compresse ces vastes jeux de données, permettant aux moteurs de recherche d'exécuter rapidement des recherches approximatives des plus proches voisins (ANN), ce qui est particulièrement utile pour l'IA dans le commerce de détail et les systèmes de recommandation de produits. Consulte le guide d'OpenAI sur les embeddings pour en savoir plus sur la gestion des données de grande dimension.
Distinction entre concepts connexes#
Comprendre la nuance entre la quantification vectorielle et une terminologie similaire est utile lors de la conception d'une architecture efficace de vision par ordinateur (CV) :
- Quantification vectorielle et quantification des modèles : la quantification des modèles désigne généralement la réduction de la précision numérique des poids d'un réseau neuronal (par exemple, de nombres à virgule flottante sur 32 bits à des entiers sur 8 bits) afin d'accélérer l'inférence lors du déploiement matériel de modèles comme Ultralytics YOLO26. La quantification vectorielle regroupe toutefois les vecteurs de données en un vocabulaire fixe de prototypes discrets.
- Quantification vectorielle et base de données vectorielle : une base de données vectorielle est l'infrastructure qui stocke réellement les données de grande dimension. La quantification vectorielle est une technique algorithmique sous-jacente souvent employée par ces bases de données pour réduire leur empreinte mémoire, comme l'explique Qdrant dans sa présentation de la gestion des vecteurs.
- Quantification vectorielle et recherche vectorielle : la recherche vectorielle est le processus actif qui consiste à trouver des éléments similaires en fonction de la proximité entre leurs vecteurs. La quantification agit comme une couche d'optimisation structurelle qui rend cette recherche possible sur le plan computationnel à très grande échelle.
Exemple d'implémentation de base#
Pour voir en pratique comment la quantification vectorielle mappe des entrées continues vers des jetons discrets, tu peux utiliser PyTorch pour calculer les distances euclidiennes et trouver le prototype le plus proche dans un dictionnaire de codes prédéfini :
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]Pour une présentation approfondie du calcul natif des distances entre tenseurs et de l'optimisation de ces opérations, consulte la documentation officielle de PyTorch sur cdist.
Améliorer les workflows avec la plateforme Ultralytics#
L'intégration d'embeddings optimisés dans ton pipeline nécessite des outils robustes. La plateforme Ultralytics fournit un environnement de bout en bout pour organiser les données d'entraînement et entraîner des modèles de vision de pointe. En rationalisant la gestion des données et en simplifiant le déploiement des modèles, les développeurs peuvent générer facilement des caractéristiques visuelles de haute qualité adaptées à la quantification vectorielle, ce qui permet d'accélérer la détection d'objets et les applications de recherche multimédia à grande échelle.









