RAG(Retrieval-Augmented Generation) 将“外部知识检索”与“生成式模型”结合,兼顾准确性与可追溯性,适用于企业知识库问答、报表问答、复杂检索答疑等场景。
一、数据与切分
- 数据清洗:去除噪声、水印、无用页眉页脚,抽取结构(标题/段落/表格)。
- 切分策略:定长切分(500–1000 tokens)+ 重叠(50–200),或按段落/标题结构切分。
- 元数据:为每个块记录来源、页码、章节,便于过滤与引用。
二、Embedding 与索引
- 模型选择:通用(text-embedding-3)、中文优化(bge-*)或领域定制模型。
- 向量库:PostgreSQL + pgvector、Milvus、Weaviate、FAISS 均可;根据规模与预算选型。
- 索引构建:批量向量化 + 建立 ANN 索引;定期增量更新。
三、检索与重排
- 召回:向量相似度检索;必要时与 BM25 混合检索。
- 重排:用 cross-encoder 对前 N 片段重新排序,提升前 K 的质量。
- 过滤:结合元数据做文档/时间/权限过滤,减少误召回。
四、提示与引用
- 提示模板:将检索片段与问题注入,要求“仅基于上下文作答,并在结尾列出【引用】”。
- 输出格式:结构化字段(结论/要点/引用列表),便于渲染与后处理。
五、评测与演进
- 构建基准:抽样问题集 + 参考答案 + 引用校验;持续回归评测。
- 优化路径:改良切分、使用更优 Embedding、加强重排、微调提示与输出约束。
- 安全治理:防越狱/提示注入、敏感信息脱敏、来源强约束与拒答策略。
小结:RAG 的关键是“数据与检索质量”。在做好数据工程与评测闭环的前提下,再追求模型能力与推理技巧,才能稳定落地。