概述RAG(检索增强生成)通过在生成前检索权威知识,显著提升回答的准确性与可解释性。本文给出从数据准备、嵌入与存储、检索与重排、生成融合、评测到上线的完整最佳实践,并提供参数范围与验证方法,便于直接落地。适用场景企业私有知识问答、规范文档问答、长报告摘要与引用、合规场景需要出处。数据稳定、领域明确、需要可控输出与证据链。数据准备与分块清洗:去重、结构化标题层级、提取表格与代码块原貌;保留来源与时间戳。分块:建议每块 200–500 tokens,overlap 10%–20%,章节/小节为边界;代码/表格保持完整块。元数据:`source`, `section`, `updated_at`, `author`, `tags` 用于检索过滤与评测切片。嵌入与向量存储嵌入模型:选择通用文本嵌入模型(中文/英文均衡),输出维度与向量库类型需一致。维度与存储:常用 768–1536 维;PostgreSQL `pgvector`、专用向量库或搜索引擎向量插件均可。归一化:多数近邻算法使用余弦或内积,相同库内保持一致的度量设置。示例(PostgreSQL 开启向量扩展):CREATE EXTENSION IF NOT EXISTS vector; 示例(创建存储表):CREATE TABLE docs ( id BIGSERIAL PRIMARY KEY, content TEXT NOT NULL, embedding VECTOR(1536) NOT NULL, source TEXT, section TEXT, updated_at TIMESTAMPTZ ); 检索策略与参数初检索:语义近邻检索设置 `top_k = 10–20`;结合布尔/关键词过滤以提升相关性。重排:二阶段重排(cross-encoder)提升精确度,保留 3–6 条证据。领域过滤:通过 `tags/section/source` 过滤避免跨域误检。去重与压缩:合并重复块、摘要低价值块,限制上下文总 tokens(如 1k–2k)。生成融合提示词结构:指令 + 问题 + 证据块(含来源)+ 输出格式约束;鼓励模型引用出处。证据注释:在答案中标注 `[来源: source#section]`,支持审计。低温采样:`temperature 0–0.3` 保守输出;必要时启用函数调用格式化结果。评测与验收指标:命中率(answer contains evidence)、精确率、MRR、覆盖率;人工抽检引用的准确性。数据集:构造 100–300 条典型问答;包含否定、边界、跨章节问题。对比:无重排 vs 重排;不同 `top_k`;不同分块策略;保留最佳组合。性能与缓存向量检索延迟目标:P95 ≤ 100–200ms(数据库+网络环境下的常见可达范围)。缓存:对热门查询结果设置 TTL 5–30 分钟;对嵌入结果持久化避免重复计算。预热:上线前将常见问答嵌入并写入缓存。失败与回退无证据时回退:返回“未命中权威资料”,并给出可能的查询建议或检索关键词。监控:记录查询、召回条目、重排分数、最终引用来源用于审计。上线清单分块参数与嵌入维度验证一致;检索度量与库配置一致;评测通过门限。日志与监控齐备,能追踪每次答案的证据链;缓存与回退策略生效。参考实现要点使用 `pgvector`/专用向量库存储嵌入;SQL 索引与过滤字段齐备。两阶段检索(近邻 → 重排)是提升精度的关键;输出始终带来源标注。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.947065s