LLM Kullanarak LLM Çıktılarını Değerlendirme
LLM değerlendiricilerinin neden işe yaradığını ve insan değerlendirmesine kıyasla nerede başarısız olduğunu öğrenin.
LLM Kullanarak LLM Çıktılarını Değerlendirme, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
LLM'yi Değerlendirici Olarak Neden Kullanmalı?
Geleneksel değerlendirme ölçütleri (BLEU, ROUGE ve tam eşleşme), yapılandırılmış çıktılarda işe yarar; ancak yararlılık, doğruluk, ton ve yaratıcılık gibi incelikli nitelikleri ölçemez.
İnsan değerlendirmesi incelikleri yakalar, ancak yavaş ve maliyetlidir. LLM değerlendiricisi orta yolu sunar: Anlamsal anlamı, bağlamı ve öznel kaliteyi anlayan, büyük ölçekte ve düşük maliyetle otomatik değerlendirme.
LLM Değerlendiricileri Neden İşe Yarar?
LLM değerlendiricileri başarılıdır; çünkü değerlendirilen modelle aynı dil anlama yetisini paylaşırlar. Şunları değerlendirebilirler:
- Bir yanıtın yalnızca bir referansa sözcüksel olarak benzemesini değil, olgusal açıdan doğru olup olmadığını
- Bir yanıtın belirtilen amaç için yararlı olup olmadığını
- Tonun gereksinimlerle uyuşup uyuşmadığını
- Bir özetin temel noktaları kapsayıp kapsamadığını
Bunlar, basit dize eşleştirme ölçütlerinin ölçemediği niteliklerdir.
Basit Bir LLM Değerlendiricisi
En temel LLM değerlendiricisi, modelden bir yanıtı sayısal bir ölçekte puanlamasını ve kısa bir gerekçe sunmasını istemektir. Daha gelişmiş tüm değerlendirici kalıpları bu temelin üzerine kurulur.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-...')
def simple_llm_judge(question, response, criterion):
judge_prompt = (
f'Rate the following response on {criterion} from 1 to 5.\n\n'
f'Question: {question}\n'
f'Response: {response}\n\n'
f'Return JSON: {{"score": <1-5>, "reason": "<one sentence>"}}'
)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=100,
messages=[{'role': 'user', 'content': judge_prompt}]
)
try:
result = json.loads(r.content[0].text)
return result['score'], result['reason']
except Exception:
return None, r.content[0].text
score, reason = simple_llm_judge(
question='What is recursion in programming?',
response='Recursion is when a function calls itself.',
criterion='clarity and completeness'
)
print(f'Score: {score}/5 — {reason}')LLM Değerlendiricileri Nerede Başarısız Olur: Konum Yanlılığı
Konum yanlılığı: İki yanıt (A ve B) sunulduğunda LLM değerlendiricileri, kalitesine bakmaksızın ilk görüneni tercih eder. Çalışmalar, saf bir değerlendirici istemi kullanıldığında bunun ikili karşılaştırmaların %60-70'ini etkilediğini göstermektedir.
Bu, seçenekleri sunma sırasının değerlendiricinin kararını değiştirdiği anlamına gelir.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def demonstrate_position_bias(question, response_a, response_b):
def ask_judge(first, second, order):
prompt = (
f'Question: {question}\n\n'
f'Response 1: {first}\n\n'
f'Response 2: {second}\n\n'
f'Which response is better? Reply with 1 or 2.'
)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=10,
messages=[{'role': 'user', 'content': prompt}]
)
choice = r.content[0].text.strip()
# Map back to original labels
if order == 'AB':
return 'A' if choice == '1' else 'B'
else: # BA
return 'B' if choice == '1' else 'A'
result_ab = ask_judge(response_a, response_b, 'AB')
result_ba = ask_judge(response_b, response_a, 'BA')
print(f'Order A-B: Judge picked {result_ab}')
print(f'Order B-A: Judge picked {result_ba}')
if result_ab != result_ba:
print('Position bias detected: different results!')
return result_ab, result_baLLM Değerlendiricileri Nerede Başarısız Olur: Uzunluk Yanlılığı
Uzunluk yanlılığı: LLM değerlendiricileri, özlü bir yanıt nesnel olarak daha iyi olsa bile daha uzun ve ayrıntılı yanıtları daha yüksek puanlama eğilimindedir. 50 kelimeyle söylenebilecekleri 400 kelimeyle anlatan bir yanıt, çoğu zaman özlü sürümden daha yüksek puan alır.
Değerlendiriciye gereksiz (unnecessary) uzunluğu cezalandırmasını açıkça söyleyerek bu yanlılığı azaltın.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def length_aware_judge(question, response):
judge_prompt = (
f'Evaluate this response for quality. Be aware of verbosity bias: '
f'do NOT score longer responses higher just because they are longer.\n\n'
f'Question: {question}\n'
f'Response: {response}\n\n'
f'Evaluate on:\n'
f'1. Accuracy (does it correctly answer the question?)\n'
f'2. Conciseness (does it avoid unnecessary filler?)\n'
f'3. Helpfulness (does it serve the user well?)\n\n'
f'Penalize responses that add filler, repetition, or irrelevant information.\n'
f'Score each 1-5 and provide an overall score. Return JSON.'
)
r = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': judge_prompt}]
)
print(r.content[0].text)LLM Değerlendiricileri Nerede Başarısız Olur: Öz-Tercih
Öz-tercih yanlılığı: Claude iki yanıtı değerlendirdiğinde Claude'a benzer yanıtları tercih etme eğilimindedir. GPT-4 değerlendirdiğinde GPT-4'e benzer yanıtları tercih eder. Bu, tüm LLM değerlendiricilerini etkileyen sistematik bir yanlılıktır.
Azaltma yöntemi: Değerlendirici olarak birden çok farklı model kullanın ve puanlarını birleştirin. Anlaşmazlık, insan incelemesi gerektiren sınırda bir duruma işaret eder.
import anthropic
import openai
anthropic_client = anthropic.Anthropic(api_key='sk-ant-...')
openai_client = openai.OpenAI(api_key='sk-...')
def multi_model_judge(question, response):
judge_prompt = (
f'Rate this response 1-10 for overall quality.\n'
f'Q: {question}\nA: {response}\n'
f'Reply with only a number.'
)
# Judge 1: Claude
r_claude = anthropic_client.messages.create(
model='claude-opus-4-5',
max_tokens=10,
messages=[{'role': 'user', 'content': judge_prompt}]
)
score_claude = float(r_claude.content[0].text.strip())
# Judge 2: GPT-4o
r_gpt = openai_client.chat.completions.create(
model='gpt-4o',
max_tokens=10,
messages=[{'role': 'user', 'content': judge_prompt}]
)
score_gpt = float(r_gpt.choices[0].message.content.strip())
avg = (score_claude + score_gpt) / 2
print(f'Claude judge: {score_claude}, GPT judge: {score_gpt}, Average: {avg}')
if abs(score_claude - score_gpt) > 2:
print('WARNING: High disagreement — consider human review')
return avgPuan Şişmesi
Puan şişmesi: LLM değerlendiricileri çoğu yanıta yüksek puanlar (5 üzerinden 4-5) verme eğilimindedir. Bu, puan dağılımını sıkıştırır ve iyi ile mükemmel arasındaki farkı ayırt etmeyi zorlaştırır. 5 üzerinden 3 alması beklenen yanıtlar çoğu zaman 4-4,5 puan alır.
Çözüm: Kalibrasyonu zorlayan bir değerlendirme ölçütleri tablosu kullanın veya mutlak puanlama yerine göreli (ikili) puanlamayı tercih edin.
# Anti-inflation judge prompt with explicit score anchors
CALIBRATED_JUDGE_PROMPT = (
'Rate this response 1-5 using these STRICT score definitions:\n'
'1 = Completely wrong, harmful, or completely off-topic\n'
'2 = Partially relevant but contains significant errors or omissions\n'
'3 = Correct and addresses the question but lacks depth or precision\n'
'4 = Correct, reasonably complete, and clearly expressed\n'
'5 = Exceptional: correct, complete, insightful, and concise\n\n'
'Only give 5 if the response is genuinely outstanding.\n'
'Give 3 for any adequate-but-not-impressive response.\n\n'
'Question: {question}\n'
'Response: {response}\n\n'
'Score (1-5) and one-sentence reason:'
)
# Compare to non-anchored prompt which tends to cluster at 4-5
print('Anchored rubrics force the judge to use the full scale')LLM Değerlendiricileri Ne Zaman En İyi Sonuç Verir?
LLM değerlendiricileri şu durumlarda en güvenilirdir:
- Ölçütler açık ve iyi tanımlanmış olduğunda
- Yanıt kaliteleri arasındaki fark büyük olduğunda (bariz şekilde iyi ve bariz şekilde kötü)
- Alan, değerlendirici modelinin bilgi alanı içinde olduğunda
- İnsan değerlendiricilerin de fikir ayrılığı yaşadığı öznel nitelikleri (ton, yararlılık) değerlendirirken
Yakın zamanda ortaya çıkan bilgileri, son derece teknik alanları veya fark edilmesi için uzmanlık gerektiren ince olgusal hataları değerlendirirken en az güvenilirdirler.
İnsan Değerlendirmesi Ne Zaman Gereklidir?
Şu durumlarda insanları sürece dahil edin:
- Uzmanlık gerektiren alanlardaki (tıbbi, hukuki ve güvenlik) yanıtları değerlendirirken
- LLM değerlendiriciniz için gerçek referans kalibrasyonu oluştururken
- LLM değerlendiricisinin hatalarının gerçek sonuçlar doğurabileceği yüksek riskli kararlarda
- Değerlendirici modelinin hakkında çok az eğitim verisi bulunan yeni görevlerde
- Alan uzmanlığı gerektiren ince olgusal hataları tespit ederken
def triage_for_human_review(question, response, llm_score, confidence_threshold=0.7):
"""
Route low-confidence or high-stakes evaluations to human review.
"""
# Route to human if judge is uncertain
if llm_score is None:
return 'human_review', 'LLM judge failed to produce a score'
# Route to human for borderline scores (near decision boundaries)
if 2.5 <= llm_score <= 3.5:
return 'human_review', f'Borderline score {llm_score} — needs human judgment'
# Route to human for domain-specific high-risk content
HIGH_RISK_KEYWORDS = ['medication', 'legal advice', 'financial advice', 'security']
if any(kw in question.lower() for kw in HIGH_RISK_KEYWORDS):
return 'human_review', 'High-risk domain — human verification required'
# Else: LLM score is sufficient
return 'auto_accept', f'Score {llm_score} — LLM judgment sufficient'
routing, reason = triage_for_human_review('What medication should I take?', 'Take aspirin.', 4.5)
print(f'{routing}: {reason}')Bir Değerlendirme İş Akışı Oluşturma
Uygulanabilir bir LLM değerlendiricisi iş akışı şöyledir: yanıtları üretin → LLM değerlendiricisini çalıştırın → sınırda kalan durumları insanlara yönlendirin → puanları birleştirin → kalite ölçütlerini raporlayın. Denetim izleri oluşturmak için her şeyi günlüğe kaydedin.
import anthropic
import json
client = anthropic.Anthropic(api_key='sk-ant-...')
def evaluate_batch(examples, product_under_test, criteria):
results = []
for ex in examples:
response = product_under_test(ex['question'])
score, reason = simple_llm_judge(ex['question'], response, criteria)
results.append({
'question': ex['question'],
'response': response,
'score': score,
'reason': reason,
'needs_review': score is None or 2.5 <= (score or 0) <= 3.5
})
# Summarize
valid_scores = [r['score'] for r in results if r['score'] is not None]
avg_score = sum(valid_scores) / len(valid_scores) if valid_scores else 0
review_count = sum(1 for r in results if r['needs_review'])
print(f'Average score: {avg_score:.2f}/5')
print(f'Cases needing review: {review_count}/{len(results)}')
return results, avg_score
# results, avg = evaluate_batch(test_cases, my_product, 'helpfulness')Referanssız ve Referanslı Değerlendirme
LLM değerlendiricileri iki kipte çalışabilir:
- Referanslı: Değerlendirici, yanıtı bilinen doğru bir yanıtla karşılaştırır. Doğruluğu yüksektir, ancak etiketlenmiş veri gerektirir.
- Referanssız: Değerlendirici, yanıtı kendi niteliklerine göre değerlendirir (tutarlı mı, yararlı mı, iyi yazılmış mı?). Daha esnektir, ancak olgusal doğruluk konusunda daha az hassastır.
Altın standart yanıtlarınız varsa referanslı değerlendirme kullanın. Özetleme, ton değerlendirmesi veya yaratıcı yazı kalitesi gibi açık uçlu görevlerde referanssız değerlendirmeyi tercih edin.
Bilgi Kontrolü: Konum Yanlılığı
LLM değerlendiricisiyle yapılan değerlendirmede konum yanlılığı nedir ve neye yol açar?
Özet: LLM Değerlendiricisiyle Değerlendirme
LLM değerlendiricileri nüansı, anlamsal doğruluğu ve öznel kaliteyi — geleneksel ölçümlerin ölçemediği unsurları — anlar. Şu durumlarda başarısız olurlar: konum yanlılığı (ilk seçeneği tercih etme), uzunluk yanlılığı (daha uzun yanıtları tercih etme), öz-tercih (kendi üsluplarını tercih etme) ve puan şişmesi (4-5/5 aralığında kümelenme). Şunlarla azaltın: yanıt sırasını rastgeleleştirme, uzunluğu sınırlamaya yönelik açık yönergeler, her puan düzeyini tanımlayan puan çıpaları içeren puanlama yönergeleri ve değerlendirici olarak birden çok farklı model kullanma. Sınırda kalan puanları ve yüksek riskli alanları insan değerlendiricilere yönlendirin. Geniş ölçekte LLM değerlendiricileri kullanın; kalibrasyon ve yüksek riskli kararlar için insanları kullanın.
Yapay zeka eğitmeniyle AI Prompt Engineering öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 53
- Dersler
- 199
Sıkça Sorulan Sorular
“LLM Kullanarak LLM Çıktılarını Değerlendirme” dersi ücretsiz mi?
Evet — “LLM Kullanarak LLM Çıktılarını Değerlendirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“LLM Kullanarak LLM Çıktılarını Değerlendirme” dersinde ne öğreneceğim?
LLM değerlendiricilerinin neden işe yaradığını ve insan değerlendirmesine kıyasla nerede başarısız olduğunu öğrenin. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“LLM Kullanarak LLM Çıktılarını Değerlendirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- LLM Kullanarak LLM Çıktılarını Değerlendirme
- Derecelendirme Ölçütü Tabanlı Puanlama İstemleri
- Karşılaştırmalı Değerlendirme: A ve B
- LLM Değerlendiricilerinde Kalibrasyon ve Önyargı