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.