RAG知识库原理

一、如何与LLM交互?

  绝大多数的交互场景,用户向LLM提出一个Question,LLM返回一个Answer。

image

二、LLM的局限—无法更新自身知识

  LLM一旦训练完成并发布后,其自身所拥有的知识,无法与时俱进。

image

 

三、如何弥补LLM无法更新自身知识的局限?

  • 原因

     LLM自身知识无法与时俱进,是由于LLM自身的知识,是通过模型训练获得,更确切地说是训练时的数据集语料获得,训练数据集语料的多寡、质量高低,直接决定了LLM性能的优劣。

  • 弥补LLM缺乏的知识
    • 训练(预训练/微调/强化学习)
    • RAG(检索-增强-生成)
    • Knowledge Graph(知识图谱)

四、RAG为何能弥补LLM知识局限?

  无论哪种大模型,无论其处于哪个层级,一旦发布后,其所拥有的知识总量是固定的,不会随着时间的流逝,而不断补充学习新的知识,也就是说,大模型不是万能的,不会每个行业、

每个方向、第个细节都会很清楚,这点和人非常想象,不管多厉害的一个人,总有他的短板。

  为了弥补大模型的知识,通常有训练、RAG和知识图谱三种方式,这里只讨论RAG。RAG将大模型不了解的知识,以知识库的形式存储起来,然后在用户询问时,先通过对知识库的

检索,将与用户当前问题最相关的背景知识找出来,然后将用户问题与问题关联的背景知识,组装在一起,产生一个新的提示词,然后喂给大模型,这就好比让人做开卷考试,自然就一定

程度上提升了模型回答的准确率。

五、RAG框架RAG理论基础

  • 向量相似度

     RAG前提假设,即语义相近的两句话,其embedding向量相似度相近。

  • RAG目标

     筛选出与用户query最相近的文本段落。

  • RAG框架包含2个阶段

     第一阶段:构建知识库
    第二阶段:用户查询

image

5.1 RAG理论基础--向量相似度

  •  欧式距离

                         

  • 余弦相似度

                                                                  

5.2 RAG前提假设

  •  文本向量化

      AI模型实际上是一个数学模型,或者说是一个数学函数,其执行的都是数值计算,而文本在计算机里,是以UNICODE编码的形式存在,因此需将NLP输入的文本转换为数值向量。

image

 

  • RAG前提假设

     语义相近的两段话,其经过文本向量化后的两个向量,无论其欧氏距离,还是余弦相似度,都会越相近,反之亦然。

 

 5.3 RAG目标

  RAG的目标,是将与用户指令query高度相关的信息,从向量数据库中检索出来,并将这些检索出来的信息,作为最终喂给LLM的prompt的一部分。

  下面是用户指令query与向量数据库匹配结果的示例:

     

    

    

5.4 RAG第一阶段

5.4.1 构建知识库

  RAG框架第一阶段包含3个子阶段:

  • 分段(Chunking)
  • 嵌入(Embedding)
  • 存入向量库(Vector Store)

image

 5.4.2 构建知识库 — 分段

  • 分段(Chunking)

     指的是将文档资料(Document)切分为一个个更小的片段,文档类型可以为txt、pdf、docx、xlsx等。
     分段策略的好坏,直接决定了RAG的最终效果,一般情况下,需确保分段后的每个Chunk拥有完整的语义。

          image   image image

 

5.4.3 构建知识库—嵌入

  • 嵌入(Embedding)

    将文档经切分后产生的Chunks,逐一经由Embedding大模型,转换为对应的语义向量。

    Embedding大模型将Chunk文本,映射到一个高维空间,其维度通常为[128, 1024],在该高维空间,相似度越高的向量,其代表的原始Chunk文本语义越相近。

         imageimage

 

5.4.4 构建知识库—存入向量库

  • 存入向量库(Vector Store)

     Chunk文本经由Embedding大模型,映射到一个高维空间后,需将Chunk文本及其对应的高维空间向量形成一条记录,一起保存到向量数据库。

     后续在查询阶段,向量数据库中的每条记录,至少有向量、Chunk文本2个字段,其中向量字段用于与查询向量进行相似度匹配,以筛选出与查询高度相关的Chunk文本。

image

5.5 RAG第二阶段:用户查询

  RAG框架第二阶段包含3个子阶段:

  • 检索(Retrieval)
  • 增强(Augmentation)
  • 生成(Generation)

 

image

 

5.5.1 用户查询 — 检索

  • 检索(Retrieval)

     该阶段先将用户query文本,经由Embedding大模型,映射到与构建知识库时相同的高维空间,然后将query向量与知识库中的每条记录逐项匹配相似度,最后将匹配度高的前k个Chunk文本返回。

image

5.5.2 用户查询 — 增强

  • 增强(Augmentation)

     该阶段将用户query文本,与上一步检索阶段输出的Chunk文本集合,按新的提示词模板(Prompt Template),重新组装为新的增强版提示词,该增强版提示词除了包含用户原始query文本,还包含一个

          上下文字段(Context),该上下文字段包含的信息即为检索阶段输出的Chunk文本集合。

image

 

5.5.3 用户查询—增强后的提示词模板

image

 

5.5.4 用户查询—生成

  • 生成(Generation)

     这个阶段比较简单,就是将包含上下文信息后的增强Prompt,喂给大模型,并等待大模型返回最终的响应结果。

image

 

 

关注更多安卓开发、AI技术、股票分析技术及个股诊断等理财、生活分享等资讯信息,请关注本人公众号(木圭龙的知识小屋)

 

posted @ 2026-03-27 14:31  tgltt  阅读(9)  评论(0)    收藏  举报