粉丝3057获赞8957



挑战,每天讲透一个 ai 知识点,今天是待客知识库解锁优化,这里的话,大家首先到顶部啊,有一个知识库的一个板块,比如说啊,我们现在就有一个啊,我已经之前建了一个 deepsea 的 知识库了,然后这里怎么来建知识库呢?比如说我在这里创建啊,创建一个什么呢?创建一个这个 空空的一个知识库啊,比如说我们就叫做这个啊, ai 知识库, ai 知识库,然后去创建, 创建的话这里他就要去上传这个文档啊,上传文档这里面的话,我这里有一些资料啊,我把它上传上去,我这里准备了一些资料啊,在这里面有一些 deepsea 的 一些资料,然后比如说我随便上传一些 deepsea 的 资料啊,就拿几个吧,拿这么几个资料,我给他上传上去,然后添加文件,添加文件这里我就拖拽到这边,然后下一步。 好,这里面就是关于知识库的一些这个细节啊,一般来说我们这里选这么一个通用的啊,就是 带这种上下文啊,就是有目录式的,有这种结构化的内容的话,那你就选这个父子分段子块的话,它是用来解锁的,副块的话,它是作用于上下文的啊,也就说它是那种父子分段的,比如说啊,一个 这个章节带一个内容,一个章节带一个内容啊,它是带有这种规则性的,那大家就可以选这个父子分段,一般来说我们都是选这个通用的,通用的话就不管你是什么文档类型的,你选这个通用的就可以了,那么他去做。所以啊, 他的一个策略的话就是分段啊,就是用换行符,两个换行符的话就是一个啊,相当于我们的一个分格,分格完成之后的话就是相当于一行一行的数据啊,他把它相当于给你做一个锁影,比如说我们打开这个文档, 在这个里面啊,我们比如说要把这个文档去把它出手挖到支库里面去的时候,他的键锁影的策略的话,就是这么一条数据,是第一条是吧?这个是第二条,用换行符非常简单啊,就用换行符去做一个锁影, 然后啊他分段的话,这里为什么要分段呢?因为大模型的话,他是有托管限制的,如果说这个里面的内容超长的话,他会报一个上下文的错误啊,这个大家应该知道吧,就上下文,就用你跟大模型对话的话,他是有上下文限制的,比如说一般是六十四 k 啊,或者是一百二十八 k 啊, 基本上是这么一个大小,如果说超过的话,大模型就直接报错了,会出现内容丢失的。所以这里之所以要分段的话,就是因为内容不能超长,因为我们去查询这个知库里面的内容的话,这个里面的话,大家啊就是一定要保证这个内容。什么呢?他是哎, 他是可以分段的啊,他是在一定长度之内的,这样的话啊,他的这么一个减速的效果的话才会好啊,就是不会报错,然后分段重叠是什么意思呢?重叠的意思就是比如说我现在有分段了,是吧?这是第一段啊,这是第二段,这是第三段, 这个重叠的意思就是说我每一段我有一个重叠的一个部分啊,比如说第一段的尾部,这里有一个区域的话,是五十个字母,是吧?第二段的开头也有五十个字母,这么一段内容的话,它是相同的啊,也就是第一段的结尾是第二段的开始,为什么要这么设计呢?因为啊,我们再去取这个芝士库里面的这个内容的时候啊, 如果说因为他超过上下纹了,他就会出现截断,一旦截断的话,他的上下纹就会丢失,那一旦丢失的话啊,我们的内容可能就会出现一些幻觉,一些情况,所以的话啊,这里要做一个重叠,也就说那每一段他的尾部或者头部的话,都要保证他是重复的,相当于做一个笼鱼啊, 就相当于我们人去记一个事情的时候啊,那记一个地方可能大家容易遗忘,对不对?我多记几个地方,哎,他可能就会有效的解决这个抗遗忘的这个问题,是吧?那我很多地方我都记一下重复的记录,那他是可以对抗这个遗忘的。那大模型其实也是这样的, 你把这个分段的时候多放一些笼鱼的内容,重复的内容,那第一段内容万一尾部要是丢失的话,第二段内容的开头他还能记住你上面的内容啊,保留了一部分上下文,但是这个值不是越大越好啊,它是一个合理的一个值,如果这个值越大的话,整个内容都是重复的话,这个解锁的效果也不好,所以一般要做一个合理的一个设置啊 啊,然后是下面有一个缩影方式,第一个是高质量,第二个是经济,高质量是什么意思呢?高质量的话就是用到啊这个 log 技术, log 技术就是我们一开始讲的那个 embeds, 为什么叫高质量呢?因为它用到了这个向量解锁啊,用到了向量解锁,什么叫向量解锁呢?向量解锁的意思,比如说啊, 里面我们所有的这个文本的话啊,大模型啊,它其实里面有很多剪辑的技术的话啊,它是用到这个向量啊,为什么用向量呢?向量它是一种空间的概念啊,大家可以把它理解为一个坐标,比如说我们有 a x 坐标,一个 y 轴的坐标,对不对?那你可以把它看作一个字啊,比如说这个吃饭, 吃饭这个字是吧?比如说你要把它转换成向量的话,假设是啊,这个是二三啊,是一个坐标,是吧?你把它转换成这么一个坐标,比如说啊,这个 a 点的话,是在这个位置,这个是 a 点,对不对?然后到 b 点的话啊,比如说这个咱们叫,比如说打球, 打球啊,打球 b 点的话,假设是这个,这个四四二啊,比如说在这个位置,这个是 b 点。 那么如何判断这两个事情他是接近的呢?就是去计算向量的一个相似度啊?一般计算向量的相似度的话,有两个方法,第一个叫欧式距离, 第二个叫向量相,这个叫鱼旋相似度啊。欧式距离的话,就直接计算这两个点的一个距离,如果 a 点跟 b 点比较接近的话,意味着这两个就比较接近啊,就是我们语义上比较接近啊, 比如说吃饭跟这个打球,它是完全不一样的事情,是吧?所以这两个肯定距离比较远。还有一个这个算法的话叫做鱼旋速啊,就是判断这个夹角它是不是接近于这个一,如果接近于一的话就重合。