Skip to content
微信公众号

RAG

什么是检索增强的生成模型(RAG)

大模型固有的局限性

  1. LLM 的知识不是实时的
  2. LLM 可能不知道你私有的领域/知识

检索增强生成

RAG(Retrieval Augmented Generation) 顾名思义,通过检索的方法来增强生成模型的能力。

RAG 系统的基本搭建流程

搭建过程:

  1. 文档加载,并按一定条件切割成片段
  2. 将切割的文本片段灌入检索引擎
  3. 封装检索接口
  4. 构建调用流程:Query => 检索 => Prompt => LLM => 回复

文档的加载与切割

python
pip install --upgrade openai
pip install pdfminer.six
pip install --upgrade openai
pip install pdfminer.six

向量检索

向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如,二维空间中的向量可以表示为(x,y),表示从远点(0,0)到点(x,y)的有向线段。

以此类推,我可以用一组坐标(x0,x1,...,xn-1)表示一个 N 维空间中的向量,N 叫向量的维度

文本向量(Text Embeddings)

  1. 将文本转成一组 N 维浮点数,即文本向量又叫 Embeddings
  2. 向量之间可以计算距离,距离远近对应语义相似度大小

文本向量是怎么得到的

  1. 构建相关(正例)与不相关(负例)的句子对样本
  2. 训练双塔式模型,让正例间的距离小,负例间的距离大

例如:

向量间的相似度计算

向量数据库

向量数据库,是专门为向量检索设计的中间件

python
pip install chromadb
pip install chromadb

本站总访问量次,本站总访客数人次
Released under the MIT License.