RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将大语言模型(LLM)与模型外知识库检索相结合的技术架构。
RAG = LLM + 知识检索
基于 LLM 存在的上述问题,RAG诞生了。它通过在生成文本之前或过程中检索相关的文档或信息,从而生成更为准确和上下文相关的回答
RAG的基本原理是将知识库检索与 LLM 生成相结合,包括两个阶段流程:
RAG 的核心步骤如下图所示(图片来自网络)
在 RAG 提供服务之前,需要先将知识库落库、简历索引。具体而言,同样有以下内容:
用户输入环节,主要目标是解析用户输入并生成检索信号。
tsn_enable="yes"
可能启用术语相似性网络扩展查询)。检索环节会从知识库中召回与用户问题相关的文档。
search_engine="sogou"
,可能结合搜狗搜索引擎的关键词匹配能力补充结果。rank_model_type="bge"
指定的排序模型(如 BGE 的交叉编码器)对召回结果重排序,提升相关性。num="10"
返回 Top-10 最相关文档。生成环节将检索环节得到的结果以对话上下文的方式,传递给 LLM,生成结果
优化生成结果的可用性与可解释性。
num="10"
)的文档片段。rank_model_type="bge"
的 BGE 模型)与关键词检索(如 search_engine="sogou"
),提升召回多样性。tsn_enable="yes"
启用术语相似性网络(TSN),扩展用户问题的语义表达。num="10"
)最相关文档。tsn_enable="yes"
可扩展为图谱术语相似性扩展。rank_model_type="bge"
可能结合图嵌入(如 TransE)优化排序。search_engine="sogou"
或向量检索。num
(如从 10 扩展至 20)或重排序策略(rank_model_type
)。tsn_enable
等扩展功能。