all-rag-techniques

Implementation of all RAG techniques in a simpler way

收录时间:
2025-06-21

本仓库采用清晰、实用的方法讲解**检索增强生成(RAG)**技术,将高级技术分解为简单易懂的实现。不同于依赖LangChainFAISS等框架,这里的所有内容都使用常见的Python库openainumpymatplotlib等构建。

目标很简单:提供可读、可修改且具有教育意义的代码。通过关注基础原理,本项目帮助揭开RAG的神秘面纱,使其工作原理更易于理解。

🚀 内容概览

本仓库包含一系列Jupyter Notebook,每个都专注于特定的RAG技术。每个笔记本提供:

  • 技术要点的简明解释
  • 从零开始的逐步实现
  • 带有内联注释的清晰代码示例
  • 展示技术效果的评估与比较
  • 结果可视化呈现

以下是涵盖的技术概览:

笔记本 描述
1. 简单RAG 基础RAG实现,最佳入门选择
2. 语义分块 基于语义相似度拆分文本,生成更有意义的文本块
3. 分块大小选择器 探索不同分块大小对检索性能的影响
4. 上下文增强RAG 检索相邻文本块以提供更多上下文
5. 上下文分块标题 在嵌入前为每个文本块添加描述性标题
6. 文档增强RAG 从文本块生成问题以增强检索过程
7. 查询转换 通过重写、扩展或分解查询来改进检索,包含Step-back Prompting子查询分解技术
8. 重排序器 使用LLM对初始检索结果重新排序以提高相关性
9. 相关片段提取 识别并重建连续的文本片段,保持上下文完整性
10. 上下文压缩 实现上下文压缩以过滤和压缩检索到的文本块,最大化相关信息
11. 反馈循环RAG 整合用户反馈使RAG系统持续学习改进
12. 自适应RAG 根据查询类型动态选择最佳检索策略
13. 自监督RAG 实现Self-RAG,动态决定检索时机和方式,评估相关性和支持度
14. 命题分块 将文档分解为原子性事实陈述以实现精确检索
15. 多模态RAG 结合文本和图像进行检索,使用LLaVA为图像生成说明文字
16. 融合RAG 结合向量搜索与基于关键词(BM25)的检索以获得更好结果
17. 图RAG 将知识组织为图结构,实现相关概念遍历
18. 层次化RAG 构建层次化索引(摘要+详细分块)实现高效检索
19. HyDE RAG 使用假设文档嵌入改进语义匹配
20. 校正RAG 动态评估检索质量并使用网络搜索作为后备方案
21. 强化学习RAG 使用强化学习最大化RAG模型的奖励
最佳RAG查找器 使用简单RAG+重排序器+查询改写为给定查询寻找最佳RAG技术
22. 知识图谱处理大数据 使用知识图谱处理大型数据集

数据统计

相关导航

大语言模型LLMBook

大语言模型LLMBook

本书更关注为大模型初学者提供整体的技术讲解,为此我们在内容上进行了大范围的更新与重组,力图展现一个系统的大模型技术框架和路线图。本书适用于具有深度学习基础的读者阅读,可以作为一本基础的大模型参考书籍。在准备中文书的过程中,我们广泛阅读了现有的经典论文、相关代码和学术教材,从中提炼出核心概念、算法与模型,并进行了系统性的组织与讲解。我们对于每个章节的内容初稿都进行了多次修正,力求表达的清晰性与准确性。
大规模语言模型:从理论到实践

大规模语言模型:从理论到实践

大语言模型(Large Language Models,LLM)是一种由包含数百亿以上权重的深度神经网络构建的语言模型,使用自监督学习方法通过大量无标记文本进行训练。自2018年以来,包含Google、OpenAI、Meta、百度、华为等公司和研究机构都纷纷发布了包括BERT, GPT等在内多种模型,并在几乎所有自然语言处理任务中都表现出色。2021年开始大模型呈现爆发式的增长,特别是2022年11月ChatGPT发布后,更是引起了全世界的广泛关注。用户可以使用自然语言与系统交互,从而实现包括问答、分类、摘要、翻译、聊天等从理解到生成的各种任务。大型语言模型展现出了强大的对世界知识掌握和对语言的理解。本书将介绍大语言模型的基础理论包括语言模型、分布式模型训练以及强化学习,并以Deepspeed-Chat框架为例介绍实现大语言模型和类ChatGPT系统的实践。