Needle in a Haystack (Samanlıkta İğne Testi)

Needle in a Haystack, bir LLM'nin uzun metinler içinde saklı bir bilgiyi (iğneyi) doğru şekilde bulup bulamayacağını ölçen standart bir değerlendirme yöntemidir.

Needle in a Haystack (Samanlıkta İğne), büyük dil modellerinin (LLM) uzun bağlam pencerelerindeki performansını ölçmek için tasarlanmış bir değerlendirme yöntemidir. Test, basit ama güçlü bir mantığa dayanır: modele çok uzun bir metin (samanlık) verilir ve bu metnin içine küçük, spesifik bir bilgi parçası (iğne) gizlenir. Model daha sonra yalnızca o iğneyi içeren bir soruya yanıt vermesi istenir. Performans, iğnenin belgenin neresine yerleştirildiğine (başı, ortası, sonu) ve belgenin uzunluğuna (birkaç bin ila milyonlarca token) bağlı olarak ölçülür. Bu test 2023 yılı sonunda OpenAI'ın GPT-4 Turbo'nun 128.000 token bağlam penceresini duyurmasıyla popülerlik kazandı. Araştırmacılar kısa sürede fark etti ki bir modelin uzun bağlam desteklemesi, o bağlamı etkin biçimde kullanabildiği anlamına gelmiyordu. Needle in a Haystack testleri, modellerin özellikle belgenin ortasındaki bilgileri sık sık kaçırdığını ortaya koydu; bu olgu "Lost in the Middle" fenomeni olarak adlandırıldı. Test metodolojisi oldukça esnektir. İğne olarak bir şifreli kod, bir şehir adı, bir tarih ya da herhangi bir belirgin bilgi kullanılabilir. Samanlık ise genellikle Paul Graham denemelerinden oluşan ya da rastgele oluşturulmuş uzun metin bloklarıdır. Değerlendirme, modelin yanıtının doğru iğne bilgisini içerip içermediğini kontrol ederek yapılır. Sonuçlar ısı haritaları şeklinde görselleştirilir: yatay eksen belge uzunluğunu, dikey eksen iğnenin konumunu temsil eder; doğru yanıtlar yeşil, yanlışlar kırmızı olarak gösterilir. Anthropic Claude, Google Gemini ve Meta LLaMA modelleri bu testle kapsamlı biçimde karşılaştırılmıştır. Testler, modellerin bağlam uzunluğu arttıkça performans kaybı yaşadığını ve iğnenin konumunun kritik önem taşıdığını göstermiştir. Bu bulgular, modern LLM mimarilerinin gelişimini ve uzun bağlam optimizasyon tekniklerini (Flash Attention, sliding window attention vb.) doğrudan etkilemiştir. Needle in a Haystack testi aynı zamanda RAG (Retrieval-Augmented Generation) sistemleri için de önemlidir: bir RAG sistemine koyulan belgelerdeki iğnelerin model tarafından doğru biçimde alınıp alınamadığını test etmek için standart bir araç haline gelmiştir.

Testin Çalışma Prensibi

Needle in a Haystack testi üç bileşenden oluşur: **samanlık** (haystack), **iğne** (needle) ve **soru** (query). Samanlık, modelin bağlam penceresini dolduracak kadar uzun bir metin belgesidir; genellikle Paul Graham denemelerinden ya da rastgele oluşturulmuş metin parçalarından oluşur. İğne, bu metnin içine yerleştirilen küçük ama spesifik bir bilgi parçasıdır; örneğin 'Sihirli pizza topping'lerin Boise'deki gizli tarifi havuç, çikolata ve kimdir.' gibi anlamsız ama benzersiz bir cümle. Soru ise modelin bu iğneyi bulmasını gerektiren doğrudan bir sorudur. Test genellikle iki boyutlu bir ızgara üzerinde yürütülür: farklı belge uzunlukları (1K–200K token) ve farklı iğne konumları (başlangıç: %0, orta: %50, son: %100). Her kombinasyon için model birden fazla kez çalıştırılır ve yanıtın doğruluğu puanlanır. Sonuç olarak bir ısı haritası oluşturulur; yeşil hücreler modelin başarılı olduğunu, kırmızı hücreler başarısız olduğunu gösterir. Başarılı bir model tüm ızgarada düzgün yeşil bir renk sergiler.

Lost in the Middle Fenomeni

2023 yılında Stanford ve UC Berkeley araştırmacıları tarafından yayımlanan 'Lost in the Middle' makalesi, birçok LLM'nin belge koleksiyonlarındaki orta konumdaki bilgileri başlangıç ve son konumlara kıyasla çok daha zayıf şekilde işlediğini ortaya koydu. Bu 'U şeklindeki' performans eğrisi, Needle in a Haystack testlerinde de belirgin biçimde gözlemlenir. Fenomenin açıklaması Transformer mimarisinin dikkat mekanizmasıyla ilgilidir: modeller metni baştan sona işlerken başlangıç ve son pozisyonlara daha güçlü dikkat ağırlıkları atar. Bu olgu özellikle RAG sistemleri için kritik öneme sahiptir: eğer ilgili bağlam belgeler arasına gömülmüşse ve sıralama sistemi bu belgeleri ortaya yerleştiriyorsa, model kritik bilgiyi görmezden gelebilir. Bu nedenle modern RAG sistemleri, en kritik belgeleri bağlamın başına ya da sonuna yerleştirmeye özen gösterir.

Büyük Modellerin Karşılaştırmalı Performansı

  • check_circle GPT-4 Turbo (128K): 128K bağlam penceresinde test edilmiş; ~73K token'ın ötesinde belge ortasında performans düşüşleri gözlemlenmiştir.
  • check_circle Claude (200K bağlam): Anthropic'in Claude modelleri 200K token bağlam penceresiyle test edilmiş; uzun bağlamlarda daha dengeli performans sergilemiştir.
  • check_circle Gemini 1.5 Pro (1M token): Google'ın 1 milyon token bağlam destekleyen modeli, Needle in a Haystack testlerinde büyük uzunluklarda da güçlü sonuçlar göstermiştir.
  • check_circle LLaMA 3.1 (128K): Meta'nın açık kaynak modeli 128K bağlam desteğiyle teste tabi tutulmuş; benzer U-şekilli performans örüntüsü gözlemlenmiştir.

RAG Sistemleri ve Pratikte Kullanım

Needle in a Haystack testi, teorik bir değerlendirme aracının çok ötesine geçerek RAG (Retrieval-Augmented Generation) sistem tasarımını doğrudan etkileyen pratik bir araç haline gelmiştir. RAG geliştiricileri bu testi üç farklı amaçla kullanır: (1) Hangi modelin uzun bağlam penceresinde daha güvenilir çalıştığını karşılaştırmak için, (2) Chunk (metin parçası) boyutunu ve RAG boru hattındaki belge sıralama stratejisini optimize etmek için, (3) Bir üretim sistemini konuşlandırmadan önce kritik bilgilerin düzgün biçimde alınıp alınamadığını doğrulamak için. Ayrıca birden fazla iğne barındıran 'Multi-Needle' varyantları da geliştirilmiştir; bu testler modelin paralel bilgi parçalarını aynı anda ne kadar iyi işleyebildiğini ölçer.