five

CNN/Daily Mail

收藏
github2024-07-30 更新2024-07-31 收录
下载链接:
https://github.com/hillaryke/rag-optimization-cnn-dailymail
下载链接
链接失效反馈
官方服务:
资源简介:
CNN/Daily Mail数据集用于此项目,该数据集在Hugging Face数据集库中可用。数据集加载自`datasets`库,并提取了RAG系统所需的必要字段。

The CNN/Daily Mail dataset is utilized for this project, and it is available in the Hugging Face Datasets library. The dataset is loaded from the `datasets` library, and the necessary fields required for the RAG system are extracted.
创建时间:
2024-07-27
原始信息汇总

RAG System Optimization for CNN/Daily Mail 数据集概述

目标

该项目的目标是:

  • 开发一个针对CNN/Daily Mail数据集的检索增强生成(RAG)系统。
  • 使用RAGAS基准测试RAG系统的性能。
  • 实施优化技术以提高RAG系统的性能。

数据准备

项目使用了CNN/Daily Mail数据集。该数据集可通过Hugging Face数据集库获取。使用datasets库加载数据集,并提取RAG系统所需的必要字段。

python dataset = load_dataset("cnn_dailymail", "3.0.0", split="validation[:1000]")

上述代码加载了CNN/Daily Mail数据集验证集的前1000个示例。加载数据的函数可在src/rag_pipeline/load_docs.py中找到。

为了加快加载速度,提取了article列作为页面内容,并保存到CSV文件中。

RAG系统设置

基本RAG系统

使用ChromaDB向量存储库的经验,决定将其用于RAG系统的初始设置。

设置基本RAG系统的步骤如下:

  1. 加载文档:从CSV文件加载数据集,然后仅检索article列作为页面内容以获取文档。
  2. 分割文档:使用langchain的RecursiveChararacterTestSplitter将文档分割成小块。
  3. 创建向量存储库:使用langchain_chroma从分割的文档创建向量存储库。
  4. 设置LLM:使用OpenAI的gpt-3.5-turbo进行测试设置,随后升级到gpt-4o。
  5. 创建可用于检索文档和生成答案的RAG链。RAG链简单地使用langchain的RetrievalQA

使用最佳实践推进RAG系统

遵循以下步骤设置RAG系统,使其可重用和可扩展:

  1. 创建一个RAGSystem类,用于设置RAG系统。该类可在src/rag_pipeline/rag_system.py中找到。

  2. 添加加载文档、分割文档、创建向量存储库、设置LLM、创建RAG链等方法和类。

  3. 使用示例:

    python from src.rag_pipeline.rag_system import RAGSystem

    rag_system = RAGSystem( model_name = "gpt-4o", embeddings = embeddings,

    这里可以添加更多参数来自定义RAG系统

    )

    rag_system.initialize()

创建自定义RAG链

创建了一个自定义RAG链,用于检索文档和生成答案,以允许对RetrievalQA链进行自定义。自定义RAG链可在src/rag_pipeline/rag_utils.py中找到。

创建自定义RAG链的步骤如下:

  • 定义辅助函数:定义了两个辅助函数,format_docs用于将文档列表格式化为连接字符串,ragas_output_parser用于从文档列表中提取页面内容。
  • 自定义生成器LLM的提示模板:在设置(misc/settings.py)中创建自定义提示模板GENERATOR_TEMPLATE。该模板与语言模型(llm)和字符串输出解析器组合,形成RAG链的生成器组件。
  • 创建上下文检索器:设置一个名为context_retriever的Langchain RunnableParallel对象,用于处理相关文档的检索。它将检索器与format_docs函数结合,以获取和格式化上下文,同时保持问题不变。
  • 过滤数据集:创建一个名为filter_langsmith_dataset的Langchain RunnableLambda对象,用于过滤输入,确保只有问题是字典时才进行处理。注意,此函数最初用于RAGAS+LangSmith评估,但适用于任何数据集。
  • 构建RAG链:最终的RAG链被构建为一个Langchain RunnableParallel对象。它执行以下操作:- 通过过滤器处理问题 - 检索和格式化上下文 - 使用生成器生成答案 - 使用ragas_output_parser提取上下文。
  • 返回RAG链:函数返回构建的RunnableParallel对象,表示为LangSmith集成设置的完整RAG链。

优化技术

为了解决识别出的改进领域,计划实施不同的优化技术。计划实施的技术包括:

  • 提示工程:尝试不同的提示格式,引导模型生成更事实准确和相关的答案。这可以提高answer_correctness、faithfulness和answer_relevancy。
  • 使用混合检索:结合密集(例如神经网络)和稀疏(例如BM25)检索模型,可以利用两种方法的优势,提高文档检索性能。
  • 使用多查询检索器:通过生成多个查询,这可以帮助找到由于措辞细微差异或向量表示不完美而可能遗漏的文档。
  • 尝试不同的嵌入模型:使用先进的嵌入模型,如BERT或其他基于Transformer的模型,可以提高检索文档的质量,从而改善答案生成。
  • 重排序机制:在初始检索后,根据相关性分数对检索到的文档进行重排序。这可以帮助优先考虑最相关的文档,提高answer_correctness和answer_relevancy。
  • 改进的分块策略:优化块大小和重叠参数可以帮助捕获更多上下文相关和连贯的文档部分,从而提高检索上下文的质量。

优化技术的结果

提示工程

尝试了不同的提示格式,引导模型生成更事实准确和相关的答案。

结果:显著提高了答案的正确性、忠实度和相关性。详细结果可在这里找到。

混合检索

实施了结合密集和稀疏检索模型的混合检索机制,以提高文档检索性能。

结果:轻微提高了答案的相关性,但略微降低了上下文精度和忠实度。详细结果可在这里找到。

使用多查询检索器

  • 实施了一个多查询检索器,生成多个查询以检索文档。
  • 多查询检索器使用llm(gpt-3.5-turbo)基于问题生成n个查询。
  • 然后使用RAG系统的基础检索器为每个查询检索文档。
  • 每个查询检索到的文档随后被组合和排序。

结果:显著提高了答案的相关性,略微降低了上下文精度。详细结果可在这里找到。

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集的构建过程始于对CNN/Daily Mail数据集的加载,通过Hugging Face的datasets库提取必要字段。具体而言,从验证集中提取了前1000个样本,并将其中的文章列保存为CSV文件以加速加载。随后,使用langchain的RecursiveCharacterTestSplitter将文档分割为小块,并利用langchain_chroma创建向量存储。最后,通过OpenAI的gpt-3.5-turbo模型进行初步测试,并计划升级至gpt-4o。
特点
该数据集的主要特点在于其结合了检索增强生成(RAG)系统,通过优化技术如提示工程、混合检索、多查询检索器、分块策略和不同嵌入模型的实验,显著提升了系统的性能。此外,数据集的构建过程中采用了pgvector向量存储,以提高性能和可扩展性。
使用方法
使用该数据集时,首先需克隆GitHub仓库并配置OpenAI API密钥。接着,通过poetry安装依赖项并运行项目。数据集的加载和处理代码位于src/rag_pipeline/load_docs.py中。用户可以通过导入RAGSystem类并初始化RAG系统,进一步自定义和优化系统。评估RAG系统的性能可通过RAGAS工具进行,具体步骤包括设置评估管道、生成评估Q&A对以及运行基准测试。
背景与挑战
背景概述
Daily Mail数据集,源自CNN/Daily Mail新闻文章,是自然语言处理领域中的一个重要资源。该数据集由主要研究人员或机构创建,旨在解决信息检索和文本生成中的核心问题。其创建时间可追溯至数据科学早期阶段,对推动新闻文本处理技术的发展具有显著影响。通过提供丰富的新闻文章数据,Daily Mail数据集为研究人员提供了一个宝贵的资源,以开发和优化如检索增强生成(RAG)系统等先进技术。
当前挑战
Daily Mail数据集在构建和应用过程中面临多项挑战。首先,数据集的构建需要处理大量新闻文章,确保数据的准确性和一致性。其次,在应用RAG系统时,如何有效地从海量数据中检索相关信息,是一个关键挑战。此外,优化RAG系统的性能,包括通过提示工程、混合检索和多查询检索等技术手段,以提高系统的准确性和效率,也是当前研究的重点。最后,数据集的评估和验证,特别是使用RAGAS等工具进行系统性能的量化评估,仍需进一步完善和标准化。
常用场景
经典使用场景
Daily Mail数据集的经典使用场景主要集中在开发和优化检索增强生成(RAG)系统。该数据集被广泛用于训练和评估RAG系统,通过从CNN/Daily Mail数据集中提取的新闻文章,系统能够生成与查询相关的文本。这种应用场景在自然语言处理领域尤为重要,特别是在问答系统和信息检索系统中,能够显著提升系统的准确性和响应速度。
实际应用
在实际应用中,Daily Mail数据集被用于构建和优化各种智能问答系统。例如,新闻机构可以利用基于该数据集训练的RAG系统,快速生成新闻摘要或回答读者的问题。此外,该数据集还被用于开发智能客服系统,帮助企业更高效地处理客户查询。通过这些应用,Daily Mail数据集不仅提升了信息检索的效率,还增强了用户体验。
衍生相关工作
Daily Mail数据集的广泛应用催生了多项相关研究和工作。例如,研究者们基于该数据集开发了多种优化技术,如提示工程、混合检索和多查询检索器,这些技术在提升RAG系统性能方面取得了显著成果。此外,该数据集还促进了跨编码器重排序等高级技术的研究,这些技术在提高答案的准确性和相关性方面具有重要意义。这些衍生工作不仅丰富了自然语言处理领域的研究内容,也为实际应用提供了强有力的技术支持。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作