AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


北航团队发布XRAG-Ollama! 基于Ollama的XRAG本地化部署与实验基准框架:让你的RAG实验与分析更加简单
发布日期:2025-01-23 04:58:05 浏览次数: 1534 来源:简单的机器学习
推荐语

这是北航团队发布的 XRAG-Ollama 框架,让 RAG 实验与分析更便捷,代码已开源!

核心内容:
1. XRAG 全面的 RAG 测评与优化
2. Ollama 高效的本地化推理能力
3. XRAG-Ollama 本地化的集成优势

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

XRAG支持全面的RAG测评Benchmark与Toolkit,涵盖了50+以上的测试指标与RAG的全面评测与失败点优化,支持4类Advanced RAG模块( 查询重构, 先进检索, 问答模型, 后处理) 的对比, 并集成模块内的多种具体实现,支持OpenAI大模型 API。XRAG1.0版本还提供了简单的Web UI Demo、轻交互的数据上传与统一标准格式, 集成了 RAG失败点检测与优化方法。 目前文章和代码已开源发布。

论文标题:XRAG: eXamining the Core - Benchmarking Foundational Component Modules in Advanced Retrieval-Augmented Generation

作者机构:北航、ZGCLAB

论文链接:https://arxiv.org/abs/2412.15529

项目链接:https://github.com/DocAILab/XRAG

项目亮点

一. XRAG-Ollama 本地化检索推理框架

XRAG:灵活且可扩展的RAG框架

XRAG是一个全面且可定制的RAG框架,它通过组件化和模块化的设计,集成了查询重写、高级检索、问答模型和后处理等核心组件。XRAG提供了超过50个测试指标和多种先进算法,以及高效的数据预处理脚本,简化了复杂RAG场景下的模型测试与验证流程,使得用户能够轻松实现和优化他们的RAG模型。

Ollama:高效的本地化推理引擎

Ollama作为专注本地化部署的轻量级推理框架,通过硬件加速、量化压缩和注意力机制优化等技术,显著提升大语言模型在异构计算环境中的推理效率。其模块化设计支持与向量数据库(如ChromaDB)无缝集成,为构建RAG系统提供高性能的本地推理能力支撑,特别适用于需要快速响应且对数据隐私要求严格的场景。

XRAG-Ollama本地化检索推理框架:检索增强生成与高效推理的完美结合

XRAG-Ollama本地化检索推理框架结合了XRAG的检索增强生成能力和Ollama的高效推理能力,提供了更准确、更快速的用户体验。基于XRAG的模块化设计和Ollama的本地化推理优化,这个框架实现了相较于传统推理方法显著的性能提升。通过结合检索增强知识和高效的推理技术,XRAG-Ollama框架为用户提供了敏捷高效的使用体验,使得输出结果更加准确,满足了用户对于高性能RAG系统的需求。

二、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构建私有知识库)到最终应用落地的全链路定制。其基于本地基础设施的部署架构天然具备离线运行能力,不仅确保了服务连续性,还能满足特殊环境(如涉密网络等)对系统可靠性的严苛要求。

下面是一些可直接下载使用的模型(参考链接):

以下给出几个本地化大模型与GPU的适配方案,供您本地化部署XRAG+Ollama参考:

安装使用

一、安装与使用Ollama

在开始使用Ollama之前,需要确保电脑上安装了Docker或者可以运行exe文件的环境。Docker是一个开源的应用容器引擎,能够让应用的部署变得更容易。如果还没安装,可以访问Docker官网下载并安装适合操作系统的Docker版本。

下载Ollama

Ollama提供了多种安装方式,包括Docker镜像和直接的exe安装包。对于希望直接通过exe安装的用户,可以从Ollama的官方网站或GitHub仓库下载适合自己操作系统的exe安装包。 当你运行 ollama --version 命令成功查询到版本时,表示 Ollama 的安装已经顺利完成,接下来便可以用 pull 命令从在线模型库下载模型来玩了。

拉取和运行模型

无论是通过Docker还是直接exe安装,都可以使用Ollama的命令行工具来拉取和运行模型。例如:

这将从Ollama的模型库中下载llama3.1模型,并在本地运行它,为XRAG提供强大的推理支持。

安装成功测试

通过以上步骤,XRAG能够借助Ollama实现高效的本地化检索推理,为用户提供更准确、更快速的RAG系统体验。

二. 安装XRAG

  • 使用conda创建虚拟环境
  • 克隆代码到本地并配置环境
  • 尝试启动XRAG
  • 得到输出为:

证明环境配置基本完成, XRAG已经启动初次使用可能需要填入邮箱

三. 交互式使用XRAG-Ollama框架

启动XRAG并访问Web页面

如页面所示, 我们为  XRAG  框架收集并预处理了三个基准数据集。除此之外, 我们还开发了一个统一的数据集结构, 以促进检索和生成模块的性能测试, 并提供了标准化格式。您可以通过上传指定格式的json文件将您的定制数据集加载到系统中。

选择其中一个数据集再点击Load Dataset,开始加载数据,以Drop为例

加载数据需要一定时间  加载完成后进入配置阶段

配置阶段需要配置的主要内容为使用的生成模型和编码模型

  • 对于编码模型, XRAG支持BGE系列及Huggingface库支持的Embedding模型
  • 对于生成模型, XRAG支持多种模型,包括:
    • Openai系列模型:XRAG支持Openai模型及所有可以无缝使用Openai框架调用的模型,填入正确的Api Key和Api Base 即可使用
    • Ollama本地大模型:XRAG同样支持本地部署大模型,仅需在本地安装Ollama后,就可以直接离线进行模型的调用,更充分地发挥XRAG框架的能力。

接下来需要配置检索部分与提示词

该部分需要配置的主要内容为:

  • Advanced retriever 方法
  • Pre-retriever 方法
  • Postprocess 方法
  • Text QA Template 与 Refine Template

其中Text QA Template 和 Refine Template 预设了问答任务所需的通用提示词。

Pre-retriever 方法:在检索之前,我们利用预检索组件来优化用户查询,从而提高信息检索过程的质量和相关性。主要方法包括拓展提示:拓宽查询以丰富答案的上下文基础,增强答案生成的上下文基础。

假设文档嵌入(HyDE 技术):将原始查询转换为与索引文档更一致的形式,从而提高检索的一致性和效率。

验证链 (CoVe):执行验证计划,以进一步将系统响应提炼为增强的响应。

Advanced retriever方法:我们模块化了LlamaIndex实现的标准高级方法。例如我们在LexicalBM25检索器中根据语料库中的查询词出现次数和稀有度对文档进行排名。

Simple Fusion Retriever(SQFusion)通过生成相关的子查询来增强查询,并返回所有查询和索引中的前 k 个节点。RRFusion 将索引与基于 BM25 的检索器融合在一起,从而同时捕获语义关系和关键字相关性。

SentenceWindow Retriever 将文档解析为单个句子作为叶节点,在检索到叶节点时并合并周围的句子以增加上下文。

RecursiveChunk Retriever遍历节点关系以根据引用获取节点。

Postprocess 方法:后处理器方法旨在转换和过滤返回节点,从而进一步提高检索的准确性和效率。

XRAG 整合了重新排名器,通过利用上下文理解模型而不是嵌入匹配模型来增强相关性评估的准确度。我们利用 Huggingface和transformers来集成(BGE-BASE)1reranker,它通过 Cross-Encoder 模型处理问题和文档,直接输出相似度分数。ColBERT reranker采用多向量表示进行粒度查询文档匹配。此外,LongContextReorder将高分节点重新定位到列表的顶部和底部,从而加快相关信息的识别。

确认完成配置后点击确定以开始整体流程的构建, 这可能需要一点时间。 随后,您可以使用单个问题测试您的RAG系统。



53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询