Geçen hafta yan masamdaki arkadaş kendi tarafına çevirdi, ekranda Attention Is All You Need'in 2. sayfası açıktı. "Bunu anlıyorum sanıyordum, sonra şu RoPE çıktı, sonra Flash Attention, sonra GQA — her hafta bir tane daha. Şimdi DeepSeek MLA ile geliyor, Llama 4 BLT'yle uğraşıyor. Bu ne hızda büyüyor ya?" — Açıkçası ben de aynı duyguyu yaşadım, hâlâ yaşıyorum. 2017'de Vaswani ekibi bir makale yayınladı, dünya değişti, ve o günden bu yana her sene mimarinin başka bir tahtasını kırıyoruz. Ama eğer 8 yıl boyunca biriken her optimizasyonu tek tek sökersen, altında çok temiz bir matematik var.
Bu yazı, o matematiğin Türkçe sökümü. Hiçbir önceki bilgi gerektirmeden başlayıp, gerçek bir Türkçe BERT modelinden çekilmiş attention haritalarıyla ilerleyerek, 2026'nın en son hibrit mimarilerinin nereye varmaya çalıştığına kadar gideceğiz. Hedef: bir transformer paper'ı önüne geldiğinde "tamam, ne yapmaya çalıştığını biliyorum" demek.
Önce Çerçeveyi Görelim
Transformer'a girmeden, ne yaptığını söyleyelim: bir dizi token alır, her token için bağlamla zenginleştirilmiş bir vektör çıkarır. Hepsi bu.
Bunu yapan iki büyük blok var, art arda tekrarlanıyor:
- Self-attention — her token'ın diğerlerine bakıp "şu an benim için kim önemli?" diye sorduğu yer.
- Feed-forward network (FFN) — attention'dan gelen sinyali her token için bağımsız olarak ezip yeniden açan, parametrelerin büyük çoğunluğunun yaşadığı yer.
Bu iki blok bir araya gelip bir transformer layer oluşturuyor. Modeli "derin" yapan şey, bu layer'ı 30, 60, 80 kez üst üste yığmak. Llama-3 70B → 80 layer. DeepSeek-V3 → 61 layer. Her bir layer, altındaki layer'ın çıktısını biraz daha rafine ediyor.
Sezgi şu: ilk layer'lar yüzeysel istatistiklere bakar (hangi token hangiyle birlikte gelir?), orta layer'lar sentaks ve eşgönderim (anaphora) gibi yapısal şeyleri çözmeye başlar, üst layer'lar anlamsal/dünyaya dair şeyleri yakalar. Bu kesin bir hiyerarşi değil — daha çok bir eğilim. Ama akılda tutmak işe yarıyor.
Attention — Sıfırdan
Attention, çok karmaşık görünen ama özünde tek bir cümleyle özetlenebilen bir işlem: her token, diğer token'lardan bir ağırlıklı ortalama alır. Ağırlıkları kendi belirler.
Bunu anlamak için somut bir örnek lazım. Kıyıdaki banka diktir cümlesini ele alalım. Burada "banka" kelimesi, kelime anlamı açısından bir bilmeceyle gelir: nehir kıyısı mı, finansal kurum mu? Bağlama bakmadan cevap veremezsin. Kıyı kelimesi ortaya gelince, modelin kafasında nehir kıyısı yorumu kesinleşmesi gerekir.
Şimdi, gerçek bir Türkçe BERT modeline (dbmdz/bert-base-turkish-cased) bu cümleyi verip 7. katmanın 7. başının attention matrisini çekelim:

Turuncu kutu içine aldığım satır "banka" token'ının satırı. Modelin "banka diye bir şey gördüm, bunu anlamak için neye bakayım?" sorusuna verdiği cevap bu. Sonuç: dikkatinin %76'sını "Kıyı" tokenına veriyor. daki, dik, tir tokenlarına ise toplam %25 bile vermiyor. Yani model bu spesifik head'de, "banka"yı disambiguate etmek için tam olarak doğru yere bakıyor.
Bunu programladık mı? Hayır. Sadece dev miktarda Türkçe metin üzerinde "bir sonraki kelimeyi tahmin et" oyununu oynattık, model kendisi bu bağlamı çözmenin en iyi yolu olduğuna karar verdi. Mucize değil, optimizasyon.
Peki bu ağırlıklar nereden geliyor? İşte mekanizmanın iç yüzü.
Q, K, V — Üç Vektörün Dansı
Her token, attention katmanına girerken üç farklı vektöre dönüştürülür:
- Query (Q) — "Ben kimim, neye ihtiyacım var?"
- Key (K) — "Ben şuyum, bana ihtiyacın olabilir."
- Value (V) — "Eğer beni seçersen, vereceğim bilgi şu."
Token'ın orijinal embedding vektörü x'i alıp üç farklı ağırlık matrisi (W_Q, W_K, W_V) ile çarparız. Bu üç matris öğrenilebilir — eğitim sürecinde model onları kendisi şekillendirir.
Q = x · W_Q
K = x · W_K
V = x · W_V
Sonra, i. token'ın j. token'a ne kadar dikkat etmesi gerektiğini hesaplamak için Q_i ile K_j'yi nokta çarpımlarız:
score(i,j) = (Q_i · K_j) / √d_k
Bölüm neden √d_k? d_k her bir head'in boyutu (BERT-base için 64, Llama-3 70B için 128 mesela). Eğer bölmezsen, vektör boyutu büyüdükçe nokta çarpımların standart sapması da √d_k ile büyür, softmax'a girdiğinde bir-iki değer +∞'a yakın olur, geri kalanı sıfır olur, gradient ölür. Bu küçük detay olmazsa derin transformer'lar eğitilemiyor. Vaswani et al. 2017'nin paper'ındaki en küçük denklem, en pahalı dersi de saklıyor.
Sonra softmax ile her satırı toplamı 1 olan bir olasılık dağılımına çeviririz:
α(i,j) = softmax_j( score(i,j) )
Ve son olarak, her token için, V vektörlerinin bu ağırlıklarla bütünleştirilmiş halini buluruz:
output_i = Σ_j α(i,j) · V_j
Tek bir matris denklemiyle:
Attention(Q, K, V) = softmax( Q Kᵀ / √d_k ) · V
İşte hepsi bu. Üç matris çarpımı, bir softmax, bir bölme. Karmaşıklığı buradan değil, bu işlemi paralelde 32 kez aynı anda yapıp sonuçları birleştirmekten geliyor. Multi-head'e geçelim.
Multi-Head — Bir Modelin Birden Fazla Kafası
Tek bir attention katmanı, tek bir "bakış açısı" üretir. Modelin "banka → kıyı" odaklı dikkati harika ama, ya aynı cümlede "diktir" → "banka" yönlü bir başka ilişki de yakalanması gerekirse? Tek bir Q, K, V projeksiyon seti hepsini birden öğrenemez — softmax onu tek bir yere zorlar.
Çözüm zarif: aynı işlemi paralel birden çok kez yap. Her seferinde farklı W_Q, W_K, W_V matrisleriyle. Her birine bir head (baş) diyoruz. BERT-base 12 head, BERT-large 16, Llama-3 70B 64 head kullanır.
İşte BERT-tr'nin aynı katmanının 12 başının tamamı:

Bir bakışta dikkat eden şey: başlar birbirine hiç benzemiyor. Head 6 ve head 8 belirgin bir diyagonal pattern — her token bir önceki/sonraki token'a bakıyor, yerel (local) pozisyonsal bilgi yakalama. Head 7 tek bir sütunda yoğunlaşıyor — bizim "banka → Kıyı" head'imiz. Head 11 ortada kaotik görünüyor ama orada da bir yapı var, sadece tek bir tokena değil, bir kombinasyona bakıyor.
Bu özelleşme öğrenmenin yan ürünü, manuel programlanmış değil. Birkaç paper (mesela Voita et al. 2019, Analyzing Multi-Head Self-Attention) bazı başların gerçekten budayabileceğini, "syntactic head" / "positional head" / "rare-word head" gibi rollerin spontane olarak ortaya çıktığını gösterdi.
Pratikte her başın çıktısı d_model / n_heads boyutunda (Llama-3 70B için 8192/64=128). Sonunda hepsi yan yana birleştirilip (concat) tek bir lineer projeksiyondan geçirilir. Multi-head dediğimiz şey budur.
MHA → MQA → GQA: K/V Başlarını Paylaşmanın Hikayesi
Klasik multi-head attention'ın bir problemi var: bellek. Inference sırasında her bir Q, K, V başı için ayrı bir tensör hesaplamak, ve daha kötüsü, üretilmiş tüm token'ların K ve V vektörlerini KV cache'te saklamak gerekiyor. 64 başın ayrı ayrı saklanması, GPU belleğini hızla yer.
2019'da Shazeer adlı bir kişi (Google) tek bir soruyla geldi: ya hepsini paylaşırsak? Multi-Query Attention (MQA) doğdu: 64 Q başı ama sadece 1 K, 1 V başı. Hepsi aynı K-V çiftini kullanır.
Bellek devrimi anlamında müthiş — KV cache 64x küçüldü. Ama kalite düştü. 2023'te Ainslie ve arkadaşları (Google) ortayolu önerdi: Grouped-Query Attention (GQA). Q başlarını gruplara böl, her grup tek bir K-V çiftini paylaşsın. Llama 2 70B → 64 Q, 8 KV (8'li gruplar). DeepSeek-V3 → bunu MLA (Multi-head Latent Attention) ile bir adım ileri taşıdı, K ve V'yi gizli bir alt-uzaya sıkıştırıyor.

Pratik etki şu: aynı modeli aynı GPU'da 4-5 kat daha uzun bağlamla çalıştırabiliyorsun. Llama 3'ün 128K context window'unu mümkün kılan teknik detayların başında gelir. Mistral, Qwen, DeepSeek — hepsi bugün GQA üzerinde. Saf MHA artık nostaljik bir tercih.
Bir gözlem: MQA "bedava" değil. Llama-2 paper'ında, MQA'ya geçtiklerinde küçük modellerde kalite kaybı oldu, GQA bu kaybı pratikte kapattı. Yani GQA'nın varoluş sebebi bir teorik güzellik değil, fiilen uzun bağlam çağında ölçeklenmenin tek yolu olması.
Pozisyonel Encoding — En Az Konuşulan En Önemli Şey
Self-attention'ın iç güzelliği aynı zamanda zayıflığıdır: simetrik. Cümledeki token'ların sırasını karıştırırsan, attention çıktısı aynı kalır. Bir bag-of-words'tür.
Ama dil sıra önemlidir. Kedi köpeği gördü ile Köpek kediyi gördü aynı şey değil. Modelin pozisyon bilgisini bir şekilde alması gerek.
Bu sorun Attention Is All You Need'in tek "hacky" kısmı oldu, ve 8 yıldır en aktif araştırma alanlarından biri:
| Yıl | Teknik | Çalışma şekli | Nerede kullanılıyor |
|---|---|---|---|
| 2017 | Sinusoidal | Her pozisyon için sabit sin/cos vektörü, embedding'e topla | Orijinal Transformer |
| 2018 | Learned absolute | Pozisyon için öğrenilmiş bir vektör | BERT, GPT-2, GPT-3 |
| 2021 | RoPE | Q ve K'yı pozisyonla döndür | Llama, Mistral, Qwen, DeepSeek, GPT-NeoX |
| 2022 | ALiBi | Attention skoruna mesafeyle orantılı bir bias ekle | Bloom, MPT |
İlk iki yöntem çalışıyordu ama bir büyük dezavantajları vardı: bağlam genişletilemiyor. Eğer 2048 token bağlamla eğitilmişse, 4096'ya geçtiğinde model 2048+'den itibaren hiçbir pozisyonel sinyali tanımıyor — sıfırdan eğitmen gerekiyor.
RoPE (Su et al. 2021, "RoFormer" paper'ı) bu durumu kökten değiştirdi.
RoPE'un Sezgisi
RoPE'un üç kelimelik özeti: pozisyon, vektörü düzlemde döndürür.
Her token'ın Q ve K vektörünü, vektör boyutunu 2'lik çiftlere böl. Her çifti 2D bir vektör olarak gör. Sonra her pozisyon m için, o çifte m·θ_i açısı kadar bir rotasyon uygula. θ_i her çift için farklı bir baz frekansı.

Bu garip görünebilir ama çok zarif bir özelliği var: iki RoPE'lanmış vektörün nokta çarpımı sadece pozisyon farkına bağlıdır. Yani:
⟨ RoPE(q, m), RoPE(k, n) ⟩ = f(q, k, m - n)
Mutlak pozisyon kaybolur, sadece bağıl pozisyon kalır. Bu, dilbilimsel olarak son derece doğru bir tasarım — "kedi" 5. ya da 95. tokende olabilir, önemli olan diğer tokenlardan ne kadar uzakta olduğu.
Üstelik bonus: yeterince yüksek baz frekansla, "bağlam genişletme" sorunu büyük ölçüde çözülüyor. Model 4K bağlamla eğitilse de, RoPE'un θ_base parametresini büyütüp (NTK-aware scaling, YaRN) 128K'ya çıkarmak mümkün. Llama 3'ün 8K → 128K geçişi, RoPE base scaling'in bir uygulaması.
DeepSeek-V3'ün ilginç bir hamlesi var: head'lerin yarısında RoPE uyguluyor, diğer yarısında uygulamıyor (no-PE head'leri). Açık ki o no-PE head'ler bir tür "uzun bağlam attractor" işlevi görüyor — long-range bilgiyi pozisyon kıvrımı olmadan saklıyor.
Modern Blok — Llama / Mistral / DeepSeek Stili
Şimdiye kadar tek tek parçaları gördük: attention, multi-head, pozisyonel encoding. Bunları 2026 stilinde bir transformer bloğu olarak nasıl montajlıyoruz?

Beş kritik tasarım kararı:
1. Pre-norm (normalizasyon residual dışında). Orijinal Vaswani 2017 post-norm'du: önce attention, sonra norm. 2019'da Xiong et al. gösterdi ki bu pek stabil değil, derin modellerde gradient'lar patlıyor. Bugün herkes pre-norm: önce norm, sonra attention. Residual yolu normalizasyondan geçmiyor, kestirme kalıyor.
2. RMSNorm yerine LayerNorm. RMSNorm (Zhang & Sennrich 2019) LayerNorm'un basitleştirilmiş hali: ortalamayı çıkarma adımını atlar, sadece RMS'ye böler. Daha az parametre, %10-20 daha hızlı, hemen hemen aynı kalite. Llama, Mistral, DeepSeek hepsi RMSNorm.
3. SwiGLU FFN. Klasik FFN şuydu: FFN(x) = max(0, xW_1) W_2 (ReLU). 2020'de Shazeer çeşitli "gated linear unit" varyantları denedi (GLU, GeGLU, SwiGLU), SwiGLU Swish(xW_1) ⊙ (xW_3) · W_2 en iyi sonucu verdi. Üç matris (W_1, W_2, W_3) — biraz fazla parametre ama kalite kazancı buna değiyor.
4. FFN hidden dim, attention'ın 2.66x veya 3.5x'i. Tradisyonel olarak 4x'tı, SwiGLU üç matris kullandığı için 8/3 ≈ 2.66x'a düşürüldü (Llama). DeepSeek 3.5x kullanıyor. Bu oran modelin attention'a mı FFN'e mi daha çok ağırlık verdiğini belirler — büyük FFN'ler "olgu hafızası" gibi davranır, attention "bağlam motoru" gibi.
5. İki residual bağlantısı. Biri attention, biri FFN için. Her ikisi de norm'dan önce ayrılır, sonra topla. Bu modeli kararlı hale getirir, gradient'ların derin layer'lardan üst layer'lara temiz akmasını sağlar.
Karşılaştırma: GPT-3 (2020) bloğunda post-norm ve LayerNorm vardı, Llama 1 (2023) pre-norm + RMSNorm + SwiGLU'ya geçti, DeepSeek-V3 (2024) bunun üstüne MLA'yı ekledi. Üç sürümde mimari "modernleşti" — model boyutu kadar bu küçük detaylar da kaliteyi etkiledi.
Encoder-Decoder'a Veda — Decoder-Only Zaferi
Orijinal Transformer iki taraflıydı: encoder (giriş cümlesini okur) ve decoder (çıkış cümlesini üretir). Bu Google Translate gibi bir görev için mantıklıydı.
BERT (2018) sadece encoder'ı kullandı, çift yönlü dikkat (token hem ileriye hem geriye bakar) ile MLM (masked language modeling) yaptı. GPT (2018) sadece decoder'ı kullandı, tek yönlü dikkat (token sadece geçmişe bakar — causal mask) ile next-token prediction yaptı.
10 yılın sonunda kazanan decoder-only oldu. Neden?
- Tek bir hedef: next-token prediction her şeyi içeriyor — özetleme, çeviri, soru-cevap. Trainable surface'i daha temiz.
- Otoregresif üretim: causal mask zaten üretimin doğasında, ekstra mimari gerekmiyor.
- In-context learning: Decoder-only modellerde, prompt'ta verilen örneklerden öğrenme (few-shot) doğal olarak çalışıyor. Encoder-decoder'da aynı şeyi yapması çok zor.
T5 (Google) son büyük encoder-decoder denemesiydi. Sonra herkes decoder-only'a geçti. Bugün ChatGPT, Claude, Gemini, Llama, Mistral, DeepSeek — hepsi decoder-only. Encoder kaldığı yer: embedding modelleri (BERT'in modern torunları — sentence-transformers, BGE, GTE), retrieval ve sınıflandırma için.
Flash Attention — Belleği Yenmek
Bütün attention denklemini kodla yazmak kolay, dört satır PyTorch yeter. Ama bunu gerçekten hızlı çalıştırmak, çoğu kişinin küçümsediği bir mühendislik problemi. Tri Dao'nun 2022 Flash Attention paper'ı bu işi tek bir wallpaper'da yeniden çizdi.
Sorun şu: standart attention S = QKᵀ N×N boyutunda devasa bir matris üretir. 8K bağlamda bu 64M elemanlık bir matris (her bir floatın 4-2 byte'ı). GPU'lar bunu HBM'e (off-chip bellek) yazar, sonra okur, softmax uygular, sonra V ile çarpar — her adım HBM'e gidip geliyor. HBM ~2 TB/s, ama SRAM (on-chip cache) ~19 TB/s. Darboğaz hesap değil, bellek.
Flash Attention'ın fikri: S matrisini HBM'e hiç yazma. Q, K, V'yi bloklara böl, her blok çiftini SRAM'e çağır, attention'ı orada hesapla, sonucu doğrudan O (output) blokuna yaz.

Püf noktası online softmax. Klasik softmax'ın tam matrise ihtiyacı var (max bulmak için), ama matematiksel bir trickle bunu streaming olarak hesaplayabiliyorsun: gelen her tile için, running max ve running sum güncelleyerek, sonunda doğru softmax'ı veriyorsun. Belleğin O(N²)'dan O(N)'e düşmesi bu inceliğin sonucu.
Pratik kazanım: aynı modelde 2-4x hız, %15-30 daha az bellek. Flash-2 (2023) ve Flash-3 (2024) bunu daha da iyileştirdi. Bugün bütün ciddi LLM eğitimi ve inference, varsayılan olarak Flash Attention kullanıyor — vanilla attention sadece eğitim materyali olarak hayatta.
KV Cache — Hızın Diğer Yarısı
Inference'ta bir başka optimizasyon: autoregressive üretim. Her yeni token için bütün geçmişin K ve V vektörlerini yeniden hesaplamak israf. KV cache önceki adımların K ve V'sini saklar, sadece yeni token için Q'yu hesaplar.
Burada GQA'nın anlamı net oluyor: cache'in bellek footprint'i 2 · L · B · S · H_kv · d_head · dtype_bytes. GQA H_kv'yi 8x küçültür, cache 8x küçülür. Bu sayede 128K bağlam üretirken belleğin patlamaması mümkün.
Bonus: sliding window attention (Longformer 2020, Mistral 2023). Çok uzun bağlamda son N token'a sınırlı dikkat, geri kalan attention'ı seyrek. Mistral 7B 4K sliding window kullanıyor, etkin bağlam çok daha büyük olabiliyor.
Mimari Evrim — 2017'den 2026'ya
Bütün bu parçaları bir araya getirince, son 9 yılın panoraması şöyle bir şey:

Üç dönem var:
1. Saf encoder/decoder (2017-2020). Vaswani'nin original mimarisi, BERT, GPT-1/2/3. Henüz pre-norm, RMSNorm, RoPE yok. LayerNorm, post-norm, sinusoidal/learned positions. T5 encoder-decoder olmaya direnen son büyük model.
2. LLM patlaması (2020-2023). ChatGPT'nin oluşturduğu deprem, herkesin "bunu nasıl üretebilirim?" sorusunu sorması. RoPE (2021), ALiBi (2022), Flash Attention (2022), Llama (2023) — bu döneme açıklayıcı paper'lar damga vurdu.
3. Verimlilik + hibritler (2024-2026). GQA standart, Mamba (2023-24) state-space model olarak alternatif sunmaya çalıştı, MoE eski popülaritesini geri kazandı (Mixtral, Llama 4 Scout/Maverick). DeepSeek-V3 (2024) MLA'yı tanıttı. Mamba 2 (2024), RWKV-7 (2025), Byte Latent Transformer (Meta 2025-26) sırada.
Mamba, RWKV, BLT — Transformer'ın Rakipleri Var Mı?
2023'te Mamba (Albert Gu, Tri Dao) bir şok yarattı: selective state-space model. Attention yok, sabit boyutlu bir state vektörü token-token güncellenir. Avantaj: O(N) inference (transformer O(N²)), uzun bağlamda lineer maliyet. Dezavantaj: attention kadar "rastgele erişim" yapamıyor — herhangi bir tokena dönüp bakmak yerine state'inde özetlenmiş bilgi tutmak zorunda.
2024'te Mamba 2 mimariyi simplifiye etti, attention ile melez (Jamba, Zamba) yapılar denendi. RWKV-7 (2025) attention-free ama paralel olarak eğitilebilen başka bir alternatif.
Meta'nın Byte Latent Transformer (BLT) ise tokenizer'sız mimari — ham byte üzerinde çalışır, kendi dinamik patch'lerini oluşturur. 2026'da Fast BLT inference bant genişliğini %50 azaltıyor, özellikle Türkçe gibi eklemeli dillerde performansı transformer + BPE'ye yakın hatta bazı görevlerde üstün.
Yine de 2026'nın frontier modelleri (GPT-5, Claude 4.7, Gemini 3, Llama 4) hâlâ büyük ölçüde transformer. Çünkü:
- Mimari olgun — 8 yıllık optimizasyon birikimi var (Flash, GQA, RoPE, kernels).
- Eğitim kodları, distributed setupları, evaluation pipelineları transformer üzerine kurulu.
- Mamba-tarzı alternatifler hâlâ "bir alanda iyi, başkasında zayıf" — genel amaçlı bir kazanan değil.
Hibritler ise gerçek pratik kazanan. Jamba (AI21, 2024), Hymba (NVIDIA 2024), Granite-Mamba (IBM 2025) — birkaç attention katmanını birkaç Mamba katmanıyla karıştırıyor, ikisinin de güçlü yanlarını alıyor.
Bütün Resim
Eğer 9 yılı tek bir cümleye sıkıştırırsak: transformer mimari değişimi ufak; ama mimarinin etrafındaki her şey — bellek hiyerarşisi, pozisyonel encoding, K/V paylaşımı, normalization, aktivasyon, FFN şekli — radikal şekilde değişti. Original attention denklemi 2017'de doğru yazılmıştı. Sonraki 9 yıl, o denklemi gerçekten çalıştırmanın mühendisliğiydi.
Bu yazıyı bitirirken kendine sormalısın: bir gün bunlardan biri (RoPE, Flash Attention, GQA) çağdışı olacak mı? Olacak. Hangileri? Bilmiyorum. Ama bir şeyden eminim: temel attention denklemini, neden √d_k'ye böldüğünü, neden bağlamın sırasının pozisyonel encoding'siz kaybolduğunu kavradıysan, çıkacak her yeni mimariyi okuyabilirsin. Geri kalanı sadece o iskeletin etrafına asılmış mühendislik.
Bir sonraki adım iki yol: ya bu sayfadaki herşeyi sıfırdan PyTorch'ta yazmayı denersin (Karpathy'nin Let's build GPT videosu hâlâ altın standart), ya da çok daha küçük bir model — bert-tr veya gpt-2-tr — çekip katmanlarına/başlarına teker teker bakarsın. İkisi de farklı türden bir kavrayış kazandırır. Biri yapabilirim hissi, diğeri anlıyorum hissi.
Kaynakça (Türkçe Notlarla)
- Vaswani et al., 2017 — Attention Is All You Need. arxiv.org/abs/1706.03762. Hâlâ ilk durulması gereken yer.
- Su et al., 2021 — RoFormer: Enhanced Transformer with Rotary Position Embedding. arxiv.org/abs/2104.09864. RoPE'un orijinal paper'ı.
- Press et al., 2022 — Train Short, Test Long: ALiBi. arxiv.org/abs/2108.12409. RoPE'un asıl rakibi.
- Dao et al., 2022 — FlashAttention. arxiv.org/abs/2205.14135. Tile-based softmax. Sequel'leri (Flash-2, Flash-3) GitHub'da: github.com/Dao-AILab/flash-attention.
- Ainslie et al., 2023 — GQA: Training Generalized Multi-Query Transformer Models. arxiv.org/abs/2305.13245.
- Touvron et al., 2023-24 — Llama 1/2/3 Technical Reports. Modern decoder-only blok tasarımının pratik referansları.
- Gu & Dao, 2023 — Mamba: Linear-Time Sequence Modeling with Selective State Spaces. arxiv.org/abs/2312.00752.
- DeepSeek-AI, 2024 — DeepSeek-V3 Technical Report. MLA detayları.
- Meta, 2025-26 — Byte Latent Transformer / Fast BLT. Tokenizer'sız mimari.
- Karpathy, Let's build GPT. youtube.com/watch?v=kCc8FmEb1nY. Kodla öğrenmek için en hızlı yol.
- Sebastian Raschka — Build a Large Language Model (From Scratch) (Manning, 2024). Kitap olarak en derli toplu kaynak.
Finis