返回 Ultralytics 词汇表
Matryoshka Representation Learning (MRL)
了解 Matryoshka 表示学习 (MRL) 如何实现多粒度嵌入。探索如何优化 Ultralytics YOLO26 的搜索和边缘部署。
Matryoshka Representation Learning (MRL) 是人工智能 (AI)和机器学习 (ML)中的一种训练技术,它强制神经网络在单个输出向量中学习多粒度嵌入。受俄罗斯套娃的启发,MRL 对嵌入进行结构化设计,以便将重要的语义信息前置。这意味着高维向量(例如 1024 维)可以截断为更小的嵌套子集(如 512、256 或 64 维),而不会丢失其底层表示。这种灵活性大大减少了通常与信息检索任务相关的计算开销。
Matryoshka Representation Learning 的工作原理#
传统上,训练嵌入模型是为了优化针对固定输出大小的特定损失函数。如果系统需要更小的向量来节省内存,则必须训练一个全新的模型。MRL 通过在训练阶段应用嵌套损失函数来解决这个问题。它共同优化完整表示及其嵌套子集。OpenAI 等机构已经在其现代嵌入 API 中采用了 MRL,允许开发者动态剥离向量末尾的维度,同时保留准确的余弦相似度得分。
实际应用#
在平衡准确性与存储成本以及内存带宽时,MRL 提供了独特的优势。
- 面向 LLM 的自适应向量搜索: 在检索增强生成 (RAG) 管道中,大语言模型 (LLMs) 通常依赖于庞大的向量数据库。借助 MRL,企业可以使用嵌入的前 64 个维度执行快速、粗粒度的语义搜索,然后使用完整的 1024 维向量对前几个结果进行重新排序。这种两阶段方法极大地加速了向量搜索并降低了数据库存储成本。
- 边缘的可扩展计算机视觉: 在使用Ultralytics 平台部署计算机视觉系统时,硬件限制可能会产生巨大差异。利用 MRL 的模型可以向强大的云端部署服务器传输全尺寸视觉嵌入,但在低功耗边缘计算设备上运行时,可以优雅地降级为传输截断的 128 维嵌入,从而在不重新训练模型的情况下优化延迟。
区分相关概念#
为了正确使用 MRL,将其与用于压缩数据的旧技术区分开来会有所帮助。
- MRL 与降维: 诸如 PCA(主成分分析)或 t-SNE 等算法是在训练之后应用的,用于压缩数据。相比之下,MRL 在训练期间原生内置于神经网络架构中,从而保留了更深层次的非线性关系。
- MRL 与模型剪枝: 剪枝会从实际神经网络中移除权重和层以使推理更快,例如创建Ultralytics YOLO模型的较小变体。MRL 不会更改模型大小;它只会更改模型产生的输出向量的大小。
实际实施#
截断 MRL 嵌入非常直接,不需要复杂的语义索引逻辑。由于最重要的特征在最早的维度中被赋予了很高的权重,你可以简单地切片数组。以下示例演示了使用基础PyTorch 张量操作截断模拟的YOLO26多模态输出。
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]}")





