00:04
大家好,欢迎大家来到腾讯云开发者社区,腾讯云下量数据库团队,安登团队共同打造的IG pd入门训练系列课程,今天是我们的第三期,今天呢,我们会来讲解我们的这个相似性检索的一个关键,也就是咱们的这个em beddy,那我是来自腾讯云的赵九洲,OK,那之前的课程当中呢,实际上我们已经讲解了如何把我们的这个文档转换成对应的一个创口,那转换文创口之后呢,那下一步我们实际上就是要把我们的这个创转换成这样的一个,所以呢,今天这一课其实是比较关键的一个部分啊,那接下来呢,我们就来详细看一下啊,到底什么是这个。啊,白。那文本引白领呢,实际上就是啊,咱们把我们的这个文本转换成这样的一个实数向量的一个技术,大家可以考虑一下啊,对于像这样的一个啊图片来说,它实际上就是以这样的一个数字的一个形式而存储到了我们的计算机当中,那因为它本身就是这样的一个数字的形式,所以呢,我们计算机是可以读懂,也可以了解到我们这个图片或者说图像它当中的一个信息的,那但是对于我们的这个文本数据来说,它本身是由人类创造的这样的一个符号,那它在对于计算机来说是没有办法直接去啊读等级意思的,所以呢,我们就需要。
01:30
把我们的这样的一个文本的一个数据转换成这样的一个啊数字,但是大家可以考虑一下啊,如果我们只是把文本单纯的转换成这样的一个标量的话,我们是没有办法让计算机了解到其中它很多的一些语义信息,或者说文本和文本之间的一些关系信息的,所以说这个时候呢,我们就要考虑是不是能把这样的一个文本转换成这样的一个向量的一个形式。啊。实际上就是一种比较高效或者说高质的把我们的文本转换成这样的一个向量的一个这样的一个技术啊,那我们可以看一下我们左边的这个图啊,通常来说啊,一个优质的这样的一个文本的一个该呢,它可以让我们一些语义比较相近的一些词,在空间当中的位置是彼此接近的啊,啊例如咱们这里的这个。
02:25
左边这个图啊,我们左下角这里有两个词,一个是run,一个是这它其实就是属于动作对吧,那同样是动作,那它其实转换成in bedding之后呢,在空间当中的一个位置可以看到它是彼此比较接近的,其次呢,我们也可以再看一下啊,再像中间的这个dog cat和这个rabbit,它其实就属于动物,那动物的话。它在空间当中,它的这个位置信息啊,就会比较接近,相比于我们刚才看到的这个run,它其实就会更远离一些,只是把同类的这样的一些词聚集在了一起,这就是一个优质的该它的一个性质,其次呢。
03:06
对于一个优势的白领来说,它的这个相似的一些语义关系啊,咱们也可以通过这样下面的一些啊,算术预算来进行一个表示啊,我们再来看一下右边这张图啊。好,我们这里可以看一下啊,这里有一个词是drive time啊,指向了一个driver对吧,然后下面还有一个swim这个词,然后它指向了这样的一个啊swimmer,那我们可以看一下drive和swim这两个词,它实际上是一个动作对吧?那另外两个词呢,是这个driver和这个啊swim,它实际上是这个动作的这个执行者。那我们可以看一下啊,当我们的这个drive和这个swim加上了这样的一个向量之后,实际上就会得到了当前的这个动作的执行者,而我们加上的这个向量,大家可以发现,实际上不管是方向也好,还是大小也好,它实际上是接近基本上一致的,这就是白它带来的一个优势啊,当我们把我们的这个文本转换成这个对应的一个inb数据之后呢,我们实际上啊,就能保证我们的这个向量有一定的这个语义关系,也可以表示出不同文本之间的这样的一个关系特征出来,这就是我们的这个embing技术。
04:21
那这啊,我们接下来就来看一下关于in bed模型这一块的一些演进啊,那刚才呢,我们聊了一下关于什么是个bed,那接下来我们就要考虑如何把我们的这个啊文本转换成这样的一个em bed对吧?那其实啊,Embing这么多年来,其实也嗯发展的相对来说是比较成熟的一个技术了,从最开始的这样的一个work back和这个lo这样的一些模型,那这些模型呢,其实一开始是基于这样的一个词向量来做的,当我们需要转换成这个句子的向量的时候呢,我们就需要先去分词,分完词之后根据JA样的一个计数拿到我们的词向量,再去做一些类似于啊加权平均也好,或者说直接求一个最简单的均值来作为整个句子的这样的一个,到后面呢,慢慢我们出现了一些啊,相对来说小一些的语言模型,例如像啊bird这一类的一些语言模型。
05:17
那就有了一些更优质的一些啊EMB,那这个时候呢,实际上我们会基于一些双卡的一个形式啊,那比较有代表的就是这样的一个sentence bird,它其实就是以这样的一个PI white的一个训练思路来把我们的句子给到我们的这样的一个bird,那每一个bird输出了最终的这样的一个句子的一个表示信息,并基于拍wa这样的一个思路去训练我们的一个模型,最终来得到我们的这个句子的一个。但是这样的一个句子的一个in bed,它有一个小缺点啊,就是说啊,因为它是一个piw的一个思路,它只能说告诉模型啊,两个句子它是相近的,和两个句子它不是相近的,但是它没有办法说嗯,把。
06:04
一个相对来说类似或者说有一点点类似这样的一些语音信息给表示出来,所以在sentence之后呢,又有了更多的一些啊优化的一些模型,比较有代表的就是这样的一个same CC,它其实就是基于了这样的一个啊control learning啊,对比学习去引入了一个概念,就是说我希望把我的这个。正立的一个样本,彼此之间把它拉近,但是对于负力来说,也就是说语义不相近的一些文本啊,尽可能的给推远,这样的话,实际上。我们就可以给文本之间更多的一些啊,可以理解为。有更多的一些对比啊,更多的一些对比。那以这样的一个形式来做呢,效果就会有进一步的一个提升,那在这个阶段其实也有很多啊,有代表的一些模型,比如像啊GPR这样的一个模型,包括其实自的这样的一个文本,也是基于这样的一个learning来进行一个训练的。
07:05
啊,到目前为止呢,其实在这个啊,我们文本in啊,已经慢慢从我们的这个word这样的一个以词为单位的形式,转换为了这个以句子为单位的一个形式,再到目前为止,实实实际上inding更多还会运用在了咱们的这个检索的一个领域,那之前我们去做一些文本白领的话,可能更多是啊一些对的一些任务啊,例如我们的这个。短文本去匹配我们的短文本。或者说我们去做一些nri的一些任务,就是判断两个句子它是否有因果关系,或者说我判断两个句子它是不是同一句这样比较对称的一些人,但是到了目前为止来说,实际上我们这个任务逐渐变成了,哎,我来了一个用户输入的一个问题,我希望去检索很长的一篇文档,那这个时候实际上大家就会发现好像之前的一些啊思。
08:00
对于这种非对称的一些任务啊,可能效果不是很理想。那这个时候呢,大家其实就有了一些更新的一些思啊,例如在我们的这个预训练阶段,我们就针对于我们的这个语言模型,去针对我们的检索这一块去做一些相应的一些预训练,其次呢,因为我们也要兼顾到这种非对称,非对称的这样的一个任务,所以我们也去考虑增加了这样的啊instruction,或者说咱们这样的一个PRO,当后这这个模型来理解当前做的这个任务,它到底是一个对称的任务,还是一个非对称的一个任务啊,这就是目前咱们这个阶段它的一些embing这一块的一些优化的一个方式,那目前比较有代表的就是咱们这样的一个啊BG的这样的一个模型啊,它主要是在我们的预训练阶段也是做了啊,针对于这样的一个检索任务啊,做了相对的一些。训练的任务,其次在微调阶段呢,还是基于咱们这个learning,不过结合了咱们这样的instruction啊,来判断它到底是对称任务还是咱们这个非对称任务啊。
09:04
啊,这是目前整个模型这一块的演进啊,好,那我们继续往下看一下。但是其实看到这里啊,大就会就会发现一个问题,实际上啊,如果你要真正去训练一个高质量的一个概念模型,其实。如果没有一定的这个AI这一方面的一些技术沉淀的话,还是有一定的一个难度的,所以呢啊,我们腾讯云销量数据库团队呢,也为大家去准备了这样的一个em bed模型,那这一块的em bed模型其实我们主要分为了两趴,第一趴呢,我们是为大家准备了这个一些比较通用的,也是开源的一些半模型,大家如果使用我们的这个啊。向量数据库不需要去担心考虑要去学哪一个模型,我们为大家已经提前准备好了,并且对于使用来说,我们提供了这样的一个GPU的一个服务器,所以相对来说大家必须要去担心部署,并且使用起来我们的这个成本各方面也会比较低。那除了这样开源的一些通用的一个em bedding模型呢,实际上我们也有针对这样的一个垂类,垂类的一个领域去做一些em bedding模型的一个呃,微调。
10:15
那如果大家觉得,哎,市面上这些开源的这些模型在自己的领域其实还是啊,效果没有达到这个预期啊,那没关系,我们也会针对于你自己的这样的一个垂类的一个领域,去帮助你进行一个模型的微调,让我们引盖领的一个效果啊,能进一步的一个提升,那我们自己去微调这个模型,我们是做了哪些事呢?其实和刚刚提到第三点差不多啊,首先第一块呢,我们也是在这个loss function这一块,我们采用了这样的一个controlt learning,然后我们尽可能的正样本的一个距离给拉近,然后副样本的距离呢,我们要尽可能的把它给推远了。然后第二块呢啊,就是解决压缩的这样的一个非对称的一个问题,那不同的一个任务,我们会给予不同的这样的一个PRO,从而保证你在不同的任务上都会有一个比较好的一个效果。第三点的话就是啊,我们当拿到这个垂类领域的数据之后呢,我们实际上会分两步走啊,第一步呢,我们会去基于这个。
11:19
先让我们的模型去采用这样的一个我们监督的形式去做一个啊post,让他在我这个垂类领域的一个数据上去学习一定的这样的一个知识信息。呃,然后呢,我们再基于这样的一个垂类领域去生成一些。这个基于模型的一个训练数据,再采用这种con learning的一个思路,再去进行一个微调,从而保证在垂类领域,我们的模型相比于开源模型效果啊能进一步的进行一个提升。啊,我们也可以来看一下我们下面这个效果对比图,而这里呢,是我们在啊自己的这个私有领域去对这个目前的包括open I提供be和这个开源模型提供的这个EMB的一个效果对比啊,啊其实我们可以看一下,对于我们自己的模型来说,也就是这个安CSE,我们可以直接看这个V2或者V3的一个版本啊。
12:13
V2和VV3的一个版本,其实相比于开源的模型都会有一些啊效果上面的一些提升,其次呢,我们自己的这个。微调之后的模型还有一个优势啊,我们会对我们的这个带维度可以选择考虑是否需要进行一个降维啊,例如我们可以看一下啊。开源的这个BGE,它其实是1024维的,那我们自己的这个RCSVR这个版本,如果降维之后呢,可以做到一个256维的一个维度,那这样维它有什么样的一个优势呢?首先啊,对于如果是1024维的一个向量,如果我们把它降为到256位收,实际上就等于我们节约了四分啊3/4的这样的一个存储成本,其次呢。我们在进行一个向量的一个检索的时候,效率各方面都会得到一定的一个提升,也就是说不管是在这个成本这一块,我们能节约,其次在效率这一块,我们也可以进一步提高它的一个检索的一个效率。这也是我们。
13:12
啊,对于垂类领域引白模型这方面的一个优势啊,OK,那有了我们这样的一个啊引白领模型之后呢,那我们就可以把我们的窗口数据转换成对应的一个,那下一步实际上就是我们需要把我们的这个啊白点数据存储到我们的这个价量数据库,对吧,但是。大家可能会有一个疑问啊,那为什么我要用这个下降数据库呢?我就存储在一些啊关系数据库里面不行吗?我就搞一个MYSQL存进去不行吗?那其实。啊,向量数据库啊。就一定是应用在我们特别专业这样的一个领域的,那首先呢,我们向量数据库它的一个查询方式和传统的这个数据库实际上是有一些区别的,对吧?那对于MY来说,我们更多就是或者说对一些关系数据库,我们就是简单去写一些这样的一些搜的查询语句,但是对于数据库来说,就并不是以这样的一个形式来进行一个查询。
14:08
那其次呢啊,如果我们使用了这个腾讯云的销量数据库,它其中的一些非常多的一些细节,一些技术点,实际上我们都做了一些封装,我们使用起来非常简单的,大家不需要去担心其中的一些细节啊。其次我们整个这样的一个向量数据库,是专门为这样的一个相似性的一个节奏啊设计的,所以呢,在优这个性能这一块啊提升是具备一定的一个优势的。那我们的腾讯云销量数据库呢,其实也是首家通过了咱们这个信通院的这个标准化性能和规模测试,并且呢,我们的这个数据库已经支持了千亿级限量规模和最高500万的QPS,那对于整个我们的这个销量数据库呢,其中的这个引擎也是我们基于这个内部资源的欧拉曼引擎。包括我们腾讯云内部的一些业务啊,目前也已经有40多个已经进行了一个接入,而在这个性价比这一块呢,我们的性能也是领先了业内平均水平差不多1.5倍,我们也能保证我们在客户使用的时候,它的这个成本是非常低的啊,基本上能降低20%。
15:18
所以说大家如果使用我们的这个向量数据库的话啊,一方面对于流程这一块是非常简单的,大家只需要把我们的这个数据提供过来,我们就会去进行一些白这一块的一些处理,然后大家就直接进行一个查询就OK了,不需要啊你对的这个算法有任何特别多的一些了解,其次呢,我们也在对于模型的部署这一块做了非常多的一些啊优化。那我们的这个token的这个处理速度是非常快的啊,我们也可以对比一下中间这个图。啊,其次呢,我们的这个不管是在这个在线的一个方式也好,还是一线的这个方式也好,我们实际上都是做好了很好的一个支持,也能满足大家对于这个不同场景下的这个啊白领它的一个需求啊,这就是整个我们腾讯云下量数据库,对于白这一块的一些啊优势或者说一些优化,也欢迎大家能使用我们的这个腾讯云的一个向量数据库。
16:18
OK,那这就是咱们这一节啊,这一块的一个内容,那这一节课讲完之后呢,实际上我们整个IG的一个流程,就等于是已经把我们的数据已经存储好了,对吧,那下一节课呢,我们就会为大家带来我们的关于检索这一块。OK.
我来说两句