分享
高级RAG
输入“/”快速插入内容
高级RAG
飞书用户2749
一、In simple, What is simple RAG?
💾
基本RAG
需要从
外部知识数据库中获取文档
,然后,将这些文档与用户的查询一起被传输到
LLM
,用于生成响应。从本质上讲,RAG包括一个
检索组件
、一个
外部知识数据库
和一个
生成组件
。
在基本的RAG场景中
,大致有如下步骤:
首先将文本划分为多个块,使用
Transformer Encoder模型
将这些块嵌入到向量中,将这些向量存储到向量数据库并建立索引,查询会检索向量数据库中相关的上下文,这些上下文和查询一起
生成最终的LLM提示,并引导LLM合成响应
。
50%
50%
RAG系统包含三个关键模块:
💾
Retriever
:
从上下文相关的知识源中检索文本段落;
Reranker
(可选):对检索到的段落重新打分和重新排序;
Generator
:
将上下文与检索到的段落集成以生成输出文本
二、使用LangChain和Huggingface实现基本RAG
41%
59%
三、高级RAG
最基本、最简单的RAG系统有时候会检索不到相关的上下文,因此需要一些更高级的方法来
增强RAG系统
,比如:
查询转换
、
重排序
等。
3.1 高级RAG(检索增强生成)技术涵盖以下内容:
💾
•
基本RAG
:它涉及从外部知识数据库中检索文档,并将这些文档与用户的查询一起传递给LLM以生成响应。主要组件是检索组件、外部知识数据库和生成组件。
•
RAG的成功要求:
一个成功的RAG系统应该有两个主要功能:检索必须找到与用户查询最相关的文档,生成必须有效地利用这些文档来回答用户查询。
•
高级RAG:
构建高级RAG需要应用更复杂的技术和策略来满足成功要求。这些技术既可以独立地满足其中一个高级成功需求,也可以同时满足这两个需求。