Belajar AI Engineer - Evaluation & Metrics
Episode 9 of 28

Belajar AI Engineer - Evaluation & Metrics

Memasang alat ukur kualitas produk AI: golden dataset, metrik LLM (groundedness, faithfulness), LLM-as-judge, RAGAS, dan regression testing. Kalian membangun eval suite pertama yang melindungi pipeline dari regresi di setiap perubahantype: text

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Selama tujuh episode terakhir kalian membangun sistem yang kompleks: RAG, tool calling, caching. Pertanyaan yang sekarang harus kalian jawab: bagaimana tahu sistem ini bagus? Episode ini memperkenalkan disiplin yang membedakan engineer profesional dari hobbyist — evaluation.

Mengapa penting? Karena model itu nondeterministik, dan setiap perubahan kecil (prompt, chunk size, model) bisa merusak kualitas yang tidak disadari. Tanpa evaluasi, semua "perbaikan" adalah tebakan, dan regresi berjalan diam-diam ke produksi. Evaluation adalah test suite untuk produk AI — dan di 2026 ia bukan opsional.

Golden Dataset: Fondasi Evaluasi

Semua evaluasi berawal dari golden dataset: kumpulan contoh (pertanyaan, jawaban ideal) yang dibuat manusia dan menjadi standar kualitas. Aturan membuatnya:

  • Realistis: gunakan pertanyaan yang benar-benar muncul dari pengguna.
  • Bervariasi: termasuk kasus edge (pertanyaan tidak relevan, bahasa aneh, pertanyaan di luar knowledge).
  • Berukuran cukup: mulai dari 20-50 contoh, tumbuhkan bertahap.
golden_dataset.json
[
  {
    "pertanyaan": "Cara reset password di aplikasi?",
    "konteks": ["manual-user"],
    "jawaban_ideal": "Menu Pengaturan > Keamanan > Reset Password",
    "ground_truth": "reset password"
  },
  {
    "pertanyaan": "Apa warna langit?",
    "konteks": [],
    "jawaban_ideal": "Tidak ditemukan di dokumen",
    "ground_truth": "tidak ada di knowledge"
  }
]

Simpan di version control seperti kode. Golden dataset adalah aset — ia tumbuh seiring produk dan melindungi kalian dari regresi.

Metrik: Groundedness, Faithfulness, Relevance

Untuk sistem RAG, ada tiga metrik inti yang wajib diukur:

MetrikPertanyaan yang DijawabCara Ukur
Grounding / FaithfulnessApakah jawaban berdasar konteks, bukan halusinasi?Setiap klaim jawaban harus ada di konteks
Answer relevanceApakah jawaban menjawab pertanyaan?Penilaian model/LLM-judge
Retrieval hit rateApakah dokumen yang dibutuhkan berhasil diambil?Apakah ground-truth ada di top-k hasil

Context precision: dari semua dokumen yang di-retrieve, berapa yang benar-benar relevan. Recall: dari semua dokumen relevan yang ada, berapa yang berhasil diambil.

LLM-as-Judge

Menilai jawaban teks bebas secara manual tidak skala. Solusi standar 2026: LLM-as-judge — model lain yang menilai jawaban dengan rubrik. Pakai model lebih kuat sebagai judge (misal Claude untuk menilai GPT), dan temperature=0.

PythonLLM-as-judge untuk faithfulness
from openai import OpenAI
 
client = OpenAI()
 
JUDGE_PROMPT = """Kamu adalah evaluator RAG yang teliti.
 
Konteks yang diberikan sistem:
<konteks>
{konteks}
</konteks>
 
Jawaban sistem:
<jawaban>
{jawaban}
</jawaban>
 
Tugas: nilai faithfulness jawaban terhadap konteks.
Balas JSON: {"faithfulness": 0-1, "alasan": "..."}
Faithfulness 1 = semua klaim ada di konteks.
Faithfulness 0 = ada klaim yang tidak didukung konteks."""
 
def judge(question: str, konteks: str, jawaban: str) -> dict:
    r = client.chat.completions.create(
        model="gpt-4o",
        temperature=0,
        response_format={"type": "json_object"},
        messages=[{"role": "user", "content": JUDGE_PROMPT.format(
            konteks=konteks, jawaban=jawaban)}],
    )
    import json
    return json.loads(r.choices[0].message.content)

Catatan: penanda dalam prompt di atas berada di string kode Python (di dalam code block), sehingga aman. Saat menulis penanda sejenis di dokumentasi atau produksi, jangan memakai karakter kurung sudut di luar code block.

Warning

LLM-as-judge punya bias: ia bisa condong ke jawaban yang panjang, atau memihak model yang "senasib". Mitigasi: gunakan judge berbeda dari model yang dinilai, uji dengan golden dataset yang diverifikasi manusia, dan periksa persetujuan antar-judge (inter-rater agreement).

RAGAS dan Kerangka Evaluasi

Alih-alih menulis semua sendiri, banyak tim memakai framework RAGAS yang mengukur metrik RAG standar (faithfulness, answer relevance, context precision/recall) secara otomatis:

PythonEvaluasi RAG dengan RAGAS
from datasets import Dataset
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision
 
dataset = Dataset.from_list([
    {"question": q, "answer": a, "contexts": ctx, "ground_truth": gt}
    for q, a, ctx, gt in contoh
])
 
hasil = evaluate(dataset, metrics=[
    faithfulness, answer_relevancy, context_precision,
])
print(hasil)

Regression Testing: Jaga Kualitas Tetap

Setelah metrik stabil, kunci dengan test otomatis di CI. Alur kerja yang benar:

  1. Setiap perubahan (prompt, chunk, model, prompt pipeline) → jalankan golden dataset.
  2. Bandingkan metrik dengan baseline.
  3. Jika skor turun melewati ambang → gagalkan perubahan (regresi terdeteksi).
Jalankan eval suite
python eval_suite.py --dataset golden_dataset.json --baseline baseline.json

Inilah yang disebut eval-driven development — perubahan hanya diterima jika terbukti tidak menurunkan kualitas. Di episode 25 kita jadikan ini evaluation gate untuk produksi.

Common Pitfalls

  • Mengevaluasi sekali lalu lupa: kualitas harus diukur terus-menerus, terutama saat model penyedia berubah diam-diam.
  • Golden dataset terlalu kecil: 10 contoh tidak cukup untuk menangkap regresi.
  • Hanya melihat metrik rata-rata: perhatikan contoh yang gagal satu per satu — di situlah insight berada.
  • LLM-judge memakai model yang sama dengan yang dinilai: bias berlipat. Gunakan judge yang berbeda.

Penutup

Inti yang harus dibawa pulang:

  • Golden dataset adalah fondasi evaluasi; simpan di version control.
  • Metrik inti RAG: faithfulness, answer relevance, context precision/recall.
  • LLM-as-judge membuat evaluasi skala; awasi bias-nya.
  • Eval = regression testing untuk AI; jalankan di setiap perubahan pipeline.

Di episode 10 selanjutnya kita melihat sisi lain dari peta model: fine-tuning fundamentals — kapan perlu fine-tune, perbedaan LoRA/QLoRA, dan persiapan data training yang benar. Sampai jumpa di episode 10!