一、引言

大概从2023年开始,特别是大模型火了之后,rag第一时间成为了香饽饽。rag里想要保证好的检索效果,好的相关性,向量检索脱颖而出。而es在8.x版本就开始布局了向量检索。公司在做rag的时候,第一时间就选择了es来做向量检索。向量检索是这些ai应用中的非常关键的部分,包括现在的多模态的处理,都需要向量检索。我觉得可以这么说,向量检索是连接LLM和AI应用的桥梁。

在2023年之前,我就在关注向量检索了。它有一个问题是检索性能问题,很难解决数据量的问题。为什么会这么说呢?向量检索虽然效果很好,但是想要高效的检索,完全需要借助内存来优化性能。需要把用到的向量相关的底层文件都加载到内存中,才能把检索的时间控制在1s内。大概五分之一的数据是向量文件。也就是1T数据大约需要200G的内存。大概2亿条数据,就需要1T的内存来做优化,这很夸张,成本太高了。关于验证和测试的细节这里就不展开了,感兴趣的可以看我这两篇博客。

https://blog.csdn.net/star1210644725/article/details/134021552

https://blog.csdn.net/star1210644725/article/details/141561432

正是高昂的成本问题,所以说BBQ是向量检索的福音!节省95%的内存,这意味着什么?还是用钱来说吧。2TB内存,大约是10w人民币,现在只需要5千就可以了。如果成本真的能降低这么多,的情况下,数据扩展上的成本问题就迎刃而解了。

二、关于BBQ

Elasticsearch 8.16 引入了 BBQ(Better Binary Quantization,更优二进制量化)——一种创新的向量化数据压缩方法,其性能优于传统的乘积量化 (PQ) 等方法。Elastic 是首家实现此方法的向量数据库供应商,并使其能够在实际搜索工作负载中应用,在保持低查询延迟和高排名质量的同时,减少所需的计算资源。

这项尖端的矢量数据优化技术可在不牺牲准确性的前提下,将矢量数据的压缩率提升高达 32 倍。Elastic 很荣幸率先为使用其分布式、可扩展 Elasticsearch 矢量数据库的用户提供这项功能,助力他们减少并扩展依赖于大型数据集的工作负载。  

BBQ 在保持高排名质量的同时,还能达到与标量量化几乎相同的速度和存储效率。其高压缩率使组织能够有效地管理大型数据集,并以经济高效的方式扩展其向量存储和搜索操作。此外,即使数据集不断扩展,BBQ 也能在保持出色召回率的同时,将内存使用量降低 95% 以上。它还可以轻松地与 Elasticsearch 中的其他量化方法结合使用,以最大限度地发挥其优势。

Elastic 设计的尖端量化技术更好的二进制量化 (BBQ) 首次作为技术预览版在 8.16 中推出,现在(8.18版本、9.x版本)已可用于大型生产工作负载,更新后的算法可提高性能和相关性优势。

三、官方测评细节

量化后,内存节省这么多,检索性能,相关性会不会受影响?

https://www.elastic.co/search-labs/blog/elasticsearch-bbq-vs-opensearch-faiss

四、关于BBQ二进制量化优化细节(算法细节)

BBQ究竟是如何做到的?为什么能优化这么多?这里看细节

https://www.elastic.co/search-labs/blog/rabitq-explainer-101

五、参考官方博客

https://www.elastic.co/cn/blog/whats-new-elastic-search-8-16-0

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐