Erfahren Sie, wie Matryoshka Representation Learning (MRL) Einbettungen mit mehreren Granularitätsebenen ermöglicht. Entdecken Sie, wie Sie die Suche und den Edge-Einsatz Ultralytics optimieren können.
Matryoshka Representation Learning (MRL) ist eine Trainingsmethode in der künstlichen Intelligenz (KI) und im maschinellen Lernen (ML), die ein neuronales Netzwerk dazu zwingt, mehrstufige Einbettungen innerhalb eines einzigen Ausgabevektors zu lernen. Inspiriert von russischen Matroschka-Puppen strukturiert MRL die Einbettung so, dass wichtige semantische Informationen an den Anfang gestellt werden. Das bedeutet, dass ein hochdimensionaler Vektor (zum Beispiel mit 1024 Dimensionen) auf kleinere, verschachtelte Teilmengen (wie 512, 256 oder 64 Dimensionen) gekürzt werden kann, ohne dass die zugrunde liegende Darstellung verloren geht. Diese Flexibilität reduziert den Rechenaufwand, der typischerweise mit Informationsabrufaufgaben verbunden ist, drastisch.
Traditionell wird ein Einbettungsmodell trainiert, um eine bestimmte Verlustfunktion für eine feste Ausgabegröße zu optimieren. Wenn ein System einen kleineren Vektor benötigt, um Speicherplatz zu sparen, muss ein komplett neues Modell trainiert werden. MRL löst dieses Problem durch die Anwendung einer verschachtelten Verlustfunktion während der Trainingsphase. Es optimiert gemeinsam die vollständige Darstellung und ihre verschachtelten Teilmengen. Unternehmen wie OpenAI haben MRL für ihre modernen Einbettungs-APIs übernommen, wodurch Entwickler dynamisch Dimensionen am Ende eines Vektors entfernen können, während genaue Kosinus-Ähnlichkeitswerte erhalten bleiben.
MRL bietet deutliche Vorteile, wenn es darum geht, Genauigkeit, Speicherkosten und Speicherbandbreite gegeneinander abzuwägen.
Um MRL richtig nutzen zu können, ist es hilfreich, es von älteren Techniken zur Datenkomprimierung abzugrenzen.
Das Kürzen einer MRL-Einbettung ist unglaublich einfach und erfordert keine komplexe semantische Indizierungslogik. Da die wichtigsten Merkmale in den ersten Dimensionen stark gewichtet sind, kann man das Array einfach zerschneiden. Das folgende Beispiel zeigt, wie eine simulierte multimodale YOLO26-Ausgabe mithilfe grundlegender tensor gekürzt wird.
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]}")
Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens