Beam Search Decoding (Işın Arama Kod Çözme)

Dil modellerinin metin üretirken en iyi olası diziyi bulmak için eş zamanlı birden fazla hipotezi paralel keşfettiği çıkarım algoritması.

Beam search decoding, otomatik çeviriden metin özetlemeye kadar geniş bir yelpazede kullanılan temel bir çıkarım algoritmasıdır. Greedy search her adımda yalnızca en yüksek olasılıklı tek tokeni seçerken; beam search 'ışın genişliği' (beam width, k) kadar hipotezi paralel biçimde takip eder. Her adımda mevcut k hipotezin her biri en olası devamlarıyla genişletilir, ortaya çıkan k×vocab_size aday arasından toplamda en yüksek log-olasılıklı k dizisi bir sonraki adım için korunur. Son token üretildiğinde (veya EOS tokeni görüldüğünde) en yüksek kümülatif olasılıklı dizi çıktı olarak döner. k=1 greedy search ile özdeştir; k arttıkça arama kalitesi artabilir ancak hesaplama ve bellek maliyeti de k katına çıkar. Algoritmanın temel zayıflığı, ham log-olasılık toplamının kısa dizileri kayırmasıdır: her ek token küçük bir negatif değer eklediğinden model kısa ve özlü çıktılar üretmeye yönelir. Bu sorunu gidermek için length penalty (uzunluk cezası) devreye girer; nihai skor dizinin uzunluğu üzerinden normalize edilir ve α parametresiyle ayarlanır, α değeri genellikle 0.6–1.0 arasında seçilir. Çeşitlilik gerektiren görevlerde ise diverse beam search, hipotezler arasına benzerlik cezası ekleyerek tekrarlayan ve birbiriyle örtüşen çıktı dizilerini azaltır. Modern büyük dil modelleri — GPT-4, Claude veya Llama-3 gibi — çoğunlukla beam search yerine greedy arama veya temperature/top-p örneklemeyi tercih eder. Otoregresif üretimde k paralel akışın GPU bellek gereksinimini k katına çıkarması, bunun yanı sıra yüksek kapasiteli modellerde kalite farkının belirgin biçimde azalması bu tercihin başlıca nedenleridir. Makine çevirisi (Google Translate, DeepL), otomatik konuşma tanıma (ASR/STT) ve metin özetleme gibi deterministik ve tekrarlanabilir çıktı gerektiren görevlerde beam search hâlâ endüstri standardıdır. Pratik bir boyutlandırma örneği: k=5 ile 30.000 token'lık sözlükte çalışan bir makine çevirisi modeli her üretim adımında 150.000 kombinasyonu değerlendirir; bu greedy search'e kıyasla yaklaşık 5× hesaplama yükü anlamına gelir. Buna karşın elde edilen BLEU artışı, özellikle kısa ve orta uzunluktaki cümlelerde bu ek maliyeti karşılar. 2015 yılında Sutskever ve ekibinin seq2seq mimarisiyle makine çevirisinde yaptığı çalışma, beam search'in NLP alanında geniş çapta benimsenmesine öncülük etmiştir.

Nasıl Çalışır?

Beam search, her zaman adımında k en iyi kısmi diziyi (hipotezi) bellekte tutar. Başlangıçta k kopya başlatılır; her kopya sözlükteki tüm tokenler için olasılık hesaplar. Ortaya çıkan k×|V| aday içinden log-olasılık toplamı en yüksek k tanesi bir sonraki adıma aktarılır. EOS (end-of-sequence) tokeni üreten hipotez 'tamamlanmış' olarak ayrılır; diğerleri genişlemeye devam eder. Süreç belirli bir maksimum uzunluk veya tüm hipotezler tamamlanana kadar sürer.

Greedy Search ile Karşılaştırma

Greedy search her adımda argmax token'i seçer; bu hızlıdır ama yerel optimuma takılabilir. Beam search k > 1 ile daha geniş arama uzayını tarar ve genellikle daha tutarlı, yüksek kaliteli çıktılar üretir. Ancak k büyüdükçe bellek (k×seq_len) ve işlem süresi artar. Çok büyük k değerlerinde (k > 20) kalite artışı marginal kalırken maliyet yükselir.

Uzunluk Cezası

Ham log-olasılık kısa dizileri tercih eder çünkü her ek token küçük bir log-negatif değer ekler. Bunu önlemek için BLEU veya ROUGE optimizasyonlarında kullanılan uzunluk cezası formülü devreye girer: score = log_prob / length^α. α = 0.6–0.8 değerleri makul denge sağlar.

LLM Döneminde Değişen Rol

GPT, Claude ve Llama gibi büyük otoregresif modellerde beam search yerini büyük ölçüde greedy veya sıcaklık tabanlı örneklemeye (temperature sampling, top-k, top-p) bırakmıştır. Bunun nedenleri: (1) Bu modeller zaten milyarlarca parametre ve RLHF ile yüksek kaliteli greedy çıktı üretebilir, (2) Sampling çıktılarda yaratıcılık ve çeşitlilik sağlar, (3) Beam search 'degenerate' tekrarlı cümlelere eğilimlidir. Spekülatif çıkarım (speculative decoding) ile birleşiminde ise draft-model beam tabanlı kısa diziler önerirken büyük model doğrular.

Kullanım Alanları

Makine çevirisi (Google Translate, DeepL), otomatik konuşma tanıma (ASR/STT), metin özetleme ve protein dizisi tasarımı (AlphaFold2 MSA örneklemesi) beam search'ü aktif kullanan alanlardır. Kod üretiminde GitHub Copilot gibi araçlar genellikle k=1 veya sampling kullanır.

Sık Sorulan Sorular

  • check_circle Beam width kaç seçilmeli? Göreve bağlı: makine çevirisi ve ASR'da 4–10 arası yaygın; modern büyük dil modellerinde 1–2 (greedy veya hafif beam) çoğunlukla yeterli görülür.
  • check_circle Beam search ile greedy search farkı nedir? Greedy search her adımda en yüksek olasılıklı tek tokeni seçer. Beam search k paralel hipotezi takip ederek daha geniş arama uzayını tarar; bu genellikle daha tutarlı ve yüksek kaliteli çıktılar üretir.
  • check_circle Length penalty neden gereklidir? Log-olasılık toplamı kısa dizileri kayırdığından model çok kısa çıktılar üretmeye yönelir. Length penalty, uzunluğa göre normalize ederek dengeli dizi uzunlukları elde edilmesini destekler.
  • check_circle Modern LLM'ler neden beam search kullanmaz? Yüksek kapasiteli modellerde greedy arama kalite farkı azalır; k paralel akış bellek maliyetini k katına çıkarır; temperature sampling ise daha çeşitli ve yaratıcı yanıtlar üretir.
  • check_circle Diverse beam search nedir? Hipotezler arasına benzerlik cezası ekleyen bir beam search varyantıdır. Böylece üretilen k çıktı birbiriyle daha az örtüşür ve farklı yaklaşımları kapsayan alternatifler sunar.