这篇文档属于类型a,即报告了一项原创性研究的学术论文。以下是针对该研究的详细学术报告:
SmartANN:基于SmartSSD的近数据处理架构实现可扩展的十亿级近似最近邻搜索
一、作者与发表信息
本研究由Haikun Liu、Bing Tian、Zhuohui Duan、Xiaofei Liao和Yu Zhang共同完成,均来自中国武汉的华中科技大学计算机科学与技术学院。论文发表于ACM Transactions on Storage期刊,具体发表日期为2025年5月。研究得到了中国国家重点研发计划(2022YFB4500303)、国家自然科学基金(62332011、62302178)和湖北省自然科学基金(2021CFA037)的联合支持。
二、学术背景
研究领域:本研究属于高维向量空间近似最近邻搜索(Approximate Nearest Neighbor Search, ANNS)领域,涉及计算机系统架构与机器学习的交叉研究。
研究动机:
随着大语言模型(LLMs)和推荐系统的普及,ANNS成为现代AI基础设施的核心组件。然而,传统ANNS算法(如图形、哈希、树或量化方法)需TB级内存存储十亿级数据集的索引,导致部署成本高昂。此外,传统SSD-based方案因频繁的I/O操作(占总执行时间的70%)和PCIe带宽限制,难以满足高性能需求。
技术背景:
1. SmartSSD技术:一种新兴的近数据处理(Near Data Processing, NDP)设备,通过集成FPGA和板载DRAM实现本地计算,减少主机与存储间的数据移动。
2. 分层索引方法:如SPANN通过聚类划分数据集,仅搜索与查询相关的分片(shard),减少计算开销。
研究目标:
提出SmartANN,一种基于SmartSSD的ANNS解决方案,通过分层索引和硬件/软件协同设计,实现以下目标:
1. 降低计算与数据访问开销;
2. 支持多SmartSSD的线性扩展;
3. 提升查询吞吐量(QPS)与能效。
三、研究流程与方法
1. 分层索引构建(离线阶段)
- 数据集划分:采用分层平衡聚类(Hierarchical Balanced Clustering, HBC)算法将十亿级数据集划分为等大小的分片,确保高相似性向量聚集。
- 索引构建:为每个分片独立构建HNSW(Hierarchical Navigable Small World)图索引,存储于SmartSSD中;分片质心(centroid)保存在主机内存中,用于快速筛选相关分片。
- 数据布局优化:根据分片访问热度(通过离线采样统计)均衡分配到多SmartSSD,并复制热点分片以支持动态任务调度。
2. 查询处理(在线阶段)
- 质心筛选:主机CPU计算查询向量与所有分片质心的距离,缩小搜索范围。
- 分片剪枝:基于梯度提升决策树(GBDT)模型预测每个查询需搜索的最小分片数,避免冗余计算。模型训练耗时仅3分钟,推理延迟为微秒级。
- 任务调度:动态调度查询任务至SmartSSD,优先复用已加载的分片数据,并通过负载均衡算法(Algorithm 3)分配任务。
3. SmartSSD内部优化
- 向量搜索引擎:在FPGA上实现HNSW算法的硬件加速,关键优化包括:
- 任务重排序:合并相同分片的查询,减少数据加载次数;
- 并行距离计算:通过流水线和循环展开优化高维向量距离计算;
- 位图访存:用位图替代布尔数组标记已访问节点,节省片上内存。
- 数据预处理:重组HNSW索引的磁盘格式,避免反序列化开销,直接通过向量ID偏移访问数据。
4. 实验设计
- 数据集:SIFT1B(1.28亿图像特征)、SPACEV1B(网页搜索向量)、DEEP1B(图像描述符)、Turing1B(搜索查询向量)。
- 对比方案:CSDANNS(现有SmartSSD-based方案)、SPANN(SSD-based)、CUHNSW与GGNN(GPU-based)。
- 评估指标:查询吞吐量(QPS)、召回率(Recall@10)、能效(QPS/Watt)。
四、主要结果
性能提升:
- 在90%召回率下,SmartANN的QPS比CSDANNS高8.5–10.7倍(图11),能效提升8.4–9.4倍(图13)。
- 使用4块SmartSSD时,QPS达332,接近线性扩展(3.76倍,图14)。
技术贡献验证:
- 分层索引减少82.2–89.6%的距离计算和85.1–90.7%的遍历跳数(图15–16)。
- 任务调度使多SmartSSD负载偏差从30%降至5%以内(图17)。
- GBDT剪枝将平均搜索分片数从13降至9,保持相同准确率。
横向对比:
- 优于SPANN(受限于PCIe带宽)和GPU方案(因内存容量限制需频繁数据交换)。
五、结论与价值
科学价值:
1. 提出首个基于商用SmartSSD的ANNS架构,验证了NDP在大规模向量搜索中的可行性;
2. 通过分层索引、学习型剪枝和动态调度,解决了多SmartSSD协同计算的三大挑战。
应用价值:
1. 为推荐系统、LLM增强检索(RAG)等场景提供低成本、高吞吐的ANNS服务;
2. 为未来计算存储设备的算法-硬件协同设计提供范例。
六、研究亮点
- 创新架构:首次实现“主机CPU+SmartSSD”协同的ANNS分层处理流程;
- 算法优化:GBDT剪枝与动态调度结合,兼顾准确性与负载均衡;
- 工程实现:在三星SmartSSD上完成全栈优化,包括FPGA内核、数据布局与传输协议。
七、其他价值
- 开源了扩展的BBANN和HNSWlib库代码,支持后续研究;
- 实验数据覆盖多模态向量(图像、文本、搜索查询),验证了方案的普适性。
这篇报告系统性地介绍了SmartANN的研究背景、方法、结果与价值,为相关领域研究者提供了全面的技术参考。