LLM as a judge çizimi: kuzgun hakem, terazide birbirinin aynı iki tahta tablet; soldaki kefe daha aşağıda.
Blog

LLM as a Judge Nedir? Yapay Zeka Hakemi ve Sıra Yanlılığı

Konum yanlılığını MT-Bench verileri, güncel modellerle yapılan bir test ve kendi küçük denememizle gösteriyor, sırayı değiştirip iki kez sormanın Python örneğini veriyoruz.

6 dk okumaYazan: Engin Deniz Alpman

Kısaca: LLM as a judge, iki yanıttan hangisinin daha iyi olduğuna bir dil modelinin karar vermesidir. Bu hakemler çoğu zaman önce gösterilen yanıtı kayırır. Çözüm basit: aynı karşılaştırmayı yanıtların sırasını değiştirerek iki kez sorun. İki karar aynıysa kazananı kabul edin, karar sırayla değişiyorsa sonucu beraberlik sayın.

Yapay zeka çıktılarını ölçmenin en hızlı yolu, başka bir modeli hakem yapmak. Bir istemin iki sürümünü, iki modeli ya da iki taslağı yan yana koyup "hangisi daha iyi?" diye soruyorsunuz. İnsan değerlendirmesinden çok daha ucuz ve hızlı. Sorun, hakemin yanıtları yalnızca içeriğe göre değil, kısmen gösterildikleri sıraya göre seçmesi. Yani yapay zeka hakem olunca seçeneklerin sırası, yanıtların kendisi kadar önemli hale geliyor.

LLM as a judge nedir?

#

LLM as a judge, Türkçesiyle dil modelini hakem olarak kullanmak demek: başka bir modelin ürettiği yanıtları puanlamak ya da karşılaştırmak için bir büyük dil modelinden (LLM) yararlanırsınız. Terim, UC Berkeley ve başka üniversitelerden Lianmin Zheng ve arkadaşlarının 2023 tarihli Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena makalesiyle yaygınlaştı (NeurIPS 2023 Datasets and Benchmarks). Makaleye göre GPT-4 hakem olarak insan tercihleriyle yüzde 80'in üzerinde uyuşuyor. Bu, insanların birbiriyle uyuşma düzeyiyle aynı.

Aynı makale, hakemlerin zayıf noktalarını da sıralıyor: konum yanlılığı, uzun yanıtları kayırma, kendi yanıtını kayırma ve matematik gibi işlerde sınırlı akıl yürütme.

Konum yanlılığı (position bias) nedir?

#

Konum yanlılığı, hakemin bir yanıtı içeriği yüzünden değil, listede bulunduğu yer yüzünden seçmesidir. Makalenin örneğinde GPT-4'e GPT-3.5 ile Vicuna-13B'nin yanıtları veriliyor. GPT-3.5'in yanıtı önce gelince GPT-4 onu daha ayrıntılı ve üstün buluyor. Sıra değişince kararı da değişiyor ve bu kez Vicuna'yı seçiyor.

Yazarlar etkiyi ölçmek için MT-Bench'teki her soruya birbirine benzeyen iki yanıt hazırlamış ve hakemlere bu yanıtları iki sırayla da göstermiş. Varsayılan istemde sonuçlar şöyle:

MT-Bench konum yanlılığı testi, varsayılan istem (Zheng ve arkadaşları, 2023, Tablo 2)
Hakem Sıra değişince aynı karar Önce geleni seçme
Claude-v1%23,8%75,0
GPT-3.5%46,2%50,0
GPT-4%65,0%30,0

Yanıtlar bilerek birbirine çok yakın seçildiği için bu zor bir test. Yazarlara göre en tutarlı hakem GPT-4 bile vakaların ancak yüzde 60'ından fazlasında aynı kararı veriyor.

Bu sorun yeni modellerde de var mı?

#

Var. Bağımsız araştırmacı Lech Mazur'un GitHub'da yayımladığı position_bias testinde 36 güncel model, aynı iki öykü düzenlemesini iki sırayla değerlendiriyor. Modeller ortalama yüzde 64,3 oranında önce gösterilen metni seçiyor. Ortadaki model, sıra değişince kararını vakaların yüzde 41,3'ünde değiştiriyor. Hakemli bir çalışma değil ve yalnızca öykü düzenlemelerini kapsıyor, ama yön MT-Bench sonuçlarıyla aynı.

Karar vermek için eğitilen modellerde de aynı uyarı var. TypeSafe, jev-1.13 modelinin belgelerinde seçeneklerin sırasının yanıtı etkileyebildiğini ve modelin ilk seçeneğe yöneldiğini yazıyor. Önerisi de aynı: seçeneklerin sırasını değiştirip yanıtın tutarlı kalıp kalmadığına bakmak.

Biz de küçük bir deneme yaptık. RuneLab'in karar modelleri atölyesi için hazırlanan defterde, 1,5 milyar parametreli açık bir model (Qwen2.5-1.5B-Instruct) bizim yazdığımız 24 kurgusal Türkçe destek talebini dört ekipten birine yönlendirdi. Seçeneklerin sırasını ters çevirince 24 karardan 11'i değişti. Yani aynı model, aynı talepte yalnızca seçeneklerin yeri değişince başka bir ekip seçebiliyor.

Sırayı değiştirip iki kez sormak nasıl yapılır?

#

MT-Bench makalesi iki çözüm öneriyor. Temkinli olanı şu: hakemi iki kez çağırın ve yanıtların yerini ikinci çağrıda değiştirin. Bir yanıtı yalnızca iki sırada da seçildiyse kazanan sayın. İki çağrının sonucu tutarsızsa beraberlik deyin. Yazarlar kendi deneylerinde bu yöntemi kullanıyor.

def hakem(soru, birinci, ikinci):
    """Hakem modeli çağırır, "A" (birinci daha iyi), "B" (ikinci daha iyi)
    ya da "berabere" döndürür. Kendi API çağrınızla doldurun."""
    raise NotImplementedError


def sirayi_degistirerek_karsilastir(soru, x, y):
    tur1 = hakem(soru, x, y)  # x önce gösterilir
    tur2 = hakem(soru, y, x)  # y önce gösterilir
    if tur1 == "A" and tur2 == "B":
        return "x"
    if tur1 == "B" and tur2 == "A":
        return "y"
    return "berabere"  # karar sırayla değişti ya da hakem berabere dedi

Bu yöntem her karşılaştırmanın maliyetini iki katına çıkarır. Karşılığında hakemin sıradan etkilenen kararlarını kazanan listesinden çıkarırsınız. Beraberlik oranı da size hakemin ne kadar sıraya bağlı çalıştığını gösteren bir ölçü verir.

Makaledeki ikinci yol daha cesur: yanıtların yerini her karşılaştırmada rastgele belirlemek. Yazarlara göre bu, çok sayıda karşılaştırmada doğru beklentiyle kullanılırsa işe yarayabilir. Bu durumda yanlılık tek tek kararlarda kalır, ama iki tarafa eşit dağılır. Rastgele sırayı modele bırakmayın, kodda üretin: örneğin Python'da random.shuffle ile. Modellerin rastgele seçimde neden taraflı kaldığını LLM temperature nedir yazımızda anlattık.

Başka neler yardımcı olur?

#

Makalede GPT-4'e üç örnek değerlendirme göstermek (few-shot), sıra değişince aynı kararı verme oranını yüzde 65'ten yüzde 77,5'e çıkarmış. Yazarlar yine de üç uyarı ekliyor: yüksek tutarlılık yüksek doğruluk anlamına gelmeyebilir, örneklerin yeni yanlılıklar getirip getirmediği belli değil ve uzun istemler API maliyetini dört katına çıkarıyor. Kendi hakeminizi kurarken izlenecek kısa yol şu:

  • Hakemi, insanların etiketlediği küçük bir örnek setle karşılaştırın.
  • Her karşılaştırmayı iki sırada sorun ve beraberlik oranını kaydedin.
  • Hakem modelini ya da istemi değiştirdiğinizde aynı testi yeniden çalıştırın.

İnsan etiketli böyle bir test setinin RAG sistemleri için nasıl kurulduğunu Türkçe RAG test rehberimizde anlattık. Hakemi kural tabanlı kontrollerle birlikte kurmayı ise Model-Graded ve Rule-Based LLM Değerlendirme eğitiminde uygulamalı olarak işliyoruz.

Sık sorulan sorular

#

LLM as a judge Türkçede ne demek?

#

Bir büyük dil modelini hakem olarak kullanmak demek. Model, başka bir modelin yanıtlarını puanlar ya da iki yanıttan hangisinin daha iyi olduğunu seçer. Türkçe aramalarda da çoğunlukla İngilizce adıyla geçiyor.

Yapay zeka hakemi neden ilk yanıtı seçiyor?

#

Zheng ve arkadaşları nedenin eğitim verisinde ya da modellerin metni soldan sağa okuyan mimarisinde olabileceğini düşünüyor, ama bunu kesin olarak göstermiyor. Kesin olan, etkinin ölçülebilir olması: 2023 testinde Claude-v1 vakaların yüzde 75'inde ilk yanıtı seçti.

Sırayı değiştirince karar değişirse ne yapmalıyım?

#

O karşılaştırmayı beraberlik sayın. MT-Bench makalesinin önerdiği temkinli yöntem bu: bir yanıt yalnızca iki sırada da seçilirse kazanır. Beraberliklerin çok olması, hakemin o iş için yeterince güvenilir olmadığını gösterir.

Rastgele sıralama yeterli mi?

#

Çok sayıda karşılaştırmada yanlılığı iki tarafa eşit dağıttığı için toplam sonuçlarda işe yarayabilir. Tek tek kararlar ise yine sıradan etkilenir. Tek bir kararın önemli olduğu yerde iki kez sorun.

Kaynaklar

#

İlgili yazılar ve eğitimler

#