首页 > 其他分享 >大模型 | 一个全面、先进、公平且模块化的开源RAG框架

大模型 | 一个全面、先进、公平且模块化的开源RAG框架

时间:2024-09-18 15:52:21浏览次数:3  
标签:RAG passages 模块化 算法 开源 query RAGLAB ###


两个关键问题限制了 RAG 的发展:

  • 新型 RAG 算法之间缺乏全面和公平的比较。
  • 像 LlamaIndex 和 LangChain 这样的开源工具使用了高级抽象,这导致了透明度的缺失,并限制了开发新算法和评估指标的能力。

RAGLAB: 是一个模块化的开源库。RAGLAB 复现了 6 种先进的算法,并为研究 RAG 算法提供了一个全面的生态系统。利用 RAGLAB,对 10 个基准上的 6 种 RAG 算法进行了公平比较。有了 RAGLAB,研究人员可以高效地比较各种算法的性能并开发新算法

不同 RAG 库和框架的比较公平比较指的是在评估过程中对所有基本组件进行对齐,包括随机种子、生成器、检索器和指令。数据收集器指的是能够收集或生成训练和测试数据的能力,无论是通过从现有的原始数据集中抽样,还是通过使用LLM构建标记数据。

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_ai

RAGLAB提供了一个模块化的架构,允许用户轻松地替换和扩展算法的各个组成部分,包括检索器(retriever)、生成器(generator)和指令(instruction)。

RAGLAB 框架的架构和组件

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_大模型_02

  • 检索器(Retriever): 集成了基于BERT的模型,如Contriever和ColBERT,提供了统一的查询接口和客户端-服务器架构,以及检索缓存机制。
  • 语料库(Corpus): 提供预处理的Wikipedia语料库,包括2018年和2023年的版本,以及对应的索引和嵌入。
  • 生成器(Generator): 集成了Huggingface Transformers和VLLM,支持量化和低秩适应(LoRA)技术,允许使用大型模型。
  • 指令实验室(Instruction Lab): 包含系统指令、任务指令和算法指令,允许用户自定义和组合指令。
  • 训练器(Trainer): 集成了Accelerate和DeepSpeed库,支持模型的微调,包括LoRA和量化LoRA技术。
  • 数据集和度量(Dataset and Metric): 收集了10个广泛使用的基准数据集,覆盖五种不同的任务类型,并提供了灵活的数据适配机制和多种评估指标

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_AI大模型_03

RAGLAB进行了全面的实验,使用不同的基础模型作为生成器,同时保持其他基本组件的一致性,以促进不同高级RAG算法之间的公平比较。

一个使用 RAGLAB 来复现 Self-RAG 算法的脚本

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_ai_04

分析了使用不同基础模型的RAG算法(Naive RAG、RRR 、ITER-RETGEN、Self-Ask、Active RAG、Self-RAG)在多个基准上的性能,发现Self-RAG算法在使用特定生成器时显著优于其他算法。

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_大模型_05

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_ai_06

不同算法的指令

Naive RAG
# read process insruction
"### Instruction:\n {task_instrucion} \n## Input:\n\n{query}\n\n Now, based on the following passages
and your knowledge, please answer the question more succinctly and professionally. ### Background
Knowledge:\n {passages} \n\n### Response:\n" 

RRR
# rewrite process instruction
"Provide a better search query for Wikipedia to answer the given question, end the query with '**'. \n\n
Question: Ezzard Charles was a world champion in which sport? \n\n Query: Ezzard Charles
champion** \n\n Question: What is the correct name of laughing gas? \n\n Query: laughing gas
name** \n\n Question: {query} \n\n Query: " # read process insruction
"### Instruction:\n {task_instrucion} \n## Input:\n\n{query}\n\n Now, based on the following passages
and your knowledge, please answer the question more succinctly and professionally. ### Background
Knowledge:\n {passages} \n\n### Response:\n"

ITER-RETGEN
# read process insruction
"### Instruction:\n {task_instrucion} \n## Input:\n\n{query}\n\n Now, based on the following passages
and your knowledge, please answer the question more succinctly and professionally. ### Background
Knowledge:\n {passages} \n\n### Response:\n" 

Self ASK
# follow up question instruction
"Question: When does monsoon season end in the state the area code 575 is located? Are follow up
questions needed here: Yes. Follow up: Which state is the area code 575 located in? Intermediate
answer: The area code 575 is located in New Mexico. Follow up: When does monsoon season end in
New Mexico? Intermediate answer: Monsoon season in New Mexico typically ends in mid-September. So the final answer is: mid-September. \n{query} Are follow up questions needed here:" # read process insruction
"### Instruction:\n {task_instrucion} \n## Input:\n\n{query}\n\n Now, based on the following passages
and your knowledge, please answer the question more succinctly and professionally. ### Background
Knowledge:\n {passages} \n\n### Response:\n" 

Active RAG
# read process insruction
"### Instruction:\n {task_instrucion} \n## Input:\n\n{query}\n\n Now, based on the following passages
and your knowledge, please answer the question more succinctly and professionally. ### Background
Knowledge:\n {passages} \n\n### Response:\n"

RAGLAB 系统用户评估问卷

大模型 | 一个全面、先进、公平且模块化的开源RAG框架_ai_07

RAGLAB: A Modular and Research-Oriented Unified Framework for Retrieval-Augmented Generation
https://arxiv.org/pdf/2408.11381
https://github.com/fate-ubw/RAGLab

标签:RAG,passages,模块化,算法,开源,query,RAGLAB,###
From: https://blog.51cto.com/u_16163510/12046925

相关文章

  • 开源大模型 | Open LLM集中爆发,卷疯了!
    开源大模型领域热闹非凡,各种开源,PaperAgent进行了概括:端侧、Code、RAG、Agent、Reflection(反思纠正)、MoE,你关注的都在这里了。一、ReflectionLlama-3.1-70B开源ReflectionLlama-3.170B是世界上顶尖的OpenLLM,通过反思微调技术(Reflection-Tuning)训练,能够检测并纠正推理错误,具有......
  • 大模型企业级RAG应用优化(二):检索与生成阶段的8个必知技巧
    一、使用查询重写提高检索的精确性查询重写(也称为查询转换或查询分析等)已经成为RAG工作流的常见环节。当用户的查询不够明确或具体时,可以通过查询重写来分解或者细化问题,以提升检索与生成的准确性。因此,查询转换是一种“检索前”的处理步骤。一个常见的重写方案是HyDE(假设性文档嵌......
  • 大模型企业级RAG应用优化(一):数据索引阶段的8个必知技巧
    基于大模型的RAG应用,一个普遍的认识是:做原型很简单,投入生产很难为什么我的RAG应用很难按预期工作?在之前的文章中我们曾经陆续的对RAG应用优化做过零星与局部的探讨,如融合检索、查询转换、多模态处理、AgenticRAG等。接下来我们将结合之前的方法与实践,总结形成更完整的企业级RAG应......
  • 大模型RAG优化策略总结(二):利用向量数据库实现高效的 RAG、针对 RAG 的微调语言模型、实
    五、利用向量数据库实现高效的RAG向量数据库专门用于存储和高效查询数据的高维向量表示,使其成为RAG检索组件的理想选择。以下是向量数据库如此重要的原因以及如何有效利用它们:a)可扩展性和性能:向量数据库针对处理大规模相似性搜索进行了优化,这对于具有广泛知识库的RAG系统至关......
  • 思通数科开源产品:免费的AI视频监控卫士安装指南
    准备运行环境:确保您的服务器或计算机安装了Ubuntu18.04LTS操作系统。按照产品要求,安装以下软件:Python3.9JavaJDK1.8MySQL5.5Redis2.7Elasticsearch8.14FFmpeg4.1.1RabbitMQ3.13.2Minio(2024-07-26T20版本)接着,下载开源软件,并运行Python端、Java端和前端。下......
  • 基于OpenHarmony(开源鸿蒙)的智慧医疗综合应用系统
    基于【OpenHarmony的智慧医疗综合应用系统】一.了解OpenHarmony(开源鸿蒙)进行应用开发1.了解OpenHarmony架构2.获取开发环境和工具3.创建项目4.开发应用5.调试和测试6.发布应用7.学习和社区支持二.基于开源鸿蒙(OpenHarmony)的智慧医疗综合应用系统业务场景设计......
  • FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架
    很多程序员想学习音视频的编程开发,却不知从何学习,因为音视频技术的体系庞大、知识杂糅,一眼望去就令人生怯。那么学习音视频建议站在前人的肩膀上,从优秀的音视频开源框架开始钻研,先熟悉这些开源工具的具体用法,再深入了解这些开源框架的实现代码。有鉴于此,博主整理了几个流行的音视频......
  • 开源网安多城联动、多形式开展网安周公益活动,传播网络安全知识
    9月9日至15日,以“网络安全为人民,网络安全靠人民”为主题的2024年国家网络安全宣传周将在全国范围内统一开展,通过多样的形式、丰富的内容,助力全社会网络安全意识和防护技能提升。开源网安今年继续为各地企业、群众带来了丰富的网安周活动,兼具互动性与趣味性,帮助大家了解网络安全新技......
  • 推荐一款开源的API开放平台,5分钟就可以搭建企业专属的API开放门户!
    前言在过去的十年中,企业API治理并未受到广泛关注。然而,随着时间的推进,特别是在近几年,企业技术管理者对API治理的重视程度显著提高,开始将API视为企业资产的重要组成部分。API不再仅仅是技术层面的概念,而是成为了企业内部数据和服务传输的核心,深入融入业务流程之中。由于其全球性和......
  • 240908-结合DBGPT与Ollama实现RAG本地知识检索增强
    A.最终效果B.背景说明DBGPT在0.5.6版本中开始支持Ollama:v0.5.6版本更新网友对其Web端及界面端的设置进行了分享:feat(model):supportollamaasanoptionalllm&embeddingproxybyGITHUBear·PullRequest#1475·eosphoros-ai/DB-GPTDB-GPT+Ollama构建本地智能数据平......