ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ragas 评测框架深拆:忠实度(Faithfulness)与答案相关性(Answer Relevance)

Ragas 评测框架深拆:忠实度(Faithfulness)与答案相关性(Answer Relevance) Ragas 评测框架深拆忠实度Faithfulness与答案相关性Answer Relevance在 RAG检索增强生成与知识库智能体的质量评测中开源评测框架RagasRetrieval Augmented Generation Assessment已经成为事实上的行业基准之一。许多团队在做评测时往往只看最终答案对不对而 Ragas 最大的架构贡献在于**“将检索模块Retrieval与生成模块Generation彻底解耦并进行独立度量”**。在 Ragas 的核心四维指标体系中忠实度Faithfulness与答案相关性Answer Relevance是衡量大模型生成质量最关键的两大基石指标忠实度衡量“模型有没有依据给定的参考上下文老实作答有没有凭空捏造事实幻觉度”答案相关性衡量“模型有没有真正切中用户的核心提问有没有废话连篇、顾左右而言他”。深入拆解这两个核心指标的数学计算逻辑与大模型打分机理是构建高信度自动化 Evals 系统的必修课。一、忠实度Faithfulness幻觉的量化温度计┌───────────────────────────┐ │ 步骤 1: 声明提取 (Claims) │ │ 将 Answer 拆解为 N 个原子断言│ └─────────────┬─────────────┘ │ ▼ ┌───────────────────────────┐ │ 步骤 2: 上下文事实核验 │ │ 逐一检查断言是否能从 Context 推导│ └─────────────┬─────────────┘ │ ▼ ┌───────────────────────────┐ │ 步骤 3: 忠实度比例计算 │ │ Score 验证通过数 / 总断言数│ └──────────────────────────┘1. 忠实度的数学定义公式$$\text{Faithfulness Score} \frac{|\text{Number of Claims supported by Context}|}{|\text{Total Number of Claims extracted from Answer}|}$$得分范围0.0 到 1.0。物理意义如果模型生成了一篇长达 500 字的回答从中提取出了 10 个具体的事实性声明Claims其中有 9 个能严格在检索出的 Context 文本中找到支撑论据而有 1 个属于模型自己胡编的数据则该回答的忠实度得分为0.90。2. 计算 Prompt 核心拆解【步骤 1: 提取原子声明】 请从以下回答中提取出所有包含事实判定的原子声明语句Claims Answer: 北京是中国的首都拥有故宫等著名景点常住人口超过5000万。 - Statements: 1. 北京是中国的首都。 2. 北京拥有故宫等著名景点。 3. 北京常住人口超过5000万。 【步骤 2: 严格论据推导核验】 请根据以下给定的【参考上下文】判断上述每个 Statement 是否可以被严格推导得出YES/NO Context: 北京是中华人民共和国首都著名景点包括故宫、天坛。2024年统计常住人口约为2185万人。 - Verification: Statement 1: YES Statement 2: YES Statement 3: NO (与上下文矛盾属于幻觉) - Final Faithfulness 2 / 3 0.667二、答案相关性Answer Relevance拒绝答非所问与车轱辘话即使一个回答 100% 忠实于上下文没有幻觉它依然可能是一个极差的回答——因为模型可能完全没有回答用户的核心问题只是机械地把上下文无关的内容抄了一遍。答案相关性采用了一种极其精妙的**“逆向问题生成Reverse Question Generation”**算法[ 模型生成的 Answer ] ──► [ 让大模型根据该 Answer 反推这是在回答什么问题 ] │ ▼ [ 生成 N 个反推伪问题 (Pseudo Queries) ] │ ▼ (计算伪问题与真实原问题的向量余弦相似度) [ 综合相似度均值 ──► Answer Relevance Score ]1. 答案相关性的数学公式$$\text{Answer Relevance} \frac{1}{n} \sum_{i1}^{n} \text{CosineSimilarity}(E(q), E(q_i^))$$其中 $q$ 为用户原始 Query$q_i^$ 为根据回答反向生成的第 $i$ 个假想问题$E(\cdot)$ 为 Embedding 向量编码器。2. 为什么逆向生成法如此有效如果模型的回答非常切题根据该回答反推出来的假想问题必然与用户的原始问题在语义上高度重合相似度接近 1.0如果模型答非所问反推出来的问题必然与原问题风马牛不相及相似度得分会大幅暴跌。三、生产级 Ragas 自动化评测代码实操from ragas import evaluate from ragas.metrics import faithfulness, answer_relevance from datasets import Dataset # 1. 准备生产真实评测数据集 eval_data { question: [ 公司的远程办公申请审批流是怎样的, 企业级 API 接口报错 40301 代表什么 ], contexts: [ [员工需在 OA 系统提交远程办公申请由直属 Leader 审批后抄送 HR 备案。], [40301 错误代表租户 Token 已过期或未分配对应接口的 RBAC 权限。] ], answer: [ 您需要在 OA 提单直属主管审批通过并抄送 HR 即可生效。, 40301 表示权限不足或 Token 已失效。 ] } dataset Dataset.from_dict(eval_data) # 2. 执行自动化评测流水线 results evaluate( datasetdataset, metrics[faithfulness, answer_relevance] ) print(f【自动化评测大盘】:) print(f全局忠实度 (Faithfulness): {results[faithfulness]:.4f}) print(f全局答案相关性 (Answer Relevance): {results[answer_relevance]:.4f})四、生产治理启示在 CI/CD 自动化回归中Faithfulness 是安全底线严禁出现 0.90 的 Prompt 变更改动合并Answer Relevance 是体验标尺确保在压缩 Prompt 或调整工具时模型的回答始终聚焦用户诉求。深入理解底层算法原理才能用科学的度量标尺推动智能体系统不断逼近极致的工程确定性。
返回列表