1、DataFunCon#2024基于ByteHouse OLAP架构如何实现性能向量检索引擎ByteHouse团队/彭信东Contents录向量检索概念及场景ByteHouse向量检索实现性能与资源使优化性能评测及未来作Contents录向量检索概念及场景ByteHouse向量检索实现性能与资源使优化性能评测及未来作什么是向量检索模型企业级模型问答系统向量检索案例向量检索的本质向量检索索引 Table-based LSH Tree-based KD-Tree,Annoy Cluster-based IVF,SCANN,SPANN Graph-based HNSW,NSG,DiskANNClust
2、er-based:IVFFlat 聚类训练 优点:构建速度快 额外内存占少 缺点 查询速度受维度信息影响较 精度查询计算量较Graph-based:HNSW 构建图结构 优点 查询速度快,并发性能好 缺点 构建速度慢,内存占向量数据库overview向量数据库分类 专向量数据库 Vector-centric设计 极致向量检索性能 现有数据库扩展向量持 Vector index的式接 持复杂数据类型与查询操作,All-in-one查询Contents录向量检索概念及场景ByteHouse向量检索实现性能与资源使优化性能评测及未来作在ByteHouse创建向量索引 多种索引类型 Flat HNSW
3、 HNSW(SQ)IVFFlat IVFPQ IVFPQFastScan向量数据导 多种数据导式 kafka表引擎 Insert From File SDK向量检索查询 使距离函数利ByteHouse特性查询 CTE查询现有数据库扩展 优势 完备的数据管理机制 标准的SQL和多种复杂数据类型持 查询优化 性能执引擎 问题 通查询链路,额外的计算和IO开销 标量索引VS向量索引 Strict monotonicity vs Relaxed monotonicity在ByteHouse上持向量检索 标 补充ByteHouse结构化数据处理能 完备数据库功能持+深度定制的Vector-centric
4、计算链路 性能向量检索云数据仓ByteHouse架构ByteHouse已有特性数据管理保障 丰富数据表引擎:支持不同使用场景 权限控制 丰富的数据类型和语法支持 复杂类型支持 完善的SQL支持 高性能计算引擎 向量化算子执行,底层计算优化 查询优化器 高效的查询计划和分布式执行现有向量检索案 OLAP系统主要使Skip Index作为数据剪枝案 把vector index当作skip index来使局限性计算冗余 Data skip阶段 vector index计算出来的top-k(label,distance)信息只用于做data block过滤 Post Skip阶段 还需要对过滤后的向量
5、再计算一次distance信息 读放大 多次topK向量索引的读取 实际执行distance算子时,还需要读取向量列数据ByteHouse向量数据库的实现高效向量检索执行链路 One-pass computation Column pruning 通用的向量/标量混合查询链路(通过row id bitmap关联)标量前置过滤 标量后置过滤(迭代)In-memory向量索引缓存 基于LRU策略标量前置过滤查询流程主要组件Contents录向量检索概念及场景ByteHouse向量检索实现性能与资源使优化性能评测及未来作优化案例:以图搜图 数据规模:12亿数据,单节点(64cores,256GB)查
6、询模式 先按时间,类型,平台标量过滤 再从中查找最相似的1000张图和相似度评分 性能(单query latency)优化前:700-800ms 优化后:150-200ms优化向量检索计算下推 过滤操作优化 数据冷读问题优化 索引构建资源限制优化:计算下推优化标量/向量混合查询场景基于标量主键范围查找 主键是有序的,只需读取首尾部分数据进行过滤,构建符合条件的row id bitmap 加速标量列剪枝 Filter by partition Key/Primary key/Skip indices 存储层过滤 标量