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}) biçiminde 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 çıktılar üretebilir. Işın araması (beam search), K olası diziyi paralel takip ederek toplam 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 anlamsız çıktı riskini azaltır. Otoregresif kod çözmenin temel performans sorunu, her tokenin sırayla üretilmesidir; bu durum gecikmeyi (latency) artırır ve GPU paralelizmini kısıtlar. KV önbelleği (KV cache), önceki adımlarda hesaplanan anahtar-değer matrislerini saklayarak yeniden hesaplanmalarını önler ve çıkarımı önemli ölçüde 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; böylece birden fazla token tek geçişte onaylanabilir. Flash Attention ve sürekli toplu işleme (continuous batching) gibi teknikler de üretim sistemlerindeki verimliliği artıran önemli optimizasyonlar arasında yer alır. Bu yöntemler, yüksek trafikli LLM hizmeti senaryolarında gecikmeyi düşürmek ve GPU kullanımını artırmak amacıyla birlikte uygulanmaktadır.

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

  • check_circle 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. Aynı prompt her zaman aynı çıktıyı üretir.
  • check_circle Işın Araması (Beam Search): K aday diziyi paralel takip eder; makine çevirisi gibi kesin görevlerde kaliteyi artırır. Yüksek K değerleri bellek ve hesaplama maliyetini yükseltir.
  • check_circle Top-p (Nucleus Örnekleme): Kümülatif olasılık p'ye ulaşana kadar en olası tokenler arasından örnekler; uyarlanabilir sözlük boyutu ve yaratıcı çıktılar sağlar.
  • check_circle 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. T=0 greedy kod çözmeye eşdeğerdir.

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. Uzun bağlamlarda en kritik hız optimizasyonudur.
  • 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. Ortalama 2-4x hızlanma sağlar.
  • check_circle Sürekli Toplu İşleme: Birden fazla kullanıcı isteği aynı anda işlenir; boş GPU kapasitesi atıl kalmaz ve toplam 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 önemli ölçüde azaltır.

Otoregresif Modellerin Kullanım Alanları

  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :

Sık 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.
  • check_circle Beam search neden her zaman daha iyi sonuç vermez?: Beam search toplam log-olasılığı maksimize eder; ancak bu, insan değerlendirmesinde en kaliteli metin anlamına gelmez. Yaratıcı ve çeşitli metinlerde örnekleme yöntemleri daha iyi sonuç verebilir.