RAG基本流程

张开发
2026/4/17 22:38:24 15 分钟阅读

分享文章

RAG基本流程
RAGRetrieval-Augmented Generation检索增强生成是一种将外部知识检索与大语言模型LLM生成能力相结合的技术用于提升回答的准确性、减少“幻觉”Hallucination并支持私有或实时数据。1.文档加载准备知识库从各种来源如 PDF、Word、网页、数据库、TXT 等读取原始文本。2.准备知识库-切分文档把长文本切分为较小的语意片段便于后续向量化和检索。固定大小切分如按照字符数、token数按标点符号切分如换行符按文档结构切分如标题、章节按语意切分将句子按照相关性合并成段落语义连贯行越来越好、实现复杂度愈来愈难。3.准备知识库-向量化将每个文本块转换为高维向量embedding用于语义相似度计算。text-embedding-ada-002OpenAIBGE智源、m3e国产、Sentence-BERT词嵌入语义相似度捕捉的更好。应用阶段将训练好的模型应用于新文本以生成词潜入。训练阶段使用大型文本数据集训练模型以学习词表示。4.向量存储为向量存储和处理而生的数据库向量数据库。主要作用嵌入文本、存储向量、进行相似度分析。常见数据库faiss、chroma、milvus等5.检索当用户提问时将问题也转为向量在向量库中查找最相似的 top-k 文本块。1基于文本相似度的检索问题向量vs知识块向量余弦相似度用向量的夹角表示这两个向量的相似度。夹角从0到180度夹角越大相似度越小。欧氏距离用向量的距离表示这两个向量的相关性。距离越小相关性越高。2基于关键字的检索对于文档进行分词和去重之后抽取关键字、匹配文档语意捕捉效果更好容错率更高。关键词在部分场景下命中率高。6.重排序Re-ranking可选但推荐对初步检索结果进行精排提升相关性尤其在 top-k 较大时。解决“语义相近但不相关”的误检问题。7.提示词的构造模型选择生成回答1提示词用模版不会每次都自己写。问题参考文档回答要求。请根据以下上下文回答问题上下文{retrieved_text}问题{query}回答2模型的选择开源自行部署安全和隐私性好硬件要求较高模型能力相对较低应用ollama、huggingface、魔塔闭源调用外部接口安全性较低需连外网模型能力较强一键调用不需要维护。应用各大官方API、通用框架。3生成回答将用户问题 检索到的上下文一起送入 LLM生成最终答案。8.总结索引、检索、生成作用索引为了搭建一个知识库支撑后面的检索。检索为了找到合适的文档。生成是为了整合提问和参考文档输入大模型得到答案。核心检索的核心是怎么切割模型怎么选择合适的向量模型。检索核心是检索方式的选择。生成核心是提示词的构建大模型的选择。

更多文章