Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Hafıza Bankası

Bellek bankası, makine öğrenimi algoritmalarında geçmiş iterasyonlardan veya işlenmiş örneklerden gelen bilgileri depolamak ve referanslamak için kullanılan bir veri yapısıdır ve modelin bellek kapasitesini anlık hesaplama kısıtlamalarından etkili bir şekilde ayırır. Derin öğrenme (DL) bağlamında, bellek bankası genellikle gömülü veya özellik vektörleri için bir depo görevi görür. Bu, modelin tüm verileri aktif rasgele erişim belleğinde (RAM) aynı anda yeniden işlemek veya tutmak zorunda kalmadan, mevcut girdiyi önceki girdilerin geniş geçmişiyle karşılaştırmasına olanak tanır. Temsillerin bir tamponunu koruyarak, modeller daha geniş bir bağlamdan öğrenebilir ve uzun vadeli tutarlılık veya büyük veri kümeleriyle karşılaştırma gerektiren görevlerde performansı artırabilir. büyük veri kümeleriyle karşılaştırma gerektiren görevlerde performansı artırabilir.

Hafıza Bankası Mekanizması

Bir bellek bankasının temel işlevi, mevcut bilgileri mevcut toplu iş boyutunun ötesine genişletmektir. Eğitim sırasında, veriler sinir ağından geçerken, ortaya çıkan özellik temsilleri bankaya aktarılır. Banka maksimum kapasitesine ulaşırsa, genellikle en eski özellikler yeni özelliklere yer açmak için kaldırılır; bu işlem İlk Giren İlk Çıkar (FIFO) kuyruğu olarak bilinir.

Bu mekanizma özellikle önemlidir çünkü GPU bellek sınırlıdır. Bellek bankası olmadan, tek bir görüntüyü bir milyon diğer görüntüyle karşılaştırmak, standart donanıma sığması imkansız bir toplu iş boyutu gerektirir. Bellek bankası ile model, bu bir milyon görüntünün hafif vektörlerini depolayabilir ve nokta çarpımı veya kosinüs benzerliği gibi benzerlik arama tekniklerini kullanarak bunlara verimli bir şekilde başvurabilir.

Gerçek Dünya Uygulamaları

Bellek bankaları, birçok gelişmiş bilgisayar görme (CV) ve doğal dil iş akışında temel bir unsur haline gelmiştir:

  • Karşılaştırmalı Öğrenme (Kendi Kendini Denetleyen Öğrenme): En ünlü uygulamalardan biri karşılaştırmalı öğrenmedir, özellikle de Momentum Contrast (MoCo) gibi algoritmalarda. Burada amaç, modele belirli bir görüntüyü birçok "olumsuz" örnekten (farklı görüntüler) ayırt etmeyi öğretmektir. Bir bellek bankası binlerce negatif örnek temsilini depolar ve modelin etiketli eğitim verilerine ihtiyaç duymadan sağlam özellikleri öğrenmesini sağlar. Derin teknik ayrıntılar için, araştırmacılar genellikle bu yaklaşımı popüler hale getiren MoCo makalesine atıfta bulunurlar.
  • Uzun Vadeli Nesne Takibi: Video analizinde, bir nesne (araba veya kişi gibi) geçici olarak bir engel tarafından gizlenebilir. Standart izleyiciler, bu gizlenme sırasında nesnenin kimliğini (ID) kaybedebilir. Gelişmiş izleyiciler, geçmişte algılanan nesnelerin görsel özelliklerini depolamak için bir bellek bankası kullanır. Nesne yeniden göründüğünde, sistem doğru kimliği yeniden oluşturmak için bankayı sorgular. Nesne izleme için Ultralytics kullanan kullanıcılar, kareler arasında kimlik tutarlılığını koruyan benzer bir iç mantıktan yararlanır.
  • Video Anlama: Birkaç saniye veya dakika süren eylemleri tanımak için modellerin zamansal bağlama ihtiyacı vardır. Bir bellek bankası, geçmiş kareler veya klipler için bir tampon görevi görür ve ağın videonun sonunu işlerken başlangıcında neler olduğunu "hatırlamasını" sağlar. Bu, doğru eylem tanıma için çok önemlidir.

İlgili Kavramları Ayırt Etme

Hafıza bankasını, sözlükte bulunan diğer depolama ve işleme kavramlarından ayırmak yararlıdır:

  • Hafıza Bankası ve Vektör Veritabanı: Her ikisi de geri çağırma için gömülü verileri depolar. Ancak, hafıza bankası genellikle tek bir model oturumunun eğitimi veya aktif çıkarımında dinamik olarak kullanılan geçici, bellek içi bir yapıdır. Vektör veritabanı ( RAG'da kullanılanlar gibi) sürekli, ölçeklenebilir bir depolama çözümüdür ve süresiz olarak kullanılmak ve birden fazla uygulamaya hizmet etmek üzere tasarlanmıştır.
  • Bellek Bankası ve Bağlam Penceresi: Bir bağlam penceresi (Transformers'da yaygın olarak kullanılır), modelin bir seferde işlediği maksimum girdi dizisi uzunluğunu tanımlar (örneğin, 32k token). Bellek bankası, aktif işleme penceresinin dışında sıkıştırılmış temsilleri depolayan harici bir arabellektir ve teorik olarak, Transformer-XL gibi mimarilerde görüldüğü gibi, sonsuz bellek derinliğine izin verir.
  • Bellek Bankası ve Toplu İşlem Boyutu: Toplu işlem boyutu, gradyan güncellemeleri için paralel olarak kaç örneğin işleneceğini belirler. Bellek bankası, ileri ve geri geçişlerin hesaplama maliyetini artırmadan, modelin karşılaştırma amacıyla "görebileceği" etkin örnek sayısını artırır. .

Kod Örneği: Özellik Bankası Simülasyonu

Aşağıdakiler Python snippet, First-In, First-Out (FIFO) bellek bankası kavramını kullanarak gösterir. torch. Bu yapı, özel eğitim döngüleri veya karmaşık çıkarım görevleri sırasında özellik vektörlerinin geçmişini korumak için sıklıkla kullanılır .

import torch

# Initialize a memory bank (Capacity: 100 features, Vector Dim: 128)
# In a real scenario, these would be embeddings from a model like YOLO26
memory_bank = torch.randn(100, 128)

# Simulate receiving a new batch of features (e.g., from the current image batch)
new_features = torch.randn(10, 128)

# Update the bank: Enqueue new features, Dequeue the oldest ones
# This maintains a fixed size while keeping the memory 'fresh'
memory_bank = torch.cat([memory_bank[10:], new_features], dim=0)

print(f"Updated Memory Bank Shape: {memory_bank.shape}")
# Output: Updated Memory Bank Shape: torch.Size([100, 128])

Zorluklar ve Dikkat Edilmesi Gerekenler

Güçlü olmalarına rağmen, bellek bankaları "temsil kayması" sorununu da beraberinde getirir. Kodlayıcı ağı her eğitim adımında biraz değiştiğinden, 100 adım önce bankada depolanan özellikler "eski" veya mevcut model durumuyla tutarsız olabilir. Momentum kodlayıcı (modelin yavaşça güncellenen ortalaması) gibi teknikler bu sorunu hafifletmeye yardımcı olur.

Bu gelişmiş teknikleri kullanan veri kümesi sürümlerini ve model artefaktlarını yönetmek isteyen ekipler için Ultralytics , verileri düzenlemek, deneyleri track ve modelleri verimli bir şekilde dağıtmak için merkezi bir hub sağlar. Özellik depolama ve geri getirmenin karmaşıklığını yönetmek, deneysel yapay zekadan (AI) sağlam üretim sistemlerine geçmek için gereklidir.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın