过去几年,向量检索已从搜索与推荐系统的后台组件,演变为智能应用的通用数据基础设施。尤其在 RAG(Retrieval-Augmented Generation)兴起后,开发者不再只为搜推广场景构建向量系统,而是为任意知识问答、语义理解或智能助手嵌入“语义记忆”。与之同时,向量检索技术也从云端下沉至终端设备(如PC、手机),驱动因素包括:
开发者门槛降低:LangChain 等框架降低向量检索使用门槛,向量能力成为开发者标配;
终端设备算力提升:边缘AI趋势下,端侧算力持续提升,支持本地向量计算与存储;
数据隐私与低延迟刚需:医疗/金融等场景要求数据本地处理,AR/自动驾驶需低延迟响应。
以典型终端应用场景 ——** PC/手机端本地 RAG 助手**为例:用户在无网络环境下,通过自然语言查询本地代码库、技术文档或会议记录。系统需同时支持向量与标量(如时间、文件类型、标签等)字段的存储,并提供向量 检索、以及基于时间、www.jlygroup.net文件类型等标量属性的混合过滤;知识库会随本地文件动态增删改,则要求系统提供完整的 CRUD 能力;作为终端应用,其内存与后台资源占用必须严格受限,并能在进程崩溃或强制退出后可靠恢复数据;此外,启动与查询响应延迟需足够低,方可融入开发者日常工作流。
然而,现有技术方案在上述场景下存在适配缺口:
纯索引库(如Faiss):缺乏标量属性存储、混合查询、完整 CRUD 以及崩溃恢复等数据库能力,需大量外围工程实现生产级功能,工程成本显著;
嵌入式方案(如DuckDB-VSS):向量功能受限,包括向量索引类型单一、不支持量化压缩、运行时内存等资源不可控等,在 PC 端易因内存或 CPU 占用过高影响系统整体性能;
服务化方案(如Milvus):依赖独立进程与网络通信,架构复杂、资源开销大,www.ycsjb.com无法嵌入 CLI 工具、桌面应用或移动客户端,且运维负担重,与终端场景存在天然适配障碍。
What is Zvec?
为了满足上述需求,我们开源了 Zvec —— 以嵌入式架构,提供极致性能、零依赖、生产可用的向量能力,让向量检索像 SQLite 一样简单、可靠、随处可嵌。
Zvec 的核心设计目标是 让高质量的向量能力触手可及,设计宗旨包括:
嵌入式:纯本地运行,无需网络或独立服务,零配置迅速启动;运行时资源(如内存)可控,接口设计简洁,并易于集成和扩展,可无缝嵌入终端应用、CLI 工具、AI 框架或数据库系统;
向量原生:全栈面向向量工作负载设计,提供丰富的高质量索引与量化能力,满足不同资源约束下的需求,并深度适配各类硬件平台;支持丰富的向量检索模式,覆盖 RAG、多模态搜索等应用需求;
生产就绪:以稳定性为核心,通过持久化存储、线程安全访问与崩溃自动恢复等机制,确保在手机、CLI、车载等无运维终端环境中长期可靠运行,避免因异常退出导致数据丢失或状态不一致。
Why Zvec?
Zvec 在保证易用性的同时,相比于其他端侧向量数据库方案,提供更完整的检索功能、更强的资源管控能力以及更出色的检索性能,关键对比如下:
类别 能力 zvec faiss duckdb(vss) milvus(lite) lancedb pgvector
部署形态 嵌入式 ✅ ✅ ✅ ✅ ✅ ❌
单机(服务化) ❌ ❌ ✅ ✅ ❌ ✅
分布式 ❌ ❌ ❌ ✅ ❌ ❌
资源控制 内存 ✅ ❌ ❌ ❌ ✅ ✅
线程 ✅ ❌ ❌ ❌ ❌ ✅
向量能力 向量索引 ✅ ✅ ⚠️(HNSW only) ❌(FLAT/IVF_FLAT only) ✅ ✅
稠密向量 ✅ ✅ ⚠️(FP32 only) ✅ ✅ ✅
稀疏向量 ✅ ❌ ⚠️(full text search) ✅ ⚠️(full text search) ✅
量化 ✅ ✅ ❌ ✅ ✅ ✅
数据操作 混合检索
(向量+标量) ✅ ❌ ✅ ✅ ✅ ✅
多向量检索 ✅ ❌ ❌ ✅ ✅ ❌
完整的CRUD ✅ ❌ ✅ ⚠️(insert/upsert only) ✅ ✅
可靠性 崩溃恢复 ✅ ❌ ✅ ❌ ✅ ✅
开箱即用:一分钟搭建向量检索应用
凭借一键安装(无需部署服务、依赖极少),以及极简的 API 设计,Zvec 达到了开箱即用的使用体验。Python 用户通过 pip install zvec 即可将向量能力直接嵌入应用,通过三步 API(create_and_open → insert → query)即可构建本地语义搜索原型,从安装到运行不超过一分钟。
Zvec Python SDK(v010)现已发布,欢迎开发者即刻体验:
一键安装
pip install zvec
One-Minute Example
import zvec
# Define collection schema
schema = zvecCollectionSchema(
name="example",
vectors=zvecVectorSchema("embedding", zvecDataTypeVECTOR_FP32, 4),
)
# Create collection
collection = zveccreate_and_open(path="/zvec_example", schema=schema,)
# Insert documents
collectioninsert([
zvecDoc(id="doc_1", vectors={"embedding": [01, 02, 03, 04]}),
zvecDoc(id="doc_2", vectors={"embedding": [02, 03, 04, 01]}),
])
# Search by vector similarity
results = collectionquery(
zvecVectorQuery("embedding", vector=[04, 03, 03, 01]),
topk=10
)
# Results: list of {'id': str, 'score': float, }, sorted by relevance
print(results)
💡 更详细的快速开始示例可参考Zvec QuickStart。
极致性能:满足端侧实时交互需求
基于阿里巴巴通义实验室自研的高性能向量引擎 Proxima,通过深度优化——包括 **多线程并发,内存布局优化,SIMD 加速,CPU 预取 **等技术优化策略,Zvec 显著提高了索引构建与查询流程的计算效率,实现了低延迟、高吞吐的向量检索能力,端侧资源受限场景下也能做到实时交互。
在 VectorDBBench 的典型场景(Cohere 10M 数据集)中,Zvec 在相当硬件配置以及对齐 Recall 水平的前提下,检索吞吐超过了 8000 QPS,是此前榜单首位(ZillizCloud)的 2 倍以上,同时构建延迟大幅缩短,展现出全面领先的性能优势。
Cohere 10M Performance Case
Cohere 1M Performance Case
💡 更多的Benchmark介绍可参考Zvec Benchmark。
资源可控:适配CLI、移动端等资源受限环境
在移动端、Serverless 函数或 CLI 工具等资源受限环境中,向量系统必须对内存与 CPU 使用具备明确边界,否则极易因资源超限导致应用崩溃或系统干预(如 Linux OOM Killer 或 Android ANR)。Zvec 从架构层面内置资源约束机制,确保在有限资源下稳定运行。
内存控制****:向量索引适配有限内存,避免 OOM
HNSW 等图索引在构建或查询阶段可能瞬时占用数倍于原始数据的内存。为避免此类不可控行为,Zvec 提供三层内存管理机制:
流式分块写入:写入默认采用 64MB 分块流式处理,避免全量数据驻留内存,兼顾写入效率和内存占用;
mmap按需加载:支持通过 enable_mmap=true 启用内存映射模式。在此模式下,向量与索引数据由操作系统按需换入物理内存,即使总数据量超过可用 RAM,亦可避免 OOM;
强内存管控[Experimental]:当未启用mmap时,进入强内存管控管控模式,Zvec会维护一个隔离的、进程级的内存池,用户可通过memory_limit_mb参数显式限定该内存池的预算上限。
并发控制:避免线程资源侵占,保障主线程响应性
在 GUI 应用(如桌面工具、手机 App)中,无约束的向量计算可能启动大量线程,耗尽 CPU 资源,导致 UI 卡顿或调度器惩罚。Zvec 提供细粒度并发调控能力:
索引构建并发控制:所有索引创建接口均支持 concurrency 参数,用于指定构建阶段的并行线程数;同时可通过全局 optimize_threads 参数限制进程内最大构建并发,防止后台任务抢占前台资源;
查询并发控制:通过 query_threads 全局参数,用户可限定查询阶段的最大并发线程数。
应用就绪:RAG场景下向量能力全覆盖
Zvec 从设计之初即以 RAG 场景为首要目标,向量能力完整覆盖 RAG 全生命周期,体现为以下核心能力:
动态知识库管理
提供了完整的 CRUD 能力,允许用户实时更新私有知识,满足知识动态更新需求;
支持Schema变更,便于根据元数据演进或查询模式动态选择最优索引策略。
多路召回与融合
原生支持多向量联合查询,轻松实现 RAG 中的 多路语义 以及 语义+关键词 召回;
内置默认重排序器(支持加权融合与 RRF 等策略),自动完成多路结果融合与排序,无需应用层手动合并。
标量-向量混合查询
支持标量过滤条件下推至向量索引执行层,避免高维空间中的全量扫描,显著提升混合查询效率;
标量字段可选建倒排索引,加速等值/范围过滤,进一步优化混合检索性能。
能力总览
类别 能力 支持详情
SDK/平台支持 Python SDK Python: 310 ~ 312
Linux (x86_64),macOS (ARM64)
CRUD操作 数据操作 Insert, Update, Upsert, Delete, DeleteByFilter, Fetch
查询方式 单向量、多向量融合、条件过滤、标量-向量混合查询、RNN/暴力检索/调整索引检索参数
Schema变更 列操作 支持 Column 的 ADD / DROP / ALTER
索引操作 支持 Index 的 CREATE / DROP
持久化 崩溃恢复 WAL + Checkpoint,崩溃后数据零丢失
场景扩展 RAG扩展 提供Embedding/Rerank等能力并支持扩展
向量/量化类型 Dense FP32, FP16, INT8
Sparse SPARSE_FP32, SPARSE_FP16
量化 FP16,INT8, INT4(支持 Refine / ScaleFactor 精度补偿)
索引算法 FLAT Dense/Sparse
HNSW Dense/Sparse
IVF 仅支持Dense
标量类型 索引 倒排索引
数据类型 STR,BOOL,INT32/64,UINT32/64,FLOAT,DOUBLE,ARRAY
过滤条件 参考Filter支持
资源控制 内存控制 分块写入+mmap+内存强管控
并发控制 索引构建+全局查询并发