前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于3D激光雷达的SLAM算法研究现状与发展趋势
SLAM算法是移动机器人实现自主移动的关键环节。激光雷达(LiDAR)具有测距精度高、不易受外部干扰和地图构建直观方便等优点,广泛应用于大型复杂室内外场景地图的构建。随着3D激光器的应用与普及,国内外学者围绕基于3D激光雷达的SLAM算法的研究已取得丰硕的成果。
一点人工一点智能
2023/08/25
3.5K0
基于3D激光雷达的SLAM算法研究现状与发展趋势
基于3D激光雷达的SLAM算法研究现状与发展趋势
SLAM算法是移动机器人实现自主移动的关键环节。激光雷达(LiDAR)具有测距精度高、不易受外部干扰和地图构建直观方便等优点,广泛应用于大型复杂室内外场景地图的构建。随着3D激光器的应用与普及,国内外学者围绕基于3D激光雷达的SLAM算法的研究已取得丰硕的成果。
一点人工一点智能
2023/04/26
1.8K0
基于3D激光雷达的SLAM算法研究现状与发展趋势
​SLAM | 融合激光雷达与图像数据,通过3D高斯溅射实现室内精确定位!
光学传感器外方位估计以及同时重建三维(3D)环境的问题在计算机视觉领域中通常被称为SfM(Structure from Motion),在机器人学中被称为SLAM(Simultaneous Localisation and Mapping)[1]。
AIGC 先锋科技
2024/07/08
2.1K0
​SLAM  |   融合激光雷达与图像数据,通过3D高斯溅射实现室内精确定位!
基于激光雷达的深度图杆状物提取器在城市环境中长期定位方法
文章:Online Range Image-based Pole Extractor for Long-term LiDAR Localization in Urban Environments
点云PCL博主
2022/05/25
9540
基于激光雷达的深度图杆状物提取器在城市环境中长期定位方法
轻量化固态激光雷达的三维定位与建图
文章:Lightweight 3-D Localization and Mapping for Solid-State LiDAR
点云PCL博主
2022/01/20
1.3K0
轻量化固态激光雷达的三维定位与建图
用于机器人定位和建图的增强型 LiDAR-惯性 SLAM 系统
粒子滤波也是一个十分经典的算法,它与卡尔曼滤波的不同之处在于卡尔曼滤波假设概率分布是高斯分布,然后在计算后验概率(pdf)时,利用正态分布的性质,可以计算出来;而粒子滤波的后验概率分布是通过蒙特卡洛方法采样得到的。蒙特卡洛方法很清楚的一点是采样的粒子越多,概率分布越准确,但是计算速度会下降。也就是说如何分布你的有限个数的采样粒子来得到更为准确的后验概率分布是粒子滤波一直在做的事情。在本文中粒子滤波的改善一个是局部采样,另一个是采样时更好的概率分布来得到更精确的后验概率。在闭环检测这里则是应用了深度学习的方法。具体实现可以随笔者一起看下面的文章。
3D视觉工坊
2023/04/29
5450
用于机器人定位和建图的增强型 LiDAR-惯性 SLAM 系统
多个激光雷达同时校准、定位和建图的框架
文章:A decentralized framework for simultaneous calibration, localization and mapping with multiple LiDARs
点云PCL博主
2022/09/13
8300
多个激光雷达同时校准、定位和建图的框架
2020年最新 iPad Pro上的激光雷达是什么?来激光SLAM技术中找答案
日前,苹果公司正式发布了2020 iPad Pro。设备采用A12Z芯片,并包括Ultra Wide摄像头和液态视网膜显示屏,以及常规的摄像头、传感器和扬声器阵列。但亮点功能是LiDAR扫描仪将用作深度传感器,而它具有促进全新层次AR体验的潜力。
CV君
2020/03/24
2.2K0
2020年最新 iPad Pro上的激光雷达是什么?来激光SLAM技术中找答案
基于激光雷达强度信息的实时SLAM方案
文章:Real-Time Simultaneous Localization and Mapping with LiDAR intensity
点云PCL博主
2023/08/21
6780
基于激光雷达强度信息的实时SLAM方案
NV-LIO:一种基于法向量的激光雷达-惯性系统(LIO)
论文:NV-LIO: LiDAR-Inertial Odometry using Normal Vectors Towards Robust SLAM in Multifloor Environments
一点人工一点智能
2024/05/28
3530
NV-LIO:一种基于法向量的激光雷达-惯性系统(LIO)
《智能驾驶之激光雷达算法详解》激光雷达 +IMU组合定位
激光里程计算法,仅凭激光点云估算激光雷达的运动状态,其精度显著受激光点云质量波动影响。IMU(惯性测量单元),作为广泛应用于机器人及汽车领域的传感器,集成了陀螺仪与加速度计,能精确捕捉并输出被测物体的角速度与加速度信息,进而通过积分运算推算出其在一定时间内的姿态与位置变化。然而,IMU在实际运作中易受多种干扰因素影响,尤其是加速度计的误差会随时间累积,导致导航精度下降。因此,常需借助外部信息融合策略,以强化IMU的定位精度。鉴于激光里程计依赖低频的环境感知进行定位,而IMU则通过高频的自身运动状态积分进行位姿估计,两者在功能上存在天然的互补性。众多学者因此致力于将激光里程计与IMU相结合,以实现高精度、实时性的定位。根据融合方式与原理的不同,这一领域的研究被细化为LiDAR+IMU松耦合与紧耦合两大方向。 激光雷达与IMU的松耦合定位策略,巧妙融合了激光里程计与IMU航位推算技术。两者独立运作,依托卡尔曼滤波、粒子滤波等先进框架,实现精准信息融合,最终精确输出定位结果。2019年,国助科技BXue团队创新性地提出IMU-AHFLO算法,该算法凭借点线特征或点云分布特征匹配的激光里程计,捕捉车辆在两帧点云间的位姿变化,随后,高频IMU数据携手车辆运动学方程,预测上述时刻的位姿变迁,最终,卡尔曼滤波器精准估算车辆新姿态。南昌大学的廖杰华则另辟蹊径,将LOAM算法与自适应粒子滤波技术巧妙结合,专为无人物流小车打造室内定位新方案。而Google的Cartographer算法,更是以分层优化为核心,前端运用无迹卡尔曼滤波器实现2D激光雷达与IMU数据的无缝融合,后端则聚焦于子地图构建与优化,辅以分支定界法,显著加速闭环检测,确保定位系统的高效与精准。 激光雷达与IMU的紧耦合定位技术,相较于松耦合方式,显著减少了信息损失。这一创新方法将激光雷达与IMU数据融合于同一位姿优化问题中,实现了更为精准的位姿估计。紧耦合定位策略可细化为基于滤波器与平滑优化两大流派。基于滤波器的方法,在状态更新中无缝整合多源传感器数据,如H. Sebastian等先驱者利用自适应扩展卡尔曼滤波器,成功将3D激光雷达与GPS/INS融合,赋能无人小车室外精准导航。然而,滤波器固有的线性化近似与递推机制,随时间推移易累积误差,影响长期定位精度。为克服此局限,香港科技大学机器人与多感知实验室的C. Qin团队在ICRA 2020上隆重推出LINS算法,该算法采用迭代误差状态卡尔曼滤波器,深度融合激光雷达与IMU数据,通过持续校正系统状态误差,实现了车辆实时、高精度的定位与建图,为紧耦合定位技术树立了新的里程碑。
用户11339509
2024/11/11
5490
港科大最新开源 | 具有在线外部校准的多激光雷达系统
标题:Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration
用户9831583
2022/06/16
4420
港科大最新开源 | 具有在线外部校准的多激光雷达系统
F-LOAM:基于激光雷达的快速里程计和建图
文章:F-LOAM : Fast LiDAR Odometry and Mapping
点云PCL博主
2022/02/10
1.5K0
F-LOAM:基于激光雷达的快速里程计和建图
SLAM | 激光SLAM中开源算法对比
好久没有更新SLAM系列的文章了,前面我们讲到了激光SLAM技术。基于激光雷达的同时定位与地图构建技术(simultaneous localization and mapping, SLAM)以其准确测量障碍点的角度与距离、 无须预先布置场景、可融合多传感器、 在光线较差环境工作、 能够生成便于导航的环境地图等优势,成为目前定位方案中不可或缺的新技术。
AI算法修炼营
2020/05/08
3.6K0
基于激光雷达和单目视觉融合的SLAM和三维语义重建
文章:SLAM and 3D Semantic Reconstruction Based on the Fusion of Lidar and Monocular Vision
点云PCL博主
2023/08/21
1.7K0
基于激光雷达和单目视觉融合的SLAM和三维语义重建
具有在线外参校准的多激光雷达系统的里程计和地图绘制系统
文章:Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration
点云PCL博主
2022/02/10
5850
具有在线外参校准的多激光雷达系统的里程计和地图绘制系统
八种常用激光雷达和视觉SLAM算法的评估与比较
文章:Evaluation and comparison of eight popular Lidar and Visual SLAM algorithms
点云PCL博主
2022/12/27
3.7K0
八种常用激光雷达和视觉SLAM算法的评估与比较
漫谈 SLAM 技术(上)
DancingWind
2017/09/11
11.7K0
漫谈 SLAM 技术(上)
激光slam综述_开源算法是什么意思
好久没有更新SLAM系列的文章了,前面我们讲到了激光SLAM技术。基于激光雷达的同时定位与地图构建技术(simultaneous localization and mapping, SLAM)以其准确测量障碍点的角度与距离、 无须预先布置场景、可融合多传感器、 在光线较差环境工作、 能够生成便于导航的环境地图等优势,成为目前定位方案中不可或缺的新技术。
全栈程序员站长
2022/09/24
7380
激光slam综述_开源算法是什么意思
LOG-LIO: 一种高效局部几何信息估计的激光雷达惯性里程计方法
文章:LOG-LIO: A LiDAR-Inertial Odometry with Efficient Local Geometric Information Estimation
点云PCL博主
2023/08/21
4460
LOG-LIO: 一种高效局部几何信息估计的激光雷达惯性里程计方法
推荐阅读
相关推荐
基于3D激光雷达的SLAM算法研究现状与发展趋势
更多 >
LV.1
后端研发工程师
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验