Ragas 评测框架深拆:忠实度(Faithfulness)与答案相关性(Answer Relevance)
2026/9/4 21:05:12 网站建设 项目流程

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

在 RAG(检索增强生成)与知识库智能体的质量评测中,开源评测框架Ragas(Retrieval 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_{i=1}^{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( dataset=dataset, 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 或调整工具时,模型的回答始终聚焦用户诉求。

深入理解底层算法原理,才能用科学的度量标尺推动智能体系统不断逼近极致的工程确定性。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询