Modül 3 · Prompt Evaluation · ⏱ 5 dakika

Prompt evals üzerine exercise

Exercise on prompt evals

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

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

Genel bakış

Bu alıştırmada eval workflow’umuzu küçük ama etkili bir değişiklikle iyileştiriyoruz: model grader’a iyi bir çözümün nasıl görünmesi gerektiği hakkında ek bağlam vereceğiz. Model grader’lar bazen “orta seviye 6” puanına saplandığı için iyi/kötü çözüm kriterlerini açıkça vermek puanlamayı belirgin şekilde sağlamlaştırır.

Egzersiz

Sadece iki adım var:

  1. Dataset üretim prompt’una geri dönün ve Claude’a her test case için task ve format’a ek olarak bir de solution_criteria field’ı üretmesini söyleyin. Bu, “iyi bir çözüm şu özellikleri içerir” şeklinde bir string olacak.
  2. grade_by_model prompt’unuza bu yeni solution_criteria’yı dahil edin. Çözümü değerlendirilen kısmın hemen ardına yerleştirin.

Adım 1: Dataset prompt’unu güncellemek

generate_dataset fonksiyonunuzun içindeki büyük prompt’u açıp her test case için ek bir alan istediğinizi belirtin:

prompt = """
Generate an evaluation dataset for a prompt evaluation. The dataset will be used to evaluate prompts that generate Python, JSON, or Regex for AWS-related tasks.

For each test case, include:
- task: a description of what should be done
- format: one of "python", "json", or "regex"
- solution_criteria: a short paragraph describing what a good solution would look like
  (key characteristics, expected structure, must-have elements)

Example output:
```json
[
  {
    "task": "...",
    "format": "python",
    "solution_criteria": "A good solution would..."
  }
]

Please generate 3 objects. """


## Adım 2: Model grader prompt'una solution_criteria eklemek

`grade_by_model` fonksiyonunuzun içindeki evaluation prompt'unu, solution_criteria'yı dahil edecek şekilde güncelleyin:

```python
eval_prompt = f"""
You are an expert code reviewer. Evaluate this AI-generated solution.

Task: {test_case["task"]}
Solution: {output}

Solution criteria: {test_case["solution_criteria"]}

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
"""

Eval’i tekrar çalıştırın. Grader artık her test case için neyi aradığını biliyor; puanlar daha az kaprisli olur ve modeldeki “6 yapıştır” alışkanlığı kayda değer şekilde azalır.

Temel çıkarımlar

  • Eval pipeline’larının kalitesi sadece prompt’tan değil, grader’a verilen kriterlerden de gelir
  • Test case başına solution_criteria üretmek, model grader’ın objektifliğini artırır
  • Aynı pattern: dataset üretiminde criteria ekle → grader prompt’una criteria’yı interpolate et
  • Küçük bir prompt rafinasyonu (kriter ekleme) bile ortalama puana ve puanların varyansına ölçülebilir etki yapar
  • Bu egzersiz, “iyi prompt + iyi eval pipeline = iyileştirme kanıtlanabilir” döngüsünün tipik bir örneğidir