← 返回 PaperDaily
前沿研究
字节跳动UBASE:万亿向量检索吞吐3倍,内存直降80%
这不是又一棵刷榜的韭菜,而是字节跳动万亿级生产系统UBASE首次系统公开。它真正解决的是大模型时代最扎心的痛点:向量海量增长,内存和成本双双爆炸。吞吐3倍、索引内存降80%、成本降86%的硬核数据,值得每个搞RAG和向量检索的人细品。
龙哥读论文
发布于 2026-09-04 00:20:01
阅读 1
查看原文
原论文信息如下:
向量数据库、AI搜索基础设施,正在经历一场前所未有的“大爆炸”。字节跳动这篇题为《UBASE: An AI Search Engine for Trillion-Scale Vector Data Management at ByteDance》的论文,首次对外披露了支撑其内部7000多个集群、超过300PB存储的AI搜索引擎UBASE的完整架构与核心设计。这不仅仅是一篇普通的系统论文,更是一份来自全球最大AI应用场景之一的“实战报告”。当绝大多数团队还在为百万、千万级向量检索调参时,UBASE已经在万亿级高维向量的生产环境中稳定运行了数年。本文将深入拆解UBASE如何通过对称量化方案SymRaBitQ、自适应存储引擎和混合查询引擎,化解万亿级向量场景下的内存爆炸与I/O瓶颈,实现吞吐最高3倍提升、索引内存降低80%、运营成本下降86%的惊人效果,并探讨这些技术对RAG、推荐系统等AI应用的深远影响。
万亿级向量检索的挑战:内存与I/O的双重瓶颈
UBASE自2016年起作为字节跳动的核心搜索基础设施运行至今,目前管理着超过7000个集群和300PB的存储。随着AI应用的爆发,特别是检索增强生成(RAG)、推荐系统、语义分析和对话式助手等场景的普及,UBASE已经从传统的文本搜索引擎演进为一个统一的AI搜索系统,向量成为其索引的一等公民。查询不再仅仅是关键词匹配,而是向量相似度与词法匹配、结构化谓词过滤、重排序的复杂组合。
向量数据的增长是指数级的,而非线性。论文中的图1和图2清晰地展示了这一趋势:UBASE存储的向量数量呈指数级增长,而部分生产工作负载每天要摄入数十亿个新向量。其中规模最大的集群已接近万亿向量规模,存储足迹达到PB级别。
需求的增长沿着三个相互耦合的维度展开:粒度、维度和留存周期。检索单元变得越来越细粒度,例如视频搜索从场景级嵌入演进到帧级嵌入;新的编码器将嵌入维度从128维提升到2048维;向量被存储的时间也更长,例如AI记忆工作负载将留存时间从45天延长到365天。这些趋势叠加的结果是:每个应用可能为用户生成更多向量、存储更宽的向量、并保留更长时间。向量数据管理已从组件级优化转变为PB级系统级优化。
向量数据是资源消耗大户。与标量字段不同,每个向量都是密集对象,存储、索引和查询成本高昂。一个2048维的FP32向量占用8KB存储,一亿个向量在索引前就需要800GB原始存储。构建图索引更是内存和计算密集型任务:为一个100万向量的分段构建基于图的向量索引,至少需要8GB内存,耗时超过1小时。查询同样昂贵:图方法采用贪心遍历逐步逼近查询向量,每一步至少需要1次随机I/O,达到95%召回率可能需要100多次跳转,而且必须搜索所有分段。
在万亿向量规模下,内存成为核心约束。生产工作负载暴露了两个关键瓶颈。第一,摄入放大内存使用:索引构建器必须保留全精度向量直到分段最终确定,在每天摄入超过100亿向量、峰值超过每秒70万向量的情况下,朴素的构建方式可能消耗数十TB内存,榨干集群内存。第二,服务变得I/O密集:纯内存服务在经济上不可行,万亿规模下SSD备份服务成为必然,缓存效率因此至关重要——图邻居或向量的缓存未命中会触发SSD读取,增加尾部延迟并降低吞吐。
这些问题的解决方案不能是简单的将向量搜索拆分为独立服务。客户需要OpenSearch兼容性以保留现有API、仪表盘、访问控制、排序管道和运维手册,同时要求结合向量相似度、词法匹配、结构化谓词和重排序的混合查询。现有系统各有不足:Faiss提供高效ANN内核但缺乏分布式摄入、持久性和运维控制;Milvus提供集成向量服务但无法匹敌OpenSearch成熟的词法和排序生态;OpenSearch和Elasticsearch提供了正确的生态,但其向量路径在万亿向量规模下遭遇内存和I/O瓶颈。UBASE的出现,正是为了填补这一从生态成熟度到万亿级AI检索之间的实用鸿沟。
表1展示了UBASE具有代表性的生产工作负载,覆盖了不同查询模式、摄入速率、存储层级和规模。从125M向量的图像资产搜索,到1万亿向量、3PB存储的合规审查与用户身份搜索,UBASE展现出了惊人的跨度。
SymRaBitQ:对称量化如何重塑索引构建路径
面对上述两大瓶颈,UBASE的应对之策是双管齐下。其核心创新之一,便是提出了SymRaBitQ ——一种全新的对称量化方案。要理解它的价值,首先要回顾现有SOTA量化方案的不足。
现有的顶级量化方案,如RabitQ和BBQ,都是非对称的:它们量化数据向量,但评估时仍使用全精度查询向量。这种方式无法直接支持量化域内的数据到数据距离评估,而UBASE在索引构建过程中恰恰需要这种能力。如果退回到全精度,则需要额外保留一份未压缩的数据副本,这会显著放大内存使用。SymRaBitQ的巧妙之处在于,它保持高精度的RaBitQ代码构造不变,但改变了估计器,使得两个操作数都可以由紧凑代码表示,从而实现了数据到查询和数据到数据的统一量化空间原语。
从论文的Algorithm 1可以看出,SymRaBitQ的编码路径对于数据和查询残差是一致的。给定原始向量x_r、质心c、位宽B和旋转矩阵P,其输出为编码记录z_x = (x̄, x̄₀, γ_x, ρ_x)。其中ρ_x为残差范数,γ_x为自相关项。这种设计的直接收益是:对于数据到数据的比较,分母项可以全部预先计算;对于查询到数据的比较,则只需在线计算一次查询的自相关项。
SymRaBitQ的对称估计器定义简洁而优雅。给定两个编码后的残差单位向量,其内积的估计值为分子两项内积除以两项自相关的乘积。对应的平方L2距离则通过残差范数重建。更关键的是,分子是直接由整数编码计算的,而非物化旋转后的浮点向量。当B=1时,计算退化为符号一致性判断,可通过位运算和popcount完成;当B=5时,则变为紧凑的整数编码点积。这种纯编码计算方式使得图索引和IVF索引的内核可以直接调用该距离函数,而非通用的全精度距离。
从工程角度看,SymRaBitQ最大价值在于将量化从查询路径扩展到了整个索引构建和维护生命周期。论文的Remark 1明确指出,与RaBitQ相比,SymRaBitQ看似只是一个温和的数学修改,但这在系统层面意义重大。RaBitQ加速了查询时的估计,但图构建和分段合并需要大量针对存储向量的距离计算。通过将两个操作数都移至量化空间,SymRaBitQ消除了这些数据到数据计算中对原始向量(raw vector)的访问,从而在持续摄入的场景下,将索引构建的峰值内存压力大幅释放。
理论保证方面,SymRaBitQ的估计器是无偏的,并且具有O(1/√D)的高概率误差上界。论文中的Theorem 1给出了严谨的数学表述。这一性质确保了量化后的距离计算与真实距离的高度一致性,为后续高精度ANN搜索提供了坚实基础。
在实践中,UBASE的量化感知向量内核将SymRaBitQ应用于图构建和搜索的每一个环节。在量化感知构建中,每个分配的向量都预先编码为SymRaBitQ记录,此后图构建器不再调用全精度距离函数。无论是候选发现、鲁棒剪枝还是反向边修复,全部使用SymDist距离度量。论文的封底实验数据显示,B=5时保留了超过98%的距离估计精度,在相同搜索参数下召回率损失小于0.01。在GIST-1M数据集上,SymRaBitQ将峰值构建内存降低了80%,总构建时间降低了60%。
对于中等规模分段,UBASE使用IVF索引。在这里,SymRaBitQ同样发挥核心作用:整个k-means聚类过程在量化空间中通过SymDist进行;量化后的编码存储于倒排列表中,全精度向量则驻留磁盘,列表构建和后续分段合并都不再需要它们。查询时,先使用1位码进行粗筛,只有通过粗筛的候选者才使用完整的B位码进行精排。
自适应存储引擎:从内存到SSD的平滑过渡
解决了索引构建的内存瓶颈,UBASE面临的第二个核心挑战是如何在万亿规模下提供经济高效的服务。当索引体量达到PB级别,纯内存方案的成本高得离谱。UBASE的自适应存储引擎为此提供了优雅的解决方案:它支持纯内存、混合内存-磁盘和纯SSD三种部署模式,且无需重新索引,并以细粒度的记录级缓存来换取可控的延迟。
UBASE的存储引擎管理着向量分段的完整生命周期,支持从新鲜分段到扫描、IVF、再到图索引的升级路径。核心在于,分段抽象将索引构建与存储放置解耦:同一个索引可以从DRAM、混合内存-SSD或SSD驻留存储提供服务,而无需重新索引。这种设计使得生产集群可以根据工作负载的成本-延迟权衡,灵活调整部署形态,而无需数据迁移。
为提升SSD驻留图索引的缓存效率,UBASE实现了细粒度的记录级缓存。每个记录存储用于距离估计的紧凑向量载荷和有界邻居列表。如图6所示,一个按顶点ID索引的密集记录映射数组提供O(1)访问。每个条目是一个64位逻辑指针,包含驻留位、2位状态字段和61位偏移量。MSB为0表示记录在磁盘上,MSB为1表示记录缓存在内存中。状态字段记录了瞬态缓存状态,用于协调并发查询下的记录加载、预取和驱逐。
龙迷三问
这篇论文到底在解决什么问题? 字节跳动自研AI搜索引擎UBASE,通过对称量化方案SymRaBitQ与自适应混合存储引擎,将向量索引构建内存降低80%、吞吐提升3倍,运营成本下降86%,支撑万亿级高维向量生产实践,为RAG与大模型应用提供可落地的极致性能方案。
这篇工作最值得看的点是什么? UBASE在100M数据集上达到21,445 QPS(约90% recall@10),比Milvus高9.5倍,比PostgreSQL高5.5倍,比Elasticsearch高2.3倍;索引构建峰值内存降低80%,构建时间降低48-60%,存储成本降低7.3倍
这篇工作的边界或风险在哪里? 优点:(1) SymRaBitQ对称量化方案具有理论保证,能同时支持查询和数据到数据的距离计算,这是现有非对称量化方案无法做到的;(2) 将量化引入索引构建路径,大幅降低构建内存和计算开销;(3) 自适应存储引擎支持多种部署模式,记录级缓存和异步执行有效缓解SSD场景的I/O瓶颈;(4) 保持OpenSearch兼容性,降低迁移成本。缺点:(1) 对称量化相比非对称量化在查询精度上可能略有损失;(2) 系统复杂度较高,涉及多个组件的协同优化;(3) 实验主要在内部数据集上进行,公开基准测试相对有限;(4) 对SSD场景的优化主要针对图索引,对IVF索引的优化效果未充分展示。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~ 龙哥点评
论文创新性分数: ★★★★☆
提出对称量化方案SymRaBitQ,使图索引构建和段合并直接在量化空间中进行,避免全精度向量拷贝,同时设计自适应存储引擎支持内存/混合/SSD多种部署模式,以记录级缓存和异步图遍历优化SSD场景下的查询性能。
实验合理度: ★★★★☆
QPS(每秒查询数)、Recall@k、NDCG@k、索引构建时间、峰值内存、索引大小、P99延迟、月度运营成本
学术研究价值: ★★★★☆
提出对称量化方案SymRaBitQ,使图索引构建和段合并直接在量化空间中进行,避免全精度向量拷贝,同时设计自适应存储引擎支持内存/混合/SSD多种部署模式,以记录级缓存和异步图遍历优化SSD场景下的查。
稳定性: ★★★☆☆
现有材料未提供充分的极端条件、重复运行或扰动测试,稳定性暂按中性评价。
适应性以及泛化能力: ★★★☆☆
现有材料未完整展示跨数据集、跨场景或分布外实验,泛化能力仍需进一步验证。
硬件需求及成本: ★★★☆☆
在100M数据集上,索引构建时间从23,826秒降至12,496秒(降低48%),峰值内存从453GB降至90GB(降低80%)
复现难度: ★★★☆☆
现有材料未确认完整代码、配置、数据处理脚本和权重是否齐备,复现难度暂按中性评价。
产品化成熟度: ★★★☆☆
论文验证以研究实验为主,真实部署中的时延、成本、维护和异常场景仍需补充验证。
可能的问题: 现有材料尚未充分覆盖分布外泛化、部署成本、长期稳定性和失败案例。
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击 "阅读原文", 查看更多原论文细节哦!