Step 12 of 16
Build an evaluation set and measure Recall@K, ranking, citations, refusal behavior, and latency.
วัด retrieval แยกจาก final answer ครับ เพื่อรู้ว่าควรแก้ chunk, search, rerank หรือ prompt
Level: Advanced
ถ้า final answer ผิด ให้แยกก่อนว่า retrieval หา context ผิด หรือ model ใช้ context ผิดครับ การดู answer อย่างเดียวบอกสาเหตุได้ยาก จึงต้องเก็บ evaluation dataset และ retrieval trace
สร้าง versioned evaluation dataset และ CI gate ที่วัด retrieval, answer quality, safety กับ regression ของ agent ครับ
สร้าง JSONL ที่ review ด้วยคน:
{"id":"q-001","question":"How long is the API rollback window?","expectedSourceIds":["deploy-policy-v3#rollback"],"answerable":true}
{"id":"q-002","question":"Who approved release 42?","expectedSourceIds":[],"answerable":false}
แต่ละรอบทดลองให้บันทึก query, filters, top K, score, source IDs, chunk text length, latency และ final citations ครับ หลีกเลี่ยงการเก็บ sensitive text ถ้า telemetry backend ไม่ได้รับอนุญาต
ปรับทีละตัวแปรแล้ว rerun dataset เดิมครับ หากเปลี่ยน chunk size, top K และ prompt พร้อมกัน คุณจะบอกไม่ได้ว่าส่วนใดช่วย
ให้คน review edge cases เช่น conflicting versions, acronym, Thai-English mixed query และคำถามอ้างถึง turn ก่อนครับ RAG quality เป็นงานต่อเนื่องหลัง deploy จึงควรเก็บ dataset ไว้ใน version control โดยไม่มีข้อมูลส่วนบุคคล
Agent Framework มี evaluation API บน Microsoft.Extensions.AI.Evaluation ครับ ใช้ EvalItem เก็บ conversation, IAgentEvaluator สำหรับ evaluator และ EvalResults สำหรับ aggregate results เริ่มด้วย local checks ที่ deterministic ในทุก pull request แล้วใช้ Foundry evaluators ใน scheduled หรือ release evaluation
ทำให้ CI fail เมื่อ Recall@K, citation precision, refusal rate หรือ safety score ต่ำกว่า baseline ที่ทีมอนุมัติ เก็บ dataset version, model deployment, prompt version, index version และ evaluator version ใน report ทุกครั้ง
แยก release-blocking metrics จาก exploratory metrics ใช้ human review กับ sampled failures และห้ามให้ evaluator model เป็นหลักฐานเดียวสำหรับ high-risk behavior
ส่ง JSONL dataset, local evaluator tests, release evaluation job, threshold configuration และ HTML/JSON report artifact