fastRAG简介
fastRAG是英特尔实验室开发的一个开源研究框架,旨在构建高效和优化的检索增强生成(RAG)管道。它集成了最先进的大语言模型(LLM)和信息检索技术,为研究人员和开发人员提供了一套全面的工具,用于推进RAG技术的发展。
fastRAG的主要目标是提高RAG系统的计算效率和性能。它利用了多种优化技术,如量化、模型剪枝和蒸馏等,并针对英特尔硬件进行了特定优化,以在英特尔® Xeon® 处理器和英特尔® Gaudi® AI加速器上实现最佳性能。
主要特性
fastRAG具有以下几个关键特性:
-
优化的RAG: 使用最先进的高效组件构建RAG管道,提高计算效率。
-
针对英特尔硬件优化: 利用Intel PyTorch扩展(IPEX)、Optimum Intel和Optimum-Habana等技术,在英特尔硬件上实现最佳性能。
-
可定制性: 基于Haystack和HuggingFace构建,所有组件都与Haystack 100%兼容。
-
多种后端支持: 支持在Gaudi 2、ONNX Runtime、OpenVINO和Llama-CPP等多种后端上运行LLM。
-
优化的嵌入和排序组件: 提供了优化的int8双编码器嵌入模型和交叉编码器排序模型。
-
高效的RAG组件: 集成了ColBERT、Fusion-in-Decoder(FiD)、REPLUG等高效的RAG组件。
安装和使用
fastRAG可以通过pip安装:
pip install fastrag
此外,还可以根据需要安装额外的依赖包:
pip install fastrag[intel] # 英特尔优化后端
pip install fastrag[openvino] # 使用OpenVINO的英特尔优化后端
pip install fastrag[elastic] # ElasticSearch存储支持
pip install fastrag[qdrant] # Qdrant存储支持
pip install fastrag[colbert] # ColBERT+PLAID支持
主要组件
fastRAG提供了多种优化的组件,包括:
-
LLM后端: 支持在Gaudi 2、ONNX Runtime、OpenVINO和Llama-CPP等后端上运行LLM。
-
优化的嵌入模型: 提供了优化的int8双编码器嵌入模型。
-
优化的排序模型: 提供了优化的交叉编码器排序模型。
-
ColBERT: 基于令牌的后期交互检索模型。
-
Fusion-in-Decoder (FiD): 生成式多文档编码器-解码器模型。
-
REPLUG: 改进的多文档解码器。
-
PLAID: 高效的索引引擎。
示例应用
fastRAG可以用于多种RAG应用场景,如:
- 开放域问答
- 文档摘要
- 对话系统
- 内容生成
研究人员可以使用fastRAG快速构建和评估不同的RAG管道,比较不同组件的性能,并进行端到端的优化。
最新更新
fastRAG持续更新和改进,最近的一些重要更新包括:
- 2024年5月: fastRAG V3与Haystack 2.0兼容
- 2023年12月: 支持Gaudi2和ONNX runtime; 优化的嵌入模型; 多模态和聊天演示; REPLUG文本生成
- 2023年6月: ColBERT索引修改功能,支持添加/删除文档
- 2023年5月: 新增RAG与LLM动态提示合成示例
- 2023年4月: 支持Qdrant文档存储
结语
fastRAG为RAG技术的研究和应用提供了一个强大而灵活的框架。它集成了多种优化技术和高效组件,特别针对英特尔硬件进行了优化,可以帮助研究人员和开发人员构建更高效、更强大的RAG系统。随着持续的更新和社区贡献,fastRAG有望在推动RAG技术发展方面发挥重要作用。