视频字幕
RAG系统是检索增强生成的缩写,它是一种结合了信息检索和文本生成的人工智能技术。当用户提出问题时,系统首先将问题转换为向量表示,然后通过计算相似度来检索最相关的信息,最后基于检索到的信息生成准确的答案。相似度计算是整个流程中的核心环节。
向量化是将文本转换为数值向量的过程。每个词或短语都可以表示为多维空间中的一个点。例如,泰州分公司和分公司这两个词在语义上相近,所以它们在向量空间中的位置也比较接近。而收入和2025年这些词则分布在不同的区域。通过这种方式,我们可以用数学方法来计算文本之间的相似程度。
余弦相似度是计算向量相似度最常用的方法。它通过计算两个向量夹角的余弦值来衡量相似程度。公式是向量A点乘向量B,除以两个向量模长的乘积。几何上,这相当于计算一个向量在另一个向量上的投影长度。余弦值的范围是负1到正1,值越接近1表示两个向量越相似,越接近0表示越不相关。
在检索增强生成系统RAG中,相似度计算是核心技术。系统首先将用户查询转换为向量表示,然后计算查询向量与数据库中各个字段向量的相似度,最终选择相似度最高的字段进行信息检索。
最常用的相似度计算方法是余弦相似度。余弦相似度通过计算两个向量夹角的余弦值来衡量相似程度。计算步骤包括:首先将文本转换为向量表示,然后计算两个向量的点积,接着计算各自的模长,最后用点积除以模长之积。余弦相似度的取值范围是负1到1,其中1表示完全相似,0表示无关,负1表示完全相反。
向量化是相似度计算的前提步骤。系统首先对输入文本进行分词处理,将文本分解为词汇单元。然后通过词汇表将每个词映射为数字标识。接下来使用预训练的词嵌入模型,将词汇转换为高维向量表示。最终生成的向量能够捕捉文本的语义信息,为后续的相似度计算提供基础。
现在我们通过一个具体例子来演示相似度计算过程。假设用户查询是泰州分公司2025年收入。首先,系统将查询分词为泰州分公司、2025年、收入三个关键词,然后转换为向量表示。接下来,系统会将查询向量与数据库中表A和表B的各个字段进行比较。表A包含时间、分公司、分支机构、收入等字段,表B包含branch_name、subbranch、revenue_total、date等字段。
通过相似度计算,我们可以得到具体的匹配结果。查询"泰州分公司2025年收入"与各个字段的相似度如下:在表A中,"分公司"字段与"泰州分公司"的相似度为0.85,"收入"字段与"收入"的相似度为0.95,"时间"字段与"2025年"的相似度为0.72。在表B中,"branch_name"字段与"泰州分公司"的相似度为0.78,"revenue_total"字段与"收入"的相似度为0.88,"date"字段与"2025年"的相似度为0.69。基于这些相似度分数,系统会召回表A的"分公司"和"收入"字段,以及表B的"branch_name"和"revenue_total"字段,用于后续的信息检索和回答生成。
通过具体的数值计算,我们可以得到每个字段的相似度得分。以查询向量和某个字段向量为例,首先计算两个向量的点积,然后分别计算两个向量的模长,最后用点积除以模长的乘积得到余弦相似度。在这个例子中,分公司字段得分0.85,收入字段得分0.95,时间字段得分0.72。设定阈值为0.7,所有超过阈值的字段都会被召回用于后续处理。