Bộ Đo Lường Đánh Giá RAG: Faithfulness và Answer Relevance từ Gốc
1. Faithfulness (Độ trung thực / Chống ảo giác): Tỷ lệ các luận điểm (claims/statements) trong câu trả lời được chứng minh trực tiếp bởi Context được cung cấp:
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: classification-metrics-suite.
Nội dung đề bài
Mục tiêu kiến thức
- Hiểu kiến trúc đánh giá RAG ba thành phần (The RAG Triad):
- Faithfulness (Độ trung thực / Chống ảo giác): Tỷ lệ các luận điểm (claims/statements) trong câu trả lời được chứng minh trực tiếp bởi Context được cung cấp:
Faithfulness = |Supported Claims||Total Generated Claims|
- Context Recall (Độ bao phủ của ngữ cảnh): Tỷ lệ các luận điểm trong đáp án chuẩn (Ground Truth) xuất hiện trong Context được tìm thấy.
- Answer Relevance (Độ liên quan câu trả lời): Mức độ trả lời đúng trọng tâm câu hỏi của người dùng (không trả lời lan man).
Yêu cầu
Viết hàm evaluate_rag_faithfulness(generated_claims: list[str], context_facts: list[str], claim_verifier_fn: Any) -> dict[str, float]:
generated_claims: Danh sách các luận điểm được trích xuất từ câu trả lời của LLM.context_facts: Danh sách các sự kiện có trong tài liệu ngữ cảnh.claim_verifier_fn(claim: str, facts: list[str]) -> bool: Hàm kiểm tra xemclaimcó được suy luận hợp lý từfactshay không.- Trả về dictionary:
{
"faithfulness": float, # Tỷ lệ claim được verify (0.0 đến 1.0)
"hallucination_rate": float, # 1.0 - faithfulness
"supported_count": int,
"total_claims": int
}Input
- Hàm
evaluate_rag_faithfulness(generated_claims,context_facts,claim_verifier_fn): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
evaluate_rag_faithfulness: Trả về kết quả kiểudict[str, float]theo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 2000ms.
- Giới hạn bộ nhớ: 256MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
claims = ['Python là ngôn ngữ thông dịch', 'Python được tạo ra bởi Guido van Rossum', 'Python chạy nhanh hơn C++ 100 lần']
facts = ['Python là ngôn ngữ kịch bản thông dịch phát triển bởi Guido van Rossum năm 1991.']
def mock_verifier(claim, facts_list):
return 'nhanh hơn C++' not in claim
evaluate_rag_faithfulness(claims, facts, mock_verifier)Output
{
'faithfulness': 0.666667,
'hallucination_rate': 0.333333,
'supported_count': 2,
'total_claims': 3
}Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
res = evaluate_rag_faithfulness([], ['some fact'], lambda c, f: True)Output
{
'faithfulness': 1,
'hallucination_rate': 0,
'supported_count': 0,
'total_claims': 0
}Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
