请教个 es 向量查询的问题

10 天前
 wueryi

背景:

问题

目前想前台使用这种向量查询的结果 但是问题是目前单次查询的效率很低基本上得 60s 左右才能返回。

其他

1368 次点击
所在节点    Elasticsearch
22 条回复
somebody1
10 天前
不懂。
建议你去 es 的社区发问题!
wueryi
10 天前
@somebody1 #1 😁😁
fffflyfish
10 天前
向量做下降维呗,1024 太长了,商品标题一般也就 60~128 维差不多够用了
wanghello
10 天前
redis search 咋样
jetyang
10 天前
1.ES 做向量检索就是慢,了解一下 ANN ,近似查询才能加速
2.向量检索就是考虑到意思相近但不是同样的文字,如果要同一个干嘛启用向量查询
my3157
10 天前
试下 meilisearch
wueryi
10 天前
@fffflyfish #3 主要是存量数量里已经有 1024 维度的了,刷数据的话时间比较长。另外就是没有具体试过降维会不会准确率降低,余弦函数的距离我理解应该不会降低准确率。
wueryi
10 天前
@jetyang #5 我试了 ANN 这个配置对应这个量级 快不了多少 ,都是几十 s 上下,2.应用的场景其实就是针对不同平台同一个商品,进行搜索,并不是一样的文案,大概率都是相似文案。
fffflyfish
10 天前
@wueryi 降维对效果的影响你在 STS dataset 上实际测下就知道了,看上面 ANN 都加速不了的话你只能在准确率和计算耗时之间权衡了,或者你调研下有没有基于 GPU 的向量检索方案
picone
10 天前
@wueryi #8 ANN 不可能这么慢,百万级规模也不算特别大,不需要上到 GPU 。降维试试不影响准确召回即可。有个问题是这个数据集存在更新吗,更新频繁吗?除了 ES 外也有其它专门做向量检索的项目可以都调研下对比下
wueryi
10 天前
@picone #10 存在更新 但是不频繁,在试 milvus 但是目前没有这么大的量供测试😂
wueryi
10 天前
@fffflyfish #9 GET 感谢老哥
monkeyk
10 天前
这类问题要先找到根源在哪,像 milvus 之类的向量库都推荐使用 GPU 来部署;
一般能想到的就是 CPU 的并发支持 没有 GPU 高。
尝试找一些官方提供的 debug 工具试试
OPLUS
10 天前
之前做过 128 维的测试,默认索引下 es 就是比 milvus 慢很多。
Chris2023
10 天前
如果是优化方案:1.纬度太大 2.数据更新是否频繁 3.磁盘最好是 SSD 4.内存利用率可以看一下。 向量查询还是要用向量数据库来承载,ES 一般不这么用。
picone
10 天前
@wueryi #11 PQ 量化,分库这些都可以搞上去试试,百万级数据单机理论上是可以处理的,牺牲少量召回准确率。

如果使用 ANN 的话,更新的量看大不大,大的话可以单独作为一个子库做倒排并行检索,然后日/月粒度全量重新建库就好了。
OblivionStaff
10 天前
可以试着问问 llm 。Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cppadj8nsmmif30hv83g
wxf666
10 天前
请教一下,这是一种更高级的全文搜索吗?

比如,要是用到 V2EX 的搜索里,就能以自然语言形式,搜出更匹配的帖子/回复来,而不是关键词/近义词匹配而已?

某个字符串的 1024 纬度数据,是咋来的呢?每个纬度,是代表某个方向上的相关程度吗?(如动物/人类/编程/工地/……)
qieqie
10 天前
ES knn 性能就是低的匪夷所思,甚至比 ssd ondisk 索引方案还低一个数量级。
wueryi
5 天前
@Chris2023 #15 是的本来打算是用 milvus 只是当前数据存在 es 里 es 刚好支持 所以测试一下性能 然后发现确实别我想想的要更差一点儿。然后分析原因的时候不确定是不是配置的问题导致的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1050773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX