Skip to main content
虽然在许多情况下,评估任务的最终输出就足够了,但在某些情况下,您可能希望评估管道的中间步骤。 例如,对于检索增强生成(RAG),您可能希望:
  1. 评估检索步骤,以确保相对于输入查询检索到了正确的文档。
  2. 评估生成步骤,以确保相对于检索到的文档生成了正确的答案。
在本指南中,我们将使用一个简单的、完全自定义的评估器来评估标准1,并使用一个基于LLM的评估器来评估标准2,以突出这两种场景。 为了评估管道的中间步骤,您的评估器函数应遍历并处理 run/rootRun 参数,该参数是一个 Run 对象,包含管道的中间步骤。

1. 定义您的LLM管道

下面的RAG管道包括:1) 根据输入问题生成维基百科查询,2) 从维基百科检索相关文档,3) 根据检索到的文档生成答案。
需要 langsmith>=0.3.13
此管道将生成一个类似这样的跟踪:evaluation_intermediate_trace.png

2. 创建数据集和示例以评估管道

我们正在构建一个非常简单的数据集,包含几个示例来评估管道。 需要 langsmith>=0.3.13

3. 定义您的自定义评估器

如上所述,我们将定义两个评估器:一个评估检索到的文档相对于输入查询的相关性,另一个评估生成的答案相对于检索到的文档的幻觉情况。我们将使用LangChain LLM包装器,以及 with_structured_output 来定义幻觉评估器。 这里的关键是,评估器函数应遍历 run / rootRun 参数以访问管道的中间步骤。然后,评估器可以处理中间步骤的输入和输出,根据所需的标准进行评估。 示例为了方便使用了 langchain,但这不是必需的。

4. 评估管道

最后,我们将使用上面定义的自定义评估器运行 evaluate
实验将包含评估结果,包括评估器的评分和评论:evaluation_intermediate_experiment.png

相关内容