|
FlashRAG 是一个用于再现和开发检索增强生成 (RAG) 研究的 Python 工具包。工具包包括 32 个预处理的基准 RAG 数据集和 12 个最先进的 RAG 算法。 https://github.com/RUC-NLPIR/FlashRAG https://arxiv.org/html/2405.13576v1
框架特点: - 可扩展、可定制:包括 RAG 场景的基本组件,例如检索器、重新排序器、生成器和上下文压缩器,允许灵活组装复杂的管道流程。
- 全面的基准数据集:32 个预处理的 RAG 基准数据集的集合,用于测试和验证 RAG 模型的性能。
- 预先实现的高级 RAG 算法:具有 12 种先进的 RAG 算法并报告结果。在不同设置下轻松重现结果。
- 高效的预处理阶段:通过提供检索语料处理、检索索引构建、文档预检索等各种脚本,简化 RAG 工作流程准备。
- 优化执行:通过 vLLM、用于 LLM 推理加速的 FastChat 和用于矢量索引管理的 Faiss 等工具,提高了库的效率。
内置的先进的RAG算法及评测效果表: | Method | Type | NQ (EM) | TriviaQA (EM) | Hotpotqa (F1) | 2Wiki (F1) | PopQA (F1) | WebQA(EM) | Specific setting |
|---|
| Naive Generation | Sequential | 22.6 | 55.7 | 28.4 | 33.9 | 21.7 | 18.8 |
| | Standard RAG | Sequential | 35.1 | 58.9 | 35.3 | 21.0 | 36.7 | 15.7 |
| | AAR-contriever-kilt | Sequential | 30.1 | 56.8 | 33.4 | 19.8 | 36.1 | 16.1 |
| | LongLLMLingua | Sequential | 32.2 | 59.2 | 37.5 | 25.0 | 38.7 | 17.5 | Compress Ratio=0.5 | | RECOMP-abstractive | Sequential | 33.1 | 56.4 | 37.5 | 32.4 | 39.9 | 20.2 |
| | Selective-Context | Sequential | 30.5 | 55.6 | 34.4 | 18.5 | 33.5 | 17.3 | Compress Ratio=0.5 | | Ret-Robust | Sequential | 42.9 | 68.2 | 35.8 | 43.4 | 57.2 | 33.7 | Use LLAMA2-13B with trained lora | | SuRe | Branching | 37.1 | 53.2 | 33.4 | 20.6 | 48.1 | 24.2 | Use provided prompt | | REPLUG | Branching | 28.9 | 57.7 | 31.2 | 21.1 | 27.8 | 20.2 |
| | SKR | Conditional | 25.5 | 55.9 | 29.8 | 28.5 | 24.5 | 18.6 | Use infernece-time training data | | Self-RAG | Loop | 36.4 | 38.2 | 29.6 | 25.1 | 32.7 | 21.9 | Use trained selfrag-llama2-7B | | FLARE | Loop | 22.5 | 55.8 | 28.0 | 33.9 | 20.7 | 20.2 |
| | Iter-Retgen, ITRG | Loop | 36.8 | 60.1 | 38.3 | 21.6 | 37.9 | 18.2 |
|
|