RAG 是一种结合 “检索” + “大语言模型生成” 的技术框架。它的核心思想是:

在回答用户问题前,先从大量文档中找出最相关的片段,再把这些片段喂给大模型,让它基于真实信息生成答案。

这样可以避免大模型“胡说八道”(幻觉),提高回答的准确性。

RAG 分为两个阶段:

  1. 离线阶段(Offline / Indexing Phase) —— 提前准备数据
  2. 在线阶段(Online / Inference Phase) —— 实时响应用户

离线阶段(Offline / Indexing Phase)

流程步骤:

步骤 名称 作用 输出
1 数据采集 从 PDF、网页、数据库等获取原始文档 原始文本集合
2 数据清洗 去除 HTML 标签、广告、乱码、重复内容等 干净文本
3 数据分块(Chunking) 将长文本切分为适合模型处理的小段(如 256~1024 tokens) 文本块列表(chunks)
4 向量化(Embedding) 用 Embedding 模型将每个文本块转为高维向量 向量列表(embeddings)
5 存入向量数据库 <文本块, 向量> 对存储到向量数据库(如 FAISS、Milvus、Pinecone) 可检索的向量索引

关键输出:一个向量数据库,里面存着所有知识的“数学表示”。

在线阶段(Online / Inference Phase)

流程步骤:

Read more >