You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ragas评估RAG时answer_relevancy返回NaN的原因排查

Ragas中answer_relevancy返回NaN的排查与解决

常见原因及修复方向

1. 数据集格式问题

  • 必填字段缺失/无效:answer_relevancy仅依赖question和answer两个字段,若某条样本的这两个字段为空、纯空格或包含无法处理的特殊字符,会直接导致计算返回NaN。先逐条检查数据集,确保每条样本都有有效的问题和答案文本。
  • 字段类型不统一:如果数据集里的question或answer混合了字符串、列表等不同类型,也会引发解析异常。确保所有样本的这两个字段都是字符串类型。

2. 模型调用故障

  • 模型配置错误:计算answer_relevancy需要嵌入模型和LLM支持,若Colab中API密钥错误、模型名称写错(比如用了不存在的OpenAI模型)、网络无法访问模型服务,都会导致模型调用失败,返回NaN。检查模型初始化代码,确认密钥、模型参数正确,且网络连通正常。
  • 模型输出异常:部分模型可能返回不符合Ragas预期的输出格式,导致分数计算失败。可以临时切换到Ragas默认的模型测试,看是否能正常运行。

3. 关于reference的澄清

answer_relevancy不需要reference数据,它的作用是评估生成答案和问题的匹配度,和参考答案无关。所以reference是单个字符串还是列表,都不会影响这个指标的计算——除非你的数据集格式混乱,导致其他字段的读取出现问题。

4. 是否是Ragas的bug?

大概率不是。先验证官方示例代码是否能正常运行:

from datasets import Dataset
from ragas.metrics import answer_relevancy

# 构建测试数据集
test_data = Dataset.from_dict({
    "question": ["What is Python?"],
    "answer": ["Python is a high-level programming language."]
})

# 计算指标
result = answer_relevancy.calculate(test_data)
print(result)

如果示例能正常输出分数,说明你的数据集或模型配置有问题;如果示例也返回NaN,尝试升级Ragas到最新版本:

pip install --upgrade ragas

若仍无法解决,再去Ragas的GitHub仓库提交issue排查。


内容的提问来源于stack exchange,提问作者Chandima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:52:36