Scopri la quantizzazione vettoriale per la compressione dei dati e la discretizzazione nell'ambito del machine learning. Scopri come ottimizza le implementazioni di VQ-VAE, la ricerca vettoriale e Ultralytics .
La quantizzazione vettoriale è una potente tecnica di compressione e discretizzazione dei dati ampiamente utilizzata nel moderno machine learning (ML) e nell' elaborazione dei segnali digitali. Fondamentalmente, funziona dividendo un ampio insieme di punti o vettori continui in gruppi e rappresentando ciascun gruppo con un singolo vettore "prototipo", che insieme formano una struttura nota come codebook. Mappando i vettori continui ad alta dimensionalità su queste voci discrete del codebook, i sistemi possono ridurre drasticamente l'utilizzo di memoria, preservando al contempo le caratteristiche semantiche essenziali dei dati per un'efficace riduzione della dimensionalità.
Nel deep learning (DL) contemporaneo, questo concetto è stato reso famoso dal Vector Quantized Variational Autoencoder (VQ-VAE). A differenza degli autoencoder standard, che apprendono uno spazio latente continuo per effettuare l'estrazione delle caratteristiche, i VQ-VAE apprendono una rappresentazione discreta. Ciò consente ai modelli generativi di trattare immagini, audio o video come una sequenza di token discreti, in modo simile a come i modelli linguistici di grandi dimensioni (LLM) elaborano gli input di testo . È possibile esplorare la ricerca di base sull'apprendimento della rappresentazione discreta per vedere come le prime implementazioni abbiano aperto la strada ai moderni sistemi di visione basati sui token.
La quantizzazione vettoriale riveste un ruolo fondamentale in diverse applicazioni pratiche dell'intelligenza artificiale in cui le prestazioni e l'efficienza della memoria sono fondamentali:
Comprendere le sottili differenze tra la quantizzazione vettoriale e altri termini simili è utile quando si progetta un'architettura efficiente di visione artificiale (CV):
Per vedere come la quantizzazione vettoriale mappa gli input continui su valori discreti nella pratica, è possibile utilizzare PyTorch calcolare le distanze euclidee e individuare il prototipo più vicino in un libro dei codici predefinito:
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]
Per un approfondimento sul calcolo nativo tensor e sull'ottimizzazione di queste operazioni, consultare la documentazione ufficiale di PyTorch .
L'integrazione di embedding ottimizzati nella propria pipeline richiede strumenti affidabili. La Ultralytics offre un ambiente end-to-end per la selezione dei dati di addestramento e l'addestramento di modelli di visione all'avanguardia. Grazie all'ottimizzazione della gestione dei dati e alla semplificazione dell'implementazione dei modelli, gli sviluppatori possono generare con facilità caratteristiche visive di alta qualità adatte alla quantizzazione vettoriale, consentendo un rilevamento degli oggetti più rapido e applicazioni di recupero multimediale su larga scala.

Inizia il tuo viaggio con il futuro del machine learning