当前位置:首页 > 报告详情

周伦光_pgvector构建私域知识库之存储和查询向量嵌入.pdf

上传人: 2*** 编号:129069 2023-05-01 22页 2.47MB

1、Postgresql plug-in pgvector builds storage and query vector embedding of private domain knowledge base分享人:周伦光原理分析原理分析性能测试性能测试应用案例应用案例 应用实践应用实践contents目 录PART 01原理分析向量向量相似性相似性给定两个属性向量,A 和B,和 分别代表向量A和B的各分量,其余弦相似性由点积和向量长度给出相似性范围从-1到1。-1意味着两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的,而在这之间的值则表示中间的相似性或相异

2、性对于文本匹配,属性向量A 和B 通常是文档中的词频向量。余弦相似性,可以被看作是在比较过程中把文件长度正规化的方法相似性相似性如果我们将短语画在2维图表上,维度:X 轴和 Y 轴短语 1 和 2 将彼此靠近绘制,因为它们的语义相似短语 3远离1和2,因为它们的语义相似过低关键是在构图过程中通过贪婪搜索算法记录下搜索最优路径,是一个类似于“交通枢纽”的无向图,这会导致某些顶点的出度激增NSWNSW对NSW的升级,基于图的方案,使用跳表结构代替NSW的链表结构通过空间换时间的方法将向量检索的复杂度从多重对数复杂度降至对数复杂度。HNSWHNSWIVF可以将向量分解为若干个子空间,并且在每个子空间

3、上使用倒排索引来加速搜索。PQ是一种有效的向量量化方法,可以将高维向量压缩为低维码本地,从而减少存储和计算成本IVF_PQIVF_PQ向量检索技术向量检索技术4 42 23 31 1向量索引向量索引是一种数据结构,可以将向量数据按照一定的规则进行划分和组织,以便快速地进行查询和检索查询优化查询优化为了提高查询效率,采用了一些查询优化技术,例如基于向量索引的查询优化、基于近似相似度计算的查询优化数据存储数据存储将数据存储为向量形式,每个向量代表一个数据对象。向量的维度数取决于数据对象的特征数相似度计算相似度计算查询操作主要是基于相似度计算计算该向量与数据库中所有向量的相似度,并返回相似度最高的几

4、个向量作为查询结果向量数据库原理向量数据库原理PART 02应用实践可以在现有的postgsql数据库中以插件的形式使用高度集成高度集成内置了对多种距离度量的支持,包括L2距离、余弦距离和内积。这种多功能性允许高度可定制的基于相似性的搜索和分析,以满足特定的应用需求支持多种距离度量支持多种距离度量提供了高效的索引选项,例如 k-最近邻(k-NN)搜索。因此,用户可以在保持高搜索准确性的同时实现快速查询执行索引支持索引支持利用熟悉的 SQL 查询语法进行向量操作。这种方法简化了具有 SQL 知识和经验的用户采用矢量数据库的过程,并避免他们必须学习新的语言或系统SQLSQLpgvector 继承了

5、postgresql的稳健性和安全性功能,与pg保持良好的版本和功能兼容稳定性稳定性优势优势向量函数向量函数03使用参考使用参考向量类型向量类型每个向量占用4*dimensions+8字节存储空间。每个元素都是一 个 单 精 度 浮 点 数(类 似 于Postgres 中real不精确浮点类型),并且所有元素都必须是有限的(没有NaN,Infinity或-Infinity)。矢量最多可以有 16,000 个维度。010204操作符描述+逐元素加法-逐元素减法欧氏距离负内积余玄距离功能描述cosine_distance(vector,vector)双精度余弦距离inner_product(vec

6、tor,vector)双精度内积l2_distance(vector,vector)双精度欧氏距离vector_dims(向量)整数维数vector_norm(vector)双精度欧氏范数功能描述avg(vector)vector平均值存储向量存储向量创建向量表:CREATE TABLE items(id bigserial PRIMARY KEY,embedding vector(3);更新向量:UPDATE items SET embedding=1,2,3 WHERE id=1;DELETE FROM items WHERE id=1;插入向量:I

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了PostgreSQL插件pgvector的原理分析、性能测试、应用案例和实践。pgvector是一个用于构建私有领域知识库的存储和查询向量嵌入的插件。它通过向量相似性分析,将文本匹配转化为词频向量的余弦相似性计算,从而实现高效的查询和检索。pgvector支持多种距离度量,如L2距离、余弦距离和内积,并提供高效的索引选项,如k-最近邻搜索。此外,pgvector还支持利用熟悉的SQL查询语法进行向量操作,简化了用户采用矢量数据库的过程。性能测试表明,pgvector的索引技术可以将向量检索的复杂度从多重对数复杂度降至对数复杂度。在应用案例中,pgvector被用于处理不同格式的文档,如PDF、CSV、TXT和MD,通过Embeddings模型获取对应的向量,并存储到pgvector中。用户可以根据查询问题获取相似度TopN的chunks数据,并结合GPT模型获取相应的结果。总之,pgvector是一个功能强大且灵活的插件,适用于构建私有领域知识库的存储和查询。
"Postgresql插件pgvector如何工作?" "如何使用pgvector进行向量检索和查询优化?" "pgvector在私域知识库中的应用案例分享!"
客服
商务合作
小程序
服务号
折叠