promptflow [BUG] 使用evaluate()在测试数据集上评估时,使用SimilarityEvaluator返回NaN,

kzmpq1sx  于 2个月前  发布在  其他
关注(0)|答案(4)|浏览(33)

描述bug

在使用相似度评估器对evaluate()数据集进行评估时,我遇到了一些情况,结果不是数字。

如何重现bug
模型配置

{azure_deployment= "gpt4-turbo-preview", api_version="2024-02-01"}

jsonl文件

{"Question":"How can you get the version of the Kubernetes cluster?","Answer":"{\"code\": \"kubectl version\" }","output":"{code: kubectl version --output=json}"}

评估配置

result = evaluate(
    data="testdata2.jsonl",
    evaluators={
        "similarity": SimilarityEvaluator(model_config)
    },
    evaluator_config={
        "default": {
            "question": "${data.Question}",
            "answer": "${data.output}",
            "ground_truth": "${data.Answer}"
        }
    }
)

预期行为

返回的值应该是数字

运行信息(请填写以下信息):

  • 使用pf -v的Promptflow包版本:
{
 "promptflow": "1.1.1",
 "promptflow-azure": "1.11.0",
 "promptflow-core": "1.11.0",
 "promptflow-devkit": "1.11.0",
 "promptflow-evals": "0.3.0",
 "promptflow-tracing": "1.11.0"
}
  • 操作系统:Windows 11
  • 使用python --version的Python版本:3.10.11
    附加上下文
  • _similarity.py中检查实际记录的值表明,实际返回的值是字符串'The'。
  • 我注意到这个问题通常发生在答案与基于问题的LLM响应不匹配的情况下。例如,{Question: What is the capital of France?, Answer: Washington DC, }
fumotvh3

fumotvh31#

我已向similarity.prompty添加了以下文本:“您将用1到5之间的单个数字进行回复。您将不包含其他文本或信息”,这似乎解决了问题。

bnlyeluc

bnlyeluc2#

你好,@singankit 和 @luigiw ,请问你们能帮忙看一下这个问题吗?

k7fdbhmy

k7fdbhmy3#

@bhonris ,感谢你报告这个问题并分享了一个解决方法。这是一个已知的问题,一些预览版的OpenAI模型会导致NaN结果。请也尝试使用稳定版本的模型。

7qhs6swi

7qhs6swi4#

你好,我们发送这个友好的提醒是因为我们在30天内没有收到你的回复。我们需要更多关于这个问题的信息来帮助解决它。请务必给我们提供你的反馈。如果我们在7天内没有收到你的回复,问题将自动关闭。谢谢!

相关问题