构建和探索高效的检索增强生成模型和应用程序
:round_pushpin: 安装 • :rocket: 组件 • :books: 示例 • :red_car: 入门 • :pill: 演示 • :pencil2: 脚本 • :bar_chart: 基准测试
fastRAG是一个研究框架,用于构建高效和优化的检索增强生成管道,结合了最先进的大型语言模型和信息检索。fastRAG旨在为研究人员和开发人员提供一套全面的工具,推进检索增强生成技术的发展。
欢迎提出评论、建议、问题和拉取请求! :heart:
[!IMPORTANT] 现在兼容Haystack v2+。请报告您发现的任何潜在问题。
:mega: 更新
- 2024-05: fastRAG V3 兼容 Haystack 2.0 :fire:
- 2023-12: 支持Gaudi2和ONNX运行时;优化嵌入模型;多模态和聊天演示;REPLUG文本生成。
- 2023-06: ColBERT索引修改:添加/删除文档;请参阅IndexUpdater。
- 2023-05: RAG与LLM和动态提示综合示例。
- 2023-04: 支持Qdrant
DocumentStore
。
主要特性
- 优化的RAG:使用最先进的高效组件构建RAG管道,以实现更大的计算效率。
- 为英特尔硬件优化:利用Intel拓展(IPEX)、🤗 Optimum Intel和🤗 Optimum-Habana,在英特尔®至强®处理器和英特尔®Gaudi® AI加速器上实现最佳运行。
- 可定制的:fastRAG使用Haystack和HuggingFace构建。fastRAG的所有组件都100%兼容Haystack。
:rocket: 组件
有关fastRAG中各种独特组件的简要概述,请参阅组件概述页面。
LLM后端 | |
英特尔 Gaudi 加速器 | 在Gaudi 2上运行LLM |
ONNX运行时 | 使用优化的ONNX运行时运行LLM |
OpenVINO | 使用OpenVINO运行量化的LLM |
Llama-CPP | 在Llama CPP后端上运行RAG管道的LLM |
优化组件 | |
嵌入模型 | 优化的int8双编码器 |
排序器 | 优化的/稀疏交叉编码器 |
RAG高效组件 | |
ColBERT | 基于Token的后期交互 |
Fusion-in-Decoder (FiD) | 生成性多文档编码解码器 |
REPLUG | 改进的多文档解码器 |
PLAID | 非常高效的索引引擎 |
:round_pushpin: 安装
初步需求:
- Python 3.8或更高版本。
- PyTorch 2.0或更高版本。
要设置软件,请从pip
安装或克隆项目以获取最新更新。在新创建的虚拟环境中运行以下命令:
pip install fastrag
额外的软件包
根据您对fastRAG的具体使用情况,可以安装额外的依赖项:
# 其他引擎/组件
pip install fastrag[intel] # 英特尔优化后端[Optimum-intel, IPEX]
pip install fastrag[openvino] # 使用OpenVINO的英特尔优化后端
pip install fastrag[elastic] # 支持ElasticSearch存储
pip install fastrag[qdrant] # 支持Qdrant存储
pip install fastrag[colbert] # 支持ColBERT+PLAID;需要FAISS
pip install fastrag[faiss-cpu] # 基于CPU的Faiss库
pip install fastrag[faiss-gpu] # 基于GPU的Faiss库
要使用最新版本的fastRAG,可以使用以下命令安装:
pip install .
开发工具
pip install .[dev]
许可
该代码按Apache 2.0 许可许可。
免责声明
这不是正式的英特尔产品。