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

相关