Scopri come il Matryoshka Representation Learning (MRL) consente di ottenere embedding multigranulari. Scopri come ottimizzare la ricerca e l'implementazione edge Ultralytics .
Il Matryoshka Representation Learning (MRL) è una tecnica di addestramento nell’ intelligenza artificiale (IA) e nell’ apprendimento automatico (ML) che induce una rete neurale ad apprendere incorporazioni multigranulari all’interno di un singolo vettore di output. Ispirandosi alle bambole russe matrioska, l’MRL struttura l’incorporazione in modo tale che le informazioni semantiche più rilevanti siano concentrate nella parte iniziale. Ciò significa che un vettore ad alta dimensionalità (ad esempio, 1024 dimensioni) può essere troncato in sottoinsiemi più piccoli e annidati (come 512, 256 o 64 dimensioni) senza perdere la sua rappresentazione sottostante. Questa flessibilità riduce drasticamente il sovraccarico computazionale tipicamente associato alle attività di recupero delle informazioni.
Tradizionalmente, un modello di embedding viene addestrato per ottimizzare una specifica funzione di perdita per una dimensione di output fissa. Se un sistema richiede un vettore più piccolo per risparmiare memoria, è necessario addestrare un modello completamente nuovo. L'MRL risolve questo problema applicando una funzione di perdita annidata durante la fase di addestramento. Essa ottimizza congiuntamente la rappresentazione completa e i suoi sottoinsiemi annidati. Organizzazioni come OpenAI hanno adottato l'MRL per le loro moderne API di embedding, consentendo agli sviluppatori di rimuovere dinamicamente le dimensioni dalla coda di un vettore mantenendo punteggi accurati di similarità cosinusoidale.
L'MRL offre vantaggi evidenti quando si tratta di trovare un equilibrio tra precisione, costi di archiviazione e larghezza di banda della memoria.
Per utilizzare correttamente l'MRL, è utile distinguerlo dalle tecniche più datate utilizzate per comprimere i dati.
Il troncamento di un embedding MRL è incredibilmente semplice e non richiede alcuna complessa logica di indicizzazione semantica. Poiché le caratteristiche più rilevanti hanno un peso elevato nelle prime dimensioni, è sufficiente suddividere l'array. L'esempio seguente illustra come troncare un output multimodale simulato di YOLO26 utilizzando tensor di base tensor PyTorch .
import torch
# Simulate a full 1024-dimensional MRL embedding returned by a model
full_embedding = torch.rand(1, 1024)
# To deploy on memory-constrained hardware, simply slice the first 256 dimensions
# Because the model was trained with MRL, this subset remains highly accurate
truncated_embedding = full_embedding[:, :256]
print(f"Original size: {full_embedding.shape[1]}, Compressed size: {truncated_embedding.shape[1]}")
Inizia il tuo viaggio con il futuro del machine learning