【文章转载】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
在这里插入图片描述

相关推荐

  1. 关于鸿蒙笔记整理

    2024-04-26 00:22:05       53 阅读
  2. 关于Python学习笔记

    2024-04-26 00:22:05       47 阅读
  3. 一些关于网络笔记

    2024-04-26 00:22:05       33 阅读
  4. 关于OpenJDK学习笔记

    2024-04-26 00:22:05       31 阅读
  5. 关于转义解释

    2024-04-26 00:22:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 00:22:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 00:22:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 00:22:05       87 阅读
  4. Python语言-面向对象

    2024-04-26 00:22:05       96 阅读

热门阅读

  1. 低空经济和无人机

    2024-04-26 00:22:05       22 阅读
  2. MySQL中CHANGE REPLICATION FILTER 语句详解

    2024-04-26 00:22:05       29 阅读
  3. Eclipse debug时有几个常用的快捷键非常实用

    2024-04-26 00:22:05       34 阅读
  4. 代码随想录算法训练营day45

    2024-04-26 00:22:05       33 阅读
  5. C语言中的逻辑运算

    2024-04-26 00:22:05       27 阅读
  6. 3. 4XX (Client Error 客户端错误状态码)

    2024-04-26 00:22:05       27 阅读
  7. 20240424 diary

    2024-04-26 00:22:05       28 阅读
  8. 数据结构PT2——堆栈/队列

    2024-04-26 00:22:05       34 阅读
  9. 探索常见经典目标检测算法:从YOLO到Faster R-CNN

    2024-04-26 00:22:05       34 阅读
  10. C++ set、map

    2024-04-26 00:22:05       25 阅读
  11. 人工智能与汽车行业的定量分析研究

    2024-04-26 00:22:05       34 阅读
  12. transformers - 文本分类

    2024-04-26 00:22:05       27 阅读
  13. 正方形(c++题解)

    2024-04-26 00:22:05       27 阅读