【文章转载】Lance Martin的关于RAG的笔记

转载自微博@黄建同学

从头开始学习 RAG,看Lance Martin的这篇笔记就行了,包含了十几篇论文和开源实现!


这是一组简短的(5-10 分钟视频)和笔记,解释了我最喜欢的十几篇 RAG 论文。我自己尝试实现每个想法(所有代码都是开源的),并根据图表分组。

代码:github.com/langchain-ai/rag-from-scratch

视频播放列表:youtube.com/playlist?list=PLfaIDFEXuae2LXbO1_PKyVJiQ23ZztA0x

一些亮点: #程序员##ai探索计划#

★RAG 真的死了吗?

RAG 将如何随着长期 LLM 而改变。

视频: youtu.be/SsHUNfhF32s

★自适应RAG 根据复杂程度动态地将查询路由到不同的 RAG 方法。使用Cohere cmd-R 在 LangGraph 中实现。

视频: youtu.be/04ighIjMcAI

代码: github.com/langchain-ai/langgraph/blob/main/examples/rag/langgraph_adaptive_rag_cohere.ipynb

论文:arxiv.org/abs/2403.14403

★矫正-RAG 在循环单元测试中自我纠正检索错误,以确定文档相关性并返回到网络搜索。在 LangGraph 中实现了Mistral AI -7b + Ollama,以便在本地运行。

视频: youtu.be/E2shqsYwxck

代码: github.com/langchain-ai/langgraph/blob/main/examples/rag/langgraph_crag.ipynb

论文:arxiv.org/pdf/2401.15884.pdf

★自身RAG

使用循环单元测试自行纠正 RAG 错误,以检查文档相关性、答案幻觉和答案质量。在 LangGraph 中实现,使用Mistral AI -7b + Ollama进行本地运行。

代码:github.com/langchain-ai/langgraph/blob/main/examples/rag/langgraph_self_rag.ipynb

代码(本地):github.com/langchain-ai/langgraph/blob/main/examples/rag/langgraph_self_rag_local.ipynb

论文:arxiv.org/abs/2310.11511.pdf

★查询路由

将问题引导至正确数据源的各种方法(例如逻辑、语义等)。

视频: youtu.be/pfpIndq7Fi8

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_10_and_11.ipynb

★查询结构

使用 LLM 将自然语言转换为其中 DSL 是一种与给定数据库(SQL、Cypher 等)交互所需的领域特定语言。

视频: youtu.be/kl6NwWYxvbM

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_10_and_11.ipynb

博客:

1/ blog.langchain.dev/query-construction/

2/ 深入研究 graphDB:blog.langchain.dev/enhancing-rag-based-applications-accuracy-by-constructing-and-leveraging-knowledge-graphs/

3/ 查询结构文档: python.langchain.com/docs/use_cases/query_analysis/techniques/structuring/

4/ 自查询检索器文档: python.langchain.com/docs/modules/data_connection/retrievers/self_query/

★多表示索引

使用 LLM 生成针对检索进行优化的文档摘要("命题")。嵌入这些摘要以进行相似性搜索,但将完整文档返回给 LLM 进行生成。

视频: youtu.be/gTCU9I6QqCE

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_12_to_14.ipynb

论文: arxiv.org/pdf/2312.06648.pdf

★PAPROT

将语料库中的文档聚类,并递归地总结相似的文档。将它们全部编入索引,生成较低级别的文档和摘要,可以检索这些文档和摘要来回答从详细到更高级别的问题。

视频: youtu.be/z_6EeA2LDSw

代码: github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb

论文: arxiv.org/pdf/2401.18059.pdf

★ColBERT

使用受上下文影响的嵌入来提高文档和查询中每个标记的嵌入粒度。

视频: youtu.be/cN6S0Ehm7_8

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_12_to_14.ipynb

论文:arxiv.org/abs/2004.12832

★ 多次查询

从多个角度重写用户问题,为每个重写的问题检索文档,返回所有查询的唯一文档。

视频: youtube.com/watch?v=JChPi0CRnDY

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_5_to_9.ipynb

论文: arxiv.org/pdf/2305.14283.pdf

★RAG融合

从多个角度重写用户问题,检索每个重写问题的文档,并组合多个搜索结果列表的排名,以使用倒数排名融合 (RRF) 生成单一、统一的排名。

视频: youtube.com/watch?v=77qELPbNgxA

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_5_to_9.ipynb

项目:github.com/Raudaschl/rag-fusion

★ 分解

将问题分解为一组子问题/问题,可以按顺序解决(使用第一个问题的答案 + 检索来回答第二个问题),也可以并行解决(将每个答案合并为最终答案)。各种工作,如从最少到最多提示和 IR-CoT 提出了可以利用的想法。

视频: youtube.com/watch?v=h0OPWlEOank

代码: github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_5_to_9.ipynb

论文: arxiv.org/pdf/2205.10625.pdf,arxiv.org/pdf/2212.10509.pdf

★ 后退提示

首先提示 LLM 提出一个关于高级概念或原则的通用后退问题,并检索有关它们的相关事实。使用此基础来帮助回答用户问题。

视频: youtube.com/watch?v=xn1jEjRyJ2U

代码:github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_5_to_9.ipynb

论文:arxiv.org/pdf/2310.06117.pdf

★ HyDE

LLM 将问题转换为回答问题的假设文档。使用嵌入的假设文档检索真实文档,前提是 doc-doc 相似性搜索可以产生更多相关匹配。

视频:youtube.com/watch?v=SaDzIVkYqyY

代码:github.com/langchain-ai/rag-from-scratch/blob/main/rag_from_scratch_5_to_9.ipynb

论文:arxiv.org/abs/2212.10496

相关推荐
半导体守望者4 分钟前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
聚客AI22 分钟前
PyTorch玩转CNN:卷积操作可视化+五大经典网络复现+分类项目
人工智能·pytorch·神经网络
程序员岳焱25 分钟前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
柠檬味拥抱26 分钟前
AI智能体在金融决策系统中的自主学习与行为建模方法探讨
人工智能
智驱力人工智能37 分钟前
智慧零售管理中的客流统计与属性分析
人工智能·算法·边缘计算·零售·智慧零售·聚众识别·人员计数
workflower1 小时前
以光量子为例,详解量子获取方式
数据仓库·人工智能·软件工程·需求分析·量子计算·软件需求
壹氿1 小时前
Supersonic 新一代AI数据分析平台
人工智能·数据挖掘·数据分析
柠石榴1 小时前
【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
论文阅读·笔记·深度学习·nlp·text-to-sql
张较瘦_1 小时前
[论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
论文阅读·人工智能
我不是小upper1 小时前
SVM超详细原理总结
人工智能·机器学习·支持向量机