วัด RAG ให้ถูกจุด: faithfulness สูงไม่ได้แปลว่าค้นเอกสารครบ

|ผู้เขียน: กองบรรณาธิการ QUASA|2 นาทีในการอ่าน| 1
วัด RAG ให้ถูกจุด: faithfulness สูงไม่ได้แปลว่าค้นเอกสารครบ

ถ้าคำตอบจากระบบ RAG ผิด ให้แยกตรวจสองช่วงก่อนเลือกวิธีแก้: ใช้ context recall ดูว่าบริบทที่ค้นได้ครอบคลุมคำตอบอ้างอิงหรือไม่ และใช้ context precision ดูว่าชิ้นข้อความที่เกี่ยวข้องอยู่ในลำดับที่ดีเพียงใด จากนั้นใช้ faithfulness ตรวจว่าข้อกล่าวอ้างในคำตอบมีบริบทรองรับ และใช้ answer relevancy ตรวจว่าคำตอบตรงกับคำถาม กรอบเมตริก RAG ของ Microsoft อธิบายการแยกคุณภาพฝั่งค้นคืนออกจากคุณภาพฝั่งสร้างคำตอบเช่นนี้

คำตอบที่ยึดบริบททุกประโยคอาจยังขาดเงื่อนไขสำคัญ หากระบบไม่เคยค้นพบข้อความที่มีเงื่อนไขนั้น คะแนน faithfulness สูงจึงบอกได้เพียงว่าคำตอบไม่กล่าวเกินหลักฐานที่ได้รับ ไม่ได้บอกว่าหลักฐานนั้นครบ การวินิจฉัยต้องเก็บคำถาม คำตอบอ้างอิง ผลค้นคืนตามลำดับ บริบทที่ส่งเข้าโมเดลจริง และคำตอบสุดท้ายไว้ในรายการทดสอบเดียวกัน มิฉะนั้นจะระบุไม่ได้ว่าข้อมูลหายไปที่ขั้นใด

สร้างชุดทดสอบที่ย้อนหาข้อผิดพลาดได้

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

คำตอบอ้างอิงควรเก็บข้อเท็จจริงที่จำเป็นต่อการตอบครบทุกส่วนของคำถาม หากผู้ใช้ถามทั้งกำหนดเวลาและเงื่อนไขสิทธิ์ การเขียนไว้เพียงกำหนดเวลาจะทำให้การวัดความครบของการค้นคืนคลาดเคลื่อน ควรแยกสาระที่ตรวจได้ เช่น ระยะเวลา ผู้มีสิทธิ์ ข้อยกเว้น และเอกสารประกอบ โดยไม่บังคับให้คำตอบที่ระบบสร้างใช้ถ้อยคำเหมือนคำตอบอ้างอิงทุกคำ

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

ชุดทดสอบภาษาไทยควรครอบคลุมคำถามที่ใช้ชื่อเต็มกับตัวย่อ ภาษาพูดกับถ้อยคำในเอกสาร และการสะกดชื่อเฉพาะหลายแบบ เพิ่มคำถามที่ต้องประกอบข้อมูลจากหลายย่อหน้า และคำถามที่มีคำปฏิเสธหรือข้อยกเว้นซึ่งเปลี่ยนคำตอบได้ การคัดข้อความจากเอกสารมาใช้เป็นคำถามตรง ๆ เพียงอย่างเดียวอาจทำให้มองไม่เห็นปัญหาที่เกิดเมื่อผู้ใช้เรียกเรื่องเดียวกันด้วยคำต่างออกไป

ควรมีกรณีที่ข้อมูลคำตอบไม่มีอยู่ในคลังด้วย แต่ให้แยกจากกรณีที่มีคำตอบอ้างอิงสำหรับวัด context recall เมื่อไม่มีข้อเท็จจริงอ้างอิงให้ค้น การหารสัดส่วนข้อกล่าวอ้างที่ค้นพบย่อมไม่ตอบโจทย์ การทดสอบประเภทนี้ควรดูว่าระบบแจ้งข้อจำกัดของข้อมูลได้ตรงไปตรงมา และไม่เติมคำตอบที่ไม่มีหลักฐาน

Context recall ชี้ว่าหลักฐานหายไปตรงไหน

นิยาม context recall ของ Ragas ระบุว่ารูปแบบที่ใช้โมเดลประเมินจะนำคำตอบอ้างอิงมาแยกเป็นข้อกล่าวอ้าง แล้วตรวจว่าแต่ละข้อมีบริบทที่ค้นคืนรองรับหรือไม่ คะแนนจึงขึ้นกับความครบและความถูกต้องของคำตอบอ้างอิงด้วย หากคำตอบอ้างอิงละข้อยกเว้นสำคัญ คะแนนที่ดูสูงก็ไม่ช่วยเผยว่าระบบค้นข้อยกเว้นนั้นไม่พบ

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

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

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

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

Context precision บอกว่าหลักฐานอยู่ในตำแหน่งที่ใช้ได้หรือไม่

นิยาม context precision ของ Ragas ให้ความสำคัญกับการจัดชิ้นข้อความที่เกี่ยวข้องไว้เหนือชิ้นที่ไม่เกี่ยวข้อง จึงควรเก็บลำดับผลค้นคืน ไม่ใช่เพียงรายชื่อเอกสารที่พบ เมตริกนี้ช่วยระบุกรณีที่หลักฐานมีอยู่แล้วแต่ถูกผลลัพธ์รบกวนแทรกไว้ก่อนหน้า โดยเฉพาะเมื่อระบบส่งชิ้นข้อความเข้าโมเดลได้จำกัด

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

การเลือกชนิดของ context precision มีผลต่อการตีความ แบบที่เทียบผลค้นคืนกับคำตอบอ้างอิงเหมาะกับชุดทดสอบที่มีคำตอบที่ตรวจแล้ว ส่วนแบบที่เทียบกับคำตอบที่ระบบสร้างใช้งานได้เมื่อไม่มีคำตอบอ้างอิง แต่มีข้อจำกัด: หากคำตอบสุดท้ายละเงื่อนไขสำคัญ ข้อความที่มีเงื่อนไขนั้นอาจดูไม่เกี่ยวข้องเมื่อใช้คำตอบที่บกพร่องเป็นเกณฑ์

Recall และ precision ต่ำพร้อมกันอาจมีมากกว่าหนึ่งต้นเหตุ คลังเอกสารอาจขาดบางส่วน ขณะที่ตัวจัดอันดับยังวางข้อความรบกวนไว้สูง การแก้ด้วยการดึงผลเพิ่มอาจทำให้พบหลักฐานมากขึ้น แต่เพิ่มข้อความที่ไม่เกี่ยวข้องตามมาด้วย จึงต้องดูตำแหน่งของหลักฐานที่เพิ่มขึ้นและตรวจว่าหลักฐานนั้นถูกส่งถึงโมเดลจริงหรือไม่

Faithfulness และ answer relevancy แยกข้อผิดพลาดในคำตอบ

Faithfulness ตรวจข้อกล่าวอ้างที่คำตอบสร้างขึ้นกับบริบทที่โมเดลได้รับ หากคำตอบระบุเงื่อนไขหรือระยะเวลาที่อนุมานจากบริบทไม่ได้ คะแนนด้านนี้ควรสะท้อนปัญหา แต่การตอบสั้นจนไม่กล่าวถึงเงื่อนไขที่ขาดไปอาจยังได้คะแนนสูง เพราะไม่มีข้อกล่าวอ้างที่เกินหลักฐานให้ลงโทษ นี่คือเหตุผลที่ต้องอ่านคะแนนนี้คู่กับความครบของการค้นคืนและคำตอบอ้างอิง

เมื่อหลักฐานอยู่ในบริบทครบ แต่ faithfulness ต่ำ ให้ตรวจคำสั่งที่กำหนดขอบเขตการตอบ การใช้ข้อมูลทั่วไปของโมเดลแทนข้อความที่ค้นมา และการสรุปเงื่อนไขหลายข้อให้กลายเป็นข้อเดียว คำสั่งควรทำให้ระบบผูกข้อความสำคัญในคำตอบกับหลักฐานที่ได้รับ และยอมระบุเมื่อหลักฐานไม่พอ อย่างไรก็ดี การแก้คำสั่งควรตามหลังการยืนยันว่าข้อความที่ถูกต้องเข้าสู่บริบทแล้ว

Answer relevancy ถามอีกอย่างหนึ่งว่าคำตอบตอบสิ่งที่ผู้ใช้ถามหรือไม่ คำตอบอาจมีหลักฐานรองรับทุกประโยค แต่พูดถึงขั้นตอนขอคืนสินค้าแทนกำหนดเวลาคืนสินค้า หรืออธิบายเพียงข้อแรกของคำถามที่มีหลายส่วน ความตรงคำถามจึงต้องพิจารณาจากคำถามและคำตอบร่วมกัน ไม่ควรอนุมานจาก faithfulness เพียงค่าเดียว

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

เมตริกที่ใช้โมเดลตัดสินอาจแยกข้อกล่าวอ้างผิดหรืออ่านความหมายของคำปฏิเสธคลาดเคลื่อน โดยเฉพาะเมื่อประโยคมีเงื่อนไขซ้อนกัน ก่อนใช้คะแนนเป็นเกณฑ์ตัดสินระบบ ควรให้ผู้ตรวจที่เข้าใจเนื้อหาตัดสินตัวอย่างชุดเดียวกัน แล้วดูกรณีที่คำตัดสินไม่ตรงกัน การตรวจเช่นนี้บอกได้ว่าความผิดปกติอยู่ที่ระบบ RAG หรืออยู่ที่ผู้ให้คะแนนอัตโนมัติ

จับรูปแบบคะแนนคู่กับจุดที่ควรแก้

คะแนนทั้งสี่เป็นสัญญาณระบุตำแหน่งปัญหา ไม่ใช่คำสั่งแก้แบบตายตัว ให้เริ่มจากรายการทดสอบที่ตอบผิดและดูข้อความจริงในแต่ละช่วงของระบบ การตีความควรยึดว่ามีหลักฐานใดอยู่ในคลัง ถูกค้นพบ ถูกส่งเข้าโมเดล และถูกใช้ในคำตอบ แทนการดูค่าเฉลี่ยรวมเพียงค่าเดียว

  • Recall ต่ำ แต่ faithfulness สูง: คำตอบอาจยึดข้อความที่ค้นพบอย่างเคร่งครัด ขณะที่ข้อความนั้นไม่ครอบคลุมคำตอบอ้างอิง ให้ตรวจคลังเอกสาร การทำดัชนี และการค้นคืนก่อนแก้คำสั่งสร้างคำตอบ
  • Recall สูง แต่ precision ต่ำ: หลักฐานอยู่ในผลค้นคืนแล้ว แต่อาจถูกวางหลังข้อความรบกวน ให้ตรวจลำดับผล การจัดอันดับใหม่ และข้อจำกัดของบริบทที่ส่งเข้าโมเดล
  • Recall และ precision ดี แต่ faithfulness ต่ำ: หลักฐานที่ต้องใช้มีอยู่และถูกจัดไว้ดี ให้ตรวจว่าคำตอบเพิ่มข้อกล่าวอ้างนอกบริบท อ่านเงื่อนไขผิด หรือใช้ข้อความที่ได้รับไม่ครบ
  • ผลค้นคืนดีและ faithfulness สูง แต่ relevancy ต่ำ: ข้อความที่ตอบมีหลักฐานรองรับ ทว่าระบบอาจตอบผิดประเด็นหรือละบางส่วนของคำถาม ให้ตรวจวิธีตีความคำถามและรูปแบบคำสั่งตอบ

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

ตัวอย่างชุดทดสอบภาษาไทยและการตรวจคะแนน

สมมติว่าเอกสารนโยบายคืนสินค้าระบุว่า “คืนได้ภายในเจ็ดวัน โดยต้องมีหลักฐานการซื้อและสินค้ายังไม่ถูกใช้” คำถามทดสอบคือ “คืนสินค้าได้ภายในกี่วัน และต้องมีเงื่อนไขอะไรบ้าง” คำตอบอ้างอิงต้องครอบคลุมทั้งระยะเวลาและเงื่อนไขทั้งสอง พร้อมระบุช่วงเอกสารที่รองรับ ตัวเลขและนโยบายนี้เป็นเพียงตัวอย่างสมมติ ไม่ใช่เงื่อนไขของร้านค้าใด

หากระบบค้นพบเฉพาะข้อความเรื่องเจ็ดวัน แล้วตอบว่า “คืนได้ภายในเจ็ดวัน” คำตอบอาจมี faithfulness สูง เพราะไม่ได้กล่าวเกินสิ่งที่ได้รับ แต่ context recall ควรชี้ว่าหลักฐานสำหรับเงื่อนไขยังขาด การเปิดดูคลังและผลค้นคืนต่อจะบอกได้ว่าเงื่อนไขไม่อยู่ในคลัง อยู่คนละชิ้นข้อความ หรืออยู่ในผลลำดับท้ายที่ไม่ได้ส่งให้โมเดล

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

เพิ่มคำถามที่เปลี่ยนถ้อยคำแต่คงเจตนาเดิม เช่น “ของยังไม่แกะ คืนได้เมื่อไร” และคำถามที่เปลี่ยนเงื่อนไขจริง เช่น สินค้าถูกใช้แล้วหรือไม่มีหลักฐานการซื้อ การจับคู่คำถามเหล่านี้ช่วยดูว่าระบบค้นคืนตามความหมายได้หรือเพียงจับคำตรงตัว ทั้งยังเผยว่าคำตอบแยกข้อยกเว้นที่มีผลต่อสิทธิ์ได้หรือไม่

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

อ่านเพิ่มเติม:

แชร์:

สมัครรับจดหมายข่าวของเรา

รับข่าวสารล่าสุดเกี่ยวกับ Web3, AI และคริปโตส่งตรงถึงกล่องจดหมายของคุณ

0