Prompt evals üzerine exercise
Exercise on prompt evals
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:
- Dataset üretim prompt’una geri dönün ve Claude’a her test case için
taskveformat’a ek olarak bir desolution_criteriafield’ı üretmesini söyleyin. Bu, “iyi bir çözüm şu özellikleri içerir” şeklinde bir string olacak. grade_by_modelprompt’unuza bu yenisolution_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