Descubre cómo el aprendizaje de representaciones Matryoshka (MRL) permite realizar incrustaciones multigranulares. Descubre cómo optimizar la búsqueda y la implementación en el borde Ultralytics .
El aprendizaje de representaciones Matryoshka (MRL) es una técnica de entrenamiento en inteligencia artificial (IA) y aprendizaje automático (ML) que obliga a una red neuronal a aprender incrustaciones multigranulares dentro de un único vector de salida. Inspirado en las muñecas rusas anidadas, el MRL estructura la incrustación de tal manera que la información semántica importante se concentra al principio. Esto significa que un vector de alta dimensión (por ejemplo, 1024 dimensiones) puede truncarse en subconjuntos más pequeños y anidados (como 512, 256 o 64 dimensiones) sin perder su representación subyacente. Esta flexibilidad reduce drásticamente la sobrecarga computacional que suele asociarse a las tareas de recuperación de información.
Tradicionalmente, un modelo de incrustación se entrena para optimizar una función de pérdida específica para un tamaño de salida fijo. Si un sistema requiere un vector más pequeño para ahorrar memoria, es necesario entrenar un modelo completamente nuevo. El MRL resuelve esto aplicando una función de pérdida anidada durante la fase de entrenamiento. Optimiza conjuntamente la representación completa y sus subconjuntos anidados. Organizaciones como OpenAI han adoptado el MRL para sus modernas API de incrustación, lo que permite a los desarrolladores eliminar dinámicamente dimensiones del final de un vector al tiempo que se conservan puntuaciones precisas de similitud coseno.
MRL ofrece claras ventajas a la hora de encontrar el equilibrio entre la precisión, los costes de almacenamiento y el ancho de banda de la memoria.
Para utilizar correctamente el MRL, conviene distinguirlo de las técnicas más antiguas que se empleaban para comprimir datos.
Truncar una representación MRL es increíblemente sencillo y no requiere ninguna lógica compleja de indexación semántica. Dado que las características más importantes tienen una ponderación elevada en las primeras dimensiones, basta con dividir la matriz. El siguiente ejemplo muestra cómo truncar una salida multimodal simulada de YOLO26 utilizando tensor básicas 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]}")
Comience su viaje con el futuro del aprendizaje automático