Tìm hiểu cách Học biểu diễn Matryoshka (MRL) cho phép nhúng đa cấp độ. Khám phá cách tối ưu hóa Ultralytics Tìm kiếm YOLO26 và triển khai tại biên.
Học biểu diễn Matryoshka (MRL) là một kỹ thuật huấn luyện trong trí tuệ nhân tạo (AI) và học máy (ML) buộc mạng nơ-ron phải học các phép nhúng đa cấp trong một vectơ đầu ra duy nhất. Lấy cảm hứng từ những con búp bê lồng nhau của Nga, MRL cấu trúc phép nhúng sao cho thông tin ngữ nghĩa quan trọng được đặt ở phía trước. Điều này có nghĩa là một vectơ đa chiều (ví dụ: 1024 chiều) có thể được cắt bớt thành các tập con nhỏ hơn, lồng nhau (như 512, 256 hoặc 64 chiều) mà không làm mất đi biểu diễn cơ bản của nó. Tính linh hoạt này làm giảm đáng kể chi phí tính toán thường liên quan đến các tác vụ truy xuất thông tin .
Theo truyền thống, mô hình nhúng được huấn luyện để tối ưu hóa một hàm mất mát cụ thể cho kích thước đầu ra cố định. Nếu hệ thống yêu cầu một vectơ nhỏ hơn để tiết kiệm bộ nhớ, thì phải huấn luyện một mô hình hoàn toàn mới. Học tăng cường đa cấp (MRL) giải quyết vấn đề này bằng cách áp dụng một hàm mất mát lồng nhau trong giai đoạn huấn luyện. Nó tối ưu hóa đồng thời toàn bộ biểu diễn và các tập con lồng nhau của nó. Các tổ chức như OpenAI đã áp dụng MRL cho các API nhúng hiện đại của họ, cho phép các nhà phát triển loại bỏ động các chiều ở cuối vectơ trong khi vẫn giữ được điểm số tương đồng cosine chính xác.
MRL mang lại những lợi thế rõ rệt khi cân bằng giữa độ chính xác với chi phí lưu trữ và băng thông bộ nhớ .
Để sử dụng MRL một cách hiệu quả, cần phân biệt nó với các kỹ thuật nén dữ liệu cũ hơn.
Việc cắt bớt một embedding MRL cực kỳ đơn giản và không yêu cầu logic lập chỉ mục ngữ nghĩa phức tạp. Vì các đặc trưng quan trọng nhất được trọng số hóa cao ở các chiều sớm nhất, bạn chỉ cần cắt mảng. Ví dụ sau đây minh họa việc cắt bớt đầu ra đa phương thức YOLO26 mô phỏng bằng cách sử dụng các phép toán tensor cơ bản 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]}")
Bắt đầu hành trình của bạn với tương lai của học máy