简介#

这些任务旨在测试检索增强型生成 (RAG) 架构在各种数据集上的性能。

您可以查看注册表中检索任务的最新列表

from langchain_benchmarks import registry

registry.filter(Type="RetrievalTask")
名称类型数据集 ID描述
LangChain 文档问答检索任务452ccafc-18e1-4314-885b-edd735f17b9d基于 LangChain Python 文档快照的问答。环境提供文档和检索器信息。每个示例都包含一个问题和参考答案。成功与答案相对于参考答案的准确性成正比。我们还衡量模型响应相对于检索到的文档(如果有)的忠实度。
半结构化收益检索任务c47d9617-ab99-4d6e-a6e6-92b8daf85a7d基于包含表格和图表 PDF 的问答。该任务提供原始文档以及工厂方法,可轻松索引它们并创建检索器。每个示例都包含一个问题和参考答案。成功与答案相对于参考答案的准确性成正比。我们还衡量模型响应相对于检索到的文档(如果有)的忠实度。

任务资源#

除了名称、daset_id 和描述之外,每个检索任务还提供一些辅助函数,您可以使用这些函数来配置您的管道。

  • get_docs: callable - 从缓存中获取原始 Document 对象。每个任务都可能提供可配置的参数,您可以使用这些参数来定义如何获取原始文档。

  • retriever_factories: Dict[str, callable] - 定义一些可配置的管道,您可以使用这些管道来转换文档、嵌入它们并将它们添加到向量存储(或其他检索器对象)中,以便在下游使用。它们使用 LangChain 的缓存 index API,因此您不必为每次评估重新索引。对于自定义转换,我们要求您提供一个 transformation_name 来隔离缓存和向量存储命名空间。目前(2023/11/21),这些都使用 Chroma 作为向量存储,但您可以将其替换掉

  • chain_factories: Dict[str, callable] - 定义一些您可以配置的现成架构来评估。

评估时,您不必使用任何这些工厂方法。您可以改为在评估之前定义自己的自定义架构或 ETL 管道。它们旨在促进特定设计决策的评估和比较。

数据集模式#

每个任务都对应一个具有以下模式的 LangSmith 数据集

输入

  • question: str - 用户问题

输出

  • answer: str - 预期答案