当前位置:   article > 正文

高维向量相似搜索插件 pgvector

pgvector

大模型爆火以后,持仓股票都卖飞了(捶自己),只能研究研究技术,来填补下心灵上的创伤。

正在用openai开放的接口做调试,用embedding接口来实现内容相似度检索,并用chatGPT生成答案,从目前来看实现的效果还不错。

embedding接口会返回一组vector,相对于其他数据的向量搜索,它生成的向量精确度更高,起初用的是supebase云数据库,后来替换成了postgres(支持私有化部署PostgreSQL: The world's most advanced open source database),向量存储都用到了pgvector(GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres

讲下pgvector,PostgreSQL 内置的cube插件支持最高100维向量, 每个维度8字节, 性能一般。阿里云rds pg提供了一个高维向量插件pase用于解决高精度向量高效搜索, 例如人脸识别。同时pase有对外公开发表的论文, 基于这个论文, 国外的开源爱好者开发了一个名为pgvector的插件, 支持ivfflat索引算法。

vector支持三种向量距离:

L2 distance, inner product, and cosine distance

用法:

CREATE EXTENSION vector;

CREATE TABLE table (column vector(3));

CREATE INDEX ON table USING ivfflat (column);

INSERT INTO table VALUES ('[1,2,3]'), ('[4,5,6]');

SELECT * FROM table ORDER BY column <-> '[1,2,3]' LIMIT 5;

openai的embedding 接口需要用这个数据库存储,其他的数据库精度不够。安装和使用方法参考官网文档。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/325443
推荐阅读
相关标签
  

闽ICP备14008679号