haystack 在评估器和运行结果中分别处理错误,

dwbf0jvd  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

背景

当在较大的数据集上运行评估器时,根据模型的不同,经常会遇到LLM错误,即输出不是有效的JSON。例如,在对ARAGOG数据集运行基准脚本时,我总是有一行得到错误的JSON,因此每次运行脚本时,我都得到一个分数报告,这并不非常有用,如下所示:
| metrics | score |
| ------------ | ------------ |
| context_relevance | NaN |
在这种情况下,LLM基于评估指标的输出(如果出现错误)类似于:
{'statements': [], 'statement_scores': [], 'score': nan}
作为用户,我希望跟踪评估过程中发生的错误,因此理想情况下,这应该作为标志返回,例如:
{'statements': [], 'statement_scores': [], 'score': nan, 'error': True}
然后,在评估分数报告中,我们可以通过忽略错误来返回分数的平均值:
| metrics | score | total_errors |
| ------------ | ------------ | ------------ |
| context_relevance | 0.9 | 1 |

结果

  • 对LLM基于评估器(上下文相关性和忠实度)进行更改,使其返回错误标志。
  • 对LLM基于评估器进行更改,即使有np.nan(例如,建议将此处的np.mean更改为np.nanmean)的行也返回分数。
  • 对EvaluationRunResult的score_report()函数进行更改,以返回总错误。
wgmfuz8q

wgmfuz8q1#

对于这个问题,有一个解决方法,用户可以直接使用评估器individual_scores的输出来执行自定义聚合。

相关问题