0Pricing
AI Agents · บทเรียน

การประเมิน 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

  1. การเรียกคืนข้อมูล: เราดึงส่วนข้อความที่ถูกต้องมาหรือไม่
  2. ความสอดคล้องกับแหล่งข้อมูล: คำตอบยังยึดโยงอยู่กับส่วนข้อความหรือไม่
  3. ความเกี่ยวข้องของคำตอบ: คำตอบตอบคำถามหรือไม่
  4. ความแม่นยำ/รีคอลของบริบท: สัดส่วนของส่วนข้อความที่มีประโยชน์ซึ่งดึงมาได้

รีคอล@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_retrieved

MRR (อันดับผกผันเฉลี่ย)

เอกสารที่เกี่ยวข้องรายการแรกอยู่ในอันดับสูงเพียงใด

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจัดอันดับใหม่ด้วยตัวเข้ารหัสไขว้
  2. HyDE: Embedding ของเอกสารสมมติ
  3. การค้นคืนหลายเวกเตอร์ (ColBERT)
  4. การประเมิน RAG (RAGAS, Recall@K)
← กลับไปที่ AI Agents