Modül 3 · Prompt Evaluation · ⏱ 10 dakika

Model based grading

Model based grading

Orijinal İngilizce video — Anthropic Academy / JWPlayer. Aşağıdaki Türkçe metin dersi birebir özetler.

Bu modül için tahmini süre: 10 dakika

Genel bakış

Prompt evaluation workflow’ları kurarken grading sistemleri output kalitesi hakkında objektif sinyaller sağlar. Bir grader, model output’unu alır ve ölçülebilir bir geri bildirim döndürür — tipik olarak 1 ile 10 arasında bir sayı, burada 10 yüksek kaliteyi, 1 düşük kaliteyi temsil eder.

Grader türleri

Model output’larını grade etmenin üç ana yaklaşımı vardır:

  • Code graders — output’ları custom mantıkla programatik olarak değerlendirir
  • Model graders — kaliteyi değerlendirmek için başka bir AI modeli kullanır
  • Human graders — output’ları manuel olarak inceleyip puanlamak için insan kullanır

Code graders

Code grader’lar, hayal edebileceğiniz herhangi bir programatik kontrolü uygulamanıza izin verir. Yaygın kullanımlar:

  • Output uzunluğunu kontrol etmek
  • Output’un belirli kelimeleri içerip içermediğini doğrulamak
  • JSON, Python veya regex için syntax validation
  • Okunabilirlik puanları

Tek gereksinim, kodunuzun kullanılabilir bir sinyal döndürmesidir — genelde 1 ile 10 arasında bir sayı.

Model graders

Model grader’lar, orijinal output’unuzu değerlendirme için başka bir API çağrısına feed eder. Bu yaklaşım şunları değerlendirmek için muazzam esneklik sağlar:

  • Response quality
  • Instruction following kalitesi
  • Completeness
  • Helpfulness
  • Safety

Human graders

Human grader’lar en fazla esnekliği sağlar ama zaman alıcı ve sıkıcıdır. Şunları değerlendirmek için kullanışlıdır:

  • Genel response quality
  • Comprehensiveness
  • Depth
  • Conciseness
  • Relevance

Evaluation kriterlerini tanımlamak

Herhangi bir grader uygulamadan önce net evaluation kriterleriniz olmalı. Bir kod üretimi prompt’u için şunlara odaklanabilirsiniz:

  • Format — Açıklama olmadan sadece Python, JSON veya Regex döndürmeli
  • Valid Syntax — Üretilen kod geçerli syntax’a sahip olmalı
  • Task Following — Yanıt, kullanıcının görevini doğrudan ve doğru kodla ele almalı

İlk iki kriter code grader ile iyi çalışırken, task following esnekliği nedeniyle model grader’a daha uygundur.

Model grader uygulamak

İşte bir model grader fonksiyonunu nasıl kurarsınız:

def grade_by_model(test_case, output):
    # Create evaluation prompt
    eval_prompt = """
    You are an expert code reviewer. Evaluate this AI-generated solution.
    
    Task: {task}
    Solution: {solution}
    
    Provide your evaluation as a structured JSON object with:
    - "strengths": An array of 1-3 key strengths
    - "weaknesses": An array of 1-3 key areas for improvement  
    - "reasoning": A concise explanation of your assessment
    - "score": A number between 1-10
    """
    
    messages = []
    add_user_message(messages, eval_prompt)
    add_assistant_message(messages, "```json")
    
    eval_text = chat(messages, stop_sequences=["```"])
    return json.loads(eval_text)

Buradaki anahtar içgörü: puan ile birlikte strengths, weaknesses ve reasoning istemek. Bu bağlam olmadan modeller genelde 6 civarında orta puanlara varsayılan eğilim gösterir.

Grading’i workflow’unuza entegre etmek

Test case runner’ınızı grader’ı çağıracak şekilde güncelleyin:

def run_test_case(test_case):
    output = run_prompt(test_case)
    
    # Grade the output
    model_grade = grade_by_model(test_case, output)
    score = model_grade["score"]
    reasoning = model_grade["reasoning"]
    
    return {
        "output": output, 
        "test_case": test_case, 
        "score": score,
        "reasoning": reasoning
    }

Son olarak tüm test case’ler arasında ortalama bir puan hesaplayın:

from statistics import mean

def run_eval(dataset):
    results = []
    
    for test_case in dataset:
        result = run_test_case(test_case)
        results.append(result)
    
    average_score = mean([result["score"] for result in results])
    print(f"Average score: {average_score}")
    
    return results

Bu, prompt’unuzu iyileştirirken takip edebileceğiniz objektif bir metrik verir. Model grader’lar bazen kaprisli olabilir ama iyileştirmeleri ölçmek için tutarlı bir baseline sağlar.

Temel çıkarımlar

  • Grader’lar üç ana ailede gelir: code, model, human — her birinin güçlü/zayıf yanları vardır
  • Model grader, doğal dil veya task following gibi öznel kriterleri değerlendirmek için güçlüdür
  • Sadece puan istemek değil; puan ile birlikte strengths, weaknesses ve reasoning istemek modelin orta-skorlara takılmasını engeller
  • JSON çıktısı için yine prefill (```json) + stop_sequence (```) pattern’i kullanılır
  • Birden çok test case’in puanlarının ortalamasını almak, prompt değişikliklerinin etkisini ölçen pratik baseline metriğidir