วัดผล RAG และลด Hallucination
Chatbot ที่ "ดูเหมือนใช้ได้" อาจตอบผิดแบบเงียบๆ เรียนรู้วิธีวัดผล RAG ทีละส่วน ตัวชี้วัดหลัก และวิธีลด Hallucination ที่ทำได้จริง
หลังเปิดใช้ Chatbot ภายในได้สองสัปดาห์ หัวหน้าทีมได้ยินพนักงานพูดว่า "บอทบอกว่าเบิกได้ แต่บัญชีตีกลับ" ไม่มีใครรู้ว่าบอทตอบผิดไปแล้วกี่ครั้ง เพราะตอนเปิดใช้ ทีมแค่ลองถามไม่กี่ข้อแล้วรู้สึกว่า "ก็ใช้ได้นะ" นี่คือจุดที่หลายโปรเจกต์ RAG พลาด คือไม่มีวิธีวัดผลที่เป็นระบบ
Hallucination ใน RAG คืออะไร
Hallucination คืออาการที่ AI สร้างคำตอบที่ฟังดูน่าเชื่อ แต่ไม่จริงหรือไม่มีหลักฐานรองรับ RAG ช่วยลดปัญหานี้ได้เพราะให้ AI อ่านเอกสารก่อนตอบ แต่ไม่ได้ทำให้หายไป คำตอบผิดในระบบ RAG มักมาจากหนึ่งในสองจุดนี้
- ค้นผิด: ระบบดึงเอกสารที่ไม่เกี่ยวข้อง หรือไม่เจอเอกสารที่มีคำตอบ
- ตอบผิด: ได้เอกสารถูกแล้ว แต่ AI ตีความผิด สรุปเกิน หรือเติมรายละเอียดที่เอกสารไม่ได้พูด
การแยกสองจุดนี้ออกจากกันคือกุญแจสำคัญ เพราะวิธีแก้ต่างกันโดยสิ้นเชิง
ตัวชี้วัดหลักที่ควรรู้
เครื่องมือโอเพนซอร์สชื่อ Ragas ซึ่งนิยมใช้วัดผลระบบ RAG แบ่งตัวชี้วัดหลักไว้แบบนี้
ฝั่งการค้นหา
- Context Precision: เอกสารที่ดึงมามีประโยชน์ต่อการตอบจริงแค่ไหน หรือมีขยะปนมาเยอะ
- Context Recall: เอกสารที่ดึงมามีข้อมูลครบพอจะตอบถูกหรือเปล่า
ฝั่งการตอบ
- Faithfulness: ข้อความในคำตอบมีเอกสารที่ดึงมารองรับหรือไม่ ตัวนี้ใช้จับ hallucination โดยตรง
- Answer Relevancy: คำตอบตรงกับสิ่งที่ผู้ใช้ถามหรือไม่ ไม่ใช่ตอบถูกแต่คนละเรื่อง
ข้อสังเกตจากเอกสารของ Ragas คือ Faithfulness และ Answer Relevancy วัดได้โดยไม่ต้องมีคำตอบอ้างอิง แต่ Context Precision และ Context Recall ต้องมีคำตอบที่ถูกต้องเตรียมไว้ก่อน นี่คือเหตุผลที่ชุดคำถามทดสอบพร้อมเฉลยสำคัญมาก
สร้างชุดทดสอบ (Golden Set) ยังไง
ชุดทดสอบที่ดีควรสะท้อนคำถามจริง ไม่ใช่คำถามที่ทีมพัฒนาคิดเอง
- ดึงคำถามจริงจากอีเมล แชต หรือ ticket ที่เคยถาม HR หรือ IT
- เขียนคำตอบที่ถูกต้องพร้อมระบุว่าอยู่ในเอกสารไหน หมวดไหน
- ใส่คำถามที่ ไม่มีคำตอบในเอกสาร ด้วย เพื่อดูว่าระบบกล้าตอบว่า "ไม่ทราบ" หรือเปล่า
- ใส่คำถามกำกวม และคำถามที่ต้องรวมข้อมูลจากหลายเอกสาร
ตัวอย่าง: บริษัทโลจิสติกส์
บริษัทขนส่งแห่งหนึ่งทำ RAG ให้คนขับถามขั้นตอนปฏิบัติ (SOP) ทีมเตรียมคำถามจริง 40 ข้อจากกลุ่มแชตคนขับ ผลรอบแรกพบว่าคำตอบผิดส่วนใหญ่มาจากฝั่งค้นหา เพราะคนขับใช้ภาษาพูด เช่น "รถเสียกลางทาง ทำไง" ขณะที่เอกสารเขียนว่า "ขั้นตอนกรณียานพาหนะขัดข้องระหว่างการขนส่ง" ทีมจึงปรับการค้นหาแทนการเปลี่ยนโมเดล และทดสอบซ้ำด้วยชุดเดิมเพื่อเทียบผล
วิธีลด Hallucination ที่ได้ผล
- สั่งให้ยอมรับว่าไม่รู้: ระบุใน prompt ชัดๆ ว่าถ้าเอกสารไม่มีข้อมูล ให้ตอบว่าไม่พบ
- บังคับให้อ้างอิง: ให้ AI ระบุเอกสารและหัวข้อที่ใช้ทุกครั้ง ผู้ใช้จะตรวจสอบได้ และทีมจะเห็นว่าผิดตรงไหน
- แก้ที่การค้นหาก่อน: ถ้าค้นไม่เจอเอกสารที่ถูกต้อง โมเดลเก่งแค่ไหนก็ตอบไม่ถูก
- ล้างเอกสารที่ขัดแย้ง: นโยบายเก่ากับใหม่ที่อยู่ในคลังพร้อมกัน เป็นต้นเหตุคำตอบผิดที่พบบ่อย
- ให้คนตรวจในเรื่องสำคัญ: คำถามเรื่องเงิน กฎหมาย หรือสุขภาพ ควรมีขั้นตอนให้ผู้เชี่ยวชาญยืนยัน
ข้อควรระวัง
- ตัวชี้วัดหลายตัวใช้ LLM เป็นผู้ตัดสิน (LLM-as-a-judge) ซึ่งก็ผิดพลาดได้ ควรสุ่มให้คนตรวจซ้ำเป็นระยะ
- คะแนนสูงในชุดทดสอบไม่ได้แปลว่าใช้งานจริงจะดีเสมอ ต้องเก็บคำถามจริงหลังเปิดใช้มาเพิ่มในชุดทดสอบเรื่อยๆ
- วัดผลซ้ำทุกครั้งที่เปลี่ยนเอกสาร โมเดล หรือการตั้งค่า เพราะการแก้จุดหนึ่งอาจทำให้อีกจุดแย่ลง
สิ่งที่ไม่ได้วัด ก็ปรับปรุงไม่ได้ และ Chatbot ที่ไม่ได้วัด ก็ไม่ควรเชื่อ
ทำอะไรต่อ
- รวบรวมคำถามจริง 30 ถึง 50 ข้อ พร้อมเฉลยและเอกสารอ้างอิง
- ทดสอบแยกฝั่งค้นหาและฝั่งตอบ เพื่อรู้ว่าปัญหาอยู่ตรงไหน
- แก้ทีละจุด แล้ววัดผลซ้ำด้วยชุดเดิม
- ตั้งช่องทางให้ผู้ใช้กดแจ้งว่าคำตอบผิด และนำมาเพิ่มในชุดทดสอบ
ถ้าปัญหาของคุณอยู่ที่ฝั่งค้นหา บทความ Chunking และ Embedding จะช่วยได้มาก และถ้าอยากฝึกทักษะการตั้งคำถามกับ AI ให้ได้ผลแม่นขึ้น ลองใช้ AI Career Assistant ของ Plants.work ช่วยวางแผนการเรียนรู้ได้