RAG核心概念

前提

目前网络上针对大模型有两种声音,一种是说AI展现出了惊人惊叹的强大能力,仿佛无所不能,可以解决博士级别科学问题。另一种声音说AI就是资本炒作,出现胡说八道的现象。其根源就是AI的"幻觉"问题,也就是业界所称的"AI Hallucination"现象。

AI出现"幻觉"现象的原因

  • 主要因素是其工作原理中的概率生成机制,在生成文本时,大型语言模型依赖统计概率来预测下一个最可能的词语,而不是基于事实进行查询,这可能引致信息错误。
  • 此外AI的回答局限在训练数据的范围内,大模型并不掌握你的个人信息或公司内部的私有信息,对于超出训练数据范围的问题,就容易胡说八道。

解决方法

现阶段基于Transformers架构的模型还无法彻底杜绝AI幻觉,不过给大模型外挂知识库就可以补齐知识短板,就能有效减少AI幻觉问题,这一方法就是RAG(Retrieval-Augmented Generation):检索增强生成。

RAG的工作原理

  1. 文本分块:将文本分割成有意义的片段或块的过程。对知识库文档进行分割是一个至关重要的步骤。文档分割的质量直接决定了检索的准确性和生成模型的效果。它能显著改善信息检索和内容生成效果,提供更精准相关的结果。

  2. 生成向量嵌入:这些文本块将由Embedding Model(嵌入模型)转换为向量。Embedding Model是一种机器学习模型,它可以将高维输入数据如文本、图像,转换为低维向量。在RAG中,嵌入模型将文本块转换成向量。这些向量捕捉了文本的语义信息,从而可以在海量文本库中检索相关内容。有多种模型可以用来生成向量嵌入(vector embeddings)。例如:可以使用OpenAI的text-embedding-3-large模型。不同模型生成的数值会有所不同。

    在这里我解释一下向量嵌入:向量嵌入vector embeddings是用一组数值表示的数据对象在多维空间中捕捉文本、图像或音频的语义和关联,可以让机器学习算法能够更轻松的对其进行处理和解读。因为向量嵌入能够以数值形式捕捉对象间的语义关系,所以我们可以通过向量搜索(也称相似性搜索)在向量空间中来查找相似对象,也就是与之距离最近的邻居。
    例如:Cat、Kitty、Apple,将他们转换成向量嵌入,你会发现Cat和Kitty的向量嵌入在数值上相近,且在向量空间中距离更近。在数值上相近的向量嵌入在语义上也是相似的。

  3. 向量嵌入存储到向量数据库:一些专业厂商提供高性能的向量数据库解决方案,比如:Pinecone、milvus、Chroma、Redis、drant等。

    向量数据库和传统数据库有什么区别?

    • 传统数据库主要用于存储结构化数据,数据通常以行和列的形式组织,适用于存储明确的数据类型,如整数、字符串、日期等。
    • 向量数据库专注于存储和检索高维向量数据,通常用于处理非结构化数据,如图像、文本和声音经过特征提取后的向量表示。
    • 向量数据库侧重于相似性搜索,它通过语义理解来检索相关结果,不依赖精确匹配来检索相关搜索结果,对拼写错误和同义词有较好的包容性。
    • 而传统数据库通过精确匹配关键词来检索数据,适用于结构化数据的高效查询。
  4. 用户提问问题

  5. 用户问题生成向量嵌入

  6. 检索:将问题向量与向量数据库中的其他向量进行比较,执行相似性搜索,找到最相关的数据条目。检索本质上就是在向量空间中寻找与查询向量最相似的邻居,通过计算"查询向量"与数据库中其他向量之间的距离找到距离最近的邻居,从而返回最相关的对象。

    怎样衡量向量嵌入的相似性呢?

    • 在相似性向量搜索中,最常用的度量距离的指标有,欧式距离(Euclidean Distance)、余弦相似度(Cosine Similarity)、点击相似度(Dot Product Similarity)。
    • 欧式距离:用于测量高维空间中两点之间的直线距离。
    • 余弦相似度:通过计算两个非零向量的夹角的余弦值来衡量它们之间的相似性。
    • 点击相似度:计算的是两个向量的模长乘积与它们之间夹角的余弦值的乘积。点击会受到向量的长度和方向的影响。
  7. Top K text chunks:系统检索出排名靠前的K个文本片段

  8. ReRanking:在检索出的Top K文本片段基础上进一步根据与用户查询的相关性和上下文适配度进行重新调整,即重新排序。

    这里举个例子:比如说Top K text chunks阶段检索出了10个相似的文本片段,但是他们的初始排序可能不是最优的,即相似性不是从高到底,然后我们将这10个文本块送入重排序模型(re-ranking model),重新进行排序,进而优化他们与用户查询的相关性适配程度,在已完成重新排序的文本块里,筛选出排名靠前的5个文本块,之后将作为"上下文相关信息(context)"发送给大模型

  9. 生成提示词模板(Prompt Template):把外部知识库中检索到的相关信息(context)和用户问题融合在一个提示词模板(Prompt Template)中。

  10. 将提示词模板发送给大模型

  11. 大模型生成答案发送给用户

相关推荐
数澜悠客33 分钟前
AI与IoT携手,精准农业未来已来
人工智能·物联网
猎板PCB黄浩44 分钟前
AI优化高频PCB信号完整性:猎板PCB的技术突破与应用实践
人工智能
Icoolkj1 小时前
可灵 AI:开启 AI 视频创作新时代
人工智能·音视频
RK_Dangerous1 小时前
【深度学习】计算机视觉(18)——从应用到设计
人工智能·深度学习·计算机视觉
AI大模型顾潇2 小时前
[特殊字符] 本地部署DeepSeek大模型:安全加固与企业级集成方案
数据库·人工智能·安全·大模型·llm·微调·llama
_Itachi__2 小时前
深入理解目标检测中的关键指标及其计算方法
人工智能·目标检测·目标跟踪
Stara05112 小时前
基于注意力机制与iRMB模块的YOLOv11改进模型—高效轻量目标检测新范式
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·yolov11
X Y O2 小时前
神经网络初步学习——感知机
人工智能·神经网络·学习·感知机
知来者逆3 小时前
计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案
人工智能·深度学习·计算机视觉·图像分割·智能医疗·万物分割
强化学习与机器人控制仿真3 小时前
openpi 入门教程
开发语言·人工智能·python·深度学习·神经网络·机器人·自动驾驶