NLP ve CV için GPU eğitimini ve gerçek zamanlı çıkarımı hızlandıran Transformer dikkati için hızlı, bellek açısından verimli bir yöntem olan Flash Attention'ı keşfedin.
Flash Attention, aşağıdakilerin performansını hızlandırmak için tasarlanmış gelişmiş bir algoritmadır Transformatör modellerini optimize ederek di̇kkat mekani̇zmalari grafi̇klerde belleğe eri̇şi̇m Donanım. Hesaplama darboğazlarını gidermek için geliştirildi derin öğrenme, bu yöntem önemli ölçüde artırır eğitim hızı ve ödün vermeden gerçek zamanlı çıkarım doğruluk. Veri hareketini daha verimli bir şekilde yöneterek, Flash Attention, yapay zeka modellerinin daha uzun veri dizilerini işlemesine olanak tanır; bu da modern uygulamalar için kritik öneme sahiptir. Doğal Dil İşleme (NLP) ve yüksek performanslı Bilgisayarla Görme (CV).
Flash Attention'ın temel yeniliği "IO-farkındalığında" yatmaktadır, yani açıkça üzerinde farklı bellek seviyeleri arasında veri taşıma maliyeti GPU (Grafik İşlem Birimi). İçinde standart dikkat uygulamalarında, büyük ara matrisler sıklıkla GPU'nun Yüksek Çözünürlüklü matrislerinden okunur ve bu matrislere yazılır. Geniş ancak nispeten yavaş olan Bant Genişliği Belleği (HBM).
Flash Attention, döşeme adı verilen bir teknik kullanarak bu süreci yeniden yapılandırır. Büyük dikkat matrisini GPU'nun hızlı çip üstü SRAM'ine (Statik Rastgele Erişim Belleği) tamamen sığan daha küçük bloklar. Daha fazla performans göstererek SRAM içindeki hesaplamaları ve HBM'ye okuma/yazma işlemlerini en aza indirerek bellek bant genişliğini azaltır darboğaz. Bu kavram aşağıdaki araştırmacılar tarafından ortaya atılmıştır Stanford Üniversitesi ve aşağıdaki makalelerinde ayrıntılı olarak açıklanmıştır FlashDikkat.
Flaş Dikkati genel dikkat kavramından ayırmak önemlidir.
Flash Attention NLP alanında ortaya çıkmış olsa da Büyük Dil Modelleri (LLM'ler), bu görme görevleri için giderek daha hayati hale gelmektedir. Modern mimariler, örneğin Vision Transformer (ViT), büyük ölçüde Dikkat katmanları.
YOLO12 gibi bazı topluluk odaklı modeller ağır hesaplama maliyetini azaltmak için Flash Attention kullanan entegre dikkat mekanizmaları mimarisine sahiptir. Ancak bu modeller yine de yüksek bellek tüketimi ve eğitim kararsızlığından muzdarip olabilir. Çoğu için pratik kullanım durumları, Ultralytics YOLO11 kalır üstün bir hız ve verimlilik dengesi sunarak tavsiye edilen bir seçimdir. İleriye baktığımızda, yaklaşan YOLO26, uçtan uca yerel olarak desteklemek üzere tasarlanıyor benzer verimlilik ilkelerinden yararlanabilecek optimize edilmiş mimarilere sahip görevler.
Flash Attention, yapay zeka sistemlerinin daha önce hesaplama açısından engelleyici olan görevlerin üstesinden gelmesini sağlar.
Gibi modern çerçeveler PyTorch (sürüm 2.0 ve üstü) Flash'ı entegre etmiştir Doğrudan işlevsel API'lerine dikkat edin. Üst düzey kütüphaneleri kullanırken, sistem otomatik olarak NVIDIA Ampere veya Hopper GPU'larda olduğu gibi donanım destekliyorsa en verimli çekirdek (Flash Attention gibi).
Aşağıdaki örnek, bir kullanıcının bu ekosistemden nasıl yararlanabileceğini göstermektedir. Bir model yükleyerek ve onu bir CUDA cihazı, altta yatan çerçeve bu optimizasyonları model eğitimi.
import torch
from ultralytics import YOLO
# Ensure PyTorch is using a CUDA device for GPU acceleration
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")
# Load the YOLO11 model, which is optimized for efficiency
model = YOLO("yolo11n.pt")
# When training on a compatible GPU with PyTorch 2.0+,
# Flash Attention (SDPA) is utilized automatically for attention layers where applicable.
if device == "cuda":
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
Bu sorunsuz entegrasyon, geliştiricilerin Ultralytics Platformu son teknoloji hızlandırma özelliğinden faydalanabilir Karmaşık CUDA çekirdeklerini manuel olarak yazmaya gerek kalmadan teknikler.