Flash Attention'ın belleği nasıl optimize ettiğini ve Transformer modellerini nasıl hızlandırdığını keşfedin. Bilgisayar görüşünü nasıl geliştirdiğini ve Ultralytics neden en iyi seçim olduğunu öğrenin.
Flash Attention, bellek erişimini daha verimli bir şekilde yöneterek Transformer modellerinin eğitimi ve çıkarımını hızlandırmak için tasarlanmış, yüksek düzeyde optimize edilmiş bir algoritmadır. Modern derin öğrenmede (DL), özellikle büyük modellerde, birincil darboğaz genellikle işlemcinin hesaplama hızı değil, bellek depolama ve hesaplama birimleri arasında veri aktarımı için gereken süredir. Flash Attention, dikkat mekanizmalarının verileri işleme şeklini yeniden düzenleyerek bu "bellek duvarını" ortadan kaldırır ve doğruluktan ödün vermeden daha hızlı performans ve daha düşük bellek kullanımı sağlar .
Flash Attention'ı anlamak için, bir GPU Grafik İşlem Birimi) mimarisine bakmak yardımcı olabilir. Bir GPU yüksek kapasiteli ancak daha yavaş olan Yüksek Bant Genişliği Belleği (HBM) ve düşük kapasiteli ancak inanılmaz derecede hızlı olan yonga üstü SRAM'e sahiptir. Standart dikkat uygulamaları, büyük matrisleri yavaş HBM'ye tekrar tekrar okur ve yazar, bu da birikim yaratır.
Flash Attention, büyük dikkat matrisini hızlı SRAM'e tamamen sığacak şekilde daha küçük bloklara ayırmak için "döşeme" adı verilen bir teknik kullanır. Bu blokları hızlı bellekte tutarak ve sonucu geri yazmadan önce orada daha fazla hesaplama yaparak, algoritma HBM'ye yapılan okuma/yazma işlemlerinin sayısını önemli ölçüde azaltır. Bu blokları hızlı bellekte tutarak ve sonucu geri yazmadan önce burada daha fazla hesaplama gerçekleştirerek, algoritma HBM'ye yapılan okuma/yazma işlemlerinin sayısını önemli ölçüde azaltır. Stanford Üniversitesi araştırmacıları tarafından tanıtılan bu yenilik, süreci "IO-aware" hale getirir, yani veri hareketinin maliyetini açıkça hesaba katar. Teknik ayrıntıları orijinal araştırma makalesinde inceleyebilirsiniz.
Flash Attention'ı yapay zeka (AI) sözlüğündeki benzer kavramlardan ayırmak önemlidir: * Flash Attention, yapay zeka sistemlerinde bir tür öğrenme algoritmasıdır.
Başlangıçta uzun metin dizilerini işlemek için Doğal Dil İşleme (NLP) için geliştirilen Flash Attention, bilgisayar görüşü (CV) alanında da kritik bir öneme sahip hale gelmiştir. Yüksek çözünürlüklü görüntüler, Vision Transformers (ViT) tarafından işlendiğinde büyük veri dizileri oluşturur.
Bu teknoloji, nesne algılayıcıların geliştirilmesini etkilemektedir. Örneğin, topluluk odaklı YOLO12 gibi bazı deneysel modeller, bu ilkeleri kullanan dikkat katmanları getirmiştir. Ancak, tamamen dikkat temelli mimariler, eğitim istikrarsızlığı ve yavaş CPU muzdarip olabilir. Çoğu profesyonel uygulama için, Ultralytics önerilen standarttır. YOLO26 , uçtan uca nesne algılama ve görüntü segmentasyonu için hız ve doğruluğu dengeleyen, son derece optimize edilmiş bir mimari kullanır ve kenar cihazlarda genellikle ağır dikkat katmanlarıyla ilişkili ek yükü önler.
Flash Attention'ın sağladığı verimlilik artışı, daha önce çok pahalı veya yavaş olduğu için çalıştırılamayan uygulamaların çalıştırılmasını mümkün kılar.
Flash Attention genellikle PyTorchiçinde sıklıkla bir iç optimizasyon olsa da, Ultralytics ile dikkat tabanlı modelleri kolayca kullanabilirsiniz. Aşağıdaki kod parçacığı, bir RT-DETR modelinin nasıl yüklendiğini ve dikkat mekanizmalarını kullanarak bir görüntü üzerinde çıkarım yapıldığını göstermektedir.
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model which utilizes transformer attention
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")
Ultralytics gibi araçları kullanarak, geliştiriciler karmaşık GPU manuel olarak uygulamaya gerek kalmadan bu sofistike modelleri eğitebilir ve uygulayabilir. Platform, altyapıyı yöneterek ekiplerin yüksek kaliteli veri kümelerini düzenlemeye ve sonuçları yorumlamaya odaklanmasına olanak tanır.