MonaVec:用于边缘和离线人工智能系统的 无需训练 嵌入式矢量搜索内核
MonaVec: A Training-Free Embedded Vector Search Kernel for Edge and Offline AI Systems
摘要
我们推出了 MonaVec,这是一种用于边缘和离线 AI 的确定性嵌入式矢量搜索内核,适用于服务器基础设施、网络连接和训练数据均不可用的环境。现有的矢量搜索系统假设有一个持久的服务器、千兆字节的 RAM 或对语料库的训练。相反,MonaVec 的目标是 SQLite 的部署配置文件:一个文件、一个函数调用、在任何地方运行。默认情况下,其量化核心为 无需训练,并且忽略数据:随机 Hadamard 变换 (RHDH) 将任何输入分布限制为 N(0,1),因此预先计算的 Lloyd-Max 表量化为 4 位(小 8 倍),无需学习密码本,也无需数据传递。该索引保留为单个 .mvec 文件,其嵌入的 ChaCha20 旋转种子使结果可跨架构重现,并且在构建中字节相同 - 这是并行构建图形库无法提供的确定性保证。在语义嵌入方面(AG News、45K x 1024-dim BGE-M3、余弦),MonaVec 4 位 BruteForce 在 27 MB 中达到 0.960 Recall@10,在召回率方面领先于 float32 FAISS-IVF 和 8 位 usearch,同时以峰值吞吐量换取字节相同的确定性。单通道全局标准化 (fit()) 将相同的数据忽略管道扩展到幅度敏感的 L2 数据,并且可选的 IvfFlat 和 HNSW 后端将其传送到百万向量语料库。 MonaVec 采用纯 Rust 实现,具有 Python 绑定和运行时 SIMD 调度(AVX-512/AVX2/NEON/标量)。它的目标是设备上的 RAG、离线代理和嵌入式检索——SQLite 占据关系数据的利基市场:一个文件,一次调用,在任何地方运行。