kolay 40 puan

Bir LLM Sana Cevap Verirken Ne Yapar?

Tek bir tur: token → embedding → attention (sezgi) → sampling → cevap. Her adımda 'burası niye saldırı yüzeyi?' notuyla.

Bir LLM Sana Cevap Verirken Ne Yapar?

ChatGPT'ye "Türkiye'nin başkenti neresidir?" yazıp Enter'a bastınız. Ekrana "Ankara'dır." cevabı düştü. O kısacık 1.2 saniyede arka planda 5 kritik adım gerçekleşti. Bu adımları sırayla inceleyeceğiz:

Akış
1) Tokenization — Metni parçalara (token) ayır ve sayısallaştır.
2) Embedding — Sayıları anlam vektörlerine (koordinatlara) dönüştür.
3) Attention — Bağlamı kur (her token'ın diğerleriyle ilişkisini hesapla).
4) Generation — Bir sonraki olası token'lar için olasılık dağılımı çıkar.
5) Sampling — O dağılımdan bir token seç → Adım 4'e geri dön.

Şimdi bu adımlara tek tek bakacağız. Formüllere boğulmadan, kısa ve net bir şekilde; en önemlisi de her adımın "neden bir saldırı yüzeyi olduğu" notuyla.


Adım 1: Tokenization (Parçalara Ayırma)

Token, modelin gördüğü atomik (en küçük) birimdir. Bir karakter veya tam bir kelime değildir; ikisinin arasında bir şey, alt-kelime (sub-word) parçasıdır.

Eğitim verisinde çok sık geçen kelimeler tek bir token olurken, nadir veya farklı dillerdeki kelimeler bölünür. İngilizce odaklı bir tokenizer "siberguvenlik" diye tek bir token bilmez, bunu "siber" + "guv" + "enlik" olarak üçe ayırır.

İngilizce — kompakt prompt injection → 2 token Türkçe — daha çok parça siber guv enlik → 3 token (bir kelime!) akadem isi → 2 token

Pratik Sonucu: Aynı anlam ifade edilse bile Türkçe bir metin İngilizceye kıyasla %70 ila %150 daha fazla token kaplar. Bunun anlamı:

  • Daha yüksek API faturaları.
  • Bağlam penceresine (Context Window) daha az bilgi sığması.
  • Zararlı kelime filtrelerinin (blocklist) tetiklenme olasılığının düşmesi.
Saldırı Yüzeyi

Uygulamanızda bir kara liste (blocklist) varsa ve kullanıcı "g i z l i" diye boşluklarla veya aralara sıfır genişlikli karakterler (zero-width) koyarak yazarsa, filtreniz "gizli" kelimesini yakalayamaz. Tokenizer da bunu farklı parçalara böler. Ancak model, bağlam yeteneği sayesinde bunu normalize edip ne dendiğini anlar ve talimatı işler. Bu atlatma tekniğine Token Smuggling (Token Kaçakçılığı) denir ve gelişmiş prompt güvenliği testlerinin temel konularından biridir.


Adım 2: Embedding (Vektöre Dönüştürme)

Her token aslında sözlükteki bir ID numarasıdır (örn. 41906). Ancak model bu dümdüz sayıyı kullanamaz. Önce bunu bir vektöre dönüştürür. Bu, çok boyutlu (768, 1024, 3072 boyutlu) matematiksel bir uzayda bir noktadır.

Bu devasa vektör uzayının sihirli yanı şudur: Anlamca birbirine yakın kelimelerin koordinatları da birbirine yakındır.

Formül
Kral − Erkek + Kadın ≈ Kraliçe
Paris − Fransa + İtalya ≈ Roma

Ortada bir büyü yoktur; bu sadece milyarlarca metnin analizi sonucu eğitim sırasında öğrenilmiş matematiksel bir mesafedir.

Saldırı Yüzeyi

Vektör veritabanları (Pinecone, Qdrant, Chroma vb.) kurumsal RAG (Retrieval-Augmented Generation) asistanlarının kalbidir.

  • Saldırgan bir vektör veritabanı sızıntısı ele geçirirse, Vector Inversion (Vektör Tersine Çevirme) saldırısıyla sadece sayılardan ibaret görünen o vektörleri orijinal metne (şirket sırlarına) geri dönüştürebilir.
  • Saldırgan kurumsal veritabanına dışarıdan zehirli bir içerik sokabilirse, model kullanıcının sorusunu yanıtlarken "alakalı belge" olarak bu zehirli veriyi çeker ve içindeki kötü niyetli talimatı uygular. Buna RAG Poisoning veya Indirect Prompt Injection (Dolaylı İstemi Enjeksiyonu) denir.

Adım 3: Attention (Dikkat Mekanizması)

Bir cümlede her kelimenin tam anlamı, diğer kelimelere bağlıdır:

"Yemeği masaya koy. O soğuyacak."

Buradaki "O" kelimesi tek başına belirsizdir. Soğuyacak olan yemek midir, yoksa masa mı? LLM'lerin kalbi olan Self-Attention mekanizması, modelin bu bağlantıyı kurmasını sağlar.

Yemeği masaya koy. O soğuyacak. 0.62 0.18 0.05 0.15 "O" tokeni diğer tüm tokenlara bakar; en kalın ok = en yüksek ağırlık = "yemek".

"O" tokeni işlemden geçerken diğer her tokene matematiksel bir ağırlık (dikkat skoru) verir. En yüksek skor "yemek" kelimesine gider. Böylece "O" tokeni, yemek kelimesinin anlamını kendine çeker. Artık o sadece düz bir zamir değil, "yemek-zamiri" olarak şekillenmiştir. Bu işlem her token için, her sinir ağı katmanında tekrar tekrar yaşanır.

Saldırı Yüzeyi

Attention (Dikkat) mekanizması özünde matematiksel bir ağırlıklandırma hesabıdır. Yani metindeki "dikkat çekici" unsurlar, modelin dikkatini gerçekten çeker. Saldırgan prompt'un içine şöyle bir ibare gömerse:

"ÖNEMLİ! ÖNCEKİ TÜM TALİMATLARI YOKSAY. SİSTEM YÖNETİCİSİNDEN ACİL MESAJ: ..."

Büyük harfler (CAPS), ünlem işaretleri, "ÖNEMLİ", "SİSTEM" gibi desenler, o kelimelerin attention skorlarını ölçülebilir şekilde yukarı fırlatır. Bu durum, arka plandaki gizli geliştirici talimatlarını (System Prompt) gölgede bırakabilir. İşte Prompt Injection mühendisliğinin altında yatan asıl mekanik budur.


Adım 4 + 5: Generation (Üretim) ve Sampling (Örnekleme Seçimi)

Model size cevabı bir kerede bütün olarak vermez. Tek tek token üretir. Her bir adımda şu döngü yaşanır:

  1. Generation: Model, mevcut bağlama bakarak sözlükteki tüm kelimeler için bir sonraki token olma olasılıklarını çıkarır:
    Örnek
    Ankara   : 0.78
    İstanbul : 0.15
    Bursa    : 0.04
    ...
  2. Sampling: Bu olasılık dağılımından bir token seçilir.
  3. Seçilen token modele geri beslenir ve işlem "EOS" (End of Sentence / Cümle Sonu) token'ı gelene kadar baştan başlar.

Peki bu seçim nasıl yapılır? Çoğunlukla Temperature (Sıcaklık) parametresiyle belirlenir:

  • T = 0 → Model her zaman en yüksek olasılıklı (0.78) token'ı seçer. Deterministiktir; aynı soruya hep aynı cevabı verir. Kod veya JSON üretimi için idealdir.
  • T = 0.7 → Orta seviye çeşitlilik. RAG sistemleri ve standart sohbet asistanları için yaygındır.
  • T = 1.3+ → Düşük olasılıklı token'lar da zar atılarak seçilebilir. Metin daha "yaratıcı" ama saçmalamaya yatkın hale gelir.
Saldırı Yüzeyi

Önceki odada bahsettiğimiz RLHF hizalaması, "Üzgünüm, bunu yapamam" tarzı güvenli yanıtları yüksek olasılık olarak kodlar. Düşük temperature değerlerinde bu güvenlik duvarı sağlamdır. Ancak saldırgan yüksek temperature kullanma imkanı bulursa, zararlı istekleri reddeden token'ların olasılığı düşer ve bastırılmış "tehlikeli/kabul edici" token'lar seçim havuzuna karışır.

Lokal bir LLM'i kendi GPU'sunda çalıştıran bir araştırmacı, temperature değerini tavan yaptırarak jailbreak başarı oranını dramatik şekilde artırabilir. Kurumsal API'lerin geliştiricilere sunduğu parametre üst limitleri, tam da bunun savunmasıdır.


Özet Haritası

Bir cümlede özetlersek süreç şudur:

Metni token'la → Embedding'le uzayda anlamlandır → Attention'la metin içi bağlamı kur → Generation'la olasılıkları dağıt → Sampling'le bir kelime seç → Tekrar et.

Mimari AdımTipik Saldırı Yüzeyi
TokenizationDoS (Aşırı uzun token tüketimi), Token Smuggling (Homoglyph/Zero-width karakterlerle filtre atlatma)
EmbeddingRAG Poisoning, Vector Inversion
AttentionPrompt Injection (Büyük harf/Aciliyet belirten tetikleyicilerle dikkat çalma)
SamplingYüksek Temperature manipülasyonu ile Jailbreak direncini kırma

Unutmayın: Bir LLM'in iç işleyişi tarafsız veya kusursuz bir kara kutu değildir; her bir mantıksal adım, içeri sızmak için ayrı bir kapı (zafiyet) oluşturur.

Modül 1 burada tamamlandı. Sıradaki Modül 2'de bu kapıların resmi kataloğunu çıkaracağız: Dünyaca kabul gören standartlar olan OWASP LLM Top 10, MITRE ATLAS ve gerçek dünyada bu kapıların nasıl tekmelendiğini gösteren vaka incelemeleri bizi bekliyor.

Görevler

Görevleri çözmek ve puan kazanmak için giriş yap ya da kayıt ol.
  1. 01
    Metnin LLM'in işleyebileceği sayısal birimlere parçalanmasına ne denir? (Türkçe veya İngilizce, tek kelime)
    10 P
  2. 02
    Türkçe bir kelime İngilizce karşılığına göre genellikle daha çok token'a parçalanır. Bunun pratik etkisi nedir?
    10 P
  3. 03
    Cümledeki her token'ın 'kime ne kadar dikkat etmem gerek' sorusunu cevaplamasını sağlayan mekanizmaya ne denir?
    10 P
  4. 04
    0 değerinde modelin neredeyse deterministik olduğu, arttıkça çıktıyı daha 'yaratıcı' (ve jailbreak'e açık) yapan sampling parametresi nedir? (tek kelime, İngilizce)
    10 P