您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[ziiz]:高超:⾯向⽣成式AI的向量数据库:架构,性能与未来趋势 - 发现报告
当前位置:首页/行业研究/报告详情/

高超:⾯向⽣成式AI的向量数据库:架构,性能与未来趋势

信息技术2024-12-23高超ziizM***
AI智能总结
查看更多
高超:⾯向⽣成式AI的向量数据库:架构,性能与未来趋势

⾯向⽣成式AI的向量数据库:架构,性能与未来趋势 ⾼超/Zilliz⼯程师 DataFunSummit#2024 ⾼超 zilliz⼯程师 毕业于上海交通⼤学,在向量数据库和⼤数据引擎有⼀定经验,⽬前在zilliz主要负责索引引擎的优化 向量数据库背景介绍 Milvus整体架构设计 性能的关键-索引 ⾯向AI持续进化 01 向量数据库背景介绍 什么是向量数据 什么是向量检索 •找到离查询向量最近的条向量 (TopK) •怎么计算距离取决于模型定义使⽤怎样的Metric,常⻅的有L2,IP和Cosine等 •向量数据库是⼀种专为存储和查询⾼维度向量数据 ⽽优化的数据库系统 •AI1.0时代,向量数据库已经被⼴泛应⽤于机器学习应⽤中,包括推荐系统,搜索,⻛控,安防等系统中。现在仍然是重要的使⽤场景 •RetrievalAugmentedGeneration(RAG),向量数据库作为存储记忆体保存领域相关的知识,⽤于查找query相关的数据 •LLM从增强的提示词中获得为⽤户量身定制的答案,增强了结果的相关性 •性能 •扩展性 •易⽤性 •功能 •可观测可运维 •⽣态集成 •故障恢复 •安全 •… 您公司的logo 02 Milvus整体架构设计 •Proxy:接⼊层,负责请求编译,检查和路由 •Query:负责数据/索引的加载和查询 •Data:负责数据批流转化 •Index:索引构建 •强⼤的隔离性,建索引不争抢查询资源 •良好的扩展能⼒,⽀持百亿级别的向量 •更加灵活的流式数据处理能⼒和增量更新/删除能⼒ •Segment是milvus查询的最⼩单位 •growingsegment负责流式数据的查询,保证数据的实时可⻅,性能差 •sealedsegment负责持久化数据的查询。数据构建过索引,性能好 •通过indexNode构建索引替换 queryNode上的数据加速查询 •把⼀些⼩segment合成⼤ segment,加速查询 •合并delete数据,做物理删除,对向量检索更加友好 •⽀持bulkinsert功能,⽤户提供json/csv/parquet等格式的⽂件,跳过消息队列,直接插⼊到对象存储 •⽀持Sparkconnector,外部数据源可以通过SparkETL导⼊到Milvus •根据不同租户做划分数据 •根据标量过滤条件划分数据 •根据向量空间分布划分数据 Zillizcloud:向量数据库即服务 •ZillizCloud是Zilliz基于开源向量数据库milvus打造的全托管企业级向量检索云服务 •分为Serverless,SaaS和BYOC三个版本,⾯向不同需求和不同部署环境 •⽬前已经登陆AWS,GCP, Azure,阿⾥云、腾讯云等 您公司的logo 03 性能的关键-索引 主流向量索引 •树索引:维度灾难,性能差 •哈希:精确有限 •量化:精度有限,但⽐哈希更为常⽤ •图索引:占⽤资源⾼,精度和性能优异 树哈希量化图 knowhere引擎 •Knowhere作为milvus的核⼼向量引擎,集成了多种向量算法,供⽤户⾃由选择 •对外统⼀接⼝,⽅便集成新索引 FLAT •暴搜:效率很低,但100%准确! •数据量少的时候可能优于索引的性能 •对数据点做聚类,分成若⼲个 buckets •查询时找到query最近的nprobe个 buckets,避免搜索全量数据 •将向量分成m段,每段⼦向量通过聚类编码成聚类中⼼id,有效压缩向量的内存占 ⽤ •查询时预计算query向量和每段聚类中⼼的距离,把距离计算转化成查表操作 •⽬前最为⼴泛使⽤的图索引 •建索引的原则:近邻的近邻⼤概率是近邻,同时引⼊⼀些⻓边防⽌陷 ⼊局部最优 •层次化的结构快速定位,贪⼼式搜索找到最终结果 •Disk中保存图索引,并按照向量本身和邻居id⼀起存的⽅式增强locality。每次IO同时得到原始向量计算精确距离,同时得到邻居id, ⽤到内存中的PQ编码计算近似距离⽤于导航 •DiskANN可以实现较低的内存占 ⽤,达到还不错的性能和⾼精度 •和NVIDIA团队合作,将gpucagra索引集成到knowhere,充分利⽤gpu的并⾏计算能⼒,加速索引构建和查询 如何选择最合适的索引 •希望降低cost考虑采⽤disk的⽅案,量化的⽅案。 •希望提⾼accuracy则不去做激进的量化策略,要求很⾼则使⽤FLAT。 •希望提⾼performance,采⽤内存图 索引/gpu索引⽅案不可能三⻆:必须在限制的条件中进⾏筛选最合适的策略 Zillizcloud商业版索引引擎-cardinal •更加⼯程化的代码 •更智能的参数学习 •更加优异的数据存储布局 •更加极致的SIMD优化 您公司的logo 04 ⾯向AI持续进化 •带标量过滤条件的向量检索已经成为⼀个基本需求 •milvus⽀持多种scalarindex加速标量过滤的效率。同时⽀持向量侧通过标量分布构建融合索引加速过滤 •不⽌于densevector!与densevector跟更加关注语义不同,sparsevector提取了关键词的信息,通过关键词匹配找相关的结果,可解释性强 •在outofdomain的数据上sparsevector更有优势 •⽀持多向量多模态存储和检索,可以是多个densevector,也可以是densevector和sparsevector的组合 •可以从更多信息的维度进 ⾏召回和rerank •仅向量维度的召回不⼀定满⾜⽤户的需求。在⽂本检索时,⼀个向量代表⼀个chunk,缺少全⽂视⻆ •可以通过doc维度做聚合搜索 更加易⽤ •向量不是sourceofthetruth,真正的数据是向量背后的⾮结构化数据,milvus会在后⾯的版本中提供调⽤第三⽅模型转向量的能⼒,⽤户可以直接使⽤⾮结构化数据来使⽤向量数据库 THANKS DataFunSummit#2024