กำไร:
- การกำหนดตัวชี้วัดที่วัดการรักษาและคุณภาพการสร้างแยกกัน
- ตั้งค่าชุดคำถามระดับทองและดำเนินการประเมินอัตโนมัติกับ LLM ในฐานะผู้ตัดสิน
- การรักษาคุณภาพผ่านการป้อนกลับ การติดตาม และการทดสอบการถดถอยในการผลิต
ประโยค "ฉันติดตั้ง Assistant แล้ว ดูเหมือนว่าจะทำงานได้ดี" ไม่ใช่คำแถลงทางวิศวกรรม ระบบ RAG พังอย่างเงียบๆ: ประเภทเอกสารใหม่หลอกการดึงข้อมูล การเปลี่ยนแปลงทันทีลดความแม่นยำ ดัชนีจะเก่า วิธีเดียวที่จะตระหนักถึงสิ่งนี้คือการวัด ในหน่วยนี้ เราจะครอบคลุมถึงวิธีการวัดคุณภาพ RAG (การดึงข้อมูลและการสร้างแยกกัน) การประเมินอัตโนมัติ (LLM-as-judge) และการรักษาคุณภาพในการผลิต (การตรวจสอบ การถดถอย) "คุณไม่สามารถปรับปรุงสิ่งที่คุณไม่ได้วัดได้" คือคำขวัญของหน่วยนี้
วัดสองสิ่งที่แยกจากกัน
RAG มีสองขาและต้องวัดแยกกันเนื่องจากปัญหาอาจอยู่ที่ขาใดข้างหนึ่ง:
- คุณภาพการดึงคืน: ได้ชิ้นส่วนที่ถูกต้องมาถึงหรือไม่
- คุณภาพการสร้าง: คำตอบที่ถูกต้องมาจากชิ้นส่วนที่เข้ามาหรือไม่
ถ้าตอบไม่ดีต้องรู้ก่อนว่าขาไหนเสียก่อน หากชิ้นส่วนที่ถูกต้องไม่มาถึง แม้แต่พรอมต์ที่ดีที่สุดก็ไม่สามารถบันทึกได้ (ปัญหาในการดึงข้อมูล) หากชิ้นส่วนที่ถูกต้องมาถึงแต่โมเดลอ่านผิด การปรับปรุงการดึงข้อมูลกลับไม่มีประโยชน์ (ปัญหาการสร้าง)
เมตริกการดึงข้อมูล
การดึงข้อมูลเป็นปัญหาในการเรียงลำดับ/การเข้าถึง วัดโดยเมตริกการดึงข้อมูลแบบคลาสสิก สำหรับสิ่งนี้ คุณจะต้องมีกระจุกทองคำ: ความรู้ว่าชิ้นส่วนใด "ถูกต้อง" สำหรับแต่ละคำถาม
เมตริก
มีมาตรการอะไร
คำจำกัดความง่ายๆ
เรียกคืน@k
ชิ้นที่ถูกต้องอยู่ด้านบน k หรือไม่?
อัตราการดักจับชิ้นส่วนที่ถูกต้อง
พรีซิชั่น@k
จำนวน k ชิ้นที่ส่งคืนมีความเกี่ยวข้องกี่ชิ้น?
การทำความสะอาดสิ่งที่นำมา
MRR (อันดับเฉลี่ยซึ่งกันและกัน)
ชิ้นไหนถูกต้อง?
รางวัลอยู่ในอันดับสูงสุด
อัตราการเข้าชม
มีชิ้นส่วนที่ถูกต้องมาถึงอย่างน้อยหนึ่งชิ้นหรือไม่
ตัวชี้วัดความสำเร็จขั้นพื้นฐานที่สุด
ความคิดเห็นที่เป็นประโยชน์: หาก Recall@k ต่ำ กลยุทธ์การแบ่งกลุ่มหรือการค้นหา (ไฮบริด, k, การจัดอันดับใหม่) ควรได้รับการแก้ไขใหม่ หากความแม่นยำต่ำแต่การจดจำสูง การเพิ่มอันดับใหม่ถือเป็นการเคลื่อนไหวที่ดี
ตัวชี้วัดการสร้าง
เมื่อชิ้นส่วนที่ถูกต้องมาถึง เราจะวัดคุณภาพของการตอบสนองที่เกิดจากแบบจำลอง สามมิติพื้นฐาน:
- ความซื่อสัตย์: แต่ละข้ออ้างในคำตอบได้รับการสนับสนุนจากบริบทหรือไม่ มีฟิตติ้งบ้างไหม? เป็นการวัดอาการประสาทหลอนโดยตรง
- ความเกี่ยวข้องของคำตอบ: คำตอบตอบคำถามได้จริงหรืออยู่นอกหัวข้อ?
- ความสมบูรณ์: ข้อมูลที่เกี่ยวข้องทั้งหมดในบริบทถูกใช้ไปแล้วหรือขาดหายไป?
สิ่งเหล่านี้มักจะให้คะแนนตามเกณฑ์การให้คะแนน (เช่น 1-5) แทนที่จะเป็นเลขฐานสองเช่น "จริง/เท็จ"
เคล็ดลับ: ติดตามความซื่อสัตย์เป็นตัวชี้วัดแยกต่างหาก หากความซื่อสัตย์ลดลงเมื่อความแม่นยำลดลง ปัญหาก็คือการสร้าง ถ้าความซื่อสัตย์สูงแต่ตอบผิด ปัญหาคือผิดชิ้น (ดึงข้อมูล) ตัวชี้วัดทั้งสองนี้รวมกันเป็นเข็มทิศที่แสดงตำแหน่งของความผิดปกติ
การสร้างชุดคำถามทองคำ
การวัดแต่ละครั้งต้องใช้ชุดข้อมูลสีทอง / ชุดการประเมิน: คำถามตามความเป็นจริง + คำตอบที่ถูกต้องที่คาดหวัง + ชิ้นส่วนแหล่งที่มาที่ถูกต้อง การเริ่มต้นด้วยคำถามที่เลือกมาอย่างดี 30-50 ข้อ ย่อมดีกว่าคำถามสุ่ม 500 ข้อ รวมสิ่งต่อไปนี้ในชุด: คำถามจริงที่ถูกถามบ่อย คำถามที่รู้ยาก คำถามกับดักที่ไม่มีคำตอบ (ควรพูดว่า "ฉันไม่รู้") คำถามที่มีแหล่งที่ขัดแย้งกัน
# ตัวอย่างกระจุกทองคำ (แนวความคิด)[ {"คำถาม": "ลาประจำปีกี่วัน", "expected_answer": "14 วันสำหรับผู้อาวุโส 1-5 ปี", "correct_part_id": "สองส่วนที่ 3", "หมวดหมู่": "ลา"}, {"คำถาม": "สำนักงาน Mars ของบริษัทอยู่ที่ไหน", "expected_answer": "NO_INFORMATION", # กับดัก: I ไม่ทราบ "correct_part_id": null, "category": "trap"}]
LLM-as-Judge: การประเมินอัตโนมัติ
การให้คะแนนคำตอบหลายร้อยคำตอบด้วยมือนั้นน่าเบื่อ โมเดล LLM ในฐานะผู้ตัดสินคือเมื่อโมเดลหนึ่งให้คะแนนและพิสูจน์คำตอบของอีกโมเดลหนึ่งตามเกณฑ์ที่กำหนด คำตัดสินที่ดีจะกำหนดเกณฑ์อย่างชัดเจน ยกตัวอย่าง และขอเหตุผล
# LLM-as-judge prompt (แนวความคิด)คุณเป็นผู้ประเมินที่เป็นกลาง ประเมินคำตอบด้านล่างตามบริบทและคำตอบที่คาดหวัง ให้คะแนน (1-5) และให้เหตุผล:- ความซื่อสัตย์: แต่ละข้ออ้างในคำตอบได้รับการสนับสนุนในบริบทหรือไม่- ความถูกต้อง: คำตอบตรงกับคำตอบที่คาดหวังหรือไม่- ความครบถ้วน: ข้อมูลที่เกี่ยวข้องครบถ้วนหรือไม่ โดยเฉพาะอย่างยิ่ง: หากคำตอบมีข้อมูลที่ไม่อยู่ในบริบท ให้แสดงความจริงใจ1 และระบุว่าข้อกล่าวอ้างใดที่ถูกสร้างขึ้น บริบท: {บริบท}คาดหวัง: {คาดหวัง}คำตอบ: {answer}ผลลัพธ์: {ความซื่อสัตย์ ความถูกต้อง ความครบถ้วน ความสมเหตุสมผล}
ข้อควรระวัง: LLM-as-judge นั้นไม่สมบูรณ์แบบ พวกเขาอาจมีอคติเป็นของตัวเอง (ตอบยาวๆ ชอบสไตล์ของตัวเองมากกว่า) ตรวจสอบผู้พิพากษาด้วย: หาคำตอบที่ให้คะแนนโดยทั้งผู้พิพากษาและมนุษย์ และวัดข้อตกลงระหว่างพวกเขา หากผู้พิพากษาสอดคล้องกับคะแนนของมนุษย์ คุณสามารถไว้วางใจเขาได้
คะแนนอ่อนแอ/แข็งแกร่ง
อ่อนแอ ("มันดีสำหรับฉัน"):
ฉันถามคำถามสองสามข้อและคำตอบก็ดูดี ฉันได้เผยแพร่แล้ว # ปัญหา: ไม่มีการวัด การถดถอยที่มองไม่เห็น การปรับปรุงที่มองไม่เห็น
ทรงพลัง (คลัสเตอร์ทองคำ + ตัวชี้วัดแยก + การตัดสินอัตโนมัติ + การถดถอย):
กลุ่มทอง 40 คำถาม เมื่อมีการเปลี่ยนแปลงแต่ละครั้ง call@5 ความเที่ยงตรงและความแม่นยำจะถูกวัดโดยอัตโนมัติ หากคะแนนลดลง การเปลี่ยนแปลงจะถูกย้อนกลับ ในการผลิต ความคิดเห็นของผู้ใช้จะถูกรวบรวมและเพิ่มลงในชุด
การติดตามและการถดถอยในการผลิต
การประเมินไม่ได้ทำเพียงครั้งเดียวและเสร็จสิ้น การปฏิบัติอย่างต่อเนื่องสามประการ:
- การทดสอบการถดถอย: รันคลัสเตอร์สีทองอัตโนมัติทุกครั้งที่พร้อมท์/การดึงข้อมูล/การเปลี่ยนแปลงโมเดล หากคะแนนลดลง การเปลี่ยนแปลงจะกลับรายการ วิธีนี้จะป้องกันไม่ให้ "ทำลายมันในขณะที่พยายามทำให้ดีขึ้น"
- การตรวจสอบการผลิต: มีการตรวจสอบอัตรา "ฉันไม่พบข้อมูล" ในคำถามจริง ความล่าช้าโดยเฉลี่ย ต้นทุน ความคิดเห็นของผู้ใช้ (👍/👎) การเพิ่มขึ้นอย่างกะทันหันของ "ฉันไม่รู้" มักเป็นสัญญาณแรกของดัชนีหรือการดึงข้อมูลทำงานผิดปกติ
- ห่วงคำติชม: คำถามจริงที่ผู้ใช้ให้ไว้ 👎 จะได้รับการตรวจสอบและเพิ่มลงในกองทอง ดังนั้นฉากจะสมบูรณ์ยิ่งขึ้นเมื่อเวลาผ่านไป และจุดบอดของระบบจะปิดลง
มินิเคสสามอัน
กรณีที่ 1 — การถดถอยแบบเงียบ ทีมงานแก้ไขข้อความแจ้งเพื่อ "ปรับปรุง" ความแม่นยำทั่วไปเพิ่มขึ้น แต่ความซื่อสัตย์ลดลง 30% ในคำถามกับดัก (แบบจำลองเริ่มพอดีมากขึ้น) คงไม่มีใครสังเกตเห็นถ้าไม่ใช่เพราะคำถามเกี่ยวกับกับดักในกลุ่มทองคำ การทดสอบการถดถอยคืนค่าการเปลี่ยนแปลง
กรณีที่ 2 — ยืดขาผิด ในผู้ช่วยคนหนึ่งคำตอบนั้นไม่ดี ทีมงานทำงานตามคำสั่งเป็นเวลาหลายสัปดาห์ เมื่อเราวัดเมตริกการดึงข้อมูล การเรียกคืน@5 มีเพียง 48% เท่านั้น ปัญหาอยู่ที่การดึงข้อมูล ไม่ใช่การสร้าง เมื่อเพิ่มอันดับไฮบริด + การจัดอันดับใหม่ การเรียกคืนเพิ่มขึ้นเป็น 89% และความแม่นยำก็เพิ่มขึ้นเช่นกัน
กรณีที่ 3 — การแจ้งเตือนการผลิต วันหนึ่ง อัตรา "ฉันไม่พบข้อมูล" ของผู้ช่วยฝ่ายสนับสนุนเพิ่มขึ้นจาก 6% เป็น 34% แทร็กแพดเตือน; สาเหตุก็คืองานจัดทำดัชนีซึ่งดำเนินการในเวลากลางคืนล้มเหลวอย่างเงียบๆ และไม่ได้อัปโหลดบทความใหม่ หากไม่มีการตรวจสอบ ข้อความ "ฉันไม่รู้" ที่ไม่ถูกต้องจะคงอยู่ต่อไปเป็นเวลาหลายวัน
ข้อผิดพลาดทั่วไป
- การพอใจกับ "มันใช้ได้ดีสำหรับฉัน": หากไม่มีการวัด การถดถอยจะไม่มีใครสังเกตเห็น
- ไม่แยกการดึงและการสร้าง: คุณจะแก้ไขขาผิดและเสียเวลา
- ไม่ถามคำถามกับดัก แนวโน้มการปรุงแต่งไม่ปรากฏในกระจุกทอง
- ไม่ตรวจสอบผู้พิพากษา: คณะลูกขุนที่มีอคติให้ความไว้วางใจที่ผิดพลาด
- ไม่ติดตามการผลิต: ความล้มเหลวของดัชนี ต้นทุนระเบิดยังคงดำเนินต่อไปอย่างเงียบๆ
โดยสรุป
- ใน RAG คุณภาพการดึงข้อมูลและการสร้างจะถูกวัดแยกกัน ต้องพิจารณาก่อนว่าขาไหนเสียหาย
- Recall@k, precision@k, MRR สำหรับการดึงข้อมูล; ความซื่อสัตย์ ความเหมาะสม ความครบถ้วน ถูกใช้มาแต่รุ่น
- การวัดแต่ละครั้งต้องใช้คลัสเตอร์ทองคำ ใส่คำถามจริง ยาก กับดัก และขัดแย้งเข้าไป
- LLM-as-ตัดสินชุดใหญ่คะแนนอัตโนมัติ แต่ผู้พิพากษาเองก็ต้องเป็นผู้ชอบธรรมต่อมนุษย์
- การทดสอบการถดถอย การตรวจสอบการผลิต และวงจรป้อนกลับจะรักษาคุณภาพไว้เมื่อเวลาผ่านไป
งานสมัคร
(1) สร้างชุดทองที่ประกอบด้วยคำถามอย่างน้อย 15 ข้อสำหรับผู้ช่วยของคุณเอง โดยใส่กับดักอย่างน้อย 3 ข้อ (ไม่มีคำตอบ) คำถามที่ยาก 3 ข้อ และคำถามแหล่งขัดแย้งกัน 2 ข้อ เขียนคำตอบที่คาดหวังและส่วนที่ถูกต้องสำหรับคำถามแต่ละข้อ (2) เปรียบเทียบพรอมต์เวอร์ชันที่แตกต่างกันสองเวอร์ชันกับชุดนี้ด้วยตนเอง ให้แต่ละคำตอบ 1-5 คะแนนเพื่อความซื่อสัตย์และถูกต้อง (3) ปรับข้อความแจ้ง LLM ในฐานะผู้ตัดสินด้านบนให้ตรงกับเกณฑ์ของคุณเอง (4) ระบุ 3 ตัวชี้วัดที่คุณจะติดตามในการผลิต และสำหรับคำถามแต่ละข้อ “ฉันต้องแจ้งเตือนที่เกณฑ์ใด” เขียนค่า
รายการตรวจสอบ
- [ ] ฉันสามารถวัดการรักษาและคุณภาพการสร้างด้วยเมตริกแยกกัน
- [ ] ฉันรู้ว่าตัวชี้วัดอย่าง Recall@k ความซื่อสัตย์หมายถึงอะไร
- [ ] ฉันสามารถสร้างกระจุกทองคำที่มีคำถามจริง ยาก กับดัก และขัดแย้งกัน
- [ ] ฉันสามารถตั้งค่าการประเมินอัตโนมัติและตรวจสอบผู้ตัดสินด้วย LLM ในฐานะผู้ตัดสินได้
- [ ] ฉันสามารถดำเนินการทดสอบการถดถอย การตรวจสอบการผลิต และลูปป้อนกลับได้