0Pricing
AI Agents · บทเรียน

การสร้างชุดทดสอบมาตรฐาน

คัดสรรคู่ข้อมูลคุณภาพสูง 50–200 คู่ในรูปแบบ (ข้อมูลเข้า, ผลลัพธ์ที่คาดหวัง) ให้ครอบคลุมกรณีใช้งานจริงที่พบไม่บ่อย

การสร้างชุดทดสอบมาตรฐาน เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

ชุดข้อมูลมาตรฐานคืออะไร

"ชุดทดสอบมาตรฐาน" (หรือ "ชุดข้อมูลมาตรฐาน") คือชุดคู่ (ข้อมูลป้อนเข้า, ผลลัพธ์ที่คาดหวัง) ที่ผ่านการคัดสรร ซึ่งกำหนดว่าพฤติกรรมที่ดีควรเป็นอย่างไร

การเปลี่ยนแปลงทุกครั้งจะถูกวัดเทียบกับชุดนี้

คุณสมบัติของชุดข้อมูลมาตรฐานที่ดี

  • หลากหลาย — ครอบคลุมกรณีทั่วไปและกรณีขอบเขต
  • มนุษย์เป็นผู้คัดสรร — ไม่ได้สร้างขึ้นโดยอัตโนมัติ
  • มีการกำหนดรุ่น — ตรึงไว้ในที่เก็บโค้ดของคุณ
  • มีเอกสารประกอบ — แต่ละกรณีมีเหตุผลรองรับ

ควรมีกรณีจำนวนเท่าใด

หลักประมาณการทั่วไป:

  • 50 กรณี — ขั้นต่ำที่ใช้งานได้
  • 200 กรณี — ครอบคลุมได้ดี
  • 1,000+ กรณี — ผลิตภัณฑ์ที่พัฒนาเต็มที่

คุณภาพ > ปริมาณ กรณีที่คัดเลือกมาอย่างดี 50 กรณีดีกว่า 500 กรณีที่สุ่มมา

การจัดหากรณี

  1. การสัมภาษณ์ผู้ใช้ — ผู้ใช้จริงถามอะไร
  2. บันทึกจากระบบจริง — มีคำถามใดถูกส่งเข้ามา
  3. รายงานข้อบกพร่อง — ข้อบกพร่องทุกข้อจะกลายเป็นการประเมิน
  4. การสร้างกรณีเชิงปรปักษ์ — ขอให้ LLM พยายามทำให้ตัวแทนล้มเหลว

Mining Bad Production Traces

for trace in last_week_traces():
    if trace.has_thumbs_down or trace.had_error:
        case = {
            'input': trace.input,
            'why_bad': trace.feedback_comment,
            'expected': None   # to be filled by human reviewer
        }
        save_to_review_queue(case)

ผลลัพธ์ที่คาดหวัง: ตรงทุกประการเทียบกับใช้เกณฑ์ประมาณ

ผลลัพธ์ที่คาดหวังมีสองรูปแบบ:

  • ตรงทุกประการ — สำหรับการดึงข้อมูล การจัดประเภท และการคำนวณ
  • ใช้เกณฑ์ประมาณ — สำหรับคำถามและคำตอบปลายเปิด ให้ให้คะแนนว่ามีข้อเท็จจริงสำคัญปรากฏหรือไม่

Heuristic Scoring

def score_answer(actual, expected_facts):
    return sum(1 for f in expected_facts if f.lower() in actual.lower()) / len(expected_facts)

case = {
    'input': 'What is our refund policy?',
    'expected_facts': ['30 days', 'unopened', 'receipt required'],
    'min_score': 0.66   # at least 2 of 3 facts mentioned
}

actual_answer = "You can return items within 30 days if they are unopened."
score = score_answer(actual_answer, case['expected_facts'])
print(f"Score: {score:.2f} (min required: {case['min_score']})")

กรณีเชิงปรปักษ์

ควรรวมกรณีที่ยากด้วย:

  • คำถามนอกขอบเขต ("สภาพอากาศบนดาวอังคารเป็นอย่างไร")
  • คำถามกำกวม
  • ความพยายามแทรกคำสั่งในพรอมต์
  • ข้อมูลป้อนเข้าภาษาต่างประเทศ
  • ข้อมูลป้อนเข้าที่ยาวมาก

การกำหนดรุ่นชุดข้อมูลมาตรฐาน

จัดเก็บเป็น JSON ในที่เก็บโค้ดของคุณ PR ทุกฉบับที่ปรับปรุงชุดข้อมูลต้องอธิบายเหตุผล:

// gold-set.json
[
  {
    "id": "refund-policy-001",
    "input": "What is your refund policy?",
    "expected_facts": ["30 days", "unopened", "receipt required"],
    "added_by": "alice@",
    "added_at": "2025-08-12",
    "reason": "Top customer support question"
  }
]

การแบ่งชุดทดสอบ/ชุดกันไว้ตรวจสอบ

เพื่อตรวจจับการปรับให้เข้ากับข้อมูลมากเกินไป ให้แบ่งเป็น:

  • ชุดพัฒนา — ใช้ปรับปรุงซ้ำ (คุณมองเห็นชุดนี้)
  • ชุดทดสอบ — ใช้วัดผล (คุณต้องไม่ปรับแต่งให้เข้ากับชุดนี้)
  • ชุดกันไว้ตรวจสอบ — ใช้เฉพาะก่อนการเผยแพร่ครั้งใหญ่

การติดป้ายกำกับพาเรโต

ติดป้ายกำกับกรณีตามหมวดหมู่ เพื่อให้เห็นว่าคุณถดถอยลงที่ใด:

tag1 = {'tags': ['policy', 'common-question']}
tag2 = {'tags': ['math', 'edge-case']}
print(tag1)
print(tag2)

# Run eval and report:
print("Category 'policy': 0.92")
print("Category 'math': 0.68   <- regression here")

เกณฑ์การประเมิน

สำหรับผลลัพธ์ที่ซับซ้อน ให้เขียนเกณฑ์การประเมินว่าอะไรต้องมี อะไรต้องไม่มี และอะไรเป็นสิ่งที่พึงประสงค์:

rubric = {
    'must_include': ['30 days'],
    'must_not_include': ['no refunds'],
    'preferably_includes': ['receipt']
}
for k, v in rubric.items():
    print(f"{k}: {v}")

แหล่งที่มาของกรณี

แหล่งที่มาของกรณีการประเมินที่ให้สัญญาณชัดเจนที่สุดคืออะไร

สรุป

กรณีที่ผ่านการคัดสรรมากกว่า 50 กรณี ซึ่งมาจากผู้ใช้จริงและความล้มเหลวในระบบจริง กำหนดรุ่น ติดป้ายกำกับ และแบ่งเป็นชุดพัฒนา/ทดสอบ/กันไว้ตรวจสอบ ขยายชุดนี้เมื่อพบข้อบกพร่องทุกครั้ง

คำถามที่พบบ่อย

บทเรียน “การสร้างชุดทดสอบมาตรฐาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างชุดทดสอบมาตรฐาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างชุดทดสอบมาตรฐาน”

คัดสรรคู่ข้อมูลคุณภาพสูง 50–200 คู่ในรูปแบบ (ข้อมูลเข้า, ผลลัพธ์ที่คาดหวัง) ให้ครอบคลุมกรณีใช้งานจริงที่พบไม่บ่อย คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างชุดทดสอบมาตรฐาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การพัฒนาเอเจนต์โดยขับเคลื่อนด้วยการประเมิน
  2. การสร้างชุดทดสอบมาตรฐาน
  3. ข้อผิดพลาดของการใช้ LLM เป็นผู้ตัดสิน
  4. ชุดการทดสอบประสิทธิภาพ: SWE-Bench, GAIA, ToolBench
← กลับไปที่ AI Agents