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

RAG 相关概念学习

文章目录

  • 前言
    • RAG 相关概念学习
      • 1. 概念
      • 2. 相关步骤
      • 3. 想让 RAG 查出来的内容“真的能用”,需要注意
      • 4. 向量检索 vs 关键词搜索的本质区别

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


RAG 相关概念学习

1. 概念

RAG(Retrieval-Augmented Generation)是一种通过将 检索(Retrieval) 与 生成(Generation) 结合起来的问答方式,能够显著提升 LLM 的回答质量和事实准确性。

2. 相关步骤

总流程:
文档准备 → 预处理 → 切分 → 向量化 → 存储 → 用户提问 → 向量查询 → 结果拼接 → LLM 生成回答

1、存储环节
在这里插入图片描述
metadata是指与每个文本块(chunk)关联的 附加信息,它不会被嵌入成向量,但会 随向量一起存储并检索出来,用于:
示例:

{"id": "chunk-1234","vector": [0.123, 0.456, ...],  // embedding 向量"text": "欢迎使用本产品,请先登录系统。","metadata": {"source": "user_manual.pdf","page": 3,"title": "第1节 登录说明","lang": "zh","chunk_id": "1-3","doc_type": "操作手册"}
}
用途举例说明
检索时筛选(Filter)只查某文档、某类型、某作者的内容
回答中展示引用信息(grounding)此答案基于:user_manual.pdf 第3页
数据分析可视化查看哪个文档贡献最多答案、来源分布图等
热更新、版本控制根据 metadata 更新某一类数据块

2、查询环节
在这里插入图片描述

3、各个步骤说明

步骤工具/库说明
1. 文档处理Apache Tika、pdfbox、LangChain4j 文档加载器从原始文档提取文本,切分为小段
2. EmbeddingOpenAI / BGE / DeepSeek / text2vec将文本变成向量(高维语义表示)
3. 向量存储Qdrant / Milvus / Chroma建立语义检索能力
4. 问题向量化同上用户提问也需转换为向量
5. 检索向量库接口检索最相关的内容 TopK
6. Prompt 构造LangChain4j / 自定义将内容块 + 问题拼成完整 Prompt
7. 回答生成ChatGPT / Claude / DeepSeek / 自部署 LLM实际问答环节
8. 返回结果接口 or 前端呈现搭建 UI 或 API 返回答案给用户

3. 想让 RAG 查出来的内容“真的能用”,需要注意

项目要求
文档切分每段 chunk 保持语义完整(推荐使用滑动窗口)
嵌入模型使用质量高的 embedding 模型(如 text-embedding-3-small、bge-large-zh)
top-k 设置一般设置为 3~5 条(取决于 prompt 长度)
检索方式支持 hybrid search(向量 + keyword 混合)时效果更佳
prompt 构建精准地把检索内容拼进 prompt 中,并清楚告诉模型“只能基于这些信息回答”

向量库查出来的内容能不能“真的有用”,取决于你前期做得是否精细:文档切得合理、嵌入准确、top-k 设置得当、prompt 拼得清晰。

4. 向量检索 vs 关键词搜索的本质区别

特性向量检索(embedding search)关键词搜索(keyword search)
匹配方式语义相似(meaning)字面匹配(word)
能否查出没出现关键词的句子?✅ 可能可以❌ 不可能
优势可找“意思接近”的内容精准找“完全命中的词”
弱点有时会误判“相关性”找不到变种表达

高质量的 embedding 模型可以学习到上下文语义关联,即便句子本身不包含关键词,也能知道它和某个话题有联系,查出返给用户。

http://www.dtcms.com/a/268539.html

相关文章:

  • VMware 17.0.2-21581411 安装教程(附详细步骤+序列号激活指南)
  • 【牛客算法】 小红的奇偶抽取
  • kotlin+MongoTemplate的时间类型为is_date类型 pymongo如何处理
  • 【vue】用conda配置nodejs,一键开通模版使用权
  • 设计模式分析
  • 1.1_5_1 计算机网络的性能指标(上)
  • 大模型在肾囊肿诊疗全流程预测及应用研究报告
  • kafka总结
  • 【Java编程动手学】Java常用工具类
  • Apache Cloudberry 亮相 2025 IvorySQL 生态大会暨 PostgreSQL 高峰论坛
  • c# Process.Start异常解决办法
  • 【一起来学AI大模型】支持向量机(SVM):核心算法深度解析
  • 支持向量机(SVM)在心脏MRI分类(心肌病检测)中的应用与实现
  • 最简单的实验室资产管理系统,使用Flask,mysql,html(四、知识补充)
  • C++学习笔记01(自学草稿)
  • 【用 Scapy 实现一个简单的局域网 MAC 地址扫描工具】
  • 20250707-2-第二章:Kubernetes 核心概念-K8s集群架构,生产部署K8s两_笔记
  • 环路滤波:精密ADC时钟系统的相位噪声净化器
  • 源码推送到gitee码云仓库
  • stm32--SPI原理应用W25Q64(二)
  • 国产时序数据库 TDengine:Docker 部署、协议端口及 DBeaver 连接全攻略
  • JVM系列五:字节码与执行引擎深度解析
  • uniapp运行项目到ios基座
  • WebRTC 双向视频通话
  • LeetCode 面试题 02.02. 返回倒数第 k 个节点
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频质量评估与智能修复(337)
  • Kettle + 大数据实战:从数据采集到分布式处理的完整流程指南
  • Kafka生产者的初始化
  • Angular V20 新特性
  • QML TextEdit组件