综合介绍
XRAG(eXamining the Core)是一个专为评估高级检索增强生成(RAG)系统的基础组件而设计的基准框架。通过剖析和分析每个核心模块,XRAG提供了不同配置和组件如何影响RAG系统整体性能的见解。该框架支持多种检索方法和评估指标,旨在帮助研究人员和开发者优化和改进RAG系统的各个方面。
XRAG支持全面的RAG测评Benchmark与Toolkit,涵盖了50+以上的测试指标与RAG的全面评测与失败点优化,支持4类Advanced RAG模块( 查询重构, 先进检索, 问答模型, 后处理) 的对比, 并集成模块内的多种具体实现,支持OpenAI大模型 API。XRAG1.0版本还提供了简单的Web UI Demo、轻交互的数据上传与统一标准格式, 集成了 RAG失败点检测与优化方法。 目前文章和代码已开源发布。
功能列表
- 综合评估框架:支持多维度评估,包括基于LLM的评估、深度评估和传统指标。
- 灵活架构:模块化设计,支持多种检索方法和自定义检索策略。
- 多LLM支持:无缝集成OpenAI模型,支持本地模型(如Qwen, LLaMA等)。
- 丰富的评估指标:包括传统指标(F1, EM, MRR等)和基于LLM的指标(真实性、相关性等)。
- 高级检索方法:支持BM25、向量语义搜索、树结构检索等多种检索方式。
- 用户友好界面:提供命令行界面和Web UI,支持交互式评估和可视化。
使用帮助
安装流程
- 克隆仓库:
git clone https://github.com/DocAILab/XRAG.git
cd XRAG
- 安装依赖:
pip install -r requirements.txt
- 配置环境: 根据需要修改
config.toml
文件,配置模型参数和API设置。
使用指南
- 启动Web UI:
xrag-cli webui
通过Web UI上传和配置数据集,支持多种基准数据集(如HotpotQA, DropQA, NaturalQA)。
- 运行评估: 使用命令行工具运行评估:
xrag-cli evaluate --dataset <dataset_path> --config <config_path>
评估结果将生成详细的报告和可视化图表。
- 自定义检索策略: 修改
src/xrag
目录下的代码,添加或调整检索策略和评估模型。
主要功能操作流程
- 数据集上传和配置:通过Web UI上传数据集,并进行必要的配置。
- 评估运行:选择评估指标和检索方法,运行评估并查看结果。
- 结果分析:通过生成的报告和可视化图表,分析评估结果,优化系统性能。
Ollama框架:助力XRAG实现高效本地化检索推理
在XRAG-Ollama本地化检索推理框架中,Ollama扮演着至关重要的角色。作为一个开源、易用的本地大模型运行框架,Ollama为XRAG提供了强大的本地化检索推理能力,使得XRAG能够充分发挥其检索增强生成的优势。
为什么本地化部署XRAG?
- 降低外部风险: 使用本地部署可以减少对外部服务的依赖,降低因第三方服务不稳定或数据泄露带来的潜在风险。
- 离线可用性: 本地化的RAG系统不依赖互联网连接,即使在网络中断的情况下也能正常运行,保证服务的连续性和稳定性。
- 数据自主管理:本地部署使用户能够完全掌控数据的存储、管理和处理方式,例如将私有数据嵌入到本地向量数据库中,确保数据处理符合企业自身的安全标准和业务要求。
- 数据隐私与安全:在本地环境中运行RAG系统,可以避免敏感数据通过网络传输带来的泄露风险,确保数据始终处于本地控制范围内。这对于处理机密信息的企业尤为重要。
为什么选择Ollama?
Ollama是一个轻量级、可扩展的框架,用于在本地机器上构建和运行大型语言模型(LLM)。它提供了一个简单的API来创建、运行和管理模型,以及一个预构建模型库,可以轻松用于各种应用程序。它不仅支持多种模型,如DeepSeek、Llama 3.3、Phi 3、Mistral、Gemma 2等,还能够利用现代硬件加速计算,从而为XRAG提供高性能的推理支持。 另外,Ollama还提供了对模型量化的支持,这可以显著降低显存要求。例如,4-bit量化可以将FP16精度的权重参数压缩为4位整数精度,从而大幅减小模型权重体积和推理所需显存。这使得在普通家用计算机上运行大型模型成为可能。
通过与Ollama的结合,XRAG能够在本地高效运行大型语言模型,无需依赖复杂的环境配置和大量的计算资源,大大降低了部署和运行成本。同时,本地部署方案赋予开发者完整的数据处理控制权,支持从原始数据清洗、向量化处理(如通过ChromaDB构建私有知识库)到最终应用落地的全链路定制。其基于本地基础设施的部署架构天然具备离线运行能力,不仅确保了服务连续性,还能满足特殊环境(如涉密网络等)对系统可靠性的严苛要求。