当前位置: 首页 > news >正文

RAG(Retrieval-Augmented Generation)构建详解

RAG(Retrieval-Augmented Generation)构建详解

一、离线构建阶段(索引构建)

文档加载 → 数据清洗 → 分块 → 向量化处理 → 存储
  1. 文档加载(Document Loading)
  • 支持格式:PDF、Word、Markdown、HTML、TXT、CSV、Excel、PPT、图片(OCR)、音视频(转录)
  • 加载方式:
    • 本地文件系统读取
    • 云存储集成(S3、OSS、GCS)
    • 数据库连接(MySQL、PostgreSQL、MongoDB)
    • API接口拉取(Confluence、Notion、SharePoint)
    • 网页爬虫抓取
  • 工具库:LangChain的Document Loaders、LlamaIndex的Readers
  1. 数据清洗(Data Cleaning)
  • 文本预处理:
    • 去除HTML标签、特殊符号、多余空格
    • 统一编码格式(UTF-8)
    • 处理表格数据(保留结构或转为文本)
    • 图片/图表内容提取(OCR或描述生成)
  • 质量过滤:
    • 去除重复内容
    • 过滤低质量/无意义文本
    • 敏感信息脱敏(PII数据)
    • 语言检测与过滤
  • 元数据提取:标题、作者、时间、来源、文档类型等
  1. 分块(Chunking / Text Splitting)
  • 分块策略:
    • 固定长度分块:按字符数或token数切分(如512、1024 tokens)
    • 递归分块:按段落→句子→词的层级递归切分
    • 语义分块:基于语义边界(段落、章节)切分
    • 滑动窗口:重叠分块,保留上下文连续性
    • 智能分块:基于LLM判断最佳切分点
  • 分块参数:
    • chunk_size:每块大小
    • chunk_overlap:块间重叠量(通常10%-20%)
  • 注意事项:块大小需匹配向量模型的最大输入长度
  1. 向量化处理(Embedding)
  • 向量模型选择:

模型类型 代表模型 适用场景
通用文本 OpenAI text-embedding-ada-003/004 通用场景,英文优先
中文优化 BGE、M3E、GTE、ERNIE 中文文档,性价比高
多模态 CLIP、Jina-CLIP 图文混合
长文本 GTE-long、BGE-M3 法律、论文等长文档
重排序 Cohere Rerank、BGE Reranker 精排优化

  • 向量化过程:
    • 将文本块输入Embedding模型
    • 输出高维稠密向量(通常768维或1024维)
    • 向量归一化(L2归一化)
  • 性能优化:批处理、GPU加速、模型量化
  1. 存储(Vector Database)
  • 向量数据库选型:

数据库 特点 适用规模
Milvus/Zilliz 功能全面,分布式 企业级大规模
Pinecone 全托管,易用 中小规模,快速上线
Weaviate 支持混合搜索 需要语义+关键词
Qdrant 开源,Rust高性能 高性能要求
Chroma 轻量,本地优先 原型开发、小规模
PGVector PostgreSQL扩展 已有PG基础设施
Redis 内存级速度 缓存场景

  • 索引结构:HNSW、IVF、Flat等近似最近邻(ANN)算法
  • 存储内容:
    • 向量(Vector)
    • 原始文本(Payload)
    • 元数据(Metadata):用于过滤和排序

二、在线查询阶段(检索生成)

Query → 向量化 → 向量检索 → 结果排序 → 提示词组装 → LLM生成
  1. 查询向量化(Query Embedding)
  • 使用与离线阶段相同的向量模型
  • 对用户的自然语言查询进行编码
  • 查询预处理:纠错、扩展、意图识别
  1. 向量检索(Vector Search)
  • 检索策略:
    • 相似度搜索:余弦相似度、点积、欧氏距离
    • 混合检索:向量相似度 + 关键词匹配(BM25)
    • 多路召回:向量检索 + 关键词检索 + 图检索并行
    • 元数据过滤:先按标签/时间/来源过滤,再向量检索
  • 检索参数:
    • top_k:召回数量(通常5-10条)
    • score_threshold:相似度阈值过滤
  1. 重排序与精排(Reranking)
  • 粗排:向量检索快速召回Top-K候选
  • 精排:使用更复杂的重排序模型(Cross-Encoder)对候选重新打分
  • 过滤策略:去除相似度过低的结果,避免引入噪声
  1. 查询结果放入提示词模板(Prompt Engineering)
  • 上下文组装:
系统提示:你是一个专业的问答助手,请基于以下参考资料回答问题。 参考资料: [1] {chunk_1_content} [2] {chunk_2_content} ... [N] {chunk_N_content} 用户问题:{query} 要求: - 仅基于以上参考资料回答 - 如果资料不足,请明确说明"根据现有资料无法回答" - 引用来源编号 [1][2]...
  • 提示词优化技术:
    • 上下文压缩:对长检索结果进行摘要压缩
    • 多轮对话:维护对话历史,支持追问
    • Chain-of-Thought:引导模型逐步推理
    • Few-shot示例:提供回答格式示例
  1. 大模型调用与结果生成(LLM Generation)
  • 模型选择:
    • 闭源:GPT-4、Claude、Gemini、文心一言
    • 开源:Llama、Qwen、ChatGLM、Baichuan
  • 生成参数:
    • Temperature:控制创造性(RAG通常0.1-0.3,要求稳定)
    • Max_tokens:控制输出长度
    • Top_p:核采样
  • 输出后处理:
    • 格式校验(JSON/XML)
    • 内容安全过滤
    • 引用溯源标注

三、系统架构与优化要点

完整架构图

┌─────────────────────────────────────────────────────────┐ │ 用户交互层(Web/APP/API) │ ├─────────────────────────────────────────────────────────┤ │ 查询理解 → 意图识别 → 查询改写 → 查询扩展 → 查询向量化 │ ├─────────────────────────────────────────────────────────┤ │ 混合检索(向量+关键词) → 重排序 → 上下文压缩 → 提示词组装 │ ├─────────────────────────────────────────────────────────┤ │ 大语言模型(LLM)推理生成 │ ├─────────────────────────────────────────────────────────┤ │ 结果格式化 → 引用标注 → 安全审核 → 流式输出 → 缓存记录 │ └─────────────────────────────────────────────────────────┘ │ ┌─────────────────────────────────────────────────────────┐ │ 离线管道:文档加载 → 清洗 → 分块 → Embedding → 向量库索引 │ └─────────────────────────────────────────────────────────┘

关键优化方向

环节 优化策略 效果
召回率 多路召回、查询扩展、混合检索 找到更多相关文档
准确率 重排序、元数据过滤、阈值调优 减少无关内容
成本控制 上下文压缩、缓存机制、模型选择 降低Token消耗
延迟优化 向量索引优化、缓存、流式输出 提升响应速度
效果评估 RAGAS、Ares、TruLens等评估框架 量化系统表现


四、典型应用场景

  1. 企业知识库问答:内部文档、规章制度、技术文档
  2. 客服机器人:基于产品手册和FAQ的智能客服
  3. 法律助手:法规检索、案例匹配、合同审查
  4. 医疗咨询:医学文献检索、症状分析辅助
  5. 教育辅导:教材内容检索、个性化答疑
  6. 代码助手:基于代码库和文档的编程辅助
http://www.jsqmd.com/news/764085/

相关文章:

  • 2026成都黄金回收靠谱门店推荐 | 专业高价安全变现指南 - 生活测评君
  • himarket BOPLA VULNs Report
  • 通达信缠论自动化工具:3步实现专业级技术分析终极指南
  • 陕西中坤羽衡环保:麟游环氧防腐涂料生产推荐几家 - LYL仔仔
  • HoRNDIS:让Mac电脑无缝使用Android手机USB网络共享
  • 2026年4月目前质量好的发光字制作公司推荐,发光字/形象墙导视牌/精神堡垒/厂区安全标识牌,发光字制作商选哪家 - 品牌推荐师
  • 跑遍西宁回收圈,福正美凭啥让我回头三次还带人 - 福正美黄金回收
  • 微信小程序订阅消息发送失败?从模板ID、触发器到云函数,一份完整的排错指南
  • 2026年必装!OpenClaw(小龙虾)Windows一键部署实战:3分钟拥有你的AI数字员工
  • VR-Reversal终极指南:免费开源工具实现3D/VR视频到2D的无缝转换
  • 2026最新广州学车品牌推荐!广州优质权威榜单发布,靠谱省心本地驾校值得选 - 十大品牌榜
  • 国内可程式恒温恒湿试验机怎么选?巨亚结构设计与泰康压缩机配置全面解读 - 品牌推荐大师
  • 甘肃鸿旺发资源回收:西固正规的配电柜回收找哪家 - LYL仔仔
  • Docker Run的隐藏玩法:把Ubuntu容器变成你的专属Linux命令沙盒(Debian也适用)
  • 拒绝“能跑就行“:为 AngularJS .x 老项目注入现代开发体验
  • 视频号视频怎样保存到手机相册?微信视频号视频下载方法 2026 实测指南 - 科技热点发布
  • 2026年南昌乱账整理多少钱 | 完整价格体系深度解析 - 资讯焦点
  • 暗黑2重制版终极自动化MF脚本Botty:24小时高效刷宝完整指南
  • 从MovieLens数据里,我们发现了哪些有趣的用户行为?—— 一份给产品经理的数据洞察报告
  • SSH终端集成AI助手:提升运维效率的智能命令行解决方案
  • 抠图怎么抠出来?2026年最全AI抠图工具对比指南
  • 《给OpenClaw装上多模态感知,打造专属端侧智能协作体》
  • ComfyUI插件管理完全指南:从安装到故障排除的实用教程
  • 【含五月最新安装包】OpenClaw保姆级一键部署全流程
  • 2025网盘下载革命:LinkSwift直链助手颠覆你的下载体验
  • B站视频转文字终极指南:3分钟学会用免费AI工具高效提取视频内容
  • #2026最新铁道运输服务学校推荐!国内优质权威榜单发布,口碑靠谱湖南华中等地学校值得选 - 十大品牌榜
  • 视频号视频怎么下载?如何快速保存视频号内容?2026最新下载方法盘点 - 科技热点发布
  • 露营烧烤买精酿哪个外卖平台最合适?酒水大额券领取攻略一文看懂 - 资讯焦点
  • 从‘天链’到‘北斗’:一文看懂中国在3.6万公里高空的卫星‘朋友圈’(附完整清单)