跳转到主要内容

category

上下文

LLM操作平台,如LangChain,可以很容易地将LLM组件(例如,模型、文档检索器、数据加载器)组装到链中。问答是这些链中最受欢迎的应用之一。但是,确定哪些参数(例如,块大小)或组件(例如,模型选择、VectorDB)产生最佳QA性能通常并不总是显而易见的。

在这里,我们介绍了一种用于评估QA链的简单工具(请参阅此处的代码),称为自动评估器

  1. 要求用户输入一组感兴趣的文档
  2. 使用LLM(GPT-3.5-turbo)从这些文档中自动生成问答对
  3. 使用指定的一组用户界面选择的配置生成问答链
  4. 使用链生成对每个问题的回答
  5. 使用LLM(GPT-3.5-turbo)对回答进行评分
  6. 探索各种链条配置的评分

用户输入

这是作为一个Streamlight应用程序实现的,用户可以在其中提供一组文档。可选地,用户还可以提供一组相应的问答对(参见此处的示例)。如果用户不提供这一点,应用程序会使用QAGenerationChain自动生成一个评估集。您可以在这里看到用于此操作的提示,它从随机块中选择问答对进行输入。


链条

UI有各种旋钮,可以用来创建QA链。例如,您可以从较新的文档检索器(例如SVM)中进行选择,也可以在向量库中使用相似性搜索。您可以选择各种文档拆分方法、拆分大小和拆分重叠。您还可以从检索到的文档中选择用于问题答案的最终摘要的LLM。这些不同的零件可以使用Langchain快速轻松地组装成一个链条进行评估。

评分

我们使用LLM(GPT-3.5-turbo)来对检索到的文档的质量进行评分,这是一个受LLama Index(此处)与Jerry Liu讨论启发的想法。我们还使用LLM来对相对于评估集的答案质量进行评分。在这两种情况下,我们都会公开提示。用户可以很容易地设计它们。我们还将结果公布给人类检查;描述性提示可用于向LLM评分者询问其评估的详细解释。


比较

我们积累了实验结果,以便在各种测试中进行比较,并提供了平均分数(答案和检索)与模型延迟(以秒为单位)的表格和散点图。


未来发展方向

欢迎反馈和贡献;例如,我们希望包括其他检索器(如LLama Index)和其他模型(如各种HuggingFace模型)。我们希望提高eval过程中各个阶段的性能(例如,特别是延迟),并将其作为一个免费的托管工具提供(因为现在有些用户将无法访问GPT-4或Claude)。最后,我们想将其扩展到其他任务(例如聊天),并在给定用户指定目标(例如聊天或QA目标)的情况下,自动化最佳链组装过程(例如使用代理)。

文章链接