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

Flaş Dikkat

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, 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 .

Flaş Dikkat Nasıl Çalışır?

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 yaparak, 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. Matematiksel ayrıntıları orijinal araştırma makalesinde inceleyebilirsiniz.

İlgili Terimlerden Ayrım

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.

  • Standart Dikkat: Tam dikkat matrisini hesaplayan geleneksel uygulama. Matematiksel olarak çıktı açısından Flash Dikkat ile aynıdır, ancak bellek IO'sunu optimize etmediği için genellikle daha yavaş ve bellek yoğun bir işlemdir. .
  • Flash Attention: Standart dikkatin tam optimizasyonu. Yaklaşık bir sonuç vermez; aynı sayısal sonuçları çok daha hızlı bir şekilde verir.
  • Sparse Attention: Hesaplama gücünden tasarruf etmek için belirli bağlantıları göz ardı eden bir yaklaşım tekniği. Flash Attention'tan farklı olarak, sparseattention hız için bir miktar hassasiyetten ödün verir.

Bilgisayar Görme ve YOLO'da Alaka Düzeyi

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şimini etkilemektedir. Örneğin, topluluk odaklı YOLO12, bu ilkeleri kullanan dikkat katmanlarını tanıttı. 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ğruluk arasında denge sağlayan, kenar cihazlarda genellikle ağır dikkat katmanlarıyla ilişkili ek yükü önleyen, yüksek düzeyde optimize edilmiş bir mimari kullanır.

Gerçek Dünya Uygulamaları

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.

  1. Uzun Bağlamlı Üretken Yapay Zeka: GPT-4 gibi Büyük Dil Modellerinin (LLM) dünyasında, Flash Attention, modelin büyük miktarda bilgiyi "hatırlamasını" sağlar. Bu, büyük bir bağlam penceresi oluşturarak, kullanıcıların model bellek sınırları nedeniyle çökmeden metin özetlemesi için kitapların tamamını veya yasal kod tabanlarını yüklemelerine olanak tanır.
  2. Yüksek Çözünürlüklü Tıbbi Teşhis: Tıbbi görüntü analizinde ayrıntılar önemlidir. Patologlar, doku örneklerinin gigapiksel taramalarını analiz eder. Flash Attention, modellerin bu devasa görüntüleri doğal çözünürlüklerinde işlemelerine olanak tanıyarak, görüntüyü küçültmeden ve hayati verileri kaybetmeden erken aşamadaki beyin tümörleri gibi küçük anomalileri tespit eder.

PyTorch Ultralytics ile uygulama

Gibi modern çerçeveler PyTorch (sürüm 2.0+) Flash Attention'ı "Scaled Dot Product Attention" (SDPA) olarak işlevsel API'larına doğrudan entegre etmişlerdir. SDPA ultralytics desteklenen bir GPU NVIDIA veya Hopper mimarisi gibi) paket, bu optimizasyonlar otomatik olarak uygulanır.

Aşağıdaki örnek, GPU üzerinde eğitimi nasıl başlatacağınızı gösterir. Ortam destekliyorsa, temel çerçeve, eğitim sürecini hızlandırmak için Flash Attention çekirdeklerini kullanır .

import torch
from ultralytics import YOLO

# Verify CUDA device availability for Flash Attention support
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Training on: {device}")

# Load the latest YOLO26 model (recommended for stability and speed)
model = YOLO("yolo26n.pt")

# Train the model; PyTorch 2.0+ automatically uses optimized attention kernels
if device == "cuda":
    model.train(data="coco8.yaml", epochs=5, imgsz=640, device=0)

Donanım gelişmeye devam ettikçe, Ultralytics gibi araçlar bu düşük seviyeli optimizasyonlardan yararlanarak, eğitimlerin geliştiriciler için mümkün olduğunca uygun maliyetli ve hızlı bir şekilde gerçekleşmesini sağlayacaktır.

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