|
播报
Getting your Trinity Audio player ready...
|
什么是 RAG?
RAG 的全称是 检索增强生成。它是一种将信息检索 与 大语言模型生成 相结合的技术架构。
你可以把它想象成一个“开卷考试”的过程:
-
传统大模型(闭卷考试):只依靠训练时记忆的知识来回答问题。如果问题超出其记忆范围,它可能“胡编乱造”(产生幻觉)。
-
RAG 模型(开卷考试):
-
第一步:检索:当用户提问时,RAG 会先去一个专属的知识库(就像一本参考书)里查找与问题最相关的资料片段。
-
第二步:增强:将这些查找到的准确资料和用户的原始问题一起,组合成一个更丰富的“提示”。
-
第三步:生成:将这个增强后的提示提交给大模型,让它基于这些提供的资料来生成答案。
-
RAG 的核心价值:
-
答案更准确、可信:因为答案来源于提供的可靠资料,大大减少了模型“捏造”信息的可能。
-
突破模型固有知识限制:可以为模型注入新的、私有的、实时的知识(如公司内部文档、最新新闻、专业资料等),而无需重新训练模型,成本极低。
-
可追溯来源:你可以知道生成答案的依据是知识库中的哪份文档,方便核查。
如何构建 RAG 知识库?
构建一个完整的 RAG 系统通常包含以下核心步骤,下图清晰地展示了这一工作流程:
下面我们来详细拆解图中的关键环节:
阶段一:知识库准备(离线处理)
这是构建“专属参考书”的过程。
-
文档加载:
-
使用文档加载器从各种来源获取数据,如:PDF、Word、PPT、TXT、Markdown、HTML、数据库、甚至第三方应用(Notion, Confluence)。
-
工具:LangChain 的
DocumentLoaders, LlamaIndex 的data connectors。
-
-
文档分割(分块):
-
大模型处理文本有长度限制,不能将整本书丢给它。需要将长文档切分成有意义的“片段”。
-
关键考量:块的大小和重叠。太小可能丢失上下文,太大可能包含无关信息。通常按段落、章节或固定字符数(如 512-1000 个字符)分割,并设置少量重叠以保证连续性。
-
-
文本向量化(嵌入):
-
这是 RAG 的“大脑”。使用 Embedding 模型 将文本块转换为向量(一组数字)。语义相似的文本,其向量在数学空间中也更接近。
-
常用模型:OpenAI 的
text-embedding-3, Cohere 的 Embed 模型,开源的BGE、Sentence-Transformers。
-
-
存储与索引:
-
将上一步生成的向量和对应的原始文本块,一起存入向量数据库。
-
向量数据库专为高效检索相似向量而设计。
-
常用数据库:ChromaDB, Pinecone, Weaviate, Milvus, Qdrant。
-
阶段二:检索与生成(在线查询)
这是“开卷考试”的实时过程。
-
用户提问:用户输入一个问题。
-
问题向量化:使用同一个 Embedding 模型将用户问题转换为向量。
-
向量检索:在向量数据库中,查找与“问题向量”最相似的 K 个文本块向量(K 通常为 3-10)。相似度通常用余弦相似度计算。
-
提示工程:
-
将检索到的 Top K 个文本块作为“上下文”,与用户问题一起,按照精心设计的模板组合成最终提示。
-
-
调用 LLM 生成:将组装好的提示发送给大语言模型(如 GPT-4, Claude, 或开源 Llama 2/3 等),生成最终答案。
-
返回答案:将答案返回给用户,并可附上引用来源。
高级优化方向
基础的 RAG 构建完成后,还可以从以下方面优化:
-
检索优化:
-
多索引检索:结合关键词(稀疏检索)和向量检索(密集检索)的混合搜索。
-
重排序:初次检索出较多结果后,用小模型对相关性进行重排序,选取最精准的。
-
Query 改写/扩展:对用户原始问题进行改写或补充,使其更利于检索。
-
-
分块策略优化:尝试不同的分块大小、方法(按语义、按标题递归分割等)。
-
评估:建立评估体系,检查检索相关性、答案忠实度、有用性等。
总结来说,构建 RAG 知识库就是将非结构化的私有数据,通过切片、向量化的方式,转换成一种模型可以快速查询和利用的格式,从而赋予大模型“实时学习”和“引经据典”的能力。 它是目前落地企业级 AI 应用最主流的范式之一。
在GEO优化中,内容分发以“联网搜索”模式为主,“不理联网”为辅。“联网搜索”调用的知识库是最新的,因此GEO能够较快的看到效果。
联系升兔,获取专属GEO服务方案

