Garfield
YZF Admin
Transformer mimarisi, metni tek tek ve sabit sırayla işlemek yerine bir dizideki tüm parçaların birbiriyle ilişkisini self-attention mekanizmasıyla hesaplayan sinir ağı yapısıdır. Bir metin önce token adı verilen parçalara ayrılır, sayısal vektörlere dönüştürülür ve konum bilgisiyle birleştirilir. Ardından transformer katmanları her token için hangi diğer token'ların önemli olduğunu hesaplar; besleme sırasında model bir sonraki kelimeyi, sınıflandırma etiketini veya istenen çıktıyı üretir.
Örneğin varsayımsal olarak modele “Ali kitabı masaya bıraktı çünkü ağırdı.” cümlesi verilsin. Model önce cümleyi “Ali”, “kitabı”, “masaya”, “bıraktı”, “çünkü”, “ağırdı” gibi token'lara ayırır. Gerçek token'lar kullanılan sözlüğe göre kelimeden kısa veya uzun olabilir; bu nedenle token ile kelimeyi aynı şey kabul etmemek gerekir.
Her token, embedding adı verilen sayısal bir vektöre çevrilir. Yalnızca bu vektörler kullanılırsa model token'ların cümledeki sırasını doğrudan bilemez. Bu yüzden modele konum bilgisi sağlanır. Özgün transformer’da konum vektörleri embedding’lere eklenir; RoPE gibi başka yöntemlerde ise konum bilgisi attention içindeki sorgu ve anahtar vektörlerine uygulanır. Böylece “kitabı masaya bıraktı” ile aynı token'ların farklı sırada bulunduğu başka bir cümle birbirinden ayrılabilir.
Self-attention, her token'ın diğer token'lara ne kadar dikkat etmesi gerektiğini hesaplar. Bu işlemde her temsil üç farklı vektöre dönüştürülür: sorgu (
Basitleştirilmiş biçimde işlem şu fikre dayanır:
Burada
Bir katmanda genellikle birden fazla attention head bulunur. Multi-head attention, aynı dizide farklı ilişki türlerinin paralel olarak öğrenilmesini sağlar. Bir head sözdizimsel ilişkilere, başka bir head zamir-isim bağlantısına veya uzak token'lar arasındaki başka bir örüntüye ağırlık verebilir. Head çıktıları birleştirilir ve sonraki katmana aktarılır.
Attention katmanından sonra her token'ın temsiline ayrı ayrı uygulanan bir ileri beslemeli ağ (
Transformer türleri aynı temel parçaları farklı amaçlarla kullanır:
Tablodaki “iki tarafına bakabilir” ifadesi özellikle encoder yapısı içindir. Decoder tabanlı üretimde gelecek token'lara erişim maskeyle engellenir; aksi hâlde model cevap üretirken doğru cevabın ilerideki parçalarını önceden görür.
GPT benzeri decoder-only bir modelde süreç şu sırayla işler:
Transformer'lar token'lar arasındaki uzak ilişkileri doğrudan hesaplayabildiği ve eğitim sırasında birçok konumu paralel işleyebildiği için büyük veri kümelerinde etkili biçimde ölçeklenebilir. Bunun karşılığında standart self-attention, token sayısı arttıkça her token'ı diğer token'larla karşılaştırdığı için bellek ve hesaplama maliyetini yaklaşık karesel biçimde büyütür. Uzun belgelerde bu maliyet dikkat penceresi, seyrek attention veya benzeri yöntemlerle azaltılabilir.
Ayrıca attention ağırlıkları tek başına modelin kesin gerekçesini veya insan benzeri muhakemesini göstermez. Model akıcı ve ikna edici bir çıktı üretse bile yanlış bilgi, eksik bağlam veya eğitim verisindeki önyargılar nedeniyle hatalı sonuç verebilir. Transformer mimarisini değerlendirirken yalnızca metnin akıcılığına değil, göreve uygun doğrulama ve test ölçütlerine de bakılmalıdır.
Bir cümle transformer içinde nasıl temsil edilir?
Örneğin varsayımsal olarak modele “Ali kitabı masaya bıraktı çünkü ağırdı.” cümlesi verilsin. Model önce cümleyi “Ali”, “kitabı”, “masaya”, “bıraktı”, “çünkü”, “ağırdı” gibi token'lara ayırır. Gerçek token'lar kullanılan sözlüğe göre kelimeden kısa veya uzun olabilir; bu nedenle token ile kelimeyi aynı şey kabul etmemek gerekir.
Her token, embedding adı verilen sayısal bir vektöre çevrilir. Yalnızca bu vektörler kullanılırsa model token'ların cümledeki sırasını doğrudan bilemez. Bu yüzden modele konum bilgisi sağlanır. Özgün transformer’da konum vektörleri embedding’lere eklenir; RoPE gibi başka yöntemlerde ise konum bilgisi attention içindeki sorgu ve anahtar vektörlerine uygulanır. Böylece “kitabı masaya bıraktı” ile aynı token'ların farklı sırada bulunduğu başka bir cümle birbirinden ayrılabilir.
Self-attention ilişkileri nasıl hesaplar?
Self-attention, her token'ın diğer token'lara ne kadar dikkat etmesi gerektiğini hesaplar. Bu işlemde her temsil üç farklı vektöre dönüştürülür: sorgu (
Query), anahtar (Key) ve değer (Value). Sorgu ile anahtar arasındaki benzerlik, iki token arasındaki ilişkinin ağırlığını belirler. Bu ağırlıklar normalize edilir ve değer vektörlerinin ağırlıklı toplamı alınır.Basitleştirilmiş biçimde işlem şu fikre dayanır:
attention(Q, K, V) = softmax(QKᵀ / √d) VBurada
QKᵀ sorgu-anahtar skorlarını, d sorgu ve anahtar vektörlerinin boyutunu gösterir. Skorlar √d ile ölçeklenir; softmax her sorgu satırında anahtar konumları boyunca uygulanır ve o satırdaki ağırlıkların toplamını 1 yapar. Nedensel attention’da izin verilmeyen gelecek konumları softmax öncesinde maskelenir. Cümledeki “ağırdı” token'ı için model “kitabı” ile güçlü bir ilişki kurabilir; ancak bu, modelin cümleyi insan gibi anladığını veya her zaman doğru zamiri bulduğunu kanıtlamaz. Sonuç, eğitim verisi ve öğrenilmiş ağırlıkların ürettiği istatistiksel bir temsildir.Bir katmanda genellikle birden fazla attention head bulunur. Multi-head attention, aynı dizide farklı ilişki türlerinin paralel olarak öğrenilmesini sağlar. Bir head sözdizimsel ilişkilere, başka bir head zamir-isim bağlantısına veya uzak token'lar arasındaki başka bir örüntüye ağırlık verebilir. Head çıktıları birleştirilir ve sonraki katmana aktarılır.
Bir transformer bloğunun diğer parçaları
Attention katmanından sonra her token'ın temsiline ayrı ayrı uygulanan bir ileri beslemeli ağ (
feed-forward network) bulunur. Bu ağ, attention ile toplanan bağlamsal bilgiyi dönüştürür. Artık bağlantılar (residual connections) önceki temsili korumaya, katman normalizasyonu ise hesaplamaların daha dengeli ilerlemesine yardımcı olur. Bu bloklar üst üste tekrarlandıkça model basit kelime ilişkilerinden daha karmaşık bağlam ve anlam örüntülerine geçebilir.Transformer türleri aynı temel parçaları farklı amaçlarla kullanır:
| Yapı | Attention yönü | Yaygın kullanım |
|---|---|---|
| Encoder | Girdinin iki tarafındaki token'lara bakabilir | Metin sınıflandırma ve temsil çıkarma |
| Decoder | Üretim sırasında önceki token'larla sınırlıdır | Metin üretimi |
| Encoder-decoder | Encoder girdiyi, decoder çıktıyı işler | Makine çevirisi ve metinden metne görevler |
Metin üretimi sırasında ne olur?
GPT benzeri decoder-only bir modelde süreç şu sırayla işler:
- Girdiyi token'lara ayırır. Kullanıcının yazdığı metin, modelin sözlüğündeki token kimliklerine dönüştürülür.
- Token ve konum vektörlerini oluşturur. Token temsilleri oluşturulur ve mimarinin kullandığı yönteme göre konum bilgisi sağlanır; bu bilgi her modelde embedding’e toplanmak zorunda değildir.
- Transformer bloklarından geçirir. Self-attention ve feed-forward katmanları bağlamsal temsilleri günceller.
- Sonraki token olasılıklarını hesaplar. Çıkış katmanı sözlükteki her token için bir skor üretir; softmax bu skorları olasılık dağılımına dönüştürür.
- Bir token seçip girdiye ekler. Seçilen token yeni bağlamın parçası olur ve model sonraki token için işlemi tekrarlar. Üretim, durma token'ına veya belirlenen sınıra ulaşınca biter.
Transformer'ın güçlü ve sınırlı yönleri
Transformer'lar token'lar arasındaki uzak ilişkileri doğrudan hesaplayabildiği ve eğitim sırasında birçok konumu paralel işleyebildiği için büyük veri kümelerinde etkili biçimde ölçeklenebilir. Bunun karşılığında standart self-attention, token sayısı arttıkça her token'ı diğer token'larla karşılaştırdığı için bellek ve hesaplama maliyetini yaklaşık karesel biçimde büyütür. Uzun belgelerde bu maliyet dikkat penceresi, seyrek attention veya benzeri yöntemlerle azaltılabilir.
Ayrıca attention ağırlıkları tek başına modelin kesin gerekçesini veya insan benzeri muhakemesini göstermez. Model akıcı ve ikna edici bir çıktı üretse bile yanlış bilgi, eksik bağlam veya eğitim verisindeki önyargılar nedeniyle hatalı sonuç verebilir. Transformer mimarisini değerlendirirken yalnızca metnin akıcılığına değil, göreve uygun doğrulama ve test ölçütlerine de bakılmalıdır.
Sık sorulan sorular
Transformer her zaman tüm metni aynı anda mı görür?
Hayır. Encoder'lar çoğunlukla girdinin tamamındaki ilişkileri kullanabilirken, metin üreten decoder'lar gelecek token'ları görmemek için nedensel maske kullanır. Bu ayrım, modelin metni anlamaya mı yoksa adım adım üretmeye mi odaklandığına göre değişir.
Son düzenleme: