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.

🔍 Uzun Bağlam Testinde İyi Sonuç İçin İpuçları

  • check_circle Kritik bilgiyi bağlamın başına veya sonuna koyun; ortada yerleşik bilgi en çok unutulur
  • check_circle Pozisyon interpolasyonu ile bağlam penceresini aşan token'lar için RoPE tabanlı genişleme
  • check_circle Retrieval augmentation: tüm belgeyi bağlama koymak yerine ilgili bölümleri seçerek ekleyin
  • check_circle Dikkat uzaması (attention sink) tekniğiyle uzun bağlamlarda performans kaybını azaltın
  • check_circle Multi-hop sorgular için zincir düşünce yönlendirmesi ile model odağını yönlendirin

Sıkça Sorulan Sorular

  • check_circle Needle in a Haystack testi kim tarafından icat edildi? Test belirli tek bir kaynağa bağlanamaz; ancak Greg Kamradt 2023 yılı sonunda yaptığı kapsamlı GPT-4 Turbo testleriyle bu yöntemi yaygınlaştırmıştır. 'Lost in the Middle' fenomenini resmi olarak tanımlayan ise 2023 tarihli Stanford/UC Berkeley akademik makalesidir.
  • check_circle Uzun bağlam penceresi olan her model bu testi geçer mi? Hayır. Bir modelin uzun bağlam desteğinin olması, onu etkin biçimde kullanabildiği anlamına gelmez. Bağlam penceresi uzunluğu pazarlama değeri taşısa da gerçek performansı ancak Needle in a Haystack gibi pratik testler ortaya koyar.
  • check_circle Bu testi kendi projemde nasıl kullanabilirim? Açık kaynak araçlar mevcuttur: LangChain ve LlamaIndex kütüphanelerinde yerleşik uzun bağlam değerlendirme araçları bulunur. Bunun yanı sıra Greg Kamradt'ın orijinal GitHub deposu da kolayca uyarlanabilir bir şablon sunar. Test verinize özgü bir 'iğne' oluşturun, farklı uzunluklarda ve konumlarda deneyin, sonuçları ısı haritasıyla görselleştirin.
  • check_circle Needle in a Haystack ile NIAH testi aynı şey mi? Evet, NIAH (Needle In A Haystack) Needle in a Haystack testinin yaygın kullanılan kısaltmasıdır. Akademik makalelerde ve model değerlendirme tablolarında sıklıkla bu kısaltmayla karşılaşırsınız.