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音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-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工具

下拉加载更多