RAG 核心原理和流程

8 阅读2分钟

提示工程 VS RAG VS微调,什么时候使用

  • 没问清楚 ——> 提示词工程
  • 缺乏背景知识 ——> RAG
  • 能力不足 ——> 微调

image.png

RAG 解决什么问题

  1. 减少幻觉,引入外部的知识,减少模型生成虚假不准确的内容
  2. 增加时效性,大模型训练的数据通常是静态的,RAG可以检索外部知识库实时更新信息
  3. 提升专业领域的回答质量,结合垂直领域知识库,生成更具专业深度的回答

RAG 核心原理和流程

流程

  • 数据预处理阶段

首先整理原始知识,然后分块,将文档分成适当大小的片段(chunks),以便后续检索,然后将文本转为向量,并存储在向量数据库中。

  • 检索阶段

首先将用户输入的问题转为向量,并在向量数据库中进行相似度检索,然后对检索结果进行相关性排序选择最相关的片段作为生成阶段输入

  • 生成阶段

将检索到的文本片段用户输入的问题结合,形成增强的上下文输入,然后大模型基于增强的上下文输入生成最终的回答

document ——> chunks ——> embeddings ,如图所示: image.png

Thinking:从原始文档切分成chunk是怎么做的?如果是人工分切,会不会每篇文章都看,效率太低。如果是基于规则,会不会导致信息流失,或者一个主题切分到2个chunk

答:

1、指定规则,比如句子、标点,设置 chunk size =1000

2、语义上进行切分

3、防止信息流失,可以设置信息冗余 overlap = 10%,弥补信息被硬切段的风险。

Thinking:对于AI来说,什么格式是最友好的?

答:对于AI来说,Markdown 是最友好的,但是企业会有很多文档格式,比如:PPT,word, excel, pdf, png

如果想要将 PPT 转化为 Markdown,

1) 对 PPT 里面的内容进行 extract

2) 对抽取出来的内容 放到 Markdown 中

如果是图像 => 使用 Qwen-VL 进行理解

现成的 RAG 产品

  1. Cherry Studio
  2. imacopilot
  3. NotebookLM notebooklm.google.com/ (相比其他效果更好)
  4. 钉钉助理
  5. Coze

向量数据库

向量数据库 => 原文,embedding(做相似度检索,找到最有价值的chunks)

在向量数据库有哪些阶段

  1. 召回,就是快速采用多种策略进行粗筛的过程

    策略1:基于关键词匹配

    策略2:基于语义向量相似度

    策略3:.......

  2. 重排,就是排序

比如:向量数据库中保存的 chunk 可能会有 1000 万个,召回就是快速筛选出 1000,然后重排序取 Top10

常见的 Embedding 模型

高质量的 RAG 背后是 好的 Embedding

image.png

image.png

国外 Embedding 选择网站 huggingface.co/spaces/mteb… (Open,闭源)

image.png

开源的 Embedding 模型选择 modelscope.cn/