การประเมิน RAG (RAGAS, Recall@K)
วัดความยึดโยงกับแหล่งข้อมูล ความเกี่ยวข้องของคำตอบ ความแม่นยำของบริบท และ recall@K เพื่อดูว่าการเปลี่ยนแปลงช่วยได้หรือไม่
การประเมิน RAG (RAGAS, Recall@K) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
สิ่งที่วัดไม่ได้ย่อมปรับปรุงไม่ได้
RAG มีปัจจัยให้ปรับมากมาย เช่น ขนาดส่วนข้อความ top-K ตัวจัดอันดับใหม่ พรอมต์ และโมเดล หากไม่มีตัวชี้วัด การเปลี่ยนแปลงทุกอย่างก็เป็นเพียงการคาดเดา
ตัวชี้วัดสำคัญสำหรับ RAG
- การเรียกคืนข้อมูล: เราดึงส่วนข้อความที่ถูกต้องมาหรือไม่
- ความสอดคล้องกับแหล่งข้อมูล: คำตอบยังยึดโยงอยู่กับส่วนข้อความหรือไม่
- ความเกี่ยวข้องของคำตอบ: คำตอบตอบคำถามหรือไม่
- ความแม่นยำ/รีคอลของบริบท: สัดส่วนของส่วนข้อความที่มีประโยชน์ซึ่งดึงมาได้
รีคอล@K
สร้างชุดข้อมูลมาตรฐานของคู่ (คำถาม, รายการรหัสส่วนข้อความที่เกี่ยวข้อง) วัดว่าบ่อยเพียงใดที่ส่วนข้อความ K อันดับแรกที่เรียกคืนมามีส่วนข้อความที่เกี่ยวข้องอย่างน้อยหนึ่งรายการ:
def recall_at_k(eval_set, k=5):
hits = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
if any(c.id in item['relevant_ids'] for c in retrieved):
hits += 1
return hits / len(eval_set)ความแม่นยำ@K
ส่วนใดของส่วนข้อความที่เรียกคืนมาทั้งหมดมีความเกี่ยวข้อง
def precision_at_k(eval_set, k=5):
total_relevant = 0
total_retrieved = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
total_relevant += sum(1 for c in retrieved if c.id in item['relevant_ids'])
total_retrieved += k
return total_relevant / total_retrievedMRR (อันดับผกผันเฉลี่ย)
เอกสารที่เกี่ยวข้องรายการแรกอยู่ในอันดับสูงเพียงใด
def mrr(eval_set, k=10):
total = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
for rank, c in enumerate(retrieved, start=1):
if c.id in item['relevant_ids']:
total += 1 / rank
break
return total / len(eval_set)ความสอดคล้องกับแหล่งข้อมูล (LLM ในฐานะผู้ตัดสิน)
ใช้ LLM ตรวจสอบว่าข้อกล่าวอ้างแต่ละรายการในคำตอบมีบริบทสนับสนุนหรือไม่:
judge_prompt = '''
Given the context and answer, identify each factual claim in the answer.
For each claim, judge whether the context supports it.
Return {claims: [{claim, supported: true/false}]}.
'''
result = judge_llm.invoke(judge_prompt.format(context=ctx, answer=ans))ความเกี่ยวข้องของคำตอบ
การตัดสินย้อนกลับ: ขอให้ LLM ตอบว่า "คำตอบนี้อาจเป็นคำตอบของคำถามนี้หรือไม่" วิธีนี้ช่วยตรวจจับผลลัพธ์ที่นอกประเด็น
เฟรมเวิร์ก RAGAS
RAGAS ทำให้ตัวชี้วัดข้างต้นเป็นอัตโนมัติ:
# pip install ragas
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall
results = evaluate(
dataset, # HF dataset with question, contexts, answer, ground_truth
metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)
print(results)การสร้างชุดข้อมูลมาตรฐาน
ทูเพิล (คำถาม, คำตอบที่คาดหวัง, ส่วนข้อความที่เกี่ยวข้อง) จำนวน 20-200 รายการซึ่งมนุษย์คัดสรร ครอบคลุม:
- คำค้นทั่วไป
- กรณีขอบ
- อินพุตเชิงโจมตี (คำถามนอกคลังข้อมูล)
ชุดประเมินสังเคราะห์
การเริ่มต้นชุดข้อมูล: ขอให้ LLM สร้างคู่คำถามและคำตอบจากเอกสารของคุณ คุณภาพต่ำกว่าแต่รวดเร็ว:
synth_prompt = 'Read this document and write 3 questions a user might ask, with answers from the doc:\n{doc}'
# Use as a starting point; humans curate later.
print(synth_prompt)
ชุดข้อมูลของ LangSmith และ Langfuse
เครื่องมือทั้งสองช่วยเปลี่ยนบันทึกการทำงานจริงให้เป็นชุดข้อมูลประเมิน เลือกคำถามจริง 50 ข้อที่ให้ผลลัพธ์ไม่ดี ใส่ป้ายกำกับคำตอบที่ถูกต้อง แล้วใช้เป็นเกณฑ์มาตรฐาน
อย่าปรับให้เหมาะกับตัวชี้วัดเดียวมากเกินไป
การเพิ่มรีคอล@K ให้สูงสุดอาจทำให้ความแม่นยำ@K ลดลง (ผลบวกเท็จมากเกินไป) ให้ติดตามตัวชี้วัดหลายรายการและตัวชี้วัดรวม
การทดสอบ A/B ในระบบจริง
เมื่อคุณมีการประเมินแบบออฟไลน์ที่สอดคล้องกับความพึงพอใจของผู้ใช้แล้ว คุณจะสามารถทดสอบ A/B การเปลี่ยนแปลงในระบบจริง และเปรียบเทียบทั้งตัวชี้วัดกับอัตราการกดถูกใจของผู้ใช้ได้
คำจำกัดความของรีคอล@K
Recall@5 = 0.8 หมายความว่าอย่างไร
สรุปทบทวน
สร้างชุดข้อมูลมาตรฐาน วัดรีคอล@K ความแม่นยำ@K MRR ความสอดคล้องกับแหล่งข้อมูล และความเกี่ยวข้องของคำตอบ ใช้ RAGAS เพื่อทำให้กระบวนการเป็นอัตโนมัติ แล้วปรับปรุงซ้ำโดยอิงจากตัวชี้วัด
คำถามที่พบบ่อย
บทเรียน “การประเมิน RAG (RAGAS, Recall@K)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การประเมิน RAG (RAGAS, Recall@K)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การประเมิน RAG (RAGAS, Recall@K)”
วัดความยึดโยงกับแหล่งข้อมูล ความเกี่ยวข้องของคำตอบ ความแม่นยำของบริบท และ recall@K เพื่อดูว่าการเปลี่ยนแปลงช่วยได้หรือไม่ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การประเมิน RAG (RAGAS, Recall@K)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้
- HyDE: Embedding ของเอกสารสมมติ
- การค้นคืนหลายเวกเตอร์ (ColBERT)
- การประเมิน RAG (RAGAS, Recall@K)