FlashRAG: 高效检索增强生成研究的模块化工具包

RayRay
FlashRAG检索增强生成Python工具包复现研究自定义组件Github开源项目

FlashRAG简介

FlashRAG是一个为检索增强生成(RAG)研究而设计的Python工具包。随着大型语言模型(LLM)的发展,RAG技术引起了广泛关注,出现了许多新颖的算法和模型来增强RAG系统的各个方面。然而,由于缺乏标准化的实现框架,以及RAG过程本身的复杂性,研究人员很难在一个一致的环境中比较和评估这些方法。为了解决这一挑战,FlashRAG应运而生。

FlashRAG的主要目标是帮助研究人员在一个统一的框架内复现现有的RAG方法,并开发自己的RAG算法。该工具包具有以下特点:

  1. 可扩展和可定制的框架:包含RAG场景所需的基本组件,如检索器、重排器、生成器和压缩器,允许灵活组装复杂的管道。

  2. 全面的基准数据集:收集了32个预处理的RAG基准数据集,用于测试和验证RAG模型的性能。

  3. 预实现的先进RAG算法:基于该框架实现了14种先进的RAG算法,并报告了结果。可以轻松地在不同设置下复现结果。

  4. 高效的预处理阶段:通过提供各种脚本(如用于检索的语料库处理、检索索引构建和文档预检索)简化了RAG工作流程的准备工作。

  5. 优化的执行:使用vLLM和FastChat等工具加速LLM推理,使用Faiss进行向量索引管理,提高了库的效率。

FlashRAG的架构

FlashRAG的整体结构包括三个层次的模块:环境模块、组件模块和管道模块。

  1. 环境模块:是工具包的基础,建立实验所需的数据集、超参数和评估指标。

  2. 组件模块:包括五个主要子组件:判断器、检索器、重排器、精炼器和生成器。

    • 判断器:使用SKR方法评估查询是否需要检索。
    • 检索器:包括稀疏检索和密集检索实现。
    • 重排器:对检索结果进行重新排序,提高相关性。
    • 精炼器:减少检索文档的噪音和token使用,提高最终响应质量。
    • 生成器:使用vLLM和FastChat等加速库实现LLM生成。
  3. 管道模块:处理用户提供的数据,实现并执行相应的RAG过程,提供最终评估输出和中间结果。

FlashRAG支持四类处理流程:

  • 顺序型:RAG过程的线性执行
  • 分支型:对单个查询并行执行多个流程,合并各流程的结果
  • 条件型:使用判断器根据判断结果将查询引导到不同的执行流程
  • 循环型:在检索和生成过程之间进行多次循环以改进结果

FlashRAG架构图

支持的RAG方法

FlashRAG实现了14种RAG方法,采用统一的设置:

  • 生成器:LLAMA3-8B-instruct,输入长度2048
  • 检索器:e5-base-v2作为嵌入模型,每个查询检索5个文档
  • 提示:一致的默认提示模板

这些方法包括:

  • 顺序型:标准RAG、LongLLMLingua、RECOMP等
  • 分支型:SuRe、REPLUG等
  • 条件型:SKR
  • 循环型:Self-RAG、FLARE、IRCoT等

研究人员可以轻松复现这些方法,也可以基于FlashRAG的框架开发新的RAG算法。

基准数据集

FlashRAG收集并处理了35个广泛用于RAG研究的数据集,预处理它们以确保一致的格式,便于使用。这些数据集涵盖了各种任务类型,如问答、多跳问答、长形式问答、多项选择等。所有数据集都可在Hugging Face上获取。

使用FlashRAG

要开始使用FlashRAG,只需从GitHub克隆并安装(需要Python 3.9+):

git clone https://github.com/RUC-NLPIR/FlashRAG.git cd FlashRAG pip install -e .

FlashRAG提供了多种使用方式:

  1. 使用现成的管道:配置config并加载相应的管道即可实现RAG过程。

  2. 构建自定义管道:继承BasicPipeline,初始化所需组件,完成run函数即可实现更复杂的RAG过程。

  3. 直接使用组件:如果只想使用某些组件嵌入到原有代码中,可以参考组件的基本介绍了解输入输出格式。

FlashRAG还提供了详细的文档,包括配置指南、复现指南、基线方法详情等,帮助用户更好地使用该工具包。

总之,FlashRAG为RAG研究提供了一个强大而灵活的工具包,可以帮助研究人员更高效地进行RAG相关实验和开发。无论是复现现有方法还是探索新的RAG算法,FlashRAG都能提供有力支持。

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多