?支持此项目:您的赞助为RAG Technologies提供了创新。成为赞助商,以帮助维护和扩展这一宝贵资源!
赞助商❤️
我们非常感谢为该项目做出了重大贡献的组织和个人。
公司赞助商
个人赞助商
先进的抹布技术:提升您的检索功能的生成系统
欢迎来到当今可用的检索一代(RAG)教程中最全面,最具动态的收藏之一。该存储库是旨在增强抹布系统的准确性,效率和上下文丰富性的尖端技术的枢纽。
?保持更新!
|
前沿 更新 |
专家 见解 |
最高0.1% 内容 |
加入20,000多名AI爱好者获得独特的尖端见解和免费教程!另外,订户可以获得独家及时的独家访问权,并为我的书和即将推出的破布技术课程提供特别33%的折扣!
介绍
检索授权的一代(RAG)正在彻底改变我们将信息检索与生成AI结合的方式。该存储库展示了精心策划的高级技术集合,旨在增强您的抹布系统,使它们能够提供更准确,上下文相关和全面的响应。
我们的目标是为希望突破抹布的界限的研究人员和从业者提供宝贵的资源。通过培养协作环境,我们的目标是在这个令人兴奋的领域加速创新。
相关项目
与我的代理商升级生产存储库。它提供了水平的,代码优先的教程,涵盖了每个工具并踏上建筑生产级Genai代理的生命周期,从Spark到Scaile具有可靠的模式和可重复使用的蓝图,以实现现实世界中的发射,这是您对运输代理商的认真生产的最聪明的起点。
?探索我的Genai代理存储库,以发现各种AI代理实现和教程,展示如何将不同的AI技术组合起来以创建强大的交互式系统。
?️查看我的及时工程技术指南,以获取从基本概念到高级技术的全面收集,从而增强您与AI语言模型有效互动的能力。
社区驱动的知识中心
这个存储库的贡献越来越强!加入我们充满活力的社区 – 共同塑造和推进该项目的中心枢纽?
教育AI subreddit
抹布技术不和谐社区
无论您是专家还是刚开始,您的见解都可以影响抹布的未来。加入我们,提出想法,获取反馈并在创新技术方面进行合作。有关贡献指南,请参阅我们的贡献。md文件。让我们一起推进抹布技术!
?对于Genai,抹布或定制代理商的讨论或探索知识共享机会,请随时在LinkedIn上连接。
关键功能
- ?最新的抹布增强功能
- 每种技术的全面文档
- 实际实施指南
- ?定期更新以及最新进步
高级技术
探索我们广泛的尖端破布技术清单:
| # | 类别 | 技术 | 看法 |
|---|---|---|---|
| 1 | 关键协作 | 带有米尔沃矢量DB的抹布 | |
| 2 | 基础? | 基本抹布 | |
| 3 | 基础? | 带有CSV文件的抹布 | |
| 4 | 基础? | 可靠的抹布 | |
| 5 | 基础? | 优化块尺寸 | |
| 6 | 基础? | 命题块 | |
| 7 | 查询增强 | 查询转换 | |
| 8 | 查询增强 | 海德(假设文件嵌入) | |
| 9 | 查询增强 | 炒作(假设及时嵌入) | |
| 10 | 上下文丰富 | 上下文块标头 | |
| 11 | 上下文丰富 | 相关段提取 | |
| 12 | 上下文丰富 | 上下文窗口增强 | |
| 13 | 上下文丰富 | 语义块 | |
| 14 | 上下文丰富 | 上下文压缩 | |
| 15 | 上下文丰富 | 文档增强 | |
| 16 | 高级检索 | 融合检索 | |
| 17 | 高级检索 | 重读 | |
| 18 | 高级检索 | 多面滤波 | |
| 19 | 高级检索 | 分层索引 | |
| 20 | 高级检索 | 合奏检索 | |
| 21 | 高级检索 | 飞镖检索 | |
| 22 | 高级检索 | 带有字幕的多模式抹布 | |
| 23 | 迭代技术? | 取回反馈循环 | |
| 24 | 迭代技术? | 自适应检索 | |
| 25 | 迭代检索 | 迭代检索 | |
| 26 | 评估 | Deepeval | |
| 27 | 评估 | 松鸡 | |
| 28 | 解释性? | 可解释的检索 | |
| 29 | 高级体系结构 | 用兰链图抹布 | |
| 30 | 高级体系结构 | Microsoft GraphRag | |
| 31 | 高级体系结构 | 猛禽 | |
| 32 | 高级体系结构 | 自lag | |
| 33 | 高级体系结构 | 矫正抹布(crag) | |
| 34 | 特殊技术? | 精致的可控剂 |
?基础抹布技术
-
简单的抹布?
- Langchain :
- Llamaindex :
- 可运行的脚本
概述?
引入基本的抹布技术非常适合新移民。
执行
从基本的检索查询开始,然后集成增量学习机制。
-
使用CSV文件的简单抹布?
- Langchain :
- Llamaindex :
概述?
使用CSV文件引入基本抹布。
执行
这使用CSV文件来创建基本检索并与OpenAI集成以创建问答系统。
-
可靠的抹布?️ :
概述?
通过添加验证和改进来确保检索到的信息的准确性和相关性来增强简单的抹布。
执行
检查是否检索到的文档相关性,并突出显示用于回答的文档的段。
-
选择块尺寸?
- Langchain :
- 可运行的脚本
概述?
为文本块选择适当的固定尺寸,以平衡上下文保存和检索效率。
执行
尝试不同的块尺寸,以找到保留环境和保持特定用例的检索速度之间的最佳平衡。
-
命题块⛓️? :
概述?
将文本分解为简洁,完整,有意义的句子,可以更好地控制和处理特定的查询(尤其是提取知识)。
执行
- ?命题生成: LLM与自定义提示一起使用,以生成文档块中的事实语句。
- ✅质量检查:生成的命题通过评估准确性,清晰度,完整性和简洁性的分级系统传递。
其他资源
- 命题方法:增强AI系统的信息检索– 一篇全面的博客文章,探讨了抹布系统中命题块的好处和实施。
?查询增强
-
查询转换
- Langchain :
- 可运行的脚本
概述?
修改和扩展查询以提高检索效率。
执行
- ✍️查询重写:重新调查以改善检索。
- ?逐步提示:生成更广泛的查询以进行更好的上下文检索。
- ?子问题分解:将复杂的查询分解为更简单的子查询。
-
假设问题(HYDE方法)❓
- Langchain :
- 可运行的脚本
概述?
产生假设的问题,以改善查询和数据之间的一致性。
执行
创建假设问题,指向数据中的相关位置,从而增强查询数据匹配。
其他资源
- 海德:探索AI检索的假设文档嵌入– 一篇简短的博客文章清楚地解释了此方法。
上下文和内容丰富
-
假设的及时嵌入(HYPE)❓
- Langchain :
- 可运行的脚本
概述?
炒作(假设提示嵌入)是对传统抹布检索的一种增强,预计在索引阶段预先计算了假设的提示,但可以将大块插入其位置。这将检索转换为问题问题匹配任务。这避免了需要运行时合成答案的生成,从而减少了推理时间计算开销,同时改善了检索对齐。
执行
- 预先计算的问题:炒作不是嵌入文档块,而是在索引时间每块产生多个假设的查询。
- ?问题问题匹配:用户查询与存储的假设问题相匹配,从而可以更好地检索对齐方式。
- ⚡没有运行时开销:与海德不同,炒作不需要在查询时间进行LLM呼叫,从而使检索更快,更便宜。
- ?更高的精度和召回:将检索上下文精确度提高了42个百分点,并要求召回多达45个百分点。
其他资源
- 预印象:假设提示嵌入(HYPE) – 研究论文详细介绍了方法,评估和基准。
-
上下文块标头?️ :
概述?
上下文块标头(CCH)是一种创建文档级别和部分级别上下文,并在嵌入之前将这些块标头预先到块中的方法。
执行
创建一个包含有关文档文档和/或部分部分的上下文的块标头,并将其预先介绍给每个块以提高检索精度。
其他资源
DSRAG :实现此技术的开源检索引擎(以及其他一些高级抹布技术)
-
相关细分提取? :
概述?
相关段提取(RSE)是一种动态构建与给定查询相关的文本的多块段的方法。
执行
执行检索后处理步骤,该步骤分析最相关的块,并确定更长的多块段,以提供更完整的LLM上下文。
-
上下文丰富技术
- Langchain :
- Llamaindex :
- 可运行的脚本
概述?
通过嵌入各个句子并将上下文扩展到相邻句子来增强检索精度。
执行
在原始文本中访问其前后句子的同时,请检索最相关的句子。
- 语义块?
- Langchain :
- 可运行的脚本
概述?
基于语义连贯性而不是固定尺寸的文档。
执行
使用NLP技术来识别文档中的主题边界或相干部分,以实现更有意义的检索单元。
其他资源
- 语义分解:改进AI信息检索– 一篇全面的博客文章,探讨了抹布系统中语义块的好处和实施。
- 上下文压缩?️
- Langchain :
- 可运行的脚本
概述?
在保留与查询相关的内容的同时压缩检索的信息。
执行
使用LLM压缩或总结检索的块,并保留与查询相关的关键信息。
- 通过问题生成的文档扩展以增强检索
- Langchain :
- 可运行的脚本
概述?
该实现展示了一种文本增强技术,该技术利用额外的问题生成来改善向量数据库中的文档检索。通过生成和合并与每个文本片段相关的各种问题,系统增强了标准检索过程,从而增加了找到可以用作生成问题答案的背景的相关文档的可能性。
执行
使用LLM来增强文本数据集,并向每个文档提出所有可能的问题。
高级检索方法
-
融合检索?
- Langchain :
- Llamaindex :
- 可运行的脚本
概述?
通过组合不同的检索方法来优化搜索结果。
执行
将基于关键字的搜索与基于向量的搜索结合在一起,以进行更全面和准确的检索。
-
智能的重新研究
- Langchain :
- Llamaindex :
- 可运行的脚本
概述?
应用高级评分机制来提高检索结果的相关性排名。
执行
- ?基于LLM的评分:使用语言模型来评分每个检索到的块的相关性。
- ?交叉编码器模型:重新编码查询和检索文档以共同进行相似性评分。
- ?元数据增强的排名:将元数据纳入得分过程中,以进行更细微的排名。
其他资源
- 相关性革命:重新排列如何改变抹布系统– 一篇全面的博客文章,探讨了重新排序在增强抹布系统性能方面的力量。
-
多面滤波?
概述?
应用各种过滤技术来完善和提高检索结果的质量。
执行
- ?️元数据过滤:根据日期,来源,作者或文档类型等属性应用过滤器。
- 相似性阈值:设定相关得分的阈值,以仅保留最相关的结果。
- ?内容过滤:删除与特定内容标准或基本关键字不匹配的结果。
- ?多样性过滤:通过过滤近简化的条目来确保结果多样性。
-
分层索引
- Langchain :
- 可运行的脚本
概述?
创建一个多层系统,用于有效的信息导航和检索。
执行
实施一个两层系统,以供文档摘要和详细的块,均包含指向数据中同一位置的元数据。
其他资源
- 层次索引:增强抹布系统– 一篇综合博客文章,探讨了层次索引在增强抹布系统性能方面的力量。
-
合奏检索?
概述?
结合多个检索模型或技术,以获得更强和准确的结果。
执行
应用不同的嵌入模型或检索算法,并使用投票或加权机制来确定最终的检索文档集。
-
飞镖检索
- Langchain :
概述?
在检索中优化相关信息增益
执行
- 将相关性和多样性相结合到单个评分函数中,并直接对其进行优化。
- 当数据库密集时,POC显示了简单的简单抹布,并且飞镖检索优于它。
-
多模式检索
概述?
扩展了RAG功能以处理各种数据类型以获得更丰富的响应。
执行
- 具有多媒体字幕的多模型抹布: – 标题并存储所有其他多媒体数据,例如PDF,PPTS等,并在矢量存储中使用文本数据并将其检索。
- 使用Colpali的多模型抹布: – 而不是字幕将所有数据转换为图像,然后找到最相关的图像并将其传递给视觉大语模型。
?迭代和自适应技术
-
通过反馈循环检索?
- Langchain :
- 可运行的脚本
概述?
实施机制以从用户交互中学习并改善未来的检索。
执行
收集和利用用户反馈有关检索文档的相关性和质量以及对微调检索和排名模型的响应。
-
自适应检索
- Langchain :
- 可运行的脚本
概述?
根据查询类型和用户上下文动态调整检索策略。
执行
将查询分为不同的类别,并考虑用户上下文和偏好,为每种查询使用量身定制的检索策略。
-
迭代检索
概述?
进行多轮检索以完善并提高结果质量。
执行
使用LLM分析初始结果并生成后续查询以填补空白或澄清信息。
评估
-
DeepEval评估:|全面的破布系统评估|
概述?
通过涵盖几个指标并创建测试用例,执行评估检索增强的生成系统。
执行
使用DeepeVal库来进行有关抹布系统的正确性,忠诚和上下文相关性的测试案例。
-
松鸡评估:|上下文的LLM评估|
概述?
使用松鸡框架的指标评估检索授课生成的最后阶段,并在松鸡单位测试中对您的自定义LLM法官进行元评估。
执行
使用松鸡软件包在松鸡框架的6个指标上评估与上下文的LLM世代,并使用单位测试来评估自定义Llama 3.1 405B评估器。
?解释性和透明度
-
可解释的检索?
- Langchain :
- 可运行的脚本
概述?
在检索过程中提供透明度,以增强用户的信任和系统改进。
执行
解释为什么检索某些信息以及它们与查询的关系。
高级体系结构
-
用Milvus Vector数据库绘制抹布?
- 用米尔维斯的图形抹布:
概述?
一种简单而强大的方法,可以使用Milvus Vector数据库实现图形抹布。该技术通过将基于关系的检索与向量搜索和重新掌握结合在一起,可以显着提高复杂多跳跃问题的性能。
执行
- 将文本段落和关系三胞胎(主题 – 偏见-Object)存储在单独的Milvus Collections中
- 通过查询两个收藏来执行多路检索
- 使用LLM根据与查询的相关性来重读关系
- 根据最相关的关系检索最终段落
-
知识图集成(图抹布)?️
- Langchain :
- 可运行的脚本
概述?
从知识图中合并结构化数据以丰富上下文并改善检索。
执行
从与查询相关的知识图中检索实体及其关系,将这些结构化数据与非结构化文本相结合,以提供更多信息的响应。
-
GraphRag(Microsoft)
- GraphRag :
概述?
Microsoft GraphRag(开源)是一个高级抹布系统,它集成了知识图以提高LLMS的性能
执行
•通过从文本单元中提取实体,关系来分析输入语料库。从自下而上产生每个社区及其成分的摘要。
-
猛禽:递归的抽象处理,用于绿化的检索?
- Langchain :
- 可运行的脚本
概述?
实施递归方法来处理和组织树结构中检索的信息。
执行
使用抽象性摘要递归处理并汇总检索的文档,以层次上下文中的树结构中组织信息。
-
自我抹布?
- Langchain :
- 可运行的脚本
概述?
一种结合基于检索和基于生成的方法的动态方法,可以自适应地决定是否使用检索信息以及如何最好地利用它来生成响应。
执行
•实施多步骤过程,包括检索决策,文件检索,相关性评估,响应生成,支持评估和公用事业评估,以产生准确,相关和有用的输出。
-
矫正抹布?
- Langchain :
- 可运行的脚本
概述?
一种复杂的破布方法,可以动态评估和纠正检索过程,结合向量数据库,Web搜索和语言模型,以获得高度准确和上下文感知的响应。
执行
•集成检索评估器,知识改进,Web搜索查询重写器和响应生成器组件,以创建一个系统,该系统根据相关性分数调整其信息采购策略,并在必要时结合多个来源。
?特殊高级技术?
-
复杂的抹布任务的复杂可控剂?
概述?
一种高级的破布解决方案,旨在解决简单基于语义相似性检索的复杂问题无法解决的复杂问题。这种方法使用复杂的确定性图作为高度可控制的自主剂的“大脑”?,能够从您自己的数据中回答非平凡的问题。
执行
•实施一个多步骤过程,涉及问题匿名,高级计划,任务故障,自适应信息检索和问题答案,持续重新计划和严格的答案验证,以确保接地和准确的答案。
入门
开始在您的项目中实施这些高级抹布技术:
- 克隆这个存储库:
git clone https://github.**c*om/NirDiamant/RAG_Techniques.git
- 导航到您感兴趣的技术:
cd all_ RAG_Techniques /technique-name - 遵循每个技术目录中的详细实施指南。
贡献
我们欢迎社区的捐款!如果您有一种新技术或改进来建议:
- 分叉存储库
- 创建您的功能分支:Git Checkout -B功能/AmazingFeature
- 提交您的更改:git commit -m\’添加一些惊人的表现\’
- 推到分支:Git推送起源功能/AmazingFeature
- 打开拉请请求
贡献者
执照
该项目是根据自定义非商业许可获得许可的 – 有关详细信息,请参见许可证文件。
如果您发现此存储库有帮助,请考虑给它一个明星!
关键字:抹布,检索效果一代,NLP,AI,机器学习,信息检索,自然语言处理,LLM,嵌入,语义搜索
