7 จุดระวัง เวลาทำ RAG
เนื้อหานี้มาจาก Seven Failure Points When Engineering a Retrieval Augmented Generation System ครับ เขียนไว้ดีเลยทีเดียว
แนะนำให้ไปอ่าน Paper ตัวเต็มกันนะครับ มี Lesson Learned และ Findings ที่น่าสนใจอื่น ๆ ด้วย
Missing Content
ไม่มี Content นี้ในฐานข้อมูล, เวลาไม่มี LLM ก็ควรจะตอบว่า ไม่รู้ หรือหาข้อมูลไม่พบ ตรงนี้เราอาจจะต้องเพิ่มข้อมูลเข้าไปในฐานข้อมูลของเรา
Missed the Top Ranked Documents
ข้อมูลหน่ะมี แต่ว่าไม่ได้หยิบออกมา อาจจะเป็นจำนวน Top K ที่เราให้ดึงมามันไม่พอ หรือ Algorithm ในการดึงอาจจะไปโดนตัวอื่น ตรงนี้เราอาจจะขยาย Top K, เปลี่ยน Algorithm ดูครับ
Not in Context
ข้อมูลหน่ะมี ดึงมาแล้วด้วย แต่อาจจะถูก rerank ใหม่แล้วหายไป หรือ summary แล้วหายไป ตรงนี้อาจจะต้องลองดูจุดที่เราทำการรวมข้อมูลครับ ไม่ว่าจะเป็น rerank หรือ summary ว่าควรปรับปรุงอะไรไหม
Not Extracted
ข้อมูลมี ดึงมาพร้อมเรียบร้อย ใส่เข้าไปใน Prompt แล้วด้วย แต่ LLM ไม่ดึงมาตอบ ตรงนี้อาจจะเกิดจากการที่มี Noise หรือ ข้อมูลที่ไม่เกี่ยวข้องมากเกินไป
Wrong format
Format ผิด เวลาเราสั่งให้ LLM ตอบเป็นตาราง, เป็น List ตรงนี้อาจจะลองปรับ Prompt ดูครับ
Incorrect Specificity
คำตอบแคบไป หรือ กว้างเกิน มักจะเกิดจาก คนที่ทำ RAG อาจจะตั้งใจออกแบบมา เช่น ทำ RAG สำหรับการศึกษา ตัว LLM ควรจะตอบคำถาม พร้อมคำอธิบาย ไม่ใช่แค่คำตอบอย่างเดียว หรือ อีกสาเหตุมักจะเกิดจากที่ผู้ใช้เอง ไม่รู้ว่าจะถามคำถามอย่างไร
Incomplete
ตอบไม่ครบ ไม่ใช่ตอบผิดนะครับ เช่น ถามว่า คิดยังไงกับ A, B, C แล้ว LLM ตอบมาแค่ A วิธีแก้เราอาจจะต้องให้ผู้ใช้ แยกถามทีละคำถาม หรือเราใช้เทคนิค Pre-retrieval ทำการ extract query ออกมาเป็น 3 คำถามย่อย ก่อนก็น่าจะช่วยได้เช่นกัน