13  NLP, Transformer ve Attention

İki parçalı hafta — konuk hoca Mike Lewis (Facebook AI Research, NLP/çeviri) Lecture’da derin öğrenmenin doğal dil işlemeyi nasıl dönüştürdüğünü anlatır: dil modelleme bir yoğunluk tahminidir ve tüm hüner bağlam kodlayıcıdadır; CNN sınırlı alıcı alanıyla, RNN tek vektöre sıkıştıran darboğazı ve yavaşlığıyla yetersizdir, Transformer ise her kelimenin her kelimeye doğrudan baktığı düşük-önyargılı bir modeldir, paralelleşir ve ölçeklenir; multi-head attention Q/K/V ile kurulur, causal maske geleceğe bakmayı engeller ve positional encoding sırayı geri verir; decoding tarafında greedy ile beam search exposure bias yüzünden bozulur, top-k sampling çeşitlilik getirir; ve öz-denetimli öğrenme dilin motorudur — word2vec’ten BERT’e boşluğu doldurma (masked-LM), pre-train ve fine-tune ile her göreve taşınan tek model, ölçek kraldır. Ardından Alfredo Canziani (Practicum) attention’ın altındaki basit matematiği kurar: Transformer dizilerle değil kümelerle çalışır, attention bir kümenin elemanlarını benzerlik skorlarıyla harmanlayan linear kombinasyondur, Q/K/V girdinin öğrenilen rotasyonlarıdır, encoder ile decoder bir autoencoder iskeleti oluşturur, autoregressive üretim look-ahead maskeyle eğitilir ve T×T attention matrisi küme büyüdükçe karesel olarak patlar.

NotBölüm bilgisi (KONUK Mike Lewis + Canziani)

⚠️ Atıf notu: Bu haftanın Lecture’ı LeCun değil, konuk Mike Lewis (FAIR, doğal dil işleme). Lecture quote’ları — Lewis; Practicum — Canziani; LeCun tartışmaya katılıp köprü kurduğunda — LeCun.

13.1 Bu Derste Ne Var?

Bu hafta iki parça: konuk hoca Mike Lewis (Facebook AI Research, NLP/çeviri) Lecture’da derin öğrenmenin doğal dil işlemeyi nasıl dönüştürdüğünü anlatıyor — dil modellemeden Transformer’a, decoding’den BERT’e; Alfredo Canziani (Practicum) ise attention’ın altında yatan matematiği (kümeler üzerinde linear kombinasyon, Q/K/V) ve Transformer encoder/decoder mimarisini koddan kuruyor.

Lewis’in büyük fikri: dile özel yapı dayatmaktan vazgeç; çok-ifadeli, düşük-önyargılı (low-bias) bir model (Transformer) al, çok metin göster, yapıyı kendisi öğrensin. Canziani: Transformer’ın görünür karmaşıklığının altında basit bir fikir var — attention, bir kümenin elemanlarını benzerlik skorlarıyla harmanlayan linear kombinasyondur.

Bu haftanın üç ana fikri:

  1. Transformer = her kelime her kelimeye doğrudan bakar. RNN darboğazını (tek vektöre sıkıştır) ve CNN sınırlı alıcı alanını ortadan kaldırır; paralelleşir, ölçeklenir.
  2. Attention = kümeler üzerinde benzerlik-ağırlıklı linear kombinasyon. Q/K/V = girdinin öğrenilen rotasyonları; tek doğrusalsızlık softmax; sıra bilgisi positional encoding.
  3. Öz-denetimli öğrenme dilin motorudur. word2vec/BERT “boşluğu doldur” (cake metaforu); pre-train → fine-tune tek modeli her göreve taşır.

flowchart TB
    Hafta["Hafta 12 = iki parça<br/>(Lewis: NLP/Transformer · Canziani: attention matematiği)"]

    subgraph A["(A) Dil → Transformer → SSL — Lewis (Konuk)"]
        direction TB
        Baglam["Bağlam kodlayıcı evrimi<br/>CNN (sınırlı alan) → RNN (darboğaz + yavaş)<br/>→ TRANSFORMER (her kelime her kelimeye)"]
        Multi["Multi-head attention<br/>Q/K/V + causal maske + positional encoding"]
        Decode["Decoding<br/>greedy / beam / top-k · exposure bias"]
        SSL["Öz-denetimli öğrenme<br/>word2vec → BERT (masked-LM = denoising) + cake"]
        Baglam --> Multi
        Multi --> Decode
        Decode --> SSL
    end

    subgraph B["(B) Attention matematiği — Canziani"]
        direction TB
        Kume["Küme → küme<br/>(Transformer dizilerle değil kümelerle çalışır)"]
        Lin["Attention = linear kombinasyon<br/>h = X·a · hard (one-hot) / soft"]
        QKV["Q/K/V = öğrenilen rotasyonlar<br/>self vs cross-attention"]
        EncDec["Encoder / decoder<br/>(autoencoder iskeleti)"]
        Auto["Autoregressive + look-ahead maske<br/>→ T×T matris KARESEL patlar"]
        Kume --> Lin
        Lin --> QKV
        QKV --> EncDec
        EncDec --> Auto
    end

    Hafta --> Baglam
    Hafta --> Kume

İpucuBuilder Notu — İki Hoca, Tek Fikir: Her Kelime Her Kelimeye Bakar

Geriye (önkoşul + kurs):

  • Bağlam kodlayıcı → Hafta 6 (RNN/LSTM/attention/seq2seq); Transformer onun tekrarlamasız hâli.
  • Softmax / β → Hafta 11 (attention katsayısı = softmax, sıcaklık); attention katsayısı 0’a yaklaşsın → giriş −∞.
  • SSL / cake / pretext → Hafta 10 (Misra) + Hafta 7-8 (BERT masked-LM = denoising autoencoder).

İleriye (production / research):

  • Transformer → tüm modern LLM (GPT/BERT/T5) omurgası; ViT, protein, multimodal.
  • “word2vec = basit GNN” (LeCun) → Hafta 13 Graph ConvNets.

Tek cümleyle: Transformer, her kelimenin her kelimeye doğrudan baktığı, kümeler üzerinde benzerlik-ağırlıklı linear kombinasyon (attention) yapan düşük-önyargılı bir modeldir; öz-denetimli “boşluğu doldur” (BERT) ile etiketsiz metinden öğrenir, pre-train→fine-tune ile her dil görevine taşınır.

13.2 (Lewis — Konuk) Dil Modelleme ve Bağlam Kodlayıcının Evrimi

Lewis dil modellemeyle başlıyor: metnin yoğunluk tahmini (her dizeye olasılık ata). Bu olasılık zincir kuralıyla çarpanlara ayrılır → bir dizi “önceki kelimelere bakıp bir sonraki kelimeyi tahmin et” sınıflandırması. Tüm hüner bağlam kodlayıcıdadır (context encoder); onun evrimi dersin omurgasıdır (“Bu Derste Ne Var” şemasında CNN → RNN → Transformer evrimi de buradadır):

  • CNN (Bengio 2003; Dauphin 2016): hızlı, paralel — ama sınırlı alıcı alan (uzun-menzilli bağımlılığı yakalayamaz).
  • RNN: ilkesel olarak sınırsız bağlam — ama tüm geçmişi tek vektöre sıkıştırır (darboğaz), gradyan kaybolur (Hafta 6), ardışık olduğu için yavaştır.
  • Transformer (Vaswani 2017, “Attention is all you need”): ikisinin de sorununu çözer.

“for self attention you can in principle put 100% attention on any word in the distant past… it avoids issues like vanishing gradients quite effectively.” — Lewis, 31:43

Gücün kaynağı her kelime çifti arasında doğrudan bağlantı. Self-attention karesel olsa da tek bir büyük matris çarpımı olarak paralel hesaplanır → olağanüstü ölçeklenir (GPT-2 2019’da 2 milyar, sonra 17 milyar parametreye…).

İpucuBuilder Notu — Bağlam Kodlayıcı Evrimi

Geriye (Hafta 6): RNN darboğazı + vanishing gradient = LSTM’in savaştığı sorun; attention = seq2seq attention. Transformer onu tekrarlama olmadan yapar.

İleriye: “Her kelime her kelimeye bakar” = LLM’lerin temel hesaplama modeli; paralelleşme = GPU-çağı ölçeklemenin anahtarı.

13.3 (Lewis — Konuk) Multi-Head Attention, Maskeleme ve Positional Encoding

Transformer bloğu iki alt-katmandan oluşur: multi-head attention + feedforward (MLP), her ikisi de Add&Norm (residual bağlantı + LayerNorm) ile sarılı. (LayerNorm, BatchNorm değil — batch boyutuna bağlı olmadığı için NLP’de tercih edilir.)

Multi-head attention’ın kalbi: her kelime için bir query (“önceki sıfat ne?”), bir key (“ben bir sıfatım”) ve bir value. Query·key nokta çarpımı → softmax → önceki kelimeler üzerinde bir dağılım → value’ların ağırlıklı toplamı. “Multi-head” = bunu paralel olarak birden çok kez yapmak (aynı anda farklı şeyleri yakalar: hem “boynuzlu” hem “gümüş-beyaz” hem “bunlar → çoğul”).

İki kritik detay var. Birincisi causal maskeleme: tüm zaman adımları aynı anda hesaplandığından, hiçbir şey kelimelerin geleceğe bakmasını engellemez (hile = kelimeyi kendisiyle tahmin etmek). Şekil 13.1 bu sorunu ve çözümünü iki panelde gösterir: maskesiz attention’da her token herkese bakar (hile), causal maske ise üst-üçgeni \(-\infty\) yaparak her token’ı yalnız kendine ve soluna bakmaya zorlar.

“if you’re computing all the time steps at once there’s nothing to stop words looking at the future… the solution here is self-attention masking.” — Lewis, 27:08

İkincisi positional encoding: attention girdiyi bir küme olarak görür (sırası yoktur). Dilde sıra önemlidir → her konuma ayrı bir embedding öğrenilip eklenir. Şekil 13.2 klasik sinüzoidal kodlamayı gösterir: her konum, frekansları boyut boyunca değişen bir sinüs/kosinüs imzasıyla işaretlenir.

Diğer “hileler” de kritik: LayerNorm, learning-rate warmup (0’dan hedefe doğrusal ısınma), dikkatli initialization, label smoothing.

Şekil 13.1: Causal (look-ahead) maske, 2 panel — GERÇEK softmax çıktısı. 4 token için anlamlı bir skor matrisi (k1..k4) üzerinde causal_mask_demo çalıştırılır. SOL ‘Maskesiz’: her token herkese (geleceğe dâhil) bakabilir — bu eğitimde HİLE’dir çünkü model bir kelimeyi tahmin ederken cevabı (gelecek kelimeyi) görür. SAĞ ‘Causal maske (üst-üçgen −∞)’: üst-üçgen sıfırlanır (beyaz), her token yalnız kendine ve soluna bakar → autoregressive faktörizasyon korunur, hile yok (Lewis 27:08). Hücre değerleri yazılı; her satır toplamı 1.
Şekil 13.2: Sinüzoidal positional encoding (Vaswani 2017) — GERÇEK PE matrisi (FLAGSHIP). positional_encoding(seq_len=40, d=64) → PE [40, 64] heatmap (diverging RdBu_r, [-1,1]). Klasik desen: embedding boyutu (sütun) arttıkça frekans düşer — düşük boyutlar hızlı salınır (sık çizgili), yüksek boyutlar yavaş (geniş bantlar); çift/tek sütunlar sin/cos çiftleridir. Her konum (satır) böylece benzersiz bir imza alır. Sezgi: attention girdiyi SIRASIZ küme görür; PE her konuma benzersiz bir konum imzası ekler (Lewis 29:17), böylece ‘küme’ yeniden ‘sıraya’ kavuşur.
İpucuBuilder Notu — Maske = Hile Yok, Konum Eklenir

Geriye (Hafta 11 + 6 + 3): Softmax + β = Hafta 11 (katsayı 0’a yaklaşsın → giriş \(-\infty\)); residual = Hafta 3; attention = Hafta 6. Causal maske, autoregressive faktörizasyonu korur.

İleriye: Q/K/V + maske + positional encoding = her LLM’in değişmez iskeleti; uzun bağlam = karesel maliyetle savaş (sparse/lineer attention).

13.4 (Lewis — Konuk) Decoding ve Öz-Denetimli Öğrenme: word2vec’ten BERT’e

Decoding (çıkarım): model her diziye olasılık atıyor — peki metni nasıl üretiriz? Tüm dizi üzerinde argmax üsteldir (hesaplanamaz). Pratik seçenekler:

  • Greedy: her adımda en olası kelimeyi al — geri-izleme yok.
  • Beam search: en iyi n hipotezi tut; ama büyük beam → bozuk/boş çıktılar.
  • Sampling / Top-k (Angela Fan): dağılımı k-best’e kırp, sonra örnekle → hem çeşitlilik hem “iyi dil manifoldundan” düşmeme. GPT-2’nin güzel örnekleri böyle üretildi.

Şekil 13.3 bu farkı iki panelde gösterir: tam dağılımda greedy tek en olası kelimeyi seçerken, top-k=4 dağılımı dört en iyiye kırpıp yeniden normalize eder (sonra örnekler). Bozulmanın asıl sebebi exposure bias: eğitimde model kendi hatalarını hiç görmez (hep doğru önceki kelimeler verilir); test anında bir kötü adım atınca daha önce görmediği bir duruma düşer ve döngüye girer.

“at training time we’re typically not using a beam… we’re not exposing the model to its own mistakes.” — Lewis, 49:54

Öz-denetimli öğrenme dersin doruğu — Lewis, LeCun’un cake (pasta) metaforuna başvuruyor:

“most of the learning we do has to be unsupervised… [supervised learning is] just being a little bit of icing on top of the cake.” — Lewis, 1:09:43

Evrim şöyle: word2vec (boşluğu doldur → kelime embedding; “kral − erkek + kadın ≈ kraliçe”) ama bağlamdan bağımsız (kelime başına tek vektör). Sonra GPT (tek-yönlü dil modeli → fine-tune ile her görev), ELMo (iki-yönlü birleştirme) ve BERT:

“bert basically looks quite a lot like word2vec, it’s a fill-in-the-blanks task… the reason it works much better is [the transformer, more context, bidirectional].” — Lewis, 1:18:50

BERT, token’ların %15’ini maskeler ve doldurur — bu bir denoising görevidir (Hafta 7-8 denoising autoencoder). RoBERTa/BART/T5 bunu basitleştirip ölçekler. Özet: düşük-önyargı + iki-yönlü bağlam + ölçek.

LeCun tartışmaya katılıp bir sonraki haftaya köprü kuruyor:

“you can view those self-supervised training systems [word2vec, BERT] as basically a very simple form of graph neural net… the graph is how often two words appear next to each other.” — LeCun, 1:40:31

Şekil 13.4 bu köprüyü resmeder: solda word2vec’in bağlamsız analoji düzlemi, ortada Lewis’in “kümeyi harmanla” (set-averaging) sezgisi (attention’a köprü), sağda LeCun’un eş-dizim grafiği üzerinde basit GNN yorumu (Hafta 13 GCN kapısı).

Şekil 13.3: Top-k decoding, 2 panel — GERÇEK kırpma + yeniden normalize. 12 kelimelik azalan bir olasılık dağılımı üzerinde topk_truncate(probs, 4). SOL ‘Tam dağılım (12 kelime)’: gri/violet barlar; greedy = argmax (gold ok, tek en olası kelimeyi seçer, geri-izleme yok). SAĞ ‘Top-k=4 (kırp + örnekle)’: yalnız 4 bar (violet, toplamı 1’e yeniden normalize), geri kalan kütle 0. Sezgi: greedy tek-en-iyi (çeşitlilik yok); beam büyük beam’de bozulur (exposure bias: model kendi hatasını hiç görmez, Lewis 49:54); top-k = k-best kırp + örnekle → çeşitlilik + manifolddan düşmeme (Angela Fan, GPT-2).
Şekil 13.4: word2vec → attention → GNN köprüsü (illüstratif şema). SOL — word2vec analojisi: bağlamsız embedding’de her kelime tek vektördür; ‘kral − erkek + kadın ≈ kraliçe’ paralelkenarı bu doğrusal yapıyı gösterir (vektör konumları ILLÜSTRATIF, gerçek bir eğitilmiş embedding değil — yalnızca sezgi). ORTA — Lewis’in set-averaging sezgisi: bir bağlam kümesinin elemanları softmax ağırlıklarıyla harmanlanır (ağırlıklı ortalama) → bağlamlı temsil; bu, self-attention’ın çekirdeğine köprüdür (ok kalınlıkları self_attention_matrix ağırlıklarıyla orantılı). SAG — LeCun’un gözlemi (1:40:31): word2vec, kelimelerin düğüm, eş-dizim sıklığının kenar olduğu bir grafik üzerinde basit bir GNN gibidir (networkx eş-dizim grafiği; kenar ağırlıkları illüstratif) → Hafta 13 GCN kapısı. Özet: word2vec bağlamsız → BERT bağlamlı (Transformer + iki-yönlü); eş-dizim grafiği üzerinde basit GNN → GCN köprüsü.
İpucuBuilder Notu — Exposure Bias ve Cake = SSL

Geriye (Hafta 10 + 7-8): SSL / cake / pretext = Hafta 10 (Misra); BERT masked-LM = Hafta 7-8 denoising AE (gürültüyü geri al = enerji); word2vec analojisi = Hafta 1 temsil öğrenme.

İleriye: pre-train → fine-tune = tüm foundation model paradigması; LeCun’un graf yorumu = Hafta 13 GCN.

13.5 (İleriye Köprü) GPT-3’ten ChatGPT’ye — LLM Patlaması (post-2020) — KURSTA YOK

Lewis (Mart 2020) en güçlü modeller olarak GPT-2, BERT, RoBERTa, BART/T5 ve top-k sampling’i anlatır — “100 milyar parametreli modeller geliyor” söylentisini aktarır. Aşağıdakiler DLSP20’den sonra geldi, kursta YOKTUR (yalnızca ileriye köprü):

Uyarı⚠️ İleriye Köprü Notu (post-2020 — KURSTA YOK)
  • GPT-3 (Mayıs 2020) — 175 milyar parametre; in-context learning / few-shot (Lewis’in “1-10 örnekle öğrenebilir miyiz?” sorusunun cevabı).
  • InstructGPT / RLHF (2022), ChatGPT (Kasım 2022), GPT-4 (2023), LLaMA (2023) — insan geri-bildirimiyle hizalama; Lewis’in “grounding / cherry” sorusunun pratik yanıtı.
  • FlashAttention (2022), uzun-bağlam Transformer’lar — Lewis’in “512 token sınırı / koca bir kitabı modelleyebilir miyiz?” sorusunun devamı.

Bunlar kurs terimi gibi eklenmez; Lewis’in “ölçek en önemli şey” tezinin nereye vardığını göstermek için anılır.

İpucuBuilder Notu — Ölçek Tezi Nereye Vardı

Geriye (Hafta 12): LLM patlaması = “düşük-önyargı + iki-yönlü + ölçek” tezinin doğrudan devamı; RLHF = Lewis’in “grounding” sorusunun yanıtı.

İleriye: in-context learning + RLHF = 2020-sonrası NLP’nin tanımı — ama hepsi 2017 Transformer + 2018 BERT temelinin üstünde durur.

13.6 Geçiş: Lewis’ten Canziani’ye

Lewis, Transformer’ın neden çalıştığını ve NLP’yi nasıl dönüştürdüğünü anlattı. Şimdi Canziani kaputu açıyor: attention’ın altında yatan basit matematiği (kümeler, linear kombinasyon, Q/K/V) ve Transformer encoder/decoder iskeletini PyTorch’ta kuruyor — görünür karmaşıklığın aslında “yemek tarifi arama” kadar sezgisel olduğunu gösteriyor.

13.7 (Canziani) Attention = Kümeler Üzerinde Linear Kombinasyon

Kilit çerçeve: Transformer dizilerle değil, kümelerle çalışır.

“transformers are going to be something that maps sets to sets, they don’t really deal with sequences.” — Canziani, 0:49

Self-attention: gizli temsil \(h\), kümenin (\(X\)) elemanlarının linear kombinasyonudur: \(h = X \cdot a\). Katsayı \(a\) iki türlü olabilir:

  • Hard attention: \(a\) tek-sıcak (one-hot) → kümeden tek bir eleman seçer.
  • Soft attention: \(a\) toplamı 1 → konveks kombinasyon (harman).

\(a\) nereden gelir? Her \(x_i\) ile sorgu \(x\) arasındaki benzerlik skorundan (nokta çarpımı), softmax’ten:

\[ a = \text{softmax}\!\left(\frac{X^\top x}{\sqrt{d}}\right) \]

(Burada \(\beta = 1/\sqrt{d}\) ölçeklemesi vardır: vektör büyüklüğü \(\sqrt{d}\) ile büyür, sıcaklığı sabit tutmak için bölünür.) Şekil 13.5 bu \(\beta\) ölçeklemesinin etkisini gösterir: \(\beta\) küçükken dağılım düzleşir (soft attention, harman), \(\beta\) büyürken sivrilir (hard attention, tek-seçim) — bu doğrudan Hafta 11 sıcaklık köprüsüdür. Şekil 13.6 ise gerçek bir token kümesi üzerinde tüm \(A\) matrisini hesaplar: benzer token’lar birbirine yüksek dikkat verir, her satır toplamı 1’dir.

Key-value store analojisi: YouTube’da “lazanya” yazarsın (query), bu tüm video başlıklarıyla (keys) karşılaştırılır, en yüksek skorlu videoyu (value) getirirsin.

“you have one query, you check all the keys and find how matching the key is… and then you retrieve all those values.” — Canziani, 19:07

Şekil 13.5: Sıcaklık β’nın softmax üzerindeki etkisi: soft ↔︎ hard attention. β küçük → düz (soft, harman); β büyük → sivri (hard, tek-seçim). β=1/√d ölçekleme = Hafta 11 sıcaklık köprüsü.
Şekil 13.6: Self-attention ağırlık matrisi A = softmax(XXᵀ/√d) — GERÇEK hesaplama (FLAGSHIP). 6 token’lık anlamlı bir embedding kümesi X (benzer kelimeler birbirine yakın yerleştirilmiş: ‘kedi’/‘köpek’ yakın, ‘koştu’/‘hızlı’ yakın, ‘.’ uzak) → self_attention_matrix(X) → A [6,6] heatmap (violet). Satır = sorgu token, sütun = bakılan token; A[i,j] = token i’nin token j’ye verdiği dikkat. Benzer token’lar yüksek dikkat alır (açık renk); her satırın toplamı tam 1’dir (softmax). Bu, Canziani’nin ‘küme → küme’ görüşünün çekirdeğidir (0:49): attention bir kümenin elemanlarını benzerlik-ağırlıklı harmanlar.
İpucuBuilder Notu — Küme→Küme

Geriye (Hafta 11 + 6 + 1): Softmax + β = Hafta 11; benzerlik = nokta çarpımı (Hafta 1); linear kombinasyon = ağırlıklı ortalama. Attention = Hafta 6 çekirdeği, “küme” diliyle yeniden anlatılmış.

İleriye: “Sets to sets” görüşü Transformer’ı görüntü (ViT), grafik ve protein gibi her veri türüne taşır.

13.8 (Canziani) Query-Key-Value ve Transformer Encoder/Decoder

Q, K, V girdinin öğrenilen rotasyonlarıdır: \(Q = W_Q x\), \(K = W_K x\), \(V = W_V x\). Attention’daki tek eğitilebilir parametreler bunlardır — attention yönelime (orientation) dayalıdır, softmax dışında doğrusalsızlık yoktur:

“this attention thing is completely based on orientation… the only non-linearity is whenever you get the probability distribution.” — Canziani, 22:05

Q ve K aynı boyutta olmalıdır (karşılaştırılırlar); V farklı olabilir (“tarifin içeriği”). İki tür attention vardır:

  • Self-attention: Q, K, V hepsi aynı \(X\)’ten gelir (kendi kafanda bir tarif düşünmek).
  • Cross-attention: Q girdiden/decoder’dan, K ve V başka yerden/encoder’dan gelir (tarif kitabına bakmak).

Transformer = encoder + decoder (bir autoencoder gibi). Şekil 13.7 bu iskeleti gösterir:

  • Encoder bloğu: self-attention + “convolution” (kernel=1 olan 1D conv = kümenin her elemanına uygulanan MLP — Canziani “bu lineer katman değil, convolution’dır” diye ısrar eder) + Add&Norm.
  • Decoder bloğu: encoder’ın yaptıklarına ek olarak cross-attention (query decoder’dan, key/value encoder’ın \(H\) temsilinden).

IMDB film yorumu sınıflandırması (yalnız encoder) test doğruluğu %83’tür.

Şekil 13.7: Transformer encoder/decoder mimarisi (Q/K/V dâhil) — şema. SOL ‘Encoder bloğu (×N)’: girdi + PE → Multi-Head Self-Attention (Q/K/V aynı X’ten) → Add&Norm → ‘Convolution’ kernel=1 (= her elemana MLP) → Add&Norm → H. SAĞ ‘Decoder bloğu (×N)’: hedef + PE → Masked Self-Attention → Add&Norm → Cross-Attention (Q decoder’dan, K/V encoder H’sinden; gold ok) → Add&Norm → MLP → Add&Norm → softmax çıktı. Encoder + decoder = autoencoder iskeleti (Hafta 8); Q/K/V öğrenilen rotasyonlar = tek parametre; cross-attention dili soyutlar → dile-agnostik kavram (Canziani 1:03:44); kernel=1 conv = MLP (Hafta 3 1×1 conv).
İpucuBuilder Notu — Q/K/V = Rotasyon

Geriye (Hafta 8 + 3 + 1): Encoder/decoder = Hafta 8 autoencoder mimarisi; residual + LayerNorm = Hafta 3; “convolution kernel=1” = Hafta 3 1×1 conv = MLP. Q/K/V rotasyonu = Hafta 1 lineer dönüşüm.

İleriye: Encoder-only (BERT) vs decoder-only (GPT) vs encoder-decoder (T5/çeviri) = LLM ailesinin üç dalı.

13.9 (Canziani) Autoregressive Üretim, Look-ahead Mask ve Karesel Maliyet

Çeviri (cat → gato): decoder çıktıyı autoregressive üretir — bir kelime üretir, geri besler, sonrakini sorar. Her yeni girdi farklı bir query sorar; encoder’ın hangi bileşenine bakacağına decoder karar verir.

Eğitim vs çıkarım: çıkarım autoregressive (sıralı); eğitimde ise tüm dizi tek geçişte işlenir + look-ahead mask (geleceği görmeyi engeller — Lewis’in causal maskesinin aynısı). Cross-attention sayesinde encoder dili soyutlar — \(H\) temsilleri dile-agnostik kavramlardır:

“the H encoder are stripping off the language specific information, they are just concepts… the representation of the concept without the language attached.” — Canziani, 1:03:44

Son bir uyarı — \(A\) matrisi tehlikelidir: \(T \times T\) boyutludur (\(T\) = küme büyüklüğü). 1000 öğeli bir küme → milyon-boyutlu bir matris → karesel olarak patlar:

“this is very dangerous… if you have many keys this stuff starts blowing up quickly.” — Canziani, 53:01

Uzun diziler için Reformer/LSH/sparse attention gibi yöntemler gerekir.

İpucuBuilder Notu — Karesel Maliyet Patlar

Geriye (Hafta 6 + 11): Autoregressive = Hafta 6 dizi üretimi; look-ahead mask = Lewis’in causal maskesi; karesel maliyet = self-attention bedeli (Hafta 11 softmax).

İleriye: Dile-agnostik encoder = çok-dilli MT + multimodal hizalama; karesel maliyet = lineer/sparse attention araştırmasının itici gücü (Reformer, FlashAttention).

13.10 Bu Dersin Özeti

  1. Bağlam kodlayıcı evrimi (Lewis): CNN (sınırlı alan) → RNN (darboğaz + yavaş + vanishing) → Transformer (her kelime her kelimeye, paralel, ölçeklenir).
  2. Multi-head attention (Lewis): Q/K/V; causal mask (geleceği görme); positional encoding (küme → sıra); warmup / LayerNorm / label-smoothing.
  3. Decoding (Lewis): greedy / beam (exposure bias → bozulma); top-k sampling (çeşitlilik).
  4. SSL = dilin motoru (Lewis): word2vec (bağlamsız) → GPT (tek-yön) → ELMo → BERT (masked-LM = denoising); ölçek kraldır.
  5. Attention = küme linear kombinasyonu (Canziani): \(h = X \cdot a\); hard (one-hot) vs soft; \(a = \text{softmax}(X^\top x/\sqrt{d})\); key-value store.
  6. Q/K/V + encoder/decoder (Canziani): öğrenilen rotasyonlar; self vs cross; encoder + decoder = autoencoder iskeleti; IMDB %83.
  7. Autoregressive + maske + karesel maliyet (Canziani): look-ahead mask; dile-agnostik kavram; \(T \times T\) matris patlar.
  8. Post-2020 (KURSTA YOK): GPT-3 / in-context, ChatGPT / RLHF, FlashAttention — “ölçek” tezinin devamı.
ÖnemliTek Bir Cümle

Transformer, RNN’in darboğazını ve CNN’in sınırlı alıcı alanını ortadan kaldıran, her kelimenin her kelimeye doğrudan baktığı düşük-önyargılı bir modeldir; çekirdeği attention’dır — bir kümenin elemanlarını Q/K/V benzerlik skorlarıyla (softmax) harmanlayan linear kombinasyon — ve öz-denetimli “boşluğu doldur” (BERT) ile etiketsiz metinden öğrenip pre-train→fine-tune ile her dil görevine taşınır.

13.11 Kontrol Soruları

Cevap: CNN sınırlı alıcı alan taşır (uzun-menzilli bağımlılığı yakalayamaz); RNN tüm geçmişi tek vektöre sıkıştırır (darboğaz), vanishing gradient sorunu yaşar (Hafta 6) ve ardışık olduğu için yavaştır (paralelleşmez). Transformer self-attention ile her kelimeyi her kelimeye doğrudan bağlar (Lewis 31:43): herhangi bir geçmişe kayıpsız erişim (darboğaz yok, vanishing büyük ölçüde yok) + tek bir matris çarpımı = paralelleşir → olağanüstü ölçekleme.

Cevap: Query “ne arıyorum?”, key kelimeyi etiketler, value içeriği taşır. Query·key → softmax → dağılım → value’ların ağırlıklı toplamı; multi-head = aynı anda farklı sorular sormak. Causal mask (üst-üçgen \(-\infty\)): tüm adımlar aynı anda hesaplanır, maske olmazsa kelimeler geleceğe bakıp hile yapar (Lewis 27:08). Positional encoding: attention girdiyi sırasız bir küme olarak görür; sıra bilgisi için her konuma bir embedding eklenir.

Cevap: Büyük beam → boş/tekrarlı çıktılar. Sebep exposure bias: eğitimde hep doğru önceki kelimeler verilir, model kendi hatalarını görmez (Lewis 49:54); test anında bir kötü adımdan sonra görmediği bir duruma düşer ve döngüye girer. Top-k (Angela Fan): dağılımı en iyi k’ye kırpıp örnekler — çeşitlilik + “iyi dil manifoldundan” düşmeme. GPT-2 örnekleri böyle üretilir.

Cevap: İkisi de “boşluğu doldur” görevidir; word2vec sığ bir linear projeksiyondur ve bağlamsızdır (kelime başına tek vektör). BERT büyük bir Transformer + iki-yönlü zengin etkileşim kullanır (Lewis 1:18:50) → bağlamlı temsil. Cake (LeCun): öğrenmenin çoğu denetimsizdir (pastanın kendisi), denetimli öğrenme = üstteki ince krema (1:09:43). BERT masked-LM = Hafta 7-8 denoising autoencoder: girdiyi boz (%15 maske), geri kur — gürültüyü gidermek = enerjiyi şekillendirmek.

Cevap: Attention = bir kümenin (\(X\)) benzerlik-ağırlıklı linear kombinasyonu: \(h = X \cdot a\), \(a = \text{softmax}(X^\top x/\sqrt{d})\) (Canziani 0:49, 19:07). Hard = one-hot (tek seçim), soft = konveks harman. Key-value: query tüm key’lerle karşılaştırılır, value’lar getirilir. Q ve K aynı boyutta olmalıdır çünkü nokta çarpımıyla karşılaştırılırlar (yönelim). V farklı olabilir çünkü o “tarifin içeriği”dir — karşılaştırılmaz, getirilir. Tek doğrusalsızlık softmax’tir (22:05).

13.12 Egzersizler

Egzersiz 1 (Attention’ı elle hesapla). 3 elemanlı bir küme {x₁, x₂, x₃} (2B) ve bir sorgu x verilsin. Skorları (xᵢ·x), softmax (β=1) katsayılarını ve h = Σ aᵢ xᵢ’yi hesapla. β büyüdükçe (hard’a doğru) h nasıl değişir?

import numpy as np

# Attention = kumenin benzerlik-agirlikli LINEAR KOMBINASYONU: h = X^T a, a = softmax(beta * X x)
X = np.array([[1.0, 0.0],   # x1
              [0.0, 1.0],   # x2
              [0.8, 0.6]])  # x3 (x1'e yakin)
x = np.array([1.0, 0.2])    # sorgu

def softmax(z, beta=1.0):
    z = beta * (z - z.max())
    e = np.exp(z)
    return e / e.sum()

skorlar = X @ x                       # her x_i ile sorgu nokta carpimi
for beta in [0.5, 1.0, 5.0]:
    a = softmax(skorlar, beta)         # katsayilar (toplam 1)
    h = a @ X                          # linear kombinasyon
    print(f"beta={beta}: a={np.round(a,3)}  h={np.round(h,3)}")
# beta buyur -> a one-hot'a yaklasir (HARD) -> h tek bir x_i'ye yaklasir (en yuksek skorlu)

Egzersiz 2 (Causal mask). 4 kelimelik bir dizi için 4×4 attention skor matrisi çiz; causal mask (üst-üçgen −∞) uygula; softmax sonrası her satırın yalnız kendine + soluna ağırlık verdiğini göster. Maske olmasa neden “hile” olur?

import numpy as np

def softmax_rows(M):
    e = np.exp(M - M.max(axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

scores = np.random.default_rng(0).normal(0, 1, (4, 4))
mask = np.triu(np.full((4, 4), -np.inf), k=1)   # ust-ucgen (gelecek) = -inf
A = softmax_rows(scores + mask)
print(np.round(A, 2))
# Her satir yalniz kendine + soluna agirlik verir (ust-ucgen = 0).
# Maske OLMASA: kelime tahmin edilirken GELECEK kelimeyi gorur = cevabi kopyalar (HILE);
# maske autoregressive faktorizasyonu p(x1)p(x2|x1)p(x3|x1,x2)... korur.

Egzersiz 3 (Q/K/V boyutları). d=8, h=4 head’li multi-head attention’da W_Q / W_K / W_V boyutları nedir? Head’leri birleştiren son W neden gerekir? Q=K, V≠ örneğiyle açıkla.

import numpy as np

d_model, n_head = 8, 4
d_head = d_model // n_head            # 2 -> her head'in Q/K/V boyutu
# Her head icin: W_Q, W_K [d_model, d_head] (Q ve K AYNI boyut -> nokta carpimi);
#                W_V      [d_model, d_head] (V FARKLI olabilir, ama burada d_head)
print(f"d_model={d_model}, n_head={n_head}, d_head={d_head}")
print(f"W_Q, W_K, W_V her head icin: [{d_model}, {d_head}]")
print(f"head'leri birlestiren W_O: [{n_head*d_head}, {d_model}] = [{d_model}, {d_model}]")
# W_O GEREKLI: h head'in ciktilari concat edilir [n_head*d_head] -> d_model'e geri yansitilir.
# Q ve K aynı boyutta (karsilastirilir); V "tarifin icerigi" -> farkli olabilir.

Egzersiz 4 (BERT = denoising). Bir cümlenin %15’ini maskele, bir Transformer encoder ile doldur. Bunu Hafta 7-8 denoising autoencoder ile eşle: “maske” hangi gürültü, “doldur” hangi enerji-minimizasyonu? word2vec’ten farkı nedir?

import numpy as np

cumle = ["kedi", "bahçede", "fareyi", "hızla", "kovaladı"]
rng = np.random.default_rng(1)
maske = rng.random(len(cumle)) < 0.15            # ~%15 token'i maskele
bozuk = [("[MASK]" if m else w) for w, m in zip(maske, cumle)]
print("orijinal:", cumle)
print("bozuk   :", bozuk)   # "maske" = denoising AE'deki GURULTU (Hafta 7-8)
# BERT = denoising AE: girdiyi boz (maske=gurultu), TRANSFORMER ile geri kur ("doldur").
# "Doldur" = dusuk-enerjili (olasi) cumleyi geri getir = enerjiyi sekillendir.
# word2vec farki: BAGLAMSIZ (kelime basina tek vektor); BERT bagalmli + iki-yonlu Transformer.

Egzersiz 5 (Hafta 13 habercisi — Graph ConvNets). Hafta 13’te konuk Xavier Bresson (NTU) GCN’leri anlatacak; Canziani practicum’u kuracak. (a) LeCun’un “word2vec = basit graph neural net (kelime eş-dizim grafiği)” yorumunu (1:40:31) düşün: bir cümleyi grafik olarak nasıl temsil edersin? (b) Görüntü (düzenli ızgara) ile molekül (düzensiz grafik) arasında “convolution”u genellemek neden zordur?

import numpy as np

# (a) Cumle -> grafik: dugum = kelime, kenar = es-dizim (yan yana gelme) sikligi.
#     LeCun: word2vec/BERT, bu graf uzerinde basit bir GNN gibi calisir (1:40:31).
kelimeler = ["nehir", "banka", "kiyi", "para"]
# komsuluk (es-dizim) matrisi (illustratif): nehir-banka-kiyi yakin, banka-para yakin
A = np.array([[0, 1, 1, 0],
              [1, 0, 1, 1],
              [1, 1, 0, 0],
              [0, 1, 0, 0]])
derece = A.sum(1)
print("dugumler:", kelimeler)
print("dereceler (komsu sayisi):", derece)
# (b) Goruntude convolution SABIT bir izgarada kayar (her piksel ayni komsuluk yapisi);
#     molekul/grafikte her dugumun KOMSU SAYISI farkli -> sabit kernel kaymaz.
#     GCN bunu komsulardan mesaj-toplama (aggregate) ile cozer -> Hafta 13.

13.13 Sonraki Ders İçin Hazırlık

UyarıSonraki Hafta — H13: Graph Convolutional Networks (GCN) (Konuk: Xavier Bresson)

Attention’dan grafiklere geçiyoruz. Bu hafta Transformer’ı (her kelime her kelimeye), multi-head attention’ı (Q/K/V + causal mask + positional encoding), decoding’i (greedy/beam/top-k, exposure bias) ve SSL’i (word2vec → BERT, masked-LM = denoising) Lewis’le; attention’ın matematiğini, encoder/decoder iskeletini ve karesel maliyeti Canziani’yle kapattık. Hafta 13’te konuk Xavier Bresson (Nanyang Technological University, GNN uzmanı) convolution’u düzensiz grafiklere genelleyen GCN’leri (spektral + uzaysal) anlatacak; Canziani GCN practicum’u kuracak. Egzersiz 1 (attention elle) ve Egzersiz 5 (cümle → grafik) tam bu derse hazırlar.

Hafta 13: Graph Convolutional Networks (GCN) — Xavier Bresson (Konuk Lecture) + Canziani (Practicum)

Hafta 13’te konuk Xavier Bresson (Nanyang Technological University, GNN uzmanı) convolution’u düzensiz grafiklere genelleyen GCN’leri (spektral + uzaysal) anlatacak; Canziani GCN practicum’u kuracak. LeCun’un bu haftaki “word2vec = basit GNN” köprüsü doğrudan o derse açılır.

Hafta 13 öncesi yapılacak:

  • Egzersiz 1 (attention elle) ve Egzersiz 5 (cümle → grafik) çöz.
  • “Attention = küme linear kombinasyonu” ve “BERT = denoising” cümlelerini kendi sözcüklerinle yaz.
  • Hafta 3 ConvNet’in “locality + stationarity + compositionality” üçlüsünü hatırla — GCN bunları grafiklere taşır.

13.14 Anahtar Kavramlar (Cheat Sheet)

Kavram Tanım Hoca / timestamp
Dil modeli Metin yoğunluk tahmini; zincir kuralı → next-word Lewis 4:45
CNN → RNN → Transformer Sınırlı alan → darboğaz/yavaş → her kelime her kelimeye Lewis 31:43
Multi-head attention Q/K/V; aynı anda farklı sorular; paralel Lewis 23:58
Causal mask Üst-üçgen −∞; geleceğe bakmayı engeller Lewis 27:08
Positional encoding Küme → sıra; her konuma embedding Lewis 29:17
Exposure bias / top-k Kendi hatasını görmez → döngü; k-best örnekle Lewis 49:54
SSL / cake / BERT word2vec → BERT; masked-LM = denoising; ölçek Lewis 1:09
Attention = küme lin. komb. h = X·a; hard (one-hot) / soft Canziani 1:45
Key-value store query → keys → values (lazanya analojisi) Canziani 19:07
Q/K/V rotasyon W_Q/W_K/W_V; tek param; β=1/√d Canziani 20:44
Encoder/decoder self + (cross) + Add&Norm; autoencoder iskeleti Canziani 35:15
Karesel maliyet (A: T×T) Küme büyüdükçe patlar; Reformer/LSH Canziani 53:01

13.15 ML Builder Bağlantıları

Geriye köprüler (önkoşul + kurs):

  1. Bağlam kodlayıcı → Hafta 6 (RNN/LSTM/attention/seq2seq); Transformer = tekrarlamasız hâli.
  2. Softmax / β → Hafta 11 (attention katsayısı = softmax, sıcaklık).
  3. SSL / cake / BERT denoising → Hafta 10 (pretext) + Hafta 7-8 (denoising AE).
  4. Encoder/decoder + residual → Hafta 8 (autoencoder) + Hafta 3 (BatchNorm / 1×1 conv).
  5. Q/K/V = lineer dönüşüm → Hafta 1-2 (lineer cebir, nokta çarpımı).

İleriye köprüler (production / research):

  1. Transformer → tüm LLM (GPT/BERT/T5); ViT, protein, multimodal.
  2. SSL + ölçekGPT-3 / ChatGPT / RLHF (post-2020, KURSTA YOK).
  3. word2vec = basit GNN (LeCun) → Hafta 13 Graph ConvNets.
  4. Karesel maliyet → sparse / lineer / FlashAttention; uzun-bağlam.
ÖnemliBu dersten tek bir şey alıp gideceksen

Transformer’ın tüm sırrı attention’dır ve attention basittir — bir kümenin elemanlarını, Q/K/V benzerlik skorlarından (softmax) gelen katsayılarla harmanlayan bir linear kombinasyon. RNN darboğazını ve CNN sınırlı alıcı alanını ortadan kaldırıp her kelimeyi her kelimeye doğrudan bağlar (paralel, ölçeklenir). Dile özel yapı dayatmak yerine düşük-önyargılı modeli çok metinle besle (Lewis); öz-denetimli “boşluğu doldur” (BERT = Hafta 7-8 denoising) etiketsiz metinden öğrenir, pre-train→fine-tune her göreve taşır. LeCun’un köprüsü hazır: word2vec/BERT, kelime eş-dizim grafiği üzerinde basit bir graph neural net — bir sonraki haftanın (GCN) kapısı. Post-2020 zirvesi (GPT-3, ChatGPT, RLHF) kursta yoktur ama hepsi 2017 Transformer’ın üstünde durur.