Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RAG_Techniques:深入解析GitHub热门RAG技术宝库

RAG_Techniques:深入解析GitHub热门RAG技术宝库

作者头像
CoderJia
发布于 2025-05-07 06:00:25
发布于 2025-05-07 06:00:25
45500
代码可运行
举报
运行总次数:0
代码可运行

引言

在当今AI领域,检索增强生成(Retrieval-Augmented Generation,简称RAG)技术正以惊人的速度发展,成为将传统信息检索与生成式AI相结合的革命性方法。本文将带您深入探索GitHub上备受瞩目的RAG_Techniques项目,这是目前最全面的RAG技术集锦之一,为研究人员和实践者提供了丰富的高级技术实现和示例。

项目概述

  • 项目名称:RAG_Techniques
  • 创建者:NirDiamant
  • 项目地址:https://github.com/NirDiamant/RAG_Techniques
  • 主要功能:展示和实现各种先进的检索增强生成(RAG)技术
  • 技术栈Python、LangChain、LlamaIndex、各种LLM模型
  • 开源许可证:自定义非商业许可
  • 收藏数:15.9k(截止到2050506)

RAG_Techniques 由 Nir Diamant 创建,旨在提供一个全面的知识中心,展示各种先进的 RAG 技术。从基础实现到专业级解决方案,该项目涵盖了33种不同的技术,每一种都配有详细的实现指南和示例代码。

该项目主要解决的问题是:如何提升 RAG 系统的准确性、上下文相关性和综合响应能力。通过精心策划的技术集合,开发者可以根据自己的具体应用场景选择合适的方法,大幅提升其AI系统的表现。

RAG技术简介与重要性

检索增强生成(RAG)结合了信息检索与生成模型的优势,使AI能够访问和利用外部知识生成回答。与传统的纯生成模型相比,RAG 系统可以:

1、提供更准确的信息:通过检索实际文档而非仅依赖模型参数中的知识

2、减少幻觉问题:生成的内容有明确的信息来源,降低编造事实的风险

3、保持知识更新:可以访问最新数据,而无需重新训练整个模型

4、提高透明度:能够引用信息来源,让用户了解答案的依据

这使得 RAG 成为构建可信 AI 系统的重要技术,特别适用于需要精确、可验证信息的应用场景,如客户支持、医疗、法律和技术文档咨询等领域。

核心功能详解

1. 分类清晰的技术体系

RAG_Techniques 项目将 33 种技术分为几大类别,使开发者能够根据需求快速定位:

  • 基础技术(Foundational) - 包括基本 RAG、CSV 文件集成的 RAG、可靠 RAG 等入门级实现
  • 查询增强(Query Enhancement) - 如 HyDE(Hypothetical Document Embeddings)、HyPE(Hypothetical Prompt Embedding)等
  • 上下文丰富(Context Enrichment) - 如上下文块头部、语义压缩等
  • 高级检索(Advanced Retrieval) - 如自动合并检索、靶心检索、多模态 RAG 等
  • 迭代技术(Iterative Techniques) - 如反馈循环检索、递归检索等
  • 高级架构(Advanced Architecture) - 如知识图谱集成、GraphRAG、RAPTOR、Self-RAG等

每种技术都有详细的概述和实现指南,大多数还提供了可直接在 GitHub 或 Google Colab 上运行的代码实例。

HyDE 代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class HyDERetriever:
    def __init__(self, files_path, chunk_size=500, chunk_overlap=100):
        self.llm = ChatOpenAI(temperature=0, model_name="gpt-4o-mini", max_tokens=4000)

        self.embeddings = OpenAIEmbeddings()
        self.chunk_size = chunk_size
        self.chunk_overlap = chunk_overlap
        self.vectorstore = encode_pdf(files_path, chunk_size=self.chunk_size, chunk_overlap=self.chunk_overlap)
  
  
        self.hyde_prompt = PromptTemplate(
            input_variables=["query", "chunk_size"],
            template="""Given the question '{query}', generate a hypothetical document that directly answers this question. The document should be detailed and in-depth.
            the document size has be exactly {chunk_size} characters.""",
        )
        self.hyde_chain = self.hyde_prompt | self.llm

    def generate_hypothetical_document(self, query):
        input_variables = {"query": query, "chunk_size": self.chunk_size}
        return self.hyde_chain.invoke(input_variables).content

    def retrieve(self, query, k=3):
        hypothetical_doc = self.generate_hypothetical_document(query)
        similar_docs = self.vectorstore.similarity_search(hypothetical_doc, k=k)
        return similar_docs, hypothetical_doc
33种技术分
33种技术分

2. 前沿技术解析

项目中包含了多种前沿RAG技术,以下是几个特别值得关注的:

  • Self-RAG - 一种动态方法,能够自适应地决定是否使用检索的信息以及如何最好地利用它生成响应。实现过程包括检索决策、文档检索、相关性评估、响应生成、支持评估和效用评估等多个步骤。
  • GraphRAG(微软) - 一种将知识图谱集成到 RAG 系统中的高级方法。通过分析输入文本中的实体和关系,自下而上地生成社区及其组成部分的摘要。
  • RAPTOR(递归抽象处理树状组织检索) - 实现递归方法来处理和组织检索的信息,使用抽象摘要递归处理和总结检索的文档,将信息组织成树状结构以获得层次化上下文。
  • Corrective RAG(纠正式RAG) - 一种复杂的 RAG 方法,动态评估和纠正检索过程,结合向量数据库、Web搜索和语言模型,以提供高度准确和上下文感知的响应。
Corrective RAG流程图
Corrective RAG流程图

3. 评估工具与方法

项目还提供了全面的RAG系统评估技术:

  • DeepEval评估 - 使用 deepeval库对 RAG 系统进行正确性、忠实性和上下文相关性的测试。
  • GroUSE评估 - 用于评估 RAG 最终阶段的 GroUSE 框架指标,支持对自定义LLM评判器进行meta评估。

这些评估工具帮助开发者系统性地衡量其 RAG 实现的性能,并进行有针对性的优化。

GroUSE评估
GroUSE评估

安装和使用教程

要开始使用RAG_Techniques项目,请按照以下步骤操作:

1、克隆仓库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/NirDiamant/RAG_Techniques.git

2、导航到感兴趣的技术目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd all_rag_techniques/technique-name

3、按照每个技术目录中的详细实现指南进行操作。

项目中的大多数技术都是通过 Jupyter Notebook 实现的,提供了完整的代码示例和详细注释。同时,许多技术还提供了可执行脚本版本,位于 all_rag_techniques_runnable_scripts目录中。

4、环境要求

  • Python 3.8+
  • 相关依赖包(LangChain、LlamaIndex、OpenAI等)
  • 访问 LLM API(如 OpenAI API 密钥)

应用场景和实际价值

RAG_Techniques 项目中的技术可以应用于各种实际场景:

企业知识库和文档检索

通过实施高级RAG技术,企业可以构建智能知识库系统,使员工能够用自然语言查询公司文档、流程和政策,获得准确、相关的回答。例如:

  • 技术支持团队可以查询产品手册和故障排除指南
  • 法律团队可以搜索和分析合同和法规文件
  • 人力资源部门可以回答关于公司政策的员工问题

教育和研究辅助

研究人员和学生可以使用先进的RAG系统分析大量学术论文和资料:

  • 快速浏览和总结相关研究文献
  • 提取和比较不同来源的关键信息
  • 生成研究报告和文献综述

个性化内容推荐

使用复杂的RAG架构可以构建智能内容推荐系统

  • 新闻聚合器可以根据用户兴趣提供相关文章
  • 电子商务平台可以提供个性化产品描述和推荐
  • 教育平台可以生成适合学生学习风格的内容

结论

NirDiamant/RAG_Techniques 项目是一个宝贵的资源,为开发者提供了构建先进 RAG 系统的多种技术和方法。从基础实现到复杂架构,这个项目涵盖了当前 RAG 领域的最佳实践和创新。

随着 AI 技术的发展,RAG 系统将在提供准确、可靠信息方面发挥越来越重要的作用。通过学习和应用这些技术,开发者可以创建更智能、更实用的AI应用,解决各种领域的实际问题。

无论您是刚接触 RAG 的初学者,还是寻求改进现有系统的经验丰富的开发者,RAG_Techniques项目都能提供有价值的指导和灵感。通过探索这些技术并将其应用到自己的项目中,您可以构建更加强大、更加智能的信息检索和生成系统。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何为AI智能体添加RAG以实现上下文理解
将RAG功能与其他代理功能(例如角色扮演)相结合,可以创建一个强大的企业级AI代理框架。
云云众生s
2024/12/14
2960
用检索增强生成让大模型更强大,这里有个手把手的Python实现
本文首先将关注 RAG 的概念和理论。然后将展示可以如何使用用于编排(orchestration)的 LangChain、OpenAI 语言模型和 Weaviate 向量数据库来实现一个简单的 RAG。
机器之心
2023/11/22
1.1K0
用检索增强生成让大模型更强大,这里有个手把手的Python实现
使用ChromaDB和Python构建RAG驱动的LLM聊天应用
利用检索增强生成 (RAG) 和大型语言模型 (LLM) 的强大功能来创建生成式 AI 应用程序。
云云众生s
2024/04/05
1.3K0
3分钟!教会你用Doris+DeepSeek搭建RAG知识库(喂饭级教程)
❝清晨,我泡上一杯98年的咖啡,打开电脑,收到一条来自Doris用户的消息: "请问有 将doris数据库数据作为deepseek大模型的知识库的方法吗" "好滴,安排!" 于是,和这位Doris用户聊了聊,发现这类需求随着DeepSeek的爆火被无限放大了,但也确实是一个‌引申的机遇与挑战。 也罢,今天就来一探究竟,一起学习学习如何基于Doris+DeepSeek打造你的专属AI助手!
一臻数据
2025/02/26
1K1
3分钟!教会你用Doris+DeepSeek搭建RAG知识库(喂饭级教程)
使用RAGAs评估基于Milvus的RAG应用
现在,我们很容易构建一个基于检索增强生成(RAG)的应用,但将其投入生产却非常困难,因为RAG的性能很难达到令人满意的状态。
Zilliz RDS
2024/07/10
5530
使用RAGAs评估基于Milvus的RAG应用
如何高效提升大模型的RAG效果?多种实用策略一次掌握
持续提升RAG(检索增强生成,Retrieval-Augmented Generation)的效果是当前许多企业应用大模型时非常关注的一个关键问题。虽然RAG看起来简单,但真正要做到效果持续提升,还真不是一件容易的事。咱们今天就用更轻松的语言,结合实际案例,聊聊如何通过多种策略持续增强RAG能力,帮助你在实际落地项目中游刃有余。
fanstuck
2025/03/13
3542
如何高效提升大模型的RAG效果?多种实用策略一次掌握
Langchain 和 RAG 最佳实践
这是一篇关于LangChain和RAG的快速入门文章,主要参考了由Harrison Chase和Andrew Ng讲授的Langchain chat with your data课程。你可以在rag101仓库中查看完整代码。本文翻译自我的英文博客,最新修订内容可随时参考:LangChain 与 RAG 最佳实践。
timerring
2025/03/05
830
一文带你了解RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)
针对大型语言模型效果不好的问题,之前人们主要关注大模型再训练、大模型微调、大模型的Prompt增强,但对于专有、快速更新的数据却并没有较好的解决方法,为此检索增强生成(RAG)的出现,弥合了LLM常识和专有数据之间的差距。
ShuYini
2023/12/21
41.7K79
一文带你了解RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)
RAG 范式、技术和趋势
这里分享同济大学 Haofen Wang的关于检索增强生成的报告:《Retrieval-Augmented Generation (RAG): Paradigms, Technologies, and Trends》 ,RAG 范式、技术和趋势。
JadePeng
2024/03/16
1.5K0
RAG 范式、技术和趋势
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
首先,我们将 RAG 工作流程分为三个部分,以增强我们对 RAG 的理解,并优化每个部分以提高整体性能:
致Great
2025/02/22
1.1K0
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
RAG:如何与您的数据对话
在我之前的文章中,我们讨论了如何使用 ChatGPT 进行主题建模。我们的任务是分析客户对不同连锁酒店的评论,并确定每家酒店提到的主要主题。
大数据杂货铺
2024/01/16
8760
RAG:如何与您的数据对话
【AIGC】通过RAG架构LLM应用程序
在之前的博客文章中,我们已经描述了嵌入是如何工作的,以及RAG技术是什么。本节我们我们将使用 LangChain 库以及 RAG 和嵌入技术在 Python 中构建一个简单的 LLM 应用程序。
Freedom123
2024/05/08
2400
用 LangChain 搭建基于 Notion 文档的 RAG 应用
如何通过语言模型查询 Notion 文档?LangChain 和 Milvus 缺一不可。
Zilliz RDS
2023/12/01
6900
用 LangChain 搭建基于 Notion 文档的 RAG 应用
用 LangChain 构建文档问答助手
随着大语言模型(LLM)的广泛应用,越来越多企业和个人希望利用它来实现“基于文档的智能问答”功能。例如:
IT蜗壳-Tango
2025/04/09
2000
RAG技术:通过向量检索增强模型理解与生成能力
本文介绍了RAG(检索增强生成)技术的原理与应用,特别是如何通过向量检索系统增强生成模型对外部知识的理解和生成能力。针对大模型缺乏实时知识和生成内容易出错的问题,本文提出了一种结合向量检索与生成模型的方法,并提供了可运行的示例代码模块。
Swift社区
2025/01/28
2890
RAG技术:通过向量检索增强模型理解与生成能力
使用 Llama3 和 Ollama 改进了 RAG
在本文中,我们将创建一个高级 RAG,它将根据作为管道输入给出的研究论文来回答用户查询。用于构建该管道的技术堆栈如下。
IT大咖说
2024/04/24
1.3K0
使用 Llama3 和 Ollama 改进了 RAG
RAG技术全解析:打造下一代智能问答系统
大型语言模型(LLM)已经取得了显著的成功,尽管它们仍然面临重大的限制,特别是在特定领域或知识密集型任务中,尤其是在处理超出其训练数据或需要当前信息的查询时,常会产生“幻觉”现象。为了克服这些挑战,检索增强生成(RAG)通过从外部知识库检索相关文档chunk并进行语义相似度计算,增强了LLM的功能。通过引用外部知识,RAG有效地减少了生成事实不正确内容的问题。RAG目前是基于LLM系统中最受欢迎的架构,有许多产品基于RAG构建,使RAG成为推动聊天机器人发展和增强LLM在现实世界应用适用性的关键技术。
用户9177072
2024/05/08
6160
RAG科普文!检索增强生成的技术全景解析
增强生成 (RAG) 是塑造应用生成式 AI 格局的关键技术。Lewis 等人在其开创性论文中提出了一个新概念面向知识密集型 NLP 任务的检索增强生成之后,RAG 迅速成为基石,提高了大型语言模型 (LLM) 输出的可靠性和可信度。
致Great
2025/02/15
9220
RAG科普文!检索增强生成的技术全景解析
分块的艺术:提升 RAG 效果的关键
在RAG系统中,这种高效的实现往往是通过“分块”来实现的。你可以把它想象成把一本厚书分成几章——这样一来,阅读和理解就轻松多了。同样地,分块技术把大段复杂的文本拆分成更小、更容易处理的片段,让AI能更快、更准确地理解和处理信息。
致Great
2025/01/10
4180
分块的艺术:提升 RAG 效果的关键
高级RAG技术第1部分:数据处理
最近的论文《搜索增强生成中的最佳实践》通过实证研究评估了各种增强RAG技术的效果,旨在汇聚一套RAG的最佳实践。
点火三周
2024/08/19
5220
高级RAG技术第1部分:数据处理
推荐阅读
相关推荐
如何为AI智能体添加RAG以实现上下文理解
更多 >
LV.1
后端研发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验