Matryoshka Temsil Öğrenimi (MRL) sayesinde çok kademeli gömülerin nasıl mümkün hale geldiğini öğrenin. Ultralytics arama ve uç cihazlara dağıtımını nasıl optimize edebileceğinizi keşfedin.
Matryoshka Temsil Öğrenimi (MRL), yapay zeka (AI) ve makine öğrenimi (ML) alanlarında kullanılan, bir sinir ağını tek bir çıktı vektörü içinde çok katmanlı gömüleri öğrenmeye zorlayan bir eğitim tekniğidir. Rus matruşka bebeklerinden esinlenen MRL, gömüleri önemli anlamsal bilgilerin öne çıkarılacağı şekilde yapılandırır. Bu, yüksek boyutlu bir vektörün (örneğin, 1024 boyutlu) temel temsilini kaybetmeden daha küçük, iç içe geçmiş alt kümelere (512, 256 veya 64 boyutlu gibi) kısaltılabileceği anlamına gelir. Bu esneklik, genellikle bilgi erişim görevleriyle ilişkili olan hesaplama yükünü önemli ölçüde azaltır.
Geleneksel olarak, bir gömme modeli sabit bir çıktı boyutu için belirli bir kayıp fonksiyonunu optimize edecek şekilde eğitilir. Bir sistemin bellek tasarrufu sağlamak için daha küçük bir vektöre ihtiyacı varsa, tamamen yeni bir model eğitilmesi gerekir. MRL, eğitim aşamasında iç içe geçmiş bir kayıp fonksiyonu uygulayarak bu sorunu çözer. Tam temsil ile iç içe geçmiş alt kümelerini birlikte optimize eder. OpenAI gibi kuruluşlar, modern gömme API'leri için MRL'yi benimsemiştir; bu sayede geliştiriciler, doğru kosinüs benzerlik puanlarını korurken vektörün sonundaki boyutları dinamik olarak kaldırabilir.
MRL, doğruluk ile depolama maliyetleri ve bellek bant genişliği arasında denge kurarken belirgin avantajlar sunar.
MRL'yi doğru bir şekilde kullanmak için, onu verileri sıkıştırmak amacıyla kullanılan eski tekniklerden ayırmak faydalı olacaktır.
Bir MRL gömülmesinin kesilmesi son derece basittir ve karmaşık anlamsal indeksleme mantığı gerektirmez. En önemli özellikler ilk boyutlarda yüksek ağırlığa sahip olduğundan, diziyi basitçe dilimleyebilirsiniz. Aşağıdaki örnek, temel PyTorch tensor kullanılarak simüle edilmiş bir YOLO26 çok modlu çıktısının kesilmesini göstermektedir.
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]}")

Makine öğreniminin geleceği ile yolculuğunuza başlayın