第四篇:HNSW 参数调优 —— efSearch 从默认 50 降到 32 的完整消融实验

默认参数是给"通用场景"的,你的场景需要自己的数据说话。

为什么要在 Milvus 上跑,不能用 Faiss 结论?

Faiss HNSW 和 Milvus HNSW有本质差异,以下两点是 Milvus 特有、Faiss 不存在的:

  • Milvus Segment 架构:N 个 Segment 各搜各的 → 归并排序,efSearch 增大时延迟斜率更陡
  • Milvus 混合检索:Dense + Sparse BM25 并行,Sparse 侧带入候选,改变了 Dense 侧 efSearch 的边际收益

实测验证了这一点:efSearch=8/16 出现"高召回+高延迟"反常模式(7ms),Milvus 特有,Faiss 完全不会出现。


实验设计与完整数据

5049 文档,50 条 query × 10 repeats:

efSearch Recall@5 Recall@10 p50 p99
8 0.996 0.996 7.0ms 12.7ms
16 0.996 0.996 6.4ms 11.8ms
24 0.968 0.958 1.43ms 2.74ms
32 0.984 0.970 1.41ms 2.58ms
50 0.984 0.980 1.43ms 2.12ms
128 0.996 0.994 1.52ms 2.81ms

四条核心结论

  1. 拐点识别:efSearch=24 是 Recall 首次显著下降点
  2. 最优值:efSearch=32------比默认 50 略优,Recall 持平
  3. 代码建议:efSearch = max(32, top_k*2)
  4. Milvus 特有发现:低 efSearch 反常模式侧面验证必须在实际环境做消融

HNSW 内存增长模型
#mermaid-svg-hUL64kXjMY24ttwN{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-hUL64kXjMY24ttwN .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-hUL64kXjMY24ttwN .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-hUL64kXjMY24ttwN .error-icon{fill:#552222;}#mermaid-svg-hUL64kXjMY24ttwN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-hUL64kXjMY24ttwN .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-hUL64kXjMY24ttwN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-hUL64kXjMY24ttwN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-hUL64kXjMY24ttwN .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-hUL64kXjMY24ttwN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-hUL64kXjMY24ttwN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-hUL64kXjMY24ttwN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-hUL64kXjMY24ttwN .marker.cross{stroke:#333333;}#mermaid-svg-hUL64kXjMY24ttwN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-hUL64kXjMY24ttwN p{margin:0;}#mermaid-svg-hUL64kXjMY24ttwN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} HNSW 索引内存占用 vs 向量规模 10万50万100万500万 242220181614121086420 内存 (GB)

相关推荐
@PHARAOH5 分钟前
WHAT - Vite 8(Rolldown 底层构建引擎升级)
前端·架构
hhb_61828 分钟前
智联AI办公微服务技术全解析
人工智能·微服务·架构
智恒百亿36 分钟前
5090 八卡服务器踩坑实录:架构、多卡通信、PyTorch Distributed 一次说清楚
服务器·pytorch·架构
阿文和她的Key1 小时前
国产AI芯片涨价20%-50%:企业算力采购的四层成本架构重估
人工智能·架构
安易算力2 小时前
智算中心网络架构选型:RDMA、InfiniBand与以太网技术深度对比及部署实践
网络·架构
用户777397909932 小时前
REA 逆向工程炸出 15W+ 热度,我却在想另一件事:当 AI 写的代码比你能读的还多,怎么办?
架构
Thneonl3 小时前
Spark 比 MR 快在哪?管住最贵的 shuffle
后端·架构
海带紫菜菠萝汤3 小时前
本周 AI 观察:算力、路由、账本——护城河正搬出模型层
人工智能·ai·程序员·架构·大模型
隐擎fox4 小时前
解密 BGP Anycast 边缘路由与跨国链路质量检测:多租户网络出口的低时延与防丢包架构实战
网络·python·网络协议·tcp/ip·网络安全·架构·tcpdump
Shulex4 小时前
Shopify 独立站弃购挽回与客服实时转化:Shulex 实战架构指南
大数据·人工智能·架构·智能客服·跨境电商