Đánh giá RAG: Precision, Recall, Faithfulness trong Retrieval-Augmented Generation

Đánh giá RAG: Precision, Recall, Faithfulness trong Retrieval-Augmented Generation

Khi xây dựng hệ thống RAG (Retrieval-Augmented Generation), việc đo lường chất lượng retrieval và generation là cực kỳ quan trọng. Ba chỉ tiêu cốt lõi giúp bạn đánh giá hiệu suất RAG là Context Precision, Context Recall và Faithfulness.

RAG hiện đang là kiến trúc phổ biến nhất cho chatbot dựa trên dữ liệu nội bộ. Nhưng không phải lúc nào RAG cũng hoạt động tốt. Đôi khi hệ thống trả về đúng câu trả lời, nhưng dựa trên sai đoạn văn bản. Hay ngược lại: retrieval đúng, nhưng generation bịa đặt thông tin. Các metric này giúp bạn phát hiện chính xác điểm yếu.

Context Precision

Context Precision đo lường mức độ liên quan của các đoạn văn bản được truy xuất so với câu hỏi. Công thức: (Số đoạn văn bản liên quan) / (Tổng số đoạn văn bản được truy xuất). Giá trị cao nhất là 1.0, nghĩa là mọi đoạn văn bản được truy xuất đều liên quan đến câu hỏi.

Khi Context Precision thấp, nguyên nhân thường là embedding model không phân biệt tốt giữa ngữ cảnh liên quan và không liên quan, hoặc chunk size quá lớn khiến mỗi đoạn chứa quá nhiều thông tin thừa. Cải thiện bằng cách thử reranking với cross-encoder hoặc điều chỉnh overlap khi chunking.

Context Recall

Context Recall đo lường khả năng của retrieval system trong việc tìm thấy tất cả thông tin liên quan cần thiết để trả lời câu hỏi. Nó so sánh các đoạn văn bản được truy xuất với cơ sở dữ liệu thực tế (ground truth).

Recall thấp đồng nghĩa hệ thống bỏ sót thông tin quan trọng. Điều này thường xảy ra khi chunk size quá nhỏ, khiến một sự kiện bị chia nhỏ và mất ngữ cảnh. Khi đó retrieval không nhận diện được mối liên hệ giữa các mảnh thông tin.

Faithfulness

Faithfulness (Tính trung thực) đo lường xem câu trả lời được sinh ra có bám sát vào context được cung cấp hay không. Nó kiểm tra xem có thông tin nào trong câu trả lời không có trong context hay không (sự ảo tưởng – hallucination).

Faithfulness thấp thường xuất phát từ prompt yếu hoặc LLM có xu hướng bịa đặt để trả lời câu hỏi khi retrieval không đủ. Cách khắc phục là dùng prompt yêu cầu model trả lời chỉ dựa trên context, hoặc áp dụng retrieval-augmented generation với reranking.

Cách tính toán trong thực tế

Thư viện Ragas cung cấp các tính toán metric này sẵn:

from ragas.metrics import context_precision, context_recall, faithfulness
from ragas import evaluate

dataset = {
    "question": ["Câu hỏi mẫu"],
    "answer": ["Câu trả lời của LLM"],
    "contexts": [["Đoạn context 1", "Đoạn context 2"]],
    "ground_truth": ["Câu trả lời chuẩn"]
}

results = evaluate(dataset, metrics=[context_precision, context_recall, faithfulness])
print(results)

Các metric này cho phép bạn:

  • So sánh các mô hình embedding khác nhau cho retrieval
  • Điều chỉnh số lượng k-top documentos được truy xuất
  • Đánh giá hiệu quả của các kỹ thuật reranking
  • Theo dõi tiến bộ khi cải thiện pipeline RAG

Ưu điểm của việc sử dụng các metric này

Thay vì phụ thuộc chỉ vào cảm nhận chủ quan, các metric định lượng giúp bạn:

  • Xác định chokepoint cụ thể trong pipeline RAG
  • Quyết định dựa trên dữ liệu khi tối ưu hóa hệ thống
  • Đối chiếu hiệu suất với các phương pháp tiên tiến khác
  • Tích hợp vào CI/CD để giám sát chất lượng tự động

Khi xây dựng chatbot nội bộ cho công ty, bạn có thể chạy đánh giá hàng ngày trên tập câu hỏi thực tế. Nếu một commit nào đó làm giảm Precision từ 0.85 xuống 0.65, bạn sẽ phát hiện sớm thay vì chờ người dùng phàn nàn.

Ví dụ thực tế

Một công ty tài chính sử dụng RAG để trả lời câu hỏi về quy định. Trước khi tối ưu, Context Precision chỉ 0.62, Faithfulness 0.58. Sau khi áp dụng reranking với cross-encoder và tối ưu chunk size, các metric tăng lên 0.89 và 0.85 tương ứng, giảm đáng kể số trường hợp cung cấp thông tin sai lệch.

Biểu đồ so sánh Context Precision, Recall, Faithfulness trước và sau tối ưu
Kiến trúc RAG với các điểm đo lường metric

Nguồn: docs.ragas.io, Hugging Face Ragas

Nếu bạn đang triển khai RAG trong doanh nghiệp, hãy bắt đầu bằng việc xây dựng dataset đánh giá câu hỏi thực tế. Mục tiêu là đạt Context Precision trên 0.85 và Faithfulness trên 0.90 trước khi đưa vào production.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Transformer model architecture diagram showing encoder-decoder with attention mechanism

Speculative Decoding: Tăng tốc inference LLM 2-3x với draft model

Speculative decoding là kỹ thuật tăng tốc độ inference của Large Language Models (LLM) lên 2-3x mà không làm giảm chất lượng đầu ra. Ý tưởng cốt lõi: sử dụng…

Xem thêm
GPT-4o multimodal interface demo

Multimodal AI: GPT-4o và Gemini Pro tích hợp văn bản, hình ảnh, âm thanh

Multimodal AI: GPT-4o và Gemini Pro tích hợp văn bản, hình ảnh, âm thanh GPT-4o multimodal interface demo: hiển thị đầu vào văn bản, hình ảnh và âm thanh Trí…

Xem thêm

Đánh giá RAG: Precision, Recall, Faithfulness trong Retrieval-Augmented Generation

Đánh giá RAG: Precision, Recall, Faithfulness trong Retrieval-Augmented Generation Khi xây dựng hệ thống RAG (Retrieval-Augmented Generation), việc đo lường chất lượng retrieval và generation là cực kỳ quan trọng….

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất