Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

RAG-Fusion

Answer

RAG(检索增强生成)是由 Lewis 等人于 2020 年中期提出的一种大语言模型领域的范式。

大型语言模型如 GPT 系列虽在自然语言处理方面取得显著成功,但仍存在局限性,如处理特定领域或高度专业化查询时易产生错误信息或“幻觉”,尤其在查询超出训练数据或需要最新信息时。

RAG 将外部数据检索整合到生成过程中,包括初始的检索步骤,查询外部数据源获取相关信息后再回答问题或生成文本,这不仅为后续生成提供信息,还能确保回答基于检索证据,从而显著提高输出的准确性和相关性。其演进轨迹分为四个阶段。

在 2017 年创始阶段,重点是通过预训练模型吸收额外知识增强语言模型。

RAG 能解决大语言模型知识局限性、幻觉问题和数据安全性等问题,可让大模型从权威知识源检索组织相关信息,更好控制文本输出,且能与微调结合使用。但 RAG 不适合教模型理解广泛领域或学习新语言、格式或样式。

LangChain 是用于构建高级语言模型应用程序的框架,提供一系列工具和组件,RAG 作为技术可在 LangChain 框架内实施利用,两者关系包括:LangChain 提供实现 RAG 必需的工具和组件;允许通过模块化组件构建 RAG 应用;简化 RAG 应用开发过程;利用其实现 RAG 可提高性能;支持构建复杂的 RAG 应用。

Content generated by AI large model, please carefully verify (powered by aily)

References

开发:产品视角的大模型 RAG 应用

开发:产品视角的大模型RAG应用[heading1]一文看懂RAG:大语言模型落地应用的未来[heading2]RAG发展的四个阶段大型语言模型(LLMs)如GPT系列在自然语言处理方面取得了显著的成功,Super-GLUE等各种基准测试中表现出色。尽管有了这些进展,LLMs仍然存在显著的局限性,特别是在处理特定领域或高度专业化的查询时,一个常见问题是产生错误的信息,或者称为“幻觉”。特别是当查询超出模型的训练数据或需要最新信息时。所以说在直接将LLMs部署运行到生产环境中时,其就是一个黑盒,鬼知道它会输出什么的结果...解决这些问题的一种有希望的方法是检索增强生成(RAG),它将外部数据检索整合到生成过程中,从而提高模型提供准确和相关回答的能力。RAG于2020年中期由Lewis等人提出,是LLMs领域中的一种范式,可增强生成任务。具体而言,RAG包括一个初始的检索步骤,LLMs在此步骤中查询外部数据源以获取相关信息,然后才回答问题或生成文本。这个过程不仅为后续的生成阶段提供信息,还确保回答基于检索到的证据,从而显著提高了输出的准确性和相关性。在推断阶段动态检索来自知识库的信息使RAG能够解决生成事实错误内容的问题,通常被称为“幻觉”。将RAG整合到LLMs中已经迅速被采用,并成为完善聊天机器人能力和使LLMs更适用于实际应用的关键技术。RAG的演进轨迹在四个不同阶段展开,如下图所示。在2017年的创始阶段,与Transformer架构的出现相一致,主要重点是通过预训练模型(PTM)来吸收额外的知识以增强语言模型。这个时代见证了RAG的基础工作主要集中在优化预训练方法上。

问:LangChain 和 RAG 有什么关系?

LangChain是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。LangChain的设计主张集中在模块化组件上,这些组件提供用于使用LLM的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。RAG,即检索增强生成(Retrieval-Augmented Generation),是一种结合了检索(检索外部知识库中相关信息)和生成(利用LLM生成文本)的技术。RAG能够为LLM提供来自外部知识源的附加信息,使得LLM在应对下游任务时能够生成更精确和上下文相关的答案,并减少LLM的幻觉现象。LangChain和RAG之间的关系可以概括为:1.框架与技术:LangChain作为一个框架,提供了实现RAG所必需的工具和组件。RAG作为一项技术,可以在LangChain框架内得以实施和利用。2.模块化实现:LangChain允许开发者通过其模块化组件来构建RAG应用程序,例如使用LangChain的检索器(Retriever)和生成模型(LLM)来创建一个完整的RAG流程。3.简化开发:LangChain通过提供现成的链(Off-the-shelf chains)和提示模板(Prompt Templates),简化了RAG应用程序的开发过程。4.提高性能:利用LangChain实现RAG可以帮助开发者创建更高效、更准确的应用程序,特别是在需要大量外部信息来辅助决策的场景中。5.应用构建:LangChain通过其丰富的API和组件库,支持开发者构建复杂的RAG应用,如智能问答系统、内容推荐引擎等。

RAG提示工程(一):基础概念

大语言模型技术的本质导致了大模型的输出结果具有不可预测性,此外,静态的训练数据导致了大模型所掌握的知识存在截止日期,无法即时掌握最新信息。因此,当我们将大模型应用于实际业务场景时会发现,通用的基础大模型无法满足我们的实际业务需求。主要存在以下原因:知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是抓取网络公开的数据用于训练,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。幻觉问题:大模型的底层原理是基于数学概率的文字预测,即文字接龙。因此大模型存在幻觉问题,会在没有答案的情况下提供虚假信息,提供过时或通用的信息,从可信度低非权威来源的资料中提供结果等。数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。因此如何大模型落地应用时如何保障企业内部数据安全是一个重要问题。而RAG是解决上述问题的一套有效方案。它可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解LLM如何生成最终的结果。并且,RAG可以和微调结合使用,两者并不冲突。RAG类似于为模型提供教科书,允许它基于特定查询检索信息。这该方法适用于模型需要回答特定的询问或解决特定的信息检索任务。然而,RAG不适合教模型来理解广泛的领域或学习新的语言,格式或样式。微调类似于让学生通过广泛的学习内化知识。这种方法当模型需要复制特定的结构、样式或格式时非常有用。以下是RAG与微调从维度方面的比较:参考资料:《Retrieval-Augmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf)

Others are asking
什么是RAG
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 大模型存在一些缺点,如无法记住所有知识(尤其是长尾知识)、知识容易过时且不好更新、输出难以解释和验证、容易泄露隐私训练数据、规模大导致训练和运行成本高。而 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,增删改查可解释,且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型本身的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景是知识问答系统。 一个 RAG 的应用可抽象为 5 个过程: 1. 文档加载:从多种不同来源加载文档。 2. 文本分割:把 Documents 切分为指定大小的块。 3. 存储:包括将切分好的文档块进行嵌入转换成向量的形式,以及将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2025-04-14
RAG对话 摘要总结 功能实现
LangChain 和 RAG 的结合具有以下优势: 1. 灵活性:可根据需求和数据源选择不同组件和参数定制 RAG 应用,也能使用自定义组件(需遵循接口规范)。 2. 可扩展性:能利用 LangChain 的云服务部署和运行,无需担忧资源和性能限制,还可借助分布式计算功能加速应用,发挥多个节点并行处理能力。 3. 可视化:通过 LangSmith 可视化工作流程,查看各步骤输入输出及组件性能状态,用于调试和优化,发现并解决潜在问题和瓶颈。 其应用场景多样,包括: 1. 专业问答:构建医疗、法律、金融等专业领域的问答应用,从专业数据源检索信息辅助大模型回答问题,如从医学文献中检索疾病诊治方案回答医疗问题。 2. 文本摘要:构建新闻或论文摘要应用,从多个数据源检索相关文本帮助大模型生成综合摘要,如从多个新闻网站检索同一事件报道生成全面摘要。 3. 文本生成:构建诗歌、故事生成等应用,从不同数据源检索灵感协助大模型生成更有趣和创意的文本,如从诗歌、歌词或小说中检索相关文本生成作品。 此外,还介绍了本地部署资讯问答机器人的实现方式,即基于用户问题从向量数据库检索相关段落并按阈值过滤,让模型参考上下文信息回答,还创建了网页 UI 并进行评测,对不同模型的测试表现进行了对比,得出 GPT4 表现最佳等结论,并总结了使用 Langchain 和 Ollama 技术栈在本地部署资讯问答机器人及相关要点,即上下文数据质量和大模型性能决定 RAG 系统性能上限。
2025-04-11
飞书智能伙伴创建平台 RAG实现
飞书智能伙伴创建平台(英文名:Aily)是飞书团队旗下的企业级 AI 应用开发平台,能提供简单、安全且高效的环境,帮助企业构建和发布 AI 应用,推动业务创新和效率提升,为企业探索大语言模型应用新篇章、迎接智能化未来提供理想选择。 在飞书智能伙伴创建平台上实现 RAG 相关应用有多种方式: 1. 利用飞书的知识库智能问答技术,引入 RAG 技术,通过机器人帮助用户快速检索内容。 2. 可以使用飞书的智能伙伴功能搭建 FAQ 机器人,了解智能助理的原理和使用方法。 3. 本地部署资讯问答机器人,如通过 Langchain + Ollama + RSSHub 实现 RAG,包括导入依赖库、从订阅源获取内容、为文档内容生成向量等步骤。例如使用 feedparse 解析 RSS 订阅源,ollama 跑大模型(使用前需确保服务开启并下载好模型),使用文本向量模型 bgem3(如从 https://huggingface.co/BAAI/bgem3 下载,假设放置在某个路径 /path/to/bgem3,通过函数利用 FAISS 创建高效向量存储)。 使用飞书智能伙伴创建平台的方式: 1. 在 WaytoAGI 飞书知识库首页找到加入飞书群的链接(二维码会定期更新,需在找到最新二维码),点击加入,直接@机器人。 2. 在 WaytoAGI.com 的网站首页,直接输入问题即可得到回答。 创建问答机器人的原因: 1. 知识库内容庞大,新用户难以快速找到所需内容。 2. 传统搜索基于关键词及相关性,存在局限性。 3. 需要用更先进的 RAG 技术解决问题。 4. 在群中提供快速检索信息的方式,使用更便捷。 2024 年 2 月 22 日的会议介绍了 WaytoAGI 社区的成立愿景和目标,以及其在飞书平台上的知识库和社区情况,讨论了相关技术和应用场景,并介绍了企业级 agent 方面的实践。
2025-04-08
RAG是什么
RAG(RetrievalAugmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构,旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。 大模型需要 RAG 进行检索优化的原因在于其存在一些缺点: 1. LLM 无法记住所有知识,尤其是长尾知识,受限于训练数据和学习方式,对长尾知识的接受能力不高。 2. LLM 的知识容易过时且不好更新,微调效果不佳且有丢失原有知识的风险。 3. LLM 的输出难以解释和验证,存在内容黑盒、不可控及受幻觉干扰等问题。 4. LLM 容易泄露隐私训练数据。 5. LLM 的规模大,训练和运行成本高。 而 RAG 具有以下优点: 1. 数据库对数据的存储和更新稳定,不存在模型学不会的风险。 2. 数据库的数据更新敏捷,可解释且对原有知识无影响。 3. 数据库内容明确、结构化,加上模型的理解能力,能降低大模型输出出错的可能。 4. 知识库存储用户数据,便于管控用户隐私数据,且可控、稳定、准确。 5. 数据库维护可降低大模型的训练成本,新知识存储在数据库即可,无需频繁更新模型。 RAG 的核心流程是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到 prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”。其最常见应用场景如知识问答系统,用户提出问题,RAG 模型从大规模的文档集合中检索相关的文档,然后生成回答。 一个 RAG 的应用可抽象为 5 个过程: 1. 文档加载:从多种不同来源加载文档,LangChain 提供了 100 多种不同的文档加载器。 2. 文本分割:文本分割器把 Documents 切分为指定大小的块。 3. 存储:包括将切分好的文档块进行嵌入转换成向量的形式,以及将 Embedding 后的向量数据存储到向量数据库。 4. 检索:通过某种检索算法找到与输入问题相似的嵌入片。 5. 输出:把问题以及检索出来的嵌入片一起提交给 LLM,LLM 会通过问题和检索出来的提示一起来生成更加合理的答案。
2025-04-03
RAG实战教程推荐
以下为您推荐一些 RAG 实战教程: 1. 【AI+知识库】商业化问答场景,让 AI 回复更准确,一篇专为所有“小白”讲透 RAG 的实例教程(上篇): 介绍了常见的错误场景,如回答不准确、报价错误、胡编乱造等,强调了优化 AI 准确回答的重要性,并引出 RAG 概念。 讲解了基础概念,包括优化幻觉问题和提高准确性需要了解从“问题输入”到“得到回复”的过程,并针对每个环节逐个调优。 阐述了检索原理,包括问题解析阶段通过嵌入模型将问题文本转化为向量,知识库检索阶段比较向量选择相关信息片段,信息整合阶段构建融合全面的信息文本,大模型生成回答阶段将整合后的信息转化为向量输入大语言模型生成回答。还通过实例进行了详细说明,如知识库检索部分的向量化、优化问题、向量检索、抽取内容块等,以及大模型对话部分。 2. 开发:LangChain 应用开发指南 不用向量也可以 RAG: 以餐饮生活助手为例展示了基于结构化数据来 RAG 的实战方法,包括给出用户提问和回复的示例,以及餐饮生活助手 RAG 的代码实战。 介绍了实现餐饮生活助手 RAG 的 Langchain 代码实战需要完成的步骤,如定义餐饮数据源,将餐饮数据集转化为 Langchain 可识别和操作的数据源并注册到 Langchain 中;定义 LLM 的代理,通过 Langchain 的代理根据用户问题提取信息、形成查询语句、检索数据源、生成答案并输出给用户。
2025-04-01
如何学习RAG
以下是关于学习 RAG 的方法和相关内容: 1. 从 AI 搜索切入:RAG 流程复杂,可先从熟悉的 AI 搜索入手。AI 大模型擅长语义理解和文本总结,但不擅长获取实时信息;搜索引擎擅长获取实时信息但信息分散,需人为总结。AI 与搜索引擎结合,给 AI 配备活字典,搜索引擎充当知识库。 2. 用 Coze 学习 RAG 的方法: 推荐使用 Claude + Coze 的方法。Claude 是强大的 AI 大模型,Coze 是 AI Agent 的衍生产品。 首先通过 Claude 了解细节概念,然后通过 Coze 搭建 Demo,在动手实践中学习。 学习过程中创建了 4 个 Bot: 产品资料问答机器人,利用 Coze 的知识库能力演示知识库在企业中的应用。 Query 改写助手学习 Bot,专门用于学习 Query 的改写。 Query 改写效果对比 Bot,对比 Query 改写和未改写的区别。 RAG 全流程学习 Bot,结合对 RAG 全流程的了解,使用 Coze 的工作流模拟 RAG 的离线存储和在线检索全流程。 3. 相关视频演示: 还不知道 Coze 是什么的同学可以看公开分享: 。
2025-04-01