Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Transformer

Transformer, tüm diziyi paralel işleyen ve öz dikkat üzerine kurulu bir sinir ağıdır. Nasıl çalıştığını, çeşitlerini ve görü alanındaki kullanımını öğren.

Transformer, kelimeler veya görüntü parçaları gibi bir dizi içindeki her belirtecin öz dikkat aracılığıyla diğer tüm belirteçlerden bilgi almasını sağlayarak diziyi işleyen bir sinir ağı mimarisidir. Google araştırmacıları bu mimariyi 2017'de Attention Is All You Need makalesinde makine çevirisi için tanıttı. Önceki yinelemeli sinir ağları (RNN) bir cümleyi kelime kelime okuduğundan, eğitim konumlar arasında paralelleştirilemiyordu. Transformer tüm konumları aynı anda işler; temel modeli sekiz GPU üzerinde 12 saat eğitimden sonra İngilizceden Almancaya çeviride en iyi sonuçları elde etti. Transformer'lar artık büyük dil modellerinin (LLM), görüntü transformer'larının, konuşma tanımanın ve pek çok nesne algılama ve görüntü oluşturma modelinin temelini oluşturuyor.

Transformer'lar Nasıl Çalışır?#

Girdi belirteçleri önce sabit genişlikteki vektörler olan gömülere dönüştürülür (özgün modelde 512). Transformer daha sonra her biri iki alt katmandan oluşan özdeş katmanlardan oluşan bir yığın uygular:

  • Çok başlı öz dikkat: Her belirteç bir sorgu, bir anahtar ve bir değer vektörü üretir. Bir belirtecin çıktısı, sorgusunun her bir anahtarla ne kadar iyi eşleştiğine göre ağırlıklandırılmış tüm değer vektörlerinin ağırlıklı ortalamasıdır; bu, dikkat mekanizmasında açıklanır. Özgün modelde 8 olan birden fazla başlık paralel çalışır; böylece farklı başlıklar farklı ilişkileri izleyebilir.
  • İleri beslemeli ağ: Dikkatin topladığı bilgiyi dönüştüren ve her belirtece ayrı ayrı uygulanan iki katmanlı bir ağ.

Her alt katmanın çevresinde bir artık bağlantı bulunur ve katman normalizasyonu etkinleştirmeleri kararlı tutar. Özgün model, kaynak cümleyi okuyan kodlayıcıda bu katmanlardan 6 tanesini, çeviriyi her seferinde bir belirteç yazarak oluşturan kod çözücüde ise 6 tanesini yığdı. Her kod çözücü katmanı, gelecekteki belirteçleri gizleyen maskeli bir öz dikkat adımı ve kodlayıcının çıktısını okuyan bir çapraz dikkat adımı ekler:

Dikkat, belirteçleri yalnızca içeriklerine göre karşılaştırır; bu nedenle transformer katmanında yerleşik bir sıra algısı yoktur: girdi belirteçlerini karıştırmak yalnızca çıktıları karıştırır. Bu yüzden konum bilgisi, özgün makaledeki sabit sinüs ve kosinüs desenleriyle, BERT ve ViT'teki öğrenilmiş konum vektörleriyle veya günümüzdeki çoğu LLM'de kullanılan döner konum gömmeleriyle (RoPE) belirteç gömmelerine eklenir. Bu PyTorch kodu, tek bir kodlayıcı katmanıyla bu etkiyi gösterir:

import torch
from torch import nn

# Bir transformer kodlayıcı katmanı ve 5 belirteç gömmesinden oluşan bir dizi
torch.manual_seed(0)
layer = nn.TransformerEncoderLayer(d_model=32, nhead=4, batch_first=True).eval()
tokens = torch.randn(1, 5, 32)
reverse = torch.arange(4, -1, -1)

# Öz dikkat tek başına sırayı dikkate almaz: girdiyi tersine çevirmek yalnızca çıktıyı da tersine çevirir
print(torch.allclose(layer(tokens[:, reverse])[:, reverse], layer(tokens), atol=1e-5))

# Her konuma öğrenilmiş bir vektör eklemek, her çıktıyı belirtecinin bulunduğu konuma bağlı hâle getirir
positions = nn.Embedding(5, 32).weight
reordered = layer(tokens[:, reverse] + positions)[:, reverse]
print(torch.allclose(reordered, layer(tokens + positions), atol=1e-5))

Önce True, ardından False yazdırır: konum vektörleri eklenene kadar belirteçleri ters çevirmek yalnızca çıktıları tersine çevirir; vektörler eklendikten sonra belirteçlerin sırası her belirtecin çıktısını değiştirir.

Kodlayıcı, Kod Çözücü ve Kodlayıcı-Kod Çözücü Modelleri#

Özgün yığını kullanmanın üç yolu farklı işlere hizmet eder:

  • Yalnızca kodlayıcı: Her belirteç, anlamaya yönelik görevler için uygun olacak biçimde girdinin tamamına iki yönde de dikkat eder. Metin için BERT, görüntüler için ViT yalnızca kodlayıcı kullanır.
  • Yalnızca kod çözücü: Her belirteç yalnızca kendisinden önceki belirteçlere dikkat eder; böylece model metni her seferinde bir belirteç üretir. GPT modelleri ve günümüzdeki çoğu LLM bu tasarımı kullanır.
  • Kodlayıcı-kod çözücü: Bir kodlayıcı bir diziyi okur, kod çözücü ise çeviri modellerinde, T5'te ve Whisper konuşma tanıyıcısında olduğu gibi, ilk diziye dikkat ederek başka bir dizi yazar.

Bilgisayarlı Görüde Transformer'lar#

Vision Transformer (ViT), görüntüyü 16×16 piksellik parçalardan oluşan bir dizi olarak ele alır ve değiştirilmemiş bir transformer kodlayıcısı uygular; Swin Transformer ise yüksek çözünürlüklü görüntülere ölçeklenebilmek için dikkati yerel pencerelerle sınırlar. DETR, algılamayı küme tahmini olarak yeniden ele aldı: transformer kod çözücü, sabit sayıda öğrenilmiş nesne sorgusunu kutulara dönüştürür ve her sorgu bir nesneye karşılık gelir; böylece maksimum olmayan bastırma (NMS) ve elle tasarlanmış çıpalar ortadan kalkar. Ultralytics paketi, Baidu'nun bu tasarımın gerçek zamanlı bir sürümü olan RT-DETR modelini çalıştırır. RT-DETR'ın hibrit kodlayıcısı, 640×640 görüntü için 400 belirteç içeren yalnızca stride-32 özellik haritasına bir transformer kodlayıcı katmanı uygular; 6 katmanlı kod çözücüsü ise NMS olmadan 300 nesne sorgusunu son algılamalara dönüştürür. Transformer'lar görüntü de üretir: difüzyon transformer'ları son dönemdeki metinden görüntüye ve video modellerinde U-Net'in yerini aldı; görüntü-dil modelleri ise görüntü belirteçlerini yalnızca kod çözücü kullanan bir LLM'ye aktarır.

  • Evrişimli sinir ağları (CNN): Evrişim, her konumda aynı filtreyi kullanarak küçük bir komşuluğu görür; bu yerleşik varsayım küçük veri kümelerinde fayda sağlar. Dikkat, tek bir katmanda herhangi iki konumu birbirine bağlayabilir ancak uzamsal yapıyı veriden öğrenmek zorundadır; bu nedenle transformer'ların CNN'leri geride bırakması için genellikle daha fazla eğitim verisi veya ön eğitim gerekir.
  • RNN'ler ve LSTM'ler: Sabit boyutlu bir durumu adımdan adıma taşırlar; böylece belirteç başına bellek sabit kalır, ancak eğitim sıralı gerçekleşir. Transformer geçmişteki tüm belirteçleri kullanılabilir tutar ve paralel eğitim yapar.
  • Durum uzayı modelleri: Mamba gibi mimariler dizileri, maliyeti uzunlukla doğrusal artan yinelemeli bir durumla işler; hibrit modeller ise bu mimarileri dikkat katmanlarıyla iç içe kullanır.

Öz dikkat her belirteci diğer tüm belirteçlerle karşılaştırdığı için maliyeti dizi uzunluğunun karesiyle artar. 4.096 belirteçlik bir dizide her katmanın her başlığında yaklaşık 16,8 milyon sorgu-anahtar çifti bulunur; uzunluğu iki katına çıkarıp 8.192 belirtece yükseltmek bu sayıyı yaklaşık 67 milyona, yani dört katına çıkarır. FlashAttention bu hesaplamanın bellek trafiğini azaltır; KV önbelleği ise önceki belirteçlerin anahtarlarını ve değerlerini saklayarak kod çözücünün bunları üretim sırasında yalnızca bir kez hesaplamasını sağlar.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla