RAG基础入门

一、RAG介绍

RAG(Retrieval AUgmented Generation)检索增强生成技术,利用外部文档提升生成结果的质量。为大模型提供了从特定数据源检索到的信息,以此来修正和补充生成的答案。可以总结为一个公式:RAG=检索技术+LLM提示

基本原理: 在生产回答时,先从知识库中检索相关文档,将检索到的文档与原始问题一起输入LLM,LLM基于文档内容生成最终答案。

通用的基础大模型存在一些问题:

  • LLM的知识不是实时的,模型训练好后不具备自动更新知识的能力,会导致部分信息滞后
  • LLM领域知识是缺乏的,大模型的知识来源于训练数据,这些数据主要来自公开的互联网和开源数据集,无法覆盖特定领域或高度专业化的内部知识。
  • 幻觉问题,LLM有时会在回答中生成看似合理但实际上是错误的信息问题
  • 数据安全性

二、RAG标准流程

RAG标准流程由索引(Indexing)、检索(Retriever)和生成(Generation)三个核心阶段组成。

1.索引阶段: 通过处理多种来源多种格式的文档提取其中文本,将其切分为标准长度的文本块(chunk),并进行嵌入向量化

  • 加载文件
  • 内容提取
  • 文本分割,形成chunk
  • 文本向量化
  • 存向量数据库

2.检索阶段: 用户输入的查询(query)被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文本块。

  • query向量化
  • 在文本向量中匹配出与问句向量相似的top_k个。

3.生成阶段: 检索相关文本与原始查询共同构成提示词(Prompt),输入大语言模型,生成精确且具备上下文关联的回答。

  • 匹配出的文本作为上下文和问题一起添加到Prompt中
  • 提交给LLM生成答案。

RAG工作分为两条线:

  • 离线准备路线
  • 在线服务路线

三、知识库构建

1.文档准备

文档预处理建议:

  • 清理无关内容(广告、水印)
  • 按主题分类整理
  • 文档命名规范(含关键信息)

2.文档切片: 为了适应大模型语言模型的上下文昌都限制,并提升检索的精确度和效率

切片方式:

  • 按字符切分:固定长度
  • 按符号切分:按照句号、换行符、感叹号符
  • 按语义分:识别主题变化点智能切分

一般选择方式: 按照符号和字符长度一块切分,一般200-500字/段,长度太小,上下文不完整,检索不准,长度太大,无关信息过度,干扰判断。

3.文档向量化: 将将切分后的文本进行向量数字化,便于计算问题和文档的相似性。

四、总结

  • 模型本质上就是用户输入,模型给出输出,用户能够做的就是在输入上做功夫。
  • RAG就是在向模型提问之前基于已有的知识库或文档内容做检索,确保向模型提问的内容更精确以及包含足够的信息量用以提供给模型。

RAG的核心价值:

  • 解决知识实效性问题:大模型的训练数据有截止时间,RAG可以接入最新文档(如公司财报、政策文件),让模型输出"与时俱进"。
  • 降低模型幻觉:模型的回答基于检索到的事实性资料,而非纯靠自身记忆,大幅减少编造信息的概率
  • 无需重新训练模型:相比微调(Fine-tuning),RAG只需要更新知识库,成本更低,效率更高。
相关推荐
香辣牛肉饭5 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
维克兜率天9 小时前
【维克】概率论入门:从“抛硬币“到理解金融市场的不确定性
经验分享·学习·概率论
怀旧诚子11 小时前
Fedora 创建个人的应用启动器(GNOME)
经验分享
Rain的Java大神实战圈11 小时前
线上慢SQL的排查思路
经验分享·架构设计·场景设计题
法雅特吉他11 小时前
吉他日常保养完全指南:从环境参数到部位养护的系统化方案
大数据·经验分享·新媒体运营·学习方法·材质
tinygone1 天前
在Windows上部署Unlimited-ocr并提供给大模型使用
人工智能·windows·经验分享
三水不滴1 天前
RAG 评测数据集,到底该怎么准备?
经验分享·笔记
智者知已应修善业2 天前
【使用D触发器74HC175实现0001 0011 0111 1111 1110 1100 1000的循环彩灯电路。】2025-4-28
驱动开发·经验分享·笔记·硬件架构·硬件工程
黑科技iOS上架2 天前
MacBookM532G部署本地大模型
经验分享·ai编程
ychqsq2 天前
88.归途
经验分享·职场和发展