Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Quantification vectorielle

Découvrez la quantification vectorielle pour la compression de données et la discrétisation en apprentissage automatique. Découvrez comment elle optimise les déploiements des VQ-VAE, de la recherche vectorielle et Ultralytics .

La quantification vectorielle est une technique puissante de compression et de discrétisation des données largement utilisée dans l' apprentissage automatique (ML) moderne et le traitement du signal numérique. Fondamentalement, elle fonctionne en divisant un grand ensemble de points ou de vecteurs continus en groupes et en représentant chaque groupe par un seul vecteur « prototype », formant collectivement une structure appelée livre de codes. En mappant des vecteurs continus de haute dimension à ces entrées discrètes du livre 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 dimensionnalité efficace.

Le rôle de la discrétisation dans l'apprentissage profond

Dans le domaine actuel de l'apprentissage profond (DL), ce concept a été rendu célèbre par l'auto-encodeur variationnel à quantification vectorielle (VQ-VAE). Contrairement aux auto-encodeurs classiques 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 tokens discrets, de la même manière que les grands modèles linguistiques (LLM) traitent les entrées textuelles . Vous pouvez explorer les travaux de recherche fondamentaux sur l'apprentissage de la représentation discrète pour voir comment les premières implémentations ont ouvert la voie aux systèmes de vision modernes basés sur les tokens.

Applications concrètes

La quantification vectorielle joue un rôle essentiel dans plusieurs applications concrètes de l'IA où les performances et l' efficacité mémoire sont primordiales :

Distinguer les concepts apparentés

Comprendre les nuances entre la quantification vectorielle et les termes apparentés est utile lors de la conception d'une architecture efficace de vision par ordinateur (CV):

  • Quantification vectorielle vs quantification de modèle: La quantification de modèle désigne généralement la réduction de la précision numérique des poids des réseaux neuronaux (par exemple, de 32 bits en virgule flottante à 8 bits en entier) afin d'accélérer l'inférence pour les déploiements matériels de modèles tels que Ultralytics . La quantification vectorielle, en revanche, regroupe les vecteurs de données en un vocabulaire fixe de prototypes discrets.
  • Quantification vectorielle et bases de données vectorielles: Une base de données vectorielle est l'infrastructure proprement dite qui stocke des données de haute dimension. La quantification vectorielle est une technique algorithmique sous-jacente souvent utilisée par ces bases de données pour minimiser leur empreinte mémoire, comme l'explique Qdrant dans sa présentation du traitement vectoriel.
  • Quantification vectorielle vs recherche vectorielle: La recherche vectorielle est le processus actif consistant à trouver des éléments similaires en fonction de la proximité vectorielle. La quantification agit comme une couche d'optimisation structurelle permettant de rendre cette recherche réalisable sur le plan informatique à très grande échelle.

Exemple d'implémentation de base

Pour voir comment la quantification vectorielle convertit concrètement des entrées continues en valeurs discrètes, vous pouvez utiliser PyTorch calculer les distances euclidiennes et trouver le prototype le plus proche dans un livre 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 en savoir plus sur le calcul natif tensor et l'optimisation de ces opérations, consultez la documentation officielle de PyTorch .

Optimiser les flux de travail grâce à la Ultralytics

L'intégration d'embeddings optimisés dans votre pipeline nécessite des outils performants. La Ultralytics offre un environnement complet pour la gestion des données d'entraînement et l'entraînement de 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 facilement générer 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.

Construisons ensemble l'avenir de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique