【哥飞解答】为什么 RAG 要用到 Embedding

大家好,我是哥飞。

很多人对于让AI回答问题时,为什么要用到 RAG ,以及如何用 Embedding 实现 RAG 有疑问。

在今天的这篇文章中,哥飞想用非技术人也能看懂的方式给大家讲清楚这个问题。

 

我们知道目前大模型的上下文 Token 长度是有限的,像GPT模型,目前最大的也才 128K 。

 

 

假设我们想让 GPT 基于指定的一本 30万字的 PDF 来回答某个问题,我们无法一次把全部内容放进去,那就只能挑选一部分放进去。

这个时候就需要去挑选最相关的内容,也就是最有可能跟问题的答案相关的,最有可能能够回答问题的内容。

 

这个挑选就可以用 RAG 技术实现,RAG 是 Retrieval augmented generation 的简称,中文含义是“检索增强生成”。

传统的挑选可能是用搜索引擎,关键词匹配。

但是关键词匹配无法匹配到语义上相似的。

这时候就需要用到 Embedding ,把内容向量化之后,就能够实现语义上的匹配。

内容向量化又是什么意思呢?

拿 OpenAI 的 text-embedding 系列模型来说, text-embedding-3-small 能够把内容变成 1536 维的向量, text-embedding-3-large 则可以变成 3072 维的向量。

维度又是什么意思呢?

我们拿“苹果”这个词来解释,会有各种维度,如:
1. 水果
2. 吃的
3. 树上长的
4. 红色的

5. 青色的
6. 甜的
7. 酸的

8. 名词
9. 植物
……

当然上面的维度只是哥飞按照我们人类能够看懂的方式写出来的,实际是算法根据各种信息计算出来的。

总共会有几千个维度来解释每一个内容,这些维度放在一起,就是一个向量,来描述“苹果”这个信息。

相似的信息,在向量空间里的距离更相近。

如“苹果”和“水果”的距离就比较近,而“苹果”和“猫”的距离就比较远了。

距离越接近,语义上也就越接近。

我们在用户问问题之后,把问题向量化,然后拿着问题的向量去找所有跟问题向量距离很近的内容片段向量。

这样通过匹配,就能找到最有可能能够回答问题的内容,放到上下文里去,提供给大模型作为参考资料,让大模型来回答问题。

要对 30 万字的 PDF 做 RAG ,估计有人会以为直接把 30万字扔进去 Embedding 就完事了。

不是这样的,我们需要做预处理,先分为多个片段,之后将每一个片段内容向量化。

分段这里也有一些讲究,有可能还需要让每个片段有重叠部分。

另外具体每一个片段要放多少字也有讲究,不能太长,不能太短。

这里需要根据内容,以及你的使用场景去调整。

然后每次基于问题的向量,找出最可能能够回答问题的多个片段,提交给大模型来总结回答。

为了达到“找出最可能能够回答问题的段落”,我们可以多种方法一起使用,如把传统的搜索也用上。

所以 RAG 并不仅仅只可以用 Embedding ,其实可以多种方法组合起来使用。

以上就是关于RAG和 Embedding 向量化的一点小分享,希望对大家有帮助。

网站声明: 1.本站大部分资源搜集于网络,仅代表作者观点,如有侵权请提交修改。 2.网站内容仅网站站长做个人学习摘记,任何人不得用于其他商业用途,网站发表的内容全权归原作者所有。 3.有任何疑问,可以点击右侧边栏的联系QQ进行咨询 4.本网站部分内容来自于其他网站平台的,版权归原网站所有,本网站只作信息记录,自己学习使用,特此申明,本站用户也不得使用此信息内容做其他商业用途。
白丁学者 » 【哥飞解答】为什么 RAG 要用到 Embedding

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据