Agent ArenaClickHouse Workshops

02 วัดคุณภาพ

บันทึกสำหรับผู้สอนของโมดูล 02 — เวลา แนวการพูด ความล้มเหลวที่พบบ่อย และขั้นตอนรีเซ็ต

คู่มือของผู้ดำเนินกิจกรรมที่ใช้ควบคู่กับบทเรียน learner 02 วัดคุณภาพ

เวลา

รวมประมาณ 15 นาที

  • 5 min — ความแม่นยำรายระดับและการแยกย่อยของ outcome บนมุมมองรายละเอียดใน Leaderboard ของคอนฟิกที่ชนะ
  • 4 min — score รอง agent-arena-llm-judge และจุดที่มันไม่ตรงกับ correctness
  • 6 min — เจาะลงไปใน Langfuse trace แต่ละรายการสองหรือสามอันสำหรับคำถามที่ตอบผิด/ได้ คะแนนต่ำ

แนวการพูด

  • วางกรอบเป้าหมายใหม่: การชนะใน Arena บอกคุณว่าคอนฟิกหนึ่งเอาชนะที่เหลือในภาพรวม; โมดูลนี้เกี่ยวกับว่ามันชนะอย่างไรและอ่อนแอที่สุดตรงไหน — แนวคิดเดียวกับการรู้ไม่ใช่ แค่ว่าผู้สมัครผ่านสัมภาษณ์ แต่รู้ว่าคำถามไหนที่เขาตอบได้สวย
  • พูดชัด ๆ ว่าโมดูลนี้ไม่ผลิตข้อมูลใหม่ — ทุกอย่างตรงนี้ถูกเก็บไว้แล้วโดย correctness และ score agent-arena-llm-judge ที่ evaluator definition llm_judge ปล่อยในโมดูล 01 นี่คือ แบบฝึกการอ่าน ไม่ใช่การรันซ้ำ
  • ย้ำตัวหารอีกครั้ง: repo มีคำถาม YAML 20 ข้อ แต่ q019 และ q020 เป็น few-shot holdout ดังนั้น Experiment มี dataset item ที่ให้คะแนน 18 รายการ
  • เรื่องความแม่นยำรายระดับ: ชี้ให้เห็นว่าคอนฟิกหนึ่งอาจดูแข็งแรงในภาพรวมขณะที่ สั่นคลอนในระดับที่ยากที่สุด และนั่นคือสิ่งที่ตัวเลขรวมบน leaderboard ซ่อนไว้เป๊ะ ๆ
  • เรื่องการแยกย่อยของ outcome: เดินดูหมวดต่าง ๆ ออกเสียงให้ฟัง — SQL ที่ถูก sandbox ปฏิเสธ, error ของ ClickHouse, ผลลัพธ์ว่างเปล่า, result set ที่ผิด — และบอกว่าแต่ละอันเป็น ปัญหาต่างชนิดกันที่ต้องแก้ต่างกัน ไม่ใช่ "ความล้มเหลว" ก้อนเดียวที่ไม่แยกแยะ
  • เรื่อง agent-arena-llm-judge: มันเป็นพี่น้องที่ละเอียดกว่าของ correctness แบบไบนารี — คอนฟิกหนึ่งอาจ ถูกต้องตามความแม่นยำเชิงการรันขณะที่ยังเขียน SQL ที่ผู้ตรวจจะติงได้ ( subquery ที่ไม่จำเป็น การเทียบวันที่ที่เปราะบาง) หาจุดที่ correctness และ agent-arena-llm-judge ไม่ตรงกันสด ๆ ให้ได้หนึ่งจุดถ้าทำได้ มันเป็นวิธีที่ชัดที่สุดที่จะทำให้เห็น ความต่างนี้
  • ปิดท้ายด้วยการเลือกคำถามที่ตอบผิด/ได้คะแนนต่ำสองหรือสามข้อ แล้วอ่าน trace เต็มของมัน ตั้งแต่ต้นจนจบสด ๆ — prompt ที่ส่งไป, SQL ที่ถูกสร้างขึ้น, error หรือผลลัพธ์ — โดยมองหา รูปแบบออกเสียงให้ฟัง (ถ้อยคำ, join, ตัวกรองวันที่ที่โมเดลจัดการผิดซ้ำ ๆ) นี่คือทักษะการอ่าน trace แบบเดียวกับที่โมดูล 04 ใช้ซ้ำบนทราฟฟิกของ production

ความล้มเหลวที่พบบ่อย

  • ไม่ได้ตั้งค่า Langfuse evaluator — ไม่มีคะแนน agent-arena-llm-judge หรือ correctness ให้สร้างโมดูลนี้ขึ้นรอบ ๆ มัน กลับไปที่โมดูล 01 แก้ target/ตัวกรองของ evaluator แล้วรันตารางเล็ก ๆ ใหม่ก่อนจะทำต่อ
  • ไม่มีคำตอบผิดให้เจาะดู — ถ้าคอนฟิกที่ชนะทำได้ 100% บนตารางเดโม ให้เลือกความล้มเหลวของคอนฟิกที่ไม่ชนะแทน; ทักษะการอ่าน trace คือ ประเด็น ไม่ใช่การหาข้อบกพร่องในผู้ชนะโดยเฉพาะ
  • ยังไม่ได้ seed ClickHouse / harness ไม่เคยรัน — มุมมองรายละเอียดใน Leaderboard (ความแม่นยำ รายระดับ, การแยกย่อยของ outcome) จะว่างเปล่า นั่นหมายถึงโมดูล 01 ยังไม่จบ; ให้กลับไป รันมันใหม่ก่อนทำต่อ
  • การคลิกเข้าไปที่ trace ได้ 404 หรือโหลดโปรเจกต์ผิด — มักหมายถึง เบราว์เซอร์เล็งไปที่โปรเจกต์ Langfuse อีกอันที่ไม่ใช่อันใน .env หรือ LANGFUSE_BASE_URL/key ไม่ตรงกับบัญชีที่รัน harness ของโมดูล 01

ขั้นตอนรีเซ็ต

  • ถ้ามุมมองรายละเอียดใน Leaderboard ว่างเปล่า ให้ seed ใหม่และรันชุดย่อยราคาถูกซ้ำ: scripts/arena.sh up แล้ว python -m eval.harness --run-id demo2 --models qwen3.7-flash,gpt-5.6-luna --prompts P1_zeroshot,P3_dialect
  • ใช้ --run-id ใหม่สำหรับการรันซ้ำ เพื่อให้ชัดเจนว่าแถวไหนบน Leaderboard และ Langfuse Experiment อันไหนที่คุณกำลังอ่านอยู่ในห้อง
  • ถ้าติดขัดแค่การเรนเดอร์ของ dashboard (Experiment มีอยู่ใน Langfuse) ให้รีสตาร์ต เซิร์ฟเวอร์ในเครื่องโดยไม่ต้อง seed ใหม่: scripts/arena.sh stop && scripts/arena.sh serve
  • ถ้า evaluator เป็นช่องว่าง ความลึกของโมดูลนี้ขึ้นอยู่กับการแก้เรื่องนั้นก่อนเซสชัน ถัดไป — ไม่มีอะไรมาแทนคะแนนฝั่ง Langfuse ได้ในเซสชัน

ในหน้านี้

TH