five

Synthetic Data for IR and RAG Evaluation

收藏
github2023-12-04 更新2024-05-31 收录
下载链接:
https://github.com/mddunlap924/LangChain-SynData-RAG-Eval
下载链接
链接失效反馈
官方服务:
资源简介:
本仓库展示了使用LangChain、Llama2-Chat以及零样本和少量样本提示工程来生成用于信息检索(IR)和检索增强生成(RAG)评估的合成数据集。合成数据包括给定上下文的查询和答案,用于评估IR和RAG系统的性能。

This repository demonstrates the generation of synthetic datasets for information retrieval (IR) and retrieval-augmented generation (RAG) evaluation using LangChain, Llama2-Chat, along with zero-shot and few-shot prompt engineering. The synthetic data comprises queries and answers paired with given contexts, which are used to assess the performance of IR and RAG systems.
创建时间:
2023-10-21
原始信息汇总

合成数据生成使用LangChain进行IR和RAG评估

简介

大型语言模型(LLMs)已经改变了信息检索(IR)和搜索的方式,通过理解复杂的查询。本仓库展示了用于生成复杂合成数据集的概念和包,用于IR和检索增强生成(RAG)评估。

生成的合成数据是一个给定上下文的查询和答案。例如:

提供的上下文: Pure TalkUSA是一个总部位于美国乔治亚州科文顿的移动虚拟网络运营商。它最著名的服务是其行业首创的数据滚动服务,该服务已被终止。Pure TalkUSA是Telrite Corporation的子公司。自带电话!

合成生成的查询: Pure TalkUSA提供的突出服务是什么?

合成生成的答案: Pure TalkUSA的突出服务是其行业首创的数据滚动服务。

构建IR或RAG系统时,上下文、查询和答案的数据集对于评估系统性能至关重要。人工标注的数据集提供了优秀的基准,但获取成本高且困难;因此,使用LLMs生成的合成数据集是一个有吸引力的解决方案和补充。

通过使用LLM提示工程,可以生成多样化的合成查询和答案,形成一个强大的验证数据集。本仓库展示了生成合成数据的过程,同时强调了零样本和少样本提示的重要性。

亮点

本仓库的一些关键亮点包括:

  • 仅使用消费级硬件上的本地LLM模型,不进行外部API调用,这至关重要,以确保数据隐私。
  • 展示了零样本和少样本提示,用于高度可定制的查询和答案生成。
  • 提供了使用LangChain的示例,包括自定义提示工程、输出解析器和自动修复解析器以获取结构化数据、批量GPU推理与链、LangChain表达语言(LCEL)。
  • 通过量化减少模型大小,以适应消费级硬件。

示例笔记本

使用LangChain生成上下文-查询-答案

  1. 使用自定义提示和输出解析器的LangChain进行结构化数据输出:参见gen-question-answer-query.ipynb,了解合成上下文-查询-答案数据生成的示例。关键方面包括:
    • LangChain自定义提示模板
    • PydanticOutputParser
    • OutputFixingParser

使用LangChain生成上下文-查询

  1. LangChain自定义Llama2-Chat提示:参见qa-gen-query-langchain.ipynb,了解如何为上下文-查询生成构建LangChain自定义提示模板。展示了LangChain的一些功能,如自定义提示模板、Hugging Face本地管道、4位量化、批量GPU推理。

不使用LangChain生成上下文-查询

  1. 零样本和少样本提示工程:参见qa-gen-query.ipynb,了解自定义数据集的合成上下文-查询数据生成示例。展示了两种提示技术:基本零样本查询生成和少样本引导的坏问题(GBQ)。

背景

IR系统的主要功能是检索,旨在确定用户查询与要检索内容之间的相关性。实现IR或RAG系统需要用户特定的文档。然而,缺乏自定义数据集的标注数据集会妨碍系统评估。

指标

问答(QA)系统(例如RAG系统)有两个组件:

  1. 检索器 - 检索回答查询所需的最相关信息
  2. 生成器 - 使用检索到的信息生成答案

评估QA系统时,需要分别和整体评估这两个组件。

好处

使用LLM提示工程生成合成数据的一些关键好处包括:

  • 定制IR任务查询生成:提示LLMs提供了生成查询类型的巨大灵活性。
  • 零样本或少样本标注:开发者可以向LLMs提供特定领域的示例查询,大大增强查询生成。
  • 更长的上下文长度:GPT-based LLM模型,如Llama2,提供长达4,096个令牌的上下文长度,增强了文档解析和查询生成控制。

提示模板

本仓库将使用Llama2生成合成查询,因为它可以在消费级GPU上本地运行。以下是Llama2 Chat的提示模板:

<s>[INST] <<SYS>> {your_system_message} <</SYS>>

{user_message_1} [/INST]

  • 系统提示:系统提示<<SYS>>是开放访问模型的一个未被充分认识的优势,您可以完全控制聊天应用中的系统提示。
  • 用户消息:用户提供的查询或消息。[INST]和[/INST]帮助识别用户输入的内容,以便Llama知道如何正确响应。

问题

本仓库将尽力维护。如果您遇到任何问题或希望进行改进,请提出问题或提交拉取请求。

TODOs

  • [ ] 使用DeepSpeed ZeRO-Inference将大型LLM权重卸载到非GPU资源,以便在消费级硬件上运行+70B模型。
  • [ ] 欢迎提出您希望添加的功能的问题。
搜集汇总
数据集介绍
main_image_url
构建方式
该数据集通过LangChain框架结合Llama2-Chat模型,采用零样本和少样本提示工程生成合成数据,用于信息检索(IR)和检索增强生成(RAG)系统的评估。数据生成过程包括从文档或文本源中提取上下文,并基于这些上下文生成查询和答案。通过这种方式,数据集能够模拟真实场景中的信息检索任务,为系统性能评估提供多样化的测试用例。
使用方法
该数据集的使用方法包括通过LangChain框架进行上下文-查询-答案的生成,用户可以根据具体需求定制提示模板和输出解析器。数据集提供了多个示例笔记本,展示了如何使用LangChain进行批量推理、输出解析和错误处理。用户还可以通过零样本和少样本提示工程生成特定任务的查询,并结合量化技术优化模型性能。数据集的使用场景广泛,适用于信息检索、问答系统以及检索增强生成系统的评估和优化。
背景与挑战
背景概述
Synthetic Data for IR and RAG Evaluation 数据集由 Myles Dunlap 等人于近期创建,旨在通过 LangChain 和 Llama2-Chat 等工具生成用于信息检索(IR)和检索增强生成(RAG)评估的合成数据。该数据集的核心研究问题在于如何利用大语言模型(LLMs)生成高质量的上下文-查询-答案三元组,以替代昂贵且难以获取的人工标注数据。通过零样本和少样本提示工程,该数据集为 IR 和 RAG 系统的离线评估提供了灵活且可扩展的解决方案,显著推动了信息检索和生成模型的研究进展。
当前挑战
该数据集在构建过程中面临多重挑战。首先,生成高质量的合成数据需要克服大语言模型在本地硬件上的性能限制,尤其是在参数较少的情况下,如何保持生成数据的多样性和准确性成为关键问题。其次,零样本和少样本提示工程虽然提供了高度定制化的查询生成能力,但其复杂性和对提示模板的依赖性增加了数据生成的难度。此外,如何确保生成的数据能够准确反映真实场景中的信息检索需求,尤其是在多样化的 IR 任务中,仍然是一个亟待解决的挑战。最后,数据隐私和本地化处理的需求也限制了对外部 API 的依赖,进一步增加了技术实现的复杂性。
常用场景
经典使用场景
在信息检索(IR)和检索增强生成(RAG)系统的开发与评估中,Synthetic Data for IR and RAG Evaluation数据集被广泛用于生成上下文、查询和答案三元组。通过使用LangChain和Llama2-Chat等工具,研究人员能够生成多样化的合成数据,以模拟真实场景中的查询和响应。这种数据集特别适用于评估系统在不同上下文中的检索能力和生成质量,帮助开发者优化系统的性能。
解决学术问题
该数据集解决了信息检索和生成系统中缺乏高质量标注数据的难题。传统的人工标注数据集成本高昂且难以获取,而通过大语言模型(LLMs)生成的合成数据能够以较低的成本提供丰富的上下文-查询-答案对。这不仅降低了数据获取的门槛,还为研究人员提供了灵活的工具,能够根据特定任务需求生成定制化的数据集,从而推动IR和RAG系统的研究进展。
实际应用
在实际应用中,该数据集被广泛用于企业级搜索引擎、智能客服系统以及知识库问答系统的开发与优化。通过生成多样化的查询和上下文数据,企业能够更全面地测试系统的检索和生成能力,确保其在面对复杂查询时仍能提供准确的答案。此外,该数据集还支持离线评估,帮助开发者在部署前对系统进行全面的性能分析,从而减少上线后的风险。
数据集最近研究
最新研究方向
近年来,随着大语言模型(LLMs)在信息检索(IR)和检索增强生成(RAG)领域的广泛应用,生成合成数据以评估这些系统的性能成为了研究热点。该数据集通过LangChain、Llama2-Chat以及零样本和少样本提示工程,展示了如何生成复杂的合成数据,用于IR和RAG系统的评估。合成数据的生成不仅能够弥补人工标注数据的高成本和稀缺性,还能通过多样化的查询和答案生成,构建出更加鲁棒的验证数据集。当前的研究方向主要集中在如何通过本地LLM模型和提示工程技术,生成高度定制化的查询和答案,从而提升IR和RAG系统的评估效果。此外,量化技术的应用使得模型能够在消费级硬件上运行,进一步推动了这一领域的发展。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作