![]()
做 RAG 的兄弟应该都懂这个痛:10M 条文档向量,光内存就要 31G。笔记本直接卡成幻灯片,服务器账单每月看得肉疼。
最近有个 Rust 写的向量库直接把这块砍到了 4G,搜索速度还比 Meta 的 FAISS 快了 3.4 倍。
内存省 8 倍,速度反超 3.4 倍,这就是 turbovec。
先说说 FAISS 为什么让人又爱又恨。 它是向量搜索的事实标准,但老玩家都懂它那几个老大难问题:
- 传统 Product Quantization 要训练阶段,还得调参,向量分布一变就得重建索引
- 内存贵,10M 条 float32 向量就要 31GB,小团队直接劝退
- 想先过滤再搜索?大概率要 over-fetch 再过滤,性能白白损耗
这些问题不是不能忍,但每个踩过的人都知道有多恶心。
turbovec 的做法很直接:把 Google 的 TurboQuant 量化算法拿过来,用 Rust 手写 SIMD 内核,直接不依赖数据分布。
翻译成人话:你不用训练、不用调参、装完就能用,而且向量怎么变都不影响检索质量。这对个人开发者和中小公司是质的差别。
再看它最狠的增量更新。 传统向量库加数据要么全量重建,要么分批写入,数据量大了每次都是煎熬。turbovec 的 sync() 只写自上次同步以来的增量,单次 fsync 崩溃安全,删除和追加都是毫秒级。
还有一个细节很打动我:它的过滤直接在 SIMD 内核内部做,在 32-vector 块级别直接短路,不损失召回率。这意味着多租户场景的 tenant_id 过滤,不用再额外的重排环节。
Rust 的性能信仰在这件事上体现得淋漓尽致。手写 AVX-512 VNNI 和 vpermb 内核、ARM 平台的 NEON SDOT/SMMLA,4-bit 量化下平均比 FAISS IndexPQFastScan 快 3.4 倍。这就是为什么说 Rust 写的库,性能确实有说法。
上手路径短到离谱:
pip install turbovecPython 绑定直接调,底层 Rust 内核跑 SIMD。不用引入一大堆依赖,不用搭服务,本地跑起来就是干。
不过我得泼点冷水。 项目基于 Google 今年 4 月的论文,产品化时间不长,生态沉淀跟 FAISS 没法比。如果你的场景就几千条向量,直接内存硬搜都行,没必要上这个。它解决的是「大规模 + 低延迟 + 低内存」三者叠加的痛,小项目用不上。
但如果你正在做 RAG、私有化部署、或者边缘设备上的向量搜索,这个库值得认真试一次。 31G 变 4G 带来的不只是成本下降,是个人电脑也能跑原来只有服务器才能跑的活儿。
你被 FAISS 的哪个坑坑过?是训练 PQ 调参、内存爆掉、还是过滤太慢?评论区聊聊。
#程序员 #Rust #人工智能 #开源
#科技#
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.