AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【一文读懂】RAG的重要组成-Embedding Model
发布日期:2024-09-04 11:30:24 浏览次数: 1647


根据我的观察,在各个热门的RAG引擎(如AnythinRAG,RAGFlow,Dify)中,都包含了Embedding Model(嵌入模型),那嵌入模型这个强大的工具,在RAG引擎中究竟起到什么作用呢?本篇我将会通过通俗易懂的方式,为各位同学揭开它的神秘面纱。


01
什么是Embedding



在学习嵌入模型之前,首先要搞明白什么是Embedding ?Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。在自然语言处理中,Embedding 常常用于将文本数据中的单词、句子或文档映射为固定长度的实数向量,使得文本数据能够在计算机中被更好地处理和理解。通过 Embedding,每个单词或句子都可以用一个实数向量来表示,这个向量中包含了该单词或句子的语义信息。

以文本处理为例,假设你有一句话:“猫喜欢鱼。”在计算机中,单词是以文字的形式存在的,但计算机并不能直接理解这些文字。Embedding 的作用就是把每个单词转化为一个向量,例如把“猫”转化为一个向量 [0.1, 0.2, 0.3],把“鱼”转化为另一个向量 [0.4, 0.5, 0.6]。这样,计算机就能用这些向量来进行各种计算,比如找出“猫”和“鱼”之间的关系。
这些向量不仅仅是随机的数字,而是通过学习得到的,使得在某些特定的任务上,它们能够很好的表示数据之间的相似性和关系。例如,相似的词(如“猫”和“狗”)在向量空间中会比较接近,而不相似的词(如“猫”和“汽车”)则会比较远。
那为什么需要 向量 呢?计算机处理文字时,它们只能处理数字。因此,我们需要将文本转换为计算机可以理解的数字形式。这个向量就像是数据在数学空间中的一个“地址”,通过这个“地址”,计算机能够更容易地理解数据之间的关系。


02
什么是Embedding Model


在自然语言处理(NLP)中,Embedding model(嵌入模型) 是一种将词语或句子转换成数字向量的技术。它实际上是将高维、离散的输入数据(例如文本、图像、声音等)转换成低维、连续的向量表示的过程。Embedding Model 就像是给每个词或句子分配一个独特的“指纹”,这个“指纹”能够在数学空间中表示这个词或句子的含义。这种模型将每个词语或句子转换成一个固定长度的数字向量。通过这种方式,计算机可以对文本进行数学计算,比如比较词语的相似性、分析句子的意义等。


03
Embedding Model的作用


在RAG(Retrieval-Augmented Generation)引擎中,Embedding model扮演着至关重要的角色,它用于将文本转换为向量表示,以便进行高效的信息检索和文本生成。以下是Embedding model 在RAG引擎中的具体作用和示例:

1. 文本向量化:

    - 作用:将用户的问题和大规模文档库中的文本转换为向量表示。

    - 举例:在RAG引擎中,用户输入一个问题,如“如何制作意大利面?”,Embedding model会将这个问题转换为一个高维向量。

2. 信息检索:

    - 作用:使用用户的查询向量在文档库的向量表示中检索最相似的文档。

    - 举例:RAG引擎会计算用户问题向量与文档库中每个文档向量的相似度,然后返回最相关的文档,这些文档可能包含制作意大利面的步骤。

3. 上下文融合:

    - 作用:将检索到的文档与用户的问题结合,形成一个新的上下文,用于生成回答。

    - 举例:检索到的关于意大利面的文档会被Embedding model转换为向量,并与问题向量一起作为上下文输入到生成模型中。

4. 生成回答:   

    - 作用:利用融合了检索文档的上下文,生成模型生成一个连贯、准确的回答。

    - 举例:RAG引擎结合用户的问题和检索到的文档,生成一个详细的意大利面制作指南作为回答。

5. 优化检索质量:    

    - 作用:通过微调Embedding model,提高检索的相关性和准确性。

    - 举例:如果RAG引擎在特定领域(如医学或法律)中使用,可以通过领域特定的数据对Embedding模型进行微调,以提高检索的质量。

6. 多语言支持:

    - 作用:在多语言环境中,Embedding model可以处理和理解不同语言的文本。

    - 举例:如果用户用中文提问,而文档库包含英语内容,Embedding model需要能够处理两种语言的文本,并将它们转换为统一的向量空间,以便进行有效的检索。

7. 处理长文本:

    - 作用:将长文本分割成多个片段,并为每个片段生成Embedding,以便在RAG引擎中进行检索。

    - 举例:对于长篇文章或报告,Embedding model可以将其分割成多个部分,每个部分都生成一个向量,这样可以在不损失太多语义信息的情况下提高检索效率。

通过以上几点,Embedding mode 在RAG引擎中提供了一个桥梁,连接了用户查询和大量文本数据,使得信息检索和文本生成成为可能。如下图所示,Embedding mode正处于整个RAG系统的中心位置。


04
RAG引擎中的工作流


以下是一个RAG引擎中工作流的示意图,此流程基本与各大RAG引擎相匹配,只是各个不同的RAG引擎,其内部算法可能有所区别而已。让我们一起来看看,RAG引擎是如何工作的。


上图中的1-5步,流程说明如下:

1. 将查询传递给嵌入模型,并在语义上将查询内容表示为嵌入的查询向量。

2. 将嵌入式查询向量传递给向量数据库。

3. 检索前 k 个相关上下文 – 通过查询嵌入和我们知识库中所有嵌入块之间的距离来衡量检索结果。

4. 将查询文本和检索到的上下文文本传递给对话大模型(LLM)。

5. LLM 将使用提供的内容生成回答内容。


05
总结


通过以上分析,估计各位同学对RAG引擎的工作流,以及Embedding model的作用已经有所了解,明白这些基础知识后,对以后继续学习大模型的Fine-tuning,LangChain,AI Agent等方法和概念提供了莫大帮助。


  --THE END--  


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询