HNSW 最小复现 demo
纯 numpy 实现的 HNSW 索引,用于配合文章 《向量索引深度:HNSW、DiskANN、SPANN 原理对比》 演示算法行为。
依赖
- Python 3.9+
- numpy >= 1.24
python -m venv .venv
source .venv/bin/activate
pip install numpy运行
python bench.py预期输出:
n=1000, d=64, nq=50, k=10
Build: 1.xx s, Query: 0.xx s (xx QPS)
Recall@10 = 0.95+
文件
hnsw_numpy.py:HNSW 核心实现(约 120 行),包括分层插入、启发式选邻居、贪心查询。bench.py:对 1000 个 64 维随机向量建索引,和暴力搜索对比 Recall@10。
调参实验
修改 bench.py 里的
HNSW(d=d, M=8, efC=100, efS=50):
- 将
efS调到 10,观察召回率下降; - 将
M调到 4,观察高召回段的恶化; - 将
efC调到 20,观察构建期图质量的变化。
此实现不做 SIMD、不加锁、不支持删除,仅用于理解算法。生产场景请使用 hnswlib 或 FAISS。
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【数据库研究前沿】Text-to-SQL 与 Agentic Query:DIN-SQL、C3、DAIL-SQL 工程复盘
Spider / BIRD 评测、DIN-SQL / C3 / DAIL-SQL 的核心机制、schema linking 与 self-consistency,以及一个离线可跑的最小 Text-to-SQL 闭环 demo
【数据库前沿】【数据库研究前沿】流批一体与增量视图:Materialize、RisingWave、Feldera 的 DBSP 理论
以 IVM 历史、Differential Dataflow、DBSP(Z-set 与线性化)为主线,对比 Materialize、RisingWave、Feldera 的架构取舍,划清与 Flink/Kafka Streams 的能力边界,并附 Python Z-set 最小增量 join demo
【数据库前沿】【数据库研究前沿】HTAP 新范式:从 TiDB、SingleStore 到 Lakehouse 一体化
从工作负载隔离到行列双维护,系统梳理 TiDB + TiFlash、SingleStore Universal Storage、F1 Lightning 与 Lakehouse 的设计取舍、新鲜度边界与 HTAP 基准测试方法
【数据库前沿】【数据库研究前沿】Serverless 数据库弹性理论:Neon 与 Aurora Serverless v2
从 Aurora 的日志即数据库到 Neon 的 pageserver/safekeeper/compute 三层分离,拆解 Serverless 数据库的冷启动、细粒度伸缩与 copy-on-write 分支,并给出本地可跑的 Neon demo 指引