Otoregresif Kod Çözme

Otoregresif Kod Çözme, dil modelinin her yeni tokeni önceki tüm tokenlere koşullu olarak sırayla ürettiği standart çıkarım yöntemidir.

Otoregresif Kod Çözme (Autoregressive Decoding), bir dil modelinin metin üretirken her yeni tokeni yalnızca önceki tokenlerden türeterek sırayla ürettiği standart çıkarım yöntemidir. Modelin çıktı dizisi soldan sağa doğru inşa edilir; her adımda tüm önceki bağlam koşullu olasılık dağılımını belirler ve buradan bir sonraki token örneklenir ya da seçilir. Matematikte otoregresif süreç, bir serinin her terimini kendinden önceki terimlere bağlı bir fonksiyon olarak ifade eder. Dil modellerinde bu P(x_t | x_1, ..., x_{t-1}) şeklinde yazılır: t. tokenin olasılığı 1'den t-1'e kadar tüm önceki tokenlere koşulludur. GPT ailesi başta olmak üzere tüm kausal dil modelleri bu paradigmayı kullanır. Kod çözme stratejisi, üretilen metnin kalitesini ve çeşitliliğini doğrudan etkiler. Açgözlü kod çözme (greedy decoding) her adımda en yüksek olasılıklı tokeni seçer; hızlıdır ancak tekrarlayan veya monoton çıktılar üretebilir. Işın araması (beam search), K olası diziyi paralel takip ederek toplu puan açısından en iyi tam diziyi arar; çeviri gibi görevlerde kaliteyi artırır. Sıcaklık örneklemesi (temperature sampling), olasılık dağılımını keskinleştirerek veya yumuşatarak çıktı çeşitliliğini ayarlar. Top-p (nucleus) ve top-k örnekleme ise düşük olasılıklı tokenleri keserek saçmalama riskini azaltır. Otoregresif kod çözmenin temel performans sorunu her tokenin sırayla üretilmesidir; bu durum gecikmeyi (latency) artırır ve GPU paralelizmini sınırlar. KV önbelleği (KV cache), önceki adımlarda hesaplanan anahtar-değer matrislerini saklayarak tekrar hesaplanmalarını önler ve çıkarımı hızlandırır. Spekülatif kod çözme (speculative decoding) ise küçük bir taslak model kullanarak büyük modelin doğrulamasını paralel yürütür ve verim artışı sağlar.

Otoregresif Üretim Adım Adım

Model ilk token olarak başlangıç özel tokeni alır. Giriş transformer katmanlarından geçirilerek her kelime dağarcığı tokeni için logit puanları hesaplanır; softmax bu puanları olasılık dağılımına çevirir. Seçilen kod çözme stratejisine göre (greedy, top-p vb.) bir sonraki token örneklenir ve bağlama eklenir. Bu döngü bitiş tokeni üretilene ya da maksimum uzunluk aşılana kadar tekrar eder. Her döngüde yalnızca son token yeni; önceki tokenların dikkat matrisleri KV önbelleğinden alınır.

Kod Çözme Stratejileri

Açgözlü (Greedy)

Her adımda en yüksek olasılıklı tokeni seçer; en hızlı ama en az çeşitli strateji.

Işın Araması (Beam)

K aday diziyi paralel takip eder; makine çevirisi gibi kesin görevlerde kaliteyi artırır.

Top-p (Nucleus)

Kümülatif olasılık p'ye ulaşana kadar en olası tokenler arasından örnekler; uyarlanabilir sözlük boyutu.

Sıcaklık Örneklemesi

T<1 dağılımı keskinleştirerek odaklanır; T>1 yumuşatarak yaratıcı ve çeşitli çıktılar üretir.

Performans Optimizasyonları

  • check_circle KV Önbelleği: Önceki adımlarda hesaplanan Anahtar-Değer matrisleri saklanır; her adımda yeniden hesaplama yerine önbellekten okunur.
  • check_circle Spekülatif Kod Çözme: Küçük taslak model birden çok token önerir; büyük model paralel olarak doğrular ve reddettiği noktadan yeniden başlar.
  • check_circle Sürekli Toplu İşleme: Birden fazla kullanıcı isteği aynı anda işlenir; boş GPU kapasitesi atıl kalmaz ve verim artar.
  • check_circle Flash Attention: Dikkat hesaplamasını IO açısından verimli bloklamalarla gerçekleştirir; uzun bağlam pencerelerinde bellek tüketimini azaltır.

Sıkça Sorulan Sorular

  • check_circle Neden otoregresif kod çözme yavaş?: Her token sırayla üretilmek zorunda; bir sonraki token önceki tokeni gerektirir, bu da GPU paralelizmini kısıtlar. 1000 token üretmek 1000 seri adım demektir.
  • check_circle Temperature 0 ne anlama gelir?: Temperature 0 greedy kod çözmeye eşdeğerdir; model her adımda deterministik olarak en yüksek olasılıklı tokeni seçer. Aynı prompt her zaman aynı çıktıyı üretir.
  • check_circle Spekülatif kod çözme neden daha hızlı?: Küçük taslak model N token önerir; büyük doğrulayıcı model bu N tokeni tek paralel geçişte değerlendirir. Öneriler kabul edilirse N token maliyeti tek token maliyetiyle ödenir.