Attention Mekanizması
Dikkat Mekanizması
- İngilizcesi
- Attention Mechanism
- Okunuşu
- ıtenşın mekınizım
Günlük kullanımda iki ad da yaygın.
Kısaca
Attention mekanizması, modelin her token için girdinin hangi bölümlerinin en önemli olduğuna karar verip onlara odaklanmasını sağlayan sinir ağı tekniğidir.
Yapay zekâda attention mekanizması nedir?
Attention, bir sinir ağının girdisinin tüm bölümlerine bakmasını ve her bölümün şu anda işlediği parçayı ne kadar etkilemesi gerektiğine karar vermesini sağlayan bir tekniktir. İlk olarak 2014 civarında makine çevirisini iyileştirmek için ortaya atıldı; böylece bir cümleyi çeviren model ürettiği her sözcük için ilgili kaynak sözcüklere odaklanabiliyordu. Bugün, modern dil modellerinin arkasındaki transformer mimarisinin temel yapı taşıdır.
Self-attention'da her token'ın embedding'i üç vektöre dönüştürülür: token'ın ne aradığını tarif eden bir query (sorgu), neyi sunduğunu tarif eden bir key (anahtar) ve içeriğini taşıyan bir value (değer). Model her query'yi nokta çarpımı kullanarak her key ile karşılaştırır, skorları softmax fonksiyonuyla toplamı 1 olan ağırlıklara dönüştürür ve value'ların ağırlıklı ortalamasını alır. Transformer'lar bu hesaplamalardan birkaçını paralel çalıştırır; bunlara attention head (başlık) denir, böylece farklı başlıklar dil bilgisi, gönderimler ya da konu gibi farklı ilişkileri izleyebilir.
Yardımcı bir benzetme kütüphane aramasıdır: sorunuz query, kitap sırtlarındaki etiketler key, kitapların içeriği ise value'dur. Etiketleri sorunuza en iyi uyan kitapları çeker ve söylediklerini yanıtınıza harmanlarsınız. 'The trophy didn't fit in the suitcase because it was too big' gibi bir cümlede modelin 'it' ile 'trophy'yi ilişkilendirmesini sağlayan şey attention'dır.
Attention çoğu zaman transformer'ın kendisiyle karıştırılır. Attention tek bir mekanizmadır; transformer ise attention katmanlarını ileri beslemeli (feed-forward) katmanlar, normalizasyon ve diğer parçalarla üst üste koyan tam bir mimaridir. İsim de bir metafordur; insana benzer bir odaklanma ya da anlayışın işareti değildir. Başlıca maliyeti ise her token'ı diğer her token'la karşılaştırmanın girdi uzunluğunun karesiyle artmasıdır; uzun bağlam pencerelerinin pahalı olmasının nedeni budur.
Önemli noktalar
- Attention, her token'ın diğer her token'ın kendisi için ne kadar ilgili olduğunu tartmasını sağlar.
- Query, key ve value'larla çalışır; bunlar nokta çarpımı ve softmax ile birleştirilir.
- Multi-head attention, birkaç attention hesaplamasını paralel çalıştırır.
- Attention, bir transformer'ın tek bir bileşenidir; mimarinin tamamı değildir.
- Maliyeti girdi uzunluğunun karesiyle artar.
Örnek
import numpy as np
def attention(Q, K, V):
# Score every query against every key, scaled by the vector size
scores = Q @ K.T / np.sqrt(K.shape[1])
# Softmax turns each row of scores into weights that add up to 1
weights = np.exp(scores) / np.exp(scores).sum(axis=1, keepdims=True)
return weights @ V # weighted average of the values
rng = np.random.default_rng(0)
tokens = rng.random((4, 8)) # 4 tokens, each an 8-number embedding
Wq, Wk, Wv = (rng.random((8, 8)) for _ in range(3)) # learned in training
output = attention(tokens @ Wq, tokens @ Wk, tokens @ Wv)
print(output.shape) # (4, 8): one context-aware vector per tokenSık sorulan sorular
Attention'daki query, key ve value nedir?
Her token'dan hesaplanan üç vektördür. Query bir token'ın ne aradığını, key bir token'ın ne içerdiğini, value ise aktarılan bilgiyi tarif eder; query'lerin key'lerle eşleştirilmesi, her value'nun ne kadarının kullanılacağını belirler.
Multi-head attention nedir?
Multi-head attention, her biri kendi öğrenilmiş ağırlıklarına sahip birkaç bağımsız attention hesaplamasını (head) yan yana çalıştırır. Sonuçları birleştirilir; bu da modelin token'lar arasındaki birkaç tür ilişkiyi aynı anda izlemesini sağlar.
Attention uzun girdiler için neden pahalıdır?
Standart self-attention her token'ı diğer her token'la karşılaştırır; bu yüzden girdi uzunluğunu iki katına çıkarmak işi kabaca dört katına çıkarır. Modeller bu maliyeti azaltmak için optimize edilmiş uygulamalar, önbellekleme ve attention'ın yaklaşık biçimlerini kullanır.
İlgili sayfalar
- TransformerYapay Zekâ ve Makine Öğrenmesi, s. 45Transformer, bir dizideki her token'ın diğerleriyle ilişkisini attention ile tartan ve çoğu modern LLM'e güç veren bir sinir ağı mimarisidir.
- Yapay Sinir AğıYapay Zekâ ve Makine Öğrenmesi, s. 49Yapay sinir ağı, bağlantılı yapay nöron katmanlarından oluşan ve sayısal ağırlıkları ayarlayarak verilerden örüntü öğrenen bir makine öğrenmesi modelidir.
- TokenYapay Zekâ ve Makine Öğrenmesi, s. 43Token, bir LLM'nin okuduğu ve ürettiği temel metin birimidir; genellikle bir sözcük, sözcük parçası ya da noktalama işaretidir ve sayısal bir kimliğe eşlenir.
- Bağlam PenceresiYapay Zekâ ve Makine Öğrenmesi, s. 5Bağlam penceresi, bir LLM'nin prompt, konuşma geçmişi ve kendi yanıtı dahil aynı anda dikkate alabildiği, token cinsinden en fazla metin miktarıdır.
- EmbeddingYapay Zekâ ve Makine Öğrenmesi, s. 18Embedding, metin, görüntü ya da başka verilerin anlamını vektör denen bir sayı listesiyle temsil eden ve benzer öğeleri birbirine yakın konumlandıran yapıdır.
- Derin ÖğrenmeYapay Zekâ ve Makine Öğrenmesi, s. 14Derin öğrenme, görüntü ve metin gibi ham verilerden karmaşık örüntüleri öğrenmek için çok katmanlı sinir ağları kullanan bir makine öğrenmesi alt kümesidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin